Index: cards/delphes_card_llptest.tcl
===================================================================
--- cards/delphes_card_llptest.tcl	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ cards/delphes_card_llptest.tcl	(revision a1c9c16715c3c733f66a1cb745871927fd9552c5)
@@ -39,5 +39,5 @@
 ##############################
 
-module TrackEfficiency MuonTrackingEfficiency {
+module Efficiency MuonTrackingEfficiency {
   set InputArray ParticlePropagator/muons
   set OutputArray muons
Index: classes/DelphesFormula.cc
===================================================================
--- classes/DelphesFormula.cc	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ classes/DelphesFormula.cc	(revision a1c9c16715c3c733f66a1cb745871927fd9552c5)
@@ -60,4 +60,7 @@
   buffer.ReplaceAll("phi", "z");
   buffer.ReplaceAll("energy", "t");
+  buffer.ReplaceAll("d0", "[0]");
+  buffer.ReplaceAll("dz", "[1]");
+  buffer.ReplaceAll("ctgTheta", "[2]");
 
 #if ROOT_VERSION_CODE < ROOT_VERSION(6, 0, 0)
@@ -74,8 +77,11 @@
 //------------------------------------------------------------------------------
 
-Double_t DelphesFormula::Eval(Double_t pt, Double_t eta, Double_t phi, Double_t energy)
+Double_t DelphesFormula::Eval(Double_t pt, Double_t eta, Double_t phi,
+  Double_t energy, Double_t d0, Double_t dz,
+  Double_t ctgTheta)
 {
   Double_t x[4] = {pt, eta, phi, energy};
-  return EvalPar(x);
+  Double_t params[3] = {d0, dz, ctgTheta};
+  return EvalPar(x, params);
 }
 
Index: classes/DelphesFormula.h
===================================================================
--- classes/DelphesFormula.h	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ classes/DelphesFormula.h	(revision a1c9c16715c3c733f66a1cb745871927fd9552c5)
@@ -33,5 +33,7 @@
   Int_t Compile(const char *expression);
 
-  Double_t Eval(Double_t pt, Double_t eta = 0, Double_t phi = 0, Double_t energy = 0);
+  Double_t Eval(Double_t pt, Double_t eta = 0, Double_t phi = 0,
+    Double_t energy = 0, Double_t d0 = 0, Double_t dz = 0,
+    Double_t ctgTheta = 0);
 };
 
Index: asses/DelphesLongFormula.cc
===================================================================
--- classes/DelphesLongFormula.cc	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ 	(revision )
@@ -1,97 +1,0 @@
-/*
- *  Delphes: a framework for fast simulation of a generic collider experiment
- *  Copyright (C) 2012-2014  Universite catholique de Louvain (UCL), Belgium
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "classes/DelphesLongFormula.h"
-
-#include "TString.h"
-
-#include <stdexcept>
-
-using namespace std;
-
-//------------------------------------------------------------------------------
-
-DelphesLongFormula::DelphesLongFormula() :
-  TFormula()
-{
-}
-
-//------------------------------------------------------------------------------
-
-DelphesLongFormula::DelphesLongFormula(const char *name, const char *expression) :
-  TFormula()
-{
-}
-
-//------------------------------------------------------------------------------
-
-DelphesLongFormula::~DelphesLongFormula()
-{
-}
-
-//------------------------------------------------------------------------------
-
-Int_t DelphesLongFormula::Compile(const char *expression)
-{
-  TString buffer;
-  const char *it;
-  for(it = expression; *it; ++it)
-  {
-    if(*it == ' ' || *it == '\t' || *it == '\r' || *it == '\n' || *it == '\\') continue;
-    buffer.Append(*it);
-  }
-
-#if ROOT_VERSION_CODE < ROOT_VERSION(6, 0, 0)
-  TFormula::SetMaxima(100000, 1000, 1000000);
-#else
-  TFormula::AddVariable("pt");
-  TFormula::AddVariable("eta");
-  TFormula::AddVariable("phi");
-  TFormula::AddVariable("energy");
-  TFormula::AddVariable("d0");
-  TFormula::AddVariable("dz");
-  TFormula::AddVariable("ctgTheta");
-#endif
-
-  if(TFormula::Compile(buffer) != 0)
-  {
-    throw runtime_error("Invalid Long Formula.");
-  }
-
-  return 0;
-}
-
-//------------------------------------------------------------------------------
-
-Double_t DelphesLongFormula::Eval(Double_t pt, Double_t eta, Double_t phi,
-  Double_t energy, Double_t d0, Double_t dz, Double_t ctgTheta)
-{
-  Double_t x[7];
-
-  x[0] = pt;
-  x[1] = eta;
-  x[2] = phi;
-  x[3] = energy;
-  x[4] = d0;
-  x[5] = dz;
-  x[6] = ctgTheta;
-
-  return EvalPar(x);
-}
-
-//------------------------------------------------------------------------------
Index: asses/DelphesLongFormula.h
===================================================================
--- classes/DelphesLongFormula.h	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ 	(revision )
@@ -1,38 +1,0 @@
-/*
- *  Delphes: a framework for fast simulation of a generic collider experiment
- *  Copyright (C) 2012-2014  Universite catholique de Louvain (UCL), Belgium
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef DelphesLongFormula_h
-#define DelphesLongFormula_h
-
-#include "TFormula.h"
-
-class DelphesLongFormula: public TFormula
-{
-public:
-  DelphesLongFormula();
-  DelphesLongFormula(const char *name, const char *expression);
-
-  ~DelphesLongFormula();
-
-  Int_t Compile(const char *expression);
-
-  Double_t Eval(Double_t pt, Double_t eta = 0, Double_t phi = 0,
-    Double_t energy = 0, Double_t d0 = 0, Double_t dz = 0, Double_t ctgTheta = 0);
-};
-
-#endif /* DelphesLongFormula_h */
Index: modules/Efficiency.cc
===================================================================
--- modules/Efficiency.cc	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ modules/Efficiency.cc	(revision a1c9c16715c3c733f66a1cb745871927fd9552c5)
@@ -95,5 +95,5 @@
 {
   Candidate *candidate;
-  Double_t pt, eta, phi, e;
+  Double_t pt, eta, phi, e, d0, dz, ctgTheta;
 
   fItInputArray->Reset();
@@ -106,7 +106,10 @@
     pt = candidateMomentum.Pt();
     e = candidateMomentum.E();
+    d0 = candidate->D0;
+    dz = candidate->DZ;
+    ctgTheta = candidate->CtgTheta;
 
     // apply an efficency formula
-    if(gRandom->Uniform() > fFormula->Eval(pt, eta, phi, e)) continue;
+    if(gRandom->Uniform() > fFormula->Eval(pt, eta, phi, e, d0, dz, ctgTheta)) continue;
 
     fOutputArray->Add(candidate);
Index: modules/ModulesLinkDef.h
===================================================================
--- modules/ModulesLinkDef.h	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ modules/ModulesLinkDef.h	(revision a1c9c16715c3c733f66a1cb745871927fd9552c5)
@@ -32,5 +32,4 @@
 #include "modules/ParticlePropagator.h"
 #include "modules/Efficiency.h"
-#include "modules/TrackEfficiency.h"
 #include "modules/IdentificationMap.h"
 #include "modules/EnergySmearing.h"
@@ -86,5 +85,4 @@
 #pragma link C++ class ParticlePropagator+;
 #pragma link C++ class Efficiency+;
-#pragma link C++ class TrackEfficiency+;
 #pragma link C++ class IdentificationMap+;
 #pragma link C++ class EnergySmearing+;
Index: dules/TrackEfficiency.cc
===================================================================
--- modules/TrackEfficiency.cc	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ 	(revision )
@@ -1,118 +1,0 @@
-/*
- *  Delphes: a framework for fast simulation of a generic collider experiment
- *  Copyright (C) 2012-2014  Universite catholique de Louvain (UCL), Belgium
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-/** \class TrackEfficiency
- *
- *  Selects candidates from the InputArray according to the Efficiency formula.
- *
- *  \author M. Selvaggi - CERN
- *
- */
-
-#include "modules/TrackEfficiency.h"
-
-#include "classes/DelphesClasses.h"
-#include "classes/DelphesFactory.h"
-#include "classes/DelphesLongFormula.h"
-
-#include "ExRootAnalysis/ExRootClassifier.h"
-#include "ExRootAnalysis/ExRootFilter.h"
-#include "ExRootAnalysis/ExRootResult.h"
-
-#include "TDatabasePDG.h"
-#include "TFormula.h"
-#include "TLorentzVector.h"
-#include "TMath.h"
-#include "TObjArray.h"
-#include "TRandom3.h"
-#include "TString.h"
-
-#include <algorithm>
-#include <iostream>
-#include <sstream>
-#include <stdexcept>
-
-using namespace std;
-
-//------------------------------------------------------------------------------
-
-TrackEfficiency::TrackEfficiency() :
-  fFormula(0), fItInputArray(0)
-{
-  fFormula = new DelphesLongFormula;
-}
-
-//------------------------------------------------------------------------------
-
-TrackEfficiency::~TrackEfficiency()
-{
-  if(fFormula) delete fFormula;
-}
-
-//------------------------------------------------------------------------------
-
-void TrackEfficiency::Init()
-{
-  // read TrackEfficiency formula
-
-  fFormula->Compile(GetString("EfficiencyFormula", "1.0"));
-
-  // import input array
-  fInputArray = ImportArray(GetString("InputArray", "ParticlePropagator/stableParticles"));
-  fItInputArray = fInputArray->MakeIterator();
-
-  // create output array
-
-  fOutputArray = ExportArray(GetString("OutputArray", "stableParticles"));
-}
-
-//------------------------------------------------------------------------------
-
-void TrackEfficiency::Finish()
-{
-  if(fItInputArray) delete fItInputArray;
-}
-
-//------------------------------------------------------------------------------
-
-void TrackEfficiency::Process()
-{
-  Candidate *candidate;
-  Double_t pt, eta, phi, e, d0, dz, ctgTheta;
-
-  fItInputArray->Reset();
-  while((candidate = static_cast<Candidate *>(fItInputArray->Next())))
-  {
-    const TLorentzVector &candidatePosition = candidate->Position;
-    const TLorentzVector &candidateMomentum = candidate->Momentum;
-    eta = candidatePosition.Eta();
-    phi = candidatePosition.Phi();
-    pt = candidateMomentum.Pt();
-    e = candidateMomentum.E();
-    d0 = candidate->D0;
-    dz = candidate->DZ;
-    ctgTheta = candidate->CtgTheta;
-
-    // apply an efficency formula
-    if(gRandom->Uniform() > fFormula->Eval(pt, eta, phi, e, d0, dz, ctgTheta)) continue;
-
-    fOutputArray->Add(candidate);
-  }
-}
-
-//------------------------------------------------------------------------------
Index: dules/TrackEfficiency.h
===================================================================
--- modules/TrackEfficiency.h	(revision 69da13658a128f4ae9244ffdc4f999fa20434989)
+++ 	(revision )
@@ -1,58 +1,0 @@
-/*
- *  Delphes: a framework for fast simulation of a generic collider experiment
- *  Copyright (C) 2012-2014  Universite catholique de Louvain (UCL), Belgium
- *
- *  This program is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef TrackEfficiency_h
-#define TrackEfficiency_h
-
-/** \class TrackEfficiency
- *
- *  Selects candidates from the InputArray according to the Efficiency formula.
- *
- *  \author M. Selvaggi - CERN
- *
- */
-
-#include "classes/DelphesModule.h"
-
-class TIterator;
-class TObjArray;
-class DelphesLongFormula;
-
-class TrackEfficiency: public DelphesModule
-{
-public:
-  TrackEfficiency();
-  ~TrackEfficiency();
-
-  void Init();
-  void Process();
-  void Finish();
-
-private:
-  DelphesLongFormula *fFormula; //!
-
-  TIterator *fItInputArray; //!
-
-  const TObjArray *fInputArray; //!
-
-  TObjArray *fOutputArray; //!
-
-  ClassDef(TrackEfficiency, 1)
-};
-
-#endif
