Index: /trunk/Makefile
===================================================================
--- /trunk/Makefile	(revision 1344)
+++ /trunk/Makefile	(revision 1345)
@@ -78,21 +78,4 @@
 	external/ExRootAnalysis/ExRootTreeBranch.h \
 	external/ExRootAnalysis/ExRootProgressBar.h
-root2pileup$(ExeSuf): \
-	tmp/converters/root2pileup.$(ObjSuf)
-
-tmp/converters/root2pileup.$(ObjSuf): \
-	converters/root2pileup.cpp \
-	classes/DelphesClasses.h \
-	classes/DelphesPileUpWriter.h \
-	external/ExRootAnalysis/ExRootTreeReader.h \
-	external/ExRootAnalysis/ExRootProgressBar.h
-root2lhco$(ExeSuf): \
-	tmp/converters/root2lhco.$(ObjSuf)
-
-tmp/converters/root2lhco.$(ObjSuf): \
-	converters/root2lhco.cpp \
-	classes/DelphesClasses.h \
-	external/ExRootAnalysis/ExRootTreeReader.h \
-	external/ExRootAnalysis/ExRootProgressBar.h
 stdhep2pileup$(ExeSuf): \
 	tmp/converters/stdhep2pileup.$(ObjSuf)
@@ -107,4 +90,33 @@
 	external/ExRootAnalysis/ExRootTreeBranch.h \
 	external/ExRootAnalysis/ExRootProgressBar.h
+root2lhco$(ExeSuf): \
+	tmp/converters/root2lhco.$(ObjSuf)
+
+tmp/converters/root2lhco.$(ObjSuf): \
+	converters/root2lhco.cpp \
+	classes/DelphesClasses.h \
+	external/ExRootAnalysis/ExRootTreeReader.h \
+	external/ExRootAnalysis/ExRootProgressBar.h
+root2pileup$(ExeSuf): \
+	tmp/converters/root2pileup.$(ObjSuf)
+
+tmp/converters/root2pileup.$(ObjSuf): \
+	converters/root2pileup.cpp \
+	classes/DelphesClasses.h \
+	classes/DelphesPileUpWriter.h \
+	external/ExRootAnalysis/ExRootTreeReader.h \
+	external/ExRootAnalysis/ExRootProgressBar.h
+pileup2root$(ExeSuf): \
+	tmp/converters/pileup2root.$(ObjSuf)
+
+tmp/converters/pileup2root.$(ObjSuf): \
+	converters/pileup2root.cpp \
+	classes/DelphesStream.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesPileUpReader.h \
+	external/ExRootAnalysis/ExRootTreeWriter.h \
+	external/ExRootAnalysis/ExRootTreeBranch.h \
+	external/ExRootAnalysis/ExRootProgressBar.h
 hepmc2pileup$(ExeSuf): \
 	tmp/converters/hepmc2pileup.$(ObjSuf)
@@ -119,16 +131,4 @@
 	external/ExRootAnalysis/ExRootTreeBranch.h \
 	external/ExRootAnalysis/ExRootProgressBar.h
-pileup2root$(ExeSuf): \
-	tmp/converters/pileup2root.$(ObjSuf)
-
-tmp/converters/pileup2root.$(ObjSuf): \
-	converters/pileup2root.cpp \
-	classes/DelphesStream.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesPileUpReader.h \
-	external/ExRootAnalysis/ExRootTreeWriter.h \
-	external/ExRootAnalysis/ExRootTreeBranch.h \
-	external/ExRootAnalysis/ExRootProgressBar.h
 Example1$(ExeSuf): \
 	tmp/examples/Example1.$(ObjSuf)
@@ -144,18 +144,18 @@
 EXECUTABLE +=  \
 	lhco2root$(ExeSuf) \
+	stdhep2pileup$(ExeSuf) \
+	root2lhco$(ExeSuf) \
 	root2pileup$(ExeSuf) \
-	root2lhco$(ExeSuf) \
-	stdhep2pileup$(ExeSuf) \
+	pileup2root$(ExeSuf) \
 	hepmc2pileup$(ExeSuf) \
-	pileup2root$(ExeSuf) \
 	Example1$(ExeSuf)
 
 EXECUTABLE_OBJ +=  \
 	tmp/converters/lhco2root.$(ObjSuf) \
+	tmp/converters/stdhep2pileup.$(ObjSuf) \
+	tmp/converters/root2lhco.$(ObjSuf) \
 	tmp/converters/root2pileup.$(ObjSuf) \
-	tmp/converters/root2lhco.$(ObjSuf) \
-	tmp/converters/stdhep2pileup.$(ObjSuf) \
+	tmp/converters/pileup2root.$(ObjSuf) \
 	tmp/converters/hepmc2pileup.$(ObjSuf) \
-	tmp/converters/pileup2root.$(ObjSuf) \
 	tmp/examples/Example1.$(ObjSuf)
 
@@ -247,20 +247,20 @@
 	tmp/readers/DelphesProMC.$(ObjSuf)
 
+tmp/external/ProMC/ProMCDescription.pb.$(ObjSuf): \
+	external/ProMC/ProMCDescription.pb.$(SrcSuf)
 tmp/external/ProMC/ProMCBook.$(ObjSuf): \
 	external/ProMC/ProMCBook.$(SrcSuf)
 tmp/external/ProMC/ProMC.pb.$(ObjSuf): \
 	external/ProMC/ProMC.pb.$(SrcSuf)
+tmp/external/ProMC/ProMCHeader.pb.$(ObjSuf): \
+	external/ProMC/ProMCHeader.pb.$(SrcSuf)
 tmp/external/ProMC/ProMCStat.pb.$(ObjSuf): \
 	external/ProMC/ProMCStat.pb.$(SrcSuf)
-tmp/external/ProMC/ProMCHeader.pb.$(ObjSuf): \
-	external/ProMC/ProMCHeader.pb.$(SrcSuf)
-tmp/external/ProMC/ProMCDescription.pb.$(ObjSuf): \
-	external/ProMC/ProMCDescription.pb.$(SrcSuf)
 DELPHES_OBJ +=  \
+	tmp/external/ProMC/ProMCDescription.pb.$(ObjSuf) \
 	tmp/external/ProMC/ProMCBook.$(ObjSuf) \
 	tmp/external/ProMC/ProMC.pb.$(ObjSuf) \
-	tmp/external/ProMC/ProMCStat.pb.$(ObjSuf) \
 	tmp/external/ProMC/ProMCHeader.pb.$(ObjSuf) \
-	tmp/external/ProMC/ProMCDescription.pb.$(ObjSuf)
+	tmp/external/ProMC/ProMCStat.pb.$(ObjSuf)
 
 ifeq ($(HAS_PYTHIA8),true)
@@ -314,4 +314,5 @@
 	modules/EnergySmearing.h \
 	modules/MomentumSmearing.h \
+	modules/TimeSmearing.h \
 	modules/Calorimeter.h \
 	modules/Isolation.h \
@@ -363,10 +364,12 @@
 	tmp/display/DisplayDict.$(ObjSuf)
 
-tmp/classes/DelphesHepMCReader.$(ObjSuf): \
-	classes/DelphesHepMCReader.$(SrcSuf) \
-	classes/DelphesHepMCReader.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesStream.h \
+tmp/classes/DelphesPileUpReader.$(ObjSuf): \
+	classes/DelphesPileUpReader.$(SrcSuf) \
+	classes/DelphesPileUpReader.h
+tmp/classes/DelphesSTDHEPReader.$(ObjSuf): \
+	classes/DelphesSTDHEPReader.$(SrcSuf) \
+	classes/DelphesSTDHEPReader.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
 	external/ExRootAnalysis/ExRootTreeBranch.h
 tmp/classes/DelphesLHEFReader.$(ObjSuf): \
@@ -377,24 +380,18 @@
 	classes/DelphesStream.h \
 	external/ExRootAnalysis/ExRootTreeBranch.h
-tmp/classes/DelphesFactory.$(ObjSuf): \
-	classes/DelphesFactory.$(SrcSuf) \
-	classes/DelphesFactory.h \
-	classes/DelphesClasses.h \
-	external/ExRootAnalysis/ExRootTreeBranch.h
+tmp/classes/DelphesPileUpWriter.$(ObjSuf): \
+	classes/DelphesPileUpWriter.$(SrcSuf) \
+	classes/DelphesPileUpWriter.h
 tmp/classes/DelphesFormula.$(ObjSuf): \
 	classes/DelphesFormula.$(SrcSuf) \
 	classes/DelphesFormula.h
-tmp/classes/DelphesSTDHEPReader.$(ObjSuf): \
-	classes/DelphesSTDHEPReader.$(SrcSuf) \
-	classes/DelphesSTDHEPReader.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	external/ExRootAnalysis/ExRootTreeBranch.h
+tmp/classes/DelphesClasses.$(ObjSuf): \
+	classes/DelphesClasses.$(SrcSuf) \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/SortableObject.h
 tmp/classes/DelphesStream.$(ObjSuf): \
 	classes/DelphesStream.$(SrcSuf) \
 	classes/DelphesStream.h
-tmp/classes/DelphesPileUpWriter.$(ObjSuf): \
-	classes/DelphesPileUpWriter.$(SrcSuf) \
-	classes/DelphesPileUpWriter.h
 tmp/classes/DelphesModule.$(ObjSuf): \
 	classes/DelphesModule.$(SrcSuf) \
@@ -405,12 +402,28 @@
 	external/ExRootAnalysis/ExRootTreeWriter.h \
 	external/ExRootAnalysis/ExRootResult.h
-tmp/classes/DelphesClasses.$(ObjSuf): \
-	classes/DelphesClasses.$(SrcSuf) \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/SortableObject.h
-tmp/classes/DelphesPileUpReader.$(ObjSuf): \
-	classes/DelphesPileUpReader.$(SrcSuf) \
-	classes/DelphesPileUpReader.h
+tmp/classes/DelphesTF2.$(ObjSuf): \
+	classes/DelphesTF2.$(SrcSuf) \
+	classes/DelphesTF2.h
+tmp/classes/DelphesFactory.$(ObjSuf): \
+	classes/DelphesFactory.$(SrcSuf) \
+	classes/DelphesFactory.h \
+	classes/DelphesClasses.h \
+	external/ExRootAnalysis/ExRootTreeBranch.h
+tmp/classes/DelphesHepMCReader.$(ObjSuf): \
+	classes/DelphesHepMCReader.$(SrcSuf) \
+	classes/DelphesHepMCReader.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesStream.h \
+	external/ExRootAnalysis/ExRootTreeBranch.h
+tmp/modules/Calorimeter.$(ObjSuf): \
+	modules/Calorimeter.$(SrcSuf) \
+	modules/Calorimeter.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
 tmp/modules/LeptonDressing.$(ObjSuf): \
 	modules/LeptonDressing.$(SrcSuf) \
@@ -422,16 +435,62 @@
 	external/ExRootAnalysis/ExRootFilter.h \
 	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/Efficiency.$(ObjSuf): \
-	modules/Efficiency.$(SrcSuf) \
-	modules/Efficiency.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/UniqueObjectFinder.$(ObjSuf): \
-	modules/UniqueObjectFinder.$(SrcSuf) \
-	modules/UniqueObjectFinder.h \
+tmp/modules/PileUpMerger.$(ObjSuf): \
+	modules/PileUpMerger.$(SrcSuf) \
+	modules/PileUpMerger.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesTF2.h \
+	classes/DelphesPileUpReader.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/BTagging.$(ObjSuf): \
+	modules/BTagging.$(SrcSuf) \
+	modules/BTagging.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/EnergySmearing.$(ObjSuf): \
+	modules/EnergySmearing.$(SrcSuf) \
+	modules/EnergySmearing.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/MomentumSmearing.$(ObjSuf): \
+	modules/MomentumSmearing.$(SrcSuf) \
+	modules/MomentumSmearing.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/ConstituentFilter.$(ObjSuf): \
+	modules/ConstituentFilter.$(SrcSuf) \
+	modules/ConstituentFilter.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/TrackPileUpSubtractor.$(ObjSuf): \
+	modules/TrackPileUpSubtractor.$(SrcSuf) \
+	modules/TrackPileUpSubtractor.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/Merger.$(ObjSuf): \
+	modules/Merger.$(SrcSuf) \
+	modules/Merger.h \
 	classes/DelphesClasses.h \
 	classes/DelphesFactory.h \
@@ -449,19 +508,86 @@
 	external/ExRootAnalysis/ExRootFilter.h \
 	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/ParticlePropagator.$(ObjSuf): \
-	modules/ParticlePropagator.$(SrcSuf) \
-	modules/ParticlePropagator.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/EnergySmearing.$(ObjSuf): \
-	modules/EnergySmearing.$(SrcSuf) \
-	modules/EnergySmearing.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
+tmp/modules/EnergyScale.$(ObjSuf): \
+	modules/EnergyScale.$(SrcSuf) \
+	modules/EnergyScale.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/Cloner.$(ObjSuf): \
+	modules/Cloner.$(SrcSuf) \
+	modules/Cloner.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/TreeWriter.$(ObjSuf): \
+	modules/TreeWriter.$(SrcSuf) \
+	modules/TreeWriter.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h \
+	external/ExRootAnalysis/ExRootTreeBranch.h
+tmp/modules/JetPileUpSubtractor.$(ObjSuf): \
+	modules/JetPileUpSubtractor.$(SrcSuf) \
+	modules/JetPileUpSubtractor.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/Isolation.$(ObjSuf): \
+	modules/Isolation.$(SrcSuf) \
+	modules/Isolation.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/Delphes.$(ObjSuf): \
+	modules/Delphes.$(SrcSuf) \
+	modules/Delphes.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h \
+	external/ExRootAnalysis/ExRootConfReader.h \
+	external/ExRootAnalysis/ExRootTreeWriter.h
+tmp/modules/TauTagging.$(ObjSuf): \
+	modules/TauTagging.$(SrcSuf) \
+	modules/TauTagging.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/StatusPidFilter.$(ObjSuf): \
+	modules/StatusPidFilter.$(SrcSuf) \
+	modules/StatusPidFilter.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/PileUpMergerPythia8.$(ObjSuf): \
+	modules/PileUpMergerPythia8.$(SrcSuf) \
+	modules/PileUpMergerPythia8.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	classes/DelphesPileUpReader.h \
 	external/ExRootAnalysis/ExRootResult.h \
 	external/ExRootAnalysis/ExRootFilter.h \
@@ -485,78 +611,40 @@
 	external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh \
 	external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh
-tmp/modules/PileUpMergerPythia8.$(ObjSuf): \
-	modules/PileUpMergerPythia8.$(SrcSuf) \
-	modules/PileUpMergerPythia8.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	classes/DelphesPileUpReader.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/StatusPidFilter.$(ObjSuf): \
-	modules/StatusPidFilter.$(SrcSuf) \
-	modules/StatusPidFilter.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/ConstituentFilter.$(ObjSuf): \
-	modules/ConstituentFilter.$(SrcSuf) \
-	modules/ConstituentFilter.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/EnergyScale.$(ObjSuf): \
-	modules/EnergyScale.$(SrcSuf) \
-	modules/EnergyScale.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/TauTagging.$(ObjSuf): \
-	modules/TauTagging.$(SrcSuf) \
-	modules/TauTagging.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/Merger.$(ObjSuf): \
-	modules/Merger.$(SrcSuf) \
-	modules/Merger.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/BTagging.$(ObjSuf): \
-	modules/BTagging.$(SrcSuf) \
-	modules/BTagging.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/TreeWriter.$(ObjSuf): \
-	modules/TreeWriter.$(SrcSuf) \
-	modules/TreeWriter.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h \
-	external/ExRootAnalysis/ExRootTreeBranch.h
+tmp/modules/TimeSmearing.$(ObjSuf): \
+	modules/TimeSmearing.$(SrcSuf) \
+	modules/TimeSmearing.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/ParticlePropagator.$(ObjSuf): \
+	modules/ParticlePropagator.$(SrcSuf) \
+	modules/ParticlePropagator.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/Efficiency.$(ObjSuf): \
+	modules/Efficiency.$(SrcSuf) \
+	modules/Efficiency.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/modules/UniqueObjectFinder.$(ObjSuf): \
+	modules/UniqueObjectFinder.$(SrcSuf) \
+	modules/UniqueObjectFinder.h \
+	classes/DelphesClasses.h \
+	classes/DelphesFactory.h \
+	classes/DelphesFormula.h \
+	external/ExRootAnalysis/ExRootResult.h \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
 tmp/modules/Weighter.$(ObjSuf): \
 	modules/Weighter.$(SrcSuf) \
@@ -568,150 +656,54 @@
 	external/ExRootAnalysis/ExRootFilter.h \
 	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/Delphes.$(ObjSuf): \
-	modules/Delphes.$(SrcSuf) \
-	modules/Delphes.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h \
-	external/ExRootAnalysis/ExRootConfReader.h \
-	external/ExRootAnalysis/ExRootTreeWriter.h
-tmp/modules/Calorimeter.$(ObjSuf): \
-	modules/Calorimeter.$(SrcSuf) \
-	modules/Calorimeter.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/Isolation.$(ObjSuf): \
-	modules/Isolation.$(SrcSuf) \
-	modules/Isolation.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/PileUpMerger.$(ObjSuf): \
-	modules/PileUpMerger.$(SrcSuf) \
-	modules/PileUpMerger.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	classes/DelphesPileUpReader.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/TrackPileUpSubtractor.$(ObjSuf): \
-	modules/TrackPileUpSubtractor.$(SrcSuf) \
-	modules/TrackPileUpSubtractor.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/Cloner.$(ObjSuf): \
-	modules/Cloner.$(SrcSuf) \
-	modules/Cloner.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/JetPileUpSubtractor.$(ObjSuf): \
-	modules/JetPileUpSubtractor.$(SrcSuf) \
-	modules/JetPileUpSubtractor.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/modules/MomentumSmearing.$(ObjSuf): \
-	modules/MomentumSmearing.$(SrcSuf) \
-	modules/MomentumSmearing.h \
-	classes/DelphesClasses.h \
-	classes/DelphesFactory.h \
-	classes/DelphesFormula.h \
-	external/ExRootAnalysis/ExRootResult.h \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
-tmp/external/ExRootAnalysis/ExRootFilter.$(ObjSuf): \
-	external/ExRootAnalysis/ExRootFilter.$(SrcSuf) \
-	external/ExRootAnalysis/ExRootFilter.h \
-	external/ExRootAnalysis/ExRootClassifier.h
+tmp/external/ExRootAnalysis/ExRootProgressBar.$(ObjSuf): \
+	external/ExRootAnalysis/ExRootProgressBar.$(SrcSuf) \
+	external/ExRootAnalysis/ExRootProgressBar.h
+tmp/external/ExRootAnalysis/ExRootTask.$(ObjSuf): \
+	external/ExRootAnalysis/ExRootTask.$(SrcSuf) \
+	external/ExRootAnalysis/ExRootTask.h \
+	external/ExRootAnalysis/ExRootConfReader.h
+tmp/external/ExRootAnalysis/ExRootTreeWriter.$(ObjSuf): \
+	external/ExRootAnalysis/ExRootTreeWriter.$(SrcSuf) \
+	external/ExRootAnalysis/ExRootTreeWriter.h \
+	external/ExRootAnalysis/ExRootTreeBranch.h
+tmp/external/ExRootAnalysis/ExRootUtilities.$(ObjSuf): \
+	external/ExRootAnalysis/ExRootUtilities.$(SrcSuf) \
+	external/ExRootAnalysis/ExRootUtilities.h
 tmp/external/ExRootAnalysis/ExRootConfReader.$(ObjSuf): \
 	external/ExRootAnalysis/ExRootConfReader.$(SrcSuf) \
 	external/ExRootAnalysis/ExRootConfReader.h \
 	external/tcl/tcl.h
-tmp/external/ExRootAnalysis/ExRootTreeWriter.$(ObjSuf): \
-	external/ExRootAnalysis/ExRootTreeWriter.$(SrcSuf) \
-	external/ExRootAnalysis/ExRootTreeWriter.h \
-	external/ExRootAnalysis/ExRootTreeBranch.h
 tmp/external/ExRootAnalysis/ExRootResult.$(ObjSuf): \
 	external/ExRootAnalysis/ExRootResult.$(SrcSuf) \
 	external/ExRootAnalysis/ExRootResult.h \
 	external/ExRootAnalysis/ExRootUtilities.h
+tmp/external/ExRootAnalysis/ExRootFilter.$(ObjSuf): \
+	external/ExRootAnalysis/ExRootFilter.$(SrcSuf) \
+	external/ExRootAnalysis/ExRootFilter.h \
+	external/ExRootAnalysis/ExRootClassifier.h
+tmp/external/ExRootAnalysis/ExRootTreeReader.$(ObjSuf): \
+	external/ExRootAnalysis/ExRootTreeReader.$(SrcSuf) \
+	external/ExRootAnalysis/ExRootTreeReader.h
 tmp/external/ExRootAnalysis/ExRootTreeBranch.$(ObjSuf): \
 	external/ExRootAnalysis/ExRootTreeBranch.$(SrcSuf) \
 	external/ExRootAnalysis/ExRootTreeBranch.h
-tmp/external/ExRootAnalysis/ExRootTreeReader.$(ObjSuf): \
-	external/ExRootAnalysis/ExRootTreeReader.$(SrcSuf) \
-	external/ExRootAnalysis/ExRootTreeReader.h
-tmp/external/ExRootAnalysis/ExRootTask.$(ObjSuf): \
-	external/ExRootAnalysis/ExRootTask.$(SrcSuf) \
-	external/ExRootAnalysis/ExRootTask.h \
-	external/ExRootAnalysis/ExRootConfReader.h
-tmp/external/ExRootAnalysis/ExRootProgressBar.$(ObjSuf): \
-	external/ExRootAnalysis/ExRootProgressBar.$(SrcSuf) \
-	external/ExRootAnalysis/ExRootProgressBar.h
-tmp/external/ExRootAnalysis/ExRootUtilities.$(ObjSuf): \
-	external/ExRootAnalysis/ExRootUtilities.$(SrcSuf) \
-	external/ExRootAnalysis/ExRootUtilities.h
-tmp/external/fastjet/Dnn2piCylinder.$(ObjSuf): \
-	external/fastjet/Dnn2piCylinder.$(SrcSuf) \
-	external/fastjet/internal/Dnn2piCylinder.hh
-tmp/external/fastjet/GhostedAreaSpec.$(ObjSuf): \
-	external/fastjet/GhostedAreaSpec.$(SrcSuf) \
-	external/fastjet/GhostedAreaSpec.hh \
-	external/fastjet/Error.hh
-tmp/external/fastjet/ClusterSequenceActiveArea.$(ObjSuf): \
-	external/fastjet/ClusterSequenceActiveArea.$(SrcSuf) \
-	external/fastjet/PseudoJet.hh \
-	external/fastjet/ClusterSequence.hh \
-	external/fastjet/ClusterSequenceActiveArea.hh \
-	external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh
-tmp/external/fastjet/ClusterSequence_Delaunay.$(ObjSuf): \
-	external/fastjet/ClusterSequence_Delaunay.$(SrcSuf) \
-	external/fastjet/Error.hh \
-	external/fastjet/PseudoJet.hh \
-	external/fastjet/ClusterSequence.hh \
-	external/fastjet/internal/Dnn4piCylinder.hh \
-	external/fastjet/internal/Dnn3piCylinder.hh \
-	external/fastjet/internal/Dnn2piCylinder.hh
-tmp/external/fastjet/ClusterSequenceArea.$(ObjSuf): \
-	external/fastjet/ClusterSequenceArea.$(SrcSuf) \
-	external/fastjet/ClusterSequenceArea.hh
-tmp/external/fastjet/Voronoi.$(ObjSuf): \
-	external/fastjet/Voronoi.$(SrcSuf) \
-	external/fastjet/internal/Voronoi.hh
 tmp/external/fastjet/Selector.$(ObjSuf): \
 	external/fastjet/Selector.$(SrcSuf) \
 	external/fastjet/Selector.hh \
 	external/fastjet/GhostedAreaSpec.hh
-tmp/external/fastjet/ClusterSequence_TiledN2.$(ObjSuf): \
-	external/fastjet/ClusterSequence_TiledN2.$(SrcSuf) \
+tmp/external/fastjet/ClusterSequenceArea.$(ObjSuf): \
+	external/fastjet/ClusterSequenceArea.$(SrcSuf) \
+	external/fastjet/ClusterSequenceArea.hh
+tmp/external/fastjet/PseudoJet.$(ObjSuf): \
+	external/fastjet/PseudoJet.$(SrcSuf) \
+	external/fastjet/Error.hh \
 	external/fastjet/PseudoJet.hh \
 	external/fastjet/ClusterSequence.hh \
-	external/fastjet/internal/MinHeap.hh
-tmp/external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf): \
-	external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.$(SrcSuf) \
-	external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh
+	external/fastjet/ClusterSequenceAreaBase.hh \
+	external/fastjet/CompositeJetStructure.hh
+tmp/external/fastjet/ClusterSequence_N2.$(ObjSuf): \
+	external/fastjet/ClusterSequence_N2.$(SrcSuf)
+tmp/external/fastjet/FunctionOfPseudoJet.$(ObjSuf): \
+	external/fastjet/FunctionOfPseudoJet.$(SrcSuf)
 tmp/external/fastjet/LimitedWarning.$(ObjSuf): \
 	external/fastjet/LimitedWarning.$(SrcSuf) \
@@ -719,75 +711,8 @@
 tmp/external/fastjet/CompositeJetStructure.$(ObjSuf): \
 	external/fastjet/CompositeJetStructure.$(SrcSuf)
-tmp/external/fastjet/DnnPlane.$(ObjSuf): \
-	external/fastjet/DnnPlane.$(SrcSuf) \
-	external/fastjet/internal/DnnPlane.hh
-tmp/external/fastjet/ClusterSequence_DumbN3.$(ObjSuf): \
-	external/fastjet/ClusterSequence_DumbN3.$(SrcSuf) \
-	external/fastjet/PseudoJet.hh \
-	external/fastjet/ClusterSequence.hh
-tmp/external/fastjet/ClusterSequencePassiveArea.$(ObjSuf): \
-	external/fastjet/ClusterSequencePassiveArea.$(SrcSuf) \
-	external/fastjet/ClusterSequencePassiveArea.hh \
-	external/fastjet/ClusterSequenceVoronoiArea.hh
-tmp/external/fastjet/BasicRandom.$(ObjSuf): \
-	external/fastjet/BasicRandom.$(SrcSuf) \
-	external/fastjet/internal/BasicRandom.hh
-tmp/external/fastjet/ClusterSequenceAreaBase.$(ObjSuf): \
-	external/fastjet/ClusterSequenceAreaBase.$(SrcSuf) \
-	external/fastjet/ClusterSequenceAreaBase.hh
-tmp/external/fastjet/PseudoJetStructureBase.$(ObjSuf): \
-	external/fastjet/PseudoJetStructureBase.$(SrcSuf) \
-	external/fastjet/PseudoJetStructureBase.hh \
-	external/fastjet/Error.hh \
-	external/fastjet/PseudoJet.hh \
-	external/fastjet/ClusterSequence.hh \
-	external/fastjet/ClusterSequenceAreaBase.hh
-tmp/external/fastjet/ClusterSequence.$(ObjSuf): \
-	external/fastjet/ClusterSequence.$(SrcSuf) \
-	external/fastjet/Error.hh \
-	external/fastjet/PseudoJet.hh \
-	external/fastjet/ClusterSequence.hh \
-	external/fastjet/ClusterSequenceStructure.hh \
-	external/fastjet/version.hh
-tmp/external/fastjet/JetDefinition.$(ObjSuf): \
-	external/fastjet/JetDefinition.$(SrcSuf) \
-	external/fastjet/JetDefinition.hh \
-	external/fastjet/Error.hh \
-	external/fastjet/CompositeJetStructure.hh
 tmp/external/fastjet/Error.$(ObjSuf): \
 	external/fastjet/Error.$(SrcSuf) \
 	external/fastjet/Error.hh \
 	external/fastjet/config.h
-tmp/external/fastjet/RangeDefinition.$(ObjSuf): \
-	external/fastjet/RangeDefinition.$(SrcSuf) \
-	external/fastjet/RangeDefinition.hh
-tmp/external/fastjet/ClusterSequence_N2.$(ObjSuf): \
-	external/fastjet/ClusterSequence_N2.$(SrcSuf)
-tmp/external/fastjet/ClusterSequenceStructure.$(ObjSuf): \
-	external/fastjet/ClusterSequenceStructure.$(SrcSuf) \
-	external/fastjet/ClusterSequenceStructure.hh \
-	external/fastjet/Error.hh \
-	external/fastjet/PseudoJet.hh \
-	external/fastjet/ClusterSequence.hh \
-	external/fastjet/ClusterSequenceAreaBase.hh
-tmp/external/fastjet/Dnn4piCylinder.$(ObjSuf): \
-	external/fastjet/Dnn4piCylinder.$(SrcSuf) \
-	external/fastjet/internal/Dnn4piCylinder.hh
-tmp/external/fastjet/ClusterSequence1GhostPassiveArea.$(ObjSuf): \
-	external/fastjet/ClusterSequence1GhostPassiveArea.$(SrcSuf) \
-	external/fastjet/ClusterSequence1GhostPassiveArea.hh
-tmp/external/fastjet/MinHeap.$(ObjSuf): \
-	external/fastjet/MinHeap.$(SrcSuf) \
-	external/fastjet/internal/MinHeap.hh
-tmp/external/fastjet/PseudoJet.$(ObjSuf): \
-	external/fastjet/PseudoJet.$(SrcSuf) \
-	external/fastjet/Error.hh \
-	external/fastjet/PseudoJet.hh \
-	external/fastjet/ClusterSequence.hh \
-	external/fastjet/ClusterSequenceAreaBase.hh \
-	external/fastjet/CompositeJetStructure.hh
-tmp/external/fastjet/Dnn3piCylinder.$(ObjSuf): \
-	external/fastjet/Dnn3piCylinder.$(SrcSuf) \
-	external/fastjet/internal/Dnn3piCylinder.hh
 tmp/external/fastjet/ClusterSequence_CP2DChan.$(ObjSuf): \
 	external/fastjet/ClusterSequence_CP2DChan.$(SrcSuf) \
@@ -798,37 +723,121 @@
 	external/fastjet/ClusterSequenceVoronoiArea.hh \
 	external/fastjet/internal/Voronoi.hh
+tmp/external/fastjet/DnnPlane.$(ObjSuf): \
+	external/fastjet/DnnPlane.$(SrcSuf) \
+	external/fastjet/internal/DnnPlane.hh
+tmp/external/fastjet/ClusterSequencePassiveArea.$(ObjSuf): \
+	external/fastjet/ClusterSequencePassiveArea.$(SrcSuf) \
+	external/fastjet/ClusterSequencePassiveArea.hh \
+	external/fastjet/ClusterSequenceVoronoiArea.hh
+tmp/external/fastjet/ClusterSequenceAreaBase.$(ObjSuf): \
+	external/fastjet/ClusterSequenceAreaBase.$(SrcSuf) \
+	external/fastjet/ClusterSequenceAreaBase.hh
+tmp/external/fastjet/PseudoJetStructureBase.$(ObjSuf): \
+	external/fastjet/PseudoJetStructureBase.$(SrcSuf) \
+	external/fastjet/PseudoJetStructureBase.hh \
+	external/fastjet/Error.hh \
+	external/fastjet/PseudoJet.hh \
+	external/fastjet/ClusterSequence.hh \
+	external/fastjet/ClusterSequenceAreaBase.hh
+tmp/external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf): \
+	external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.$(SrcSuf) \
+	external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh
+tmp/external/fastjet/ClusterSequence_TiledN2.$(ObjSuf): \
+	external/fastjet/ClusterSequence_TiledN2.$(SrcSuf) \
+	external/fastjet/PseudoJet.hh \
+	external/fastjet/ClusterSequence.hh \
+	external/fastjet/internal/MinHeap.hh
+tmp/external/fastjet/BasicRandom.$(ObjSuf): \
+	external/fastjet/BasicRandom.$(SrcSuf) \
+	external/fastjet/internal/BasicRandom.hh
+tmp/external/fastjet/MinHeap.$(ObjSuf): \
+	external/fastjet/MinHeap.$(SrcSuf) \
+	external/fastjet/internal/MinHeap.hh
+tmp/external/fastjet/GhostedAreaSpec.$(ObjSuf): \
+	external/fastjet/GhostedAreaSpec.$(SrcSuf) \
+	external/fastjet/GhostedAreaSpec.hh \
+	external/fastjet/Error.hh
 tmp/external/fastjet/ClosestPair2D.$(ObjSuf): \
 	external/fastjet/ClosestPair2D.$(SrcSuf) \
 	external/fastjet/internal/ClosestPair2D.hh
-tmp/external/fastjet/FunctionOfPseudoJet.$(ObjSuf): \
-	external/fastjet/FunctionOfPseudoJet.$(SrcSuf)
+tmp/external/fastjet/JetDefinition.$(ObjSuf): \
+	external/fastjet/JetDefinition.$(SrcSuf) \
+	external/fastjet/JetDefinition.hh \
+	external/fastjet/Error.hh \
+	external/fastjet/CompositeJetStructure.hh
+tmp/external/fastjet/ClusterSequenceStructure.$(ObjSuf): \
+	external/fastjet/ClusterSequenceStructure.$(SrcSuf) \
+	external/fastjet/ClusterSequenceStructure.hh \
+	external/fastjet/Error.hh \
+	external/fastjet/PseudoJet.hh \
+	external/fastjet/ClusterSequence.hh \
+	external/fastjet/ClusterSequenceAreaBase.hh
+tmp/external/fastjet/ClusterSequence.$(ObjSuf): \
+	external/fastjet/ClusterSequence.$(SrcSuf) \
+	external/fastjet/Error.hh \
+	external/fastjet/PseudoJet.hh \
+	external/fastjet/ClusterSequence.hh \
+	external/fastjet/ClusterSequenceStructure.hh \
+	external/fastjet/version.hh
+tmp/external/fastjet/RangeDefinition.$(ObjSuf): \
+	external/fastjet/RangeDefinition.$(SrcSuf) \
+	external/fastjet/RangeDefinition.hh
+tmp/external/fastjet/ClusterSequence1GhostPassiveArea.$(ObjSuf): \
+	external/fastjet/ClusterSequence1GhostPassiveArea.$(SrcSuf) \
+	external/fastjet/ClusterSequence1GhostPassiveArea.hh
+tmp/external/fastjet/Voronoi.$(ObjSuf): \
+	external/fastjet/Voronoi.$(SrcSuf) \
+	external/fastjet/internal/Voronoi.hh
 tmp/external/fastjet/AreaDefinition.$(ObjSuf): \
 	external/fastjet/AreaDefinition.$(SrcSuf) \
 	external/fastjet/AreaDefinition.hh
-tmp/external/fastjet/tools/CASubJetTagger.$(ObjSuf): \
-	external/fastjet/tools/CASubJetTagger.$(SrcSuf)
-tmp/external/fastjet/tools/TopTaggerBase.$(ObjSuf): \
-	external/fastjet/tools/TopTaggerBase.$(SrcSuf)
-tmp/external/fastjet/tools/BackgroundEstimatorBase.$(ObjSuf): \
-	external/fastjet/tools/BackgroundEstimatorBase.$(SrcSuf) \
-	external/fastjet/tools/BackgroundEstimatorBase.hh
+tmp/external/fastjet/Dnn4piCylinder.$(ObjSuf): \
+	external/fastjet/Dnn4piCylinder.$(SrcSuf) \
+	external/fastjet/internal/Dnn4piCylinder.hh
+tmp/external/fastjet/ClusterSequence_DumbN3.$(ObjSuf): \
+	external/fastjet/ClusterSequence_DumbN3.$(SrcSuf) \
+	external/fastjet/PseudoJet.hh \
+	external/fastjet/ClusterSequence.hh
+tmp/external/fastjet/ClusterSequence_Delaunay.$(ObjSuf): \
+	external/fastjet/ClusterSequence_Delaunay.$(SrcSuf) \
+	external/fastjet/Error.hh \
+	external/fastjet/PseudoJet.hh \
+	external/fastjet/ClusterSequence.hh \
+	external/fastjet/internal/DynamicNearestNeighbours.hh \
+	external/fastjet/internal/Dnn4piCylinder.hh \
+	external/fastjet/internal/Dnn3piCylinder.hh \
+	external/fastjet/internal/Dnn2piCylinder.hh
+tmp/external/fastjet/Dnn2piCylinder.$(ObjSuf): \
+	external/fastjet/Dnn2piCylinder.$(SrcSuf) \
+	external/fastjet/internal/Dnn2piCylinder.hh
+tmp/external/fastjet/ClusterSequenceActiveArea.$(ObjSuf): \
+	external/fastjet/ClusterSequenceActiveArea.$(SrcSuf) \
+	external/fastjet/PseudoJet.hh \
+	external/fastjet/ClusterSequence.hh \
+	external/fastjet/ClusterSequenceActiveArea.hh \
+	external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh
+tmp/external/fastjet/Dnn3piCylinder.$(ObjSuf): \
+	external/fastjet/Dnn3piCylinder.$(SrcSuf) \
+	external/fastjet/internal/Dnn3piCylinder.hh
+tmp/external/fastjet/tools/MassDropTagger.$(ObjSuf): \
+	external/fastjet/tools/MassDropTagger.$(SrcSuf)
 tmp/external/fastjet/tools/Subtractor.$(ObjSuf): \
 	external/fastjet/tools/Subtractor.$(SrcSuf) \
 	external/fastjet/tools/Subtractor.hh
-tmp/external/fastjet/tools/RestFrameNSubjettinessTagger.$(ObjSuf): \
-	external/fastjet/tools/RestFrameNSubjettinessTagger.$(SrcSuf)
+tmp/external/fastjet/tools/TopTaggerBase.$(ObjSuf): \
+	external/fastjet/tools/TopTaggerBase.$(SrcSuf)
+tmp/external/fastjet/tools/Filter.$(ObjSuf): \
+	external/fastjet/tools/Filter.$(SrcSuf) \
+	external/fastjet/tools/Filter.hh
+tmp/external/fastjet/tools/GridMedianBackgroundEstimator.$(ObjSuf): \
+	external/fastjet/tools/GridMedianBackgroundEstimator.$(SrcSuf) \
+	external/fastjet/tools/GridMedianBackgroundEstimator.hh
+tmp/external/fastjet/tools/JHTopTagger.$(ObjSuf): \
+	external/fastjet/tools/JHTopTagger.$(SrcSuf)
+tmp/external/fastjet/tools/CASubJetTagger.$(ObjSuf): \
+	external/fastjet/tools/CASubJetTagger.$(SrcSuf)
 tmp/external/fastjet/tools/JetMedianBackgroundEstimator.$(ObjSuf): \
 	external/fastjet/tools/JetMedianBackgroundEstimator.$(SrcSuf) \
 	external/fastjet/tools/JetMedianBackgroundEstimator.hh
-tmp/external/fastjet/tools/MassDropTagger.$(ObjSuf): \
-	external/fastjet/tools/MassDropTagger.$(SrcSuf)
-tmp/external/fastjet/tools/JHTopTagger.$(ObjSuf): \
-	external/fastjet/tools/JHTopTagger.$(SrcSuf)
-tmp/external/fastjet/tools/GridMedianBackgroundEstimator.$(ObjSuf): \
-	external/fastjet/tools/GridMedianBackgroundEstimator.$(SrcSuf) \
-	external/fastjet/tools/GridMedianBackgroundEstimator.hh
-tmp/external/fastjet/tools/Filter.$(ObjSuf): \
-	external/fastjet/tools/Filter.$(SrcSuf) \
-	external/fastjet/tools/Filter.hh
 tmp/external/fastjet/tools/Pruner.$(ObjSuf): \
 	external/fastjet/tools/Pruner.$(SrcSuf) \
@@ -836,23 +845,19 @@
 	external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.hh \
 	external/fastjet/Selector.hh
-tmp/external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(ObjSuf): \
-	external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(SrcSuf) \
+tmp/external/fastjet/tools/BackgroundEstimatorBase.$(ObjSuf): \
+	external/fastjet/tools/BackgroundEstimatorBase.$(SrcSuf) \
+	external/fastjet/tools/BackgroundEstimatorBase.hh
+tmp/external/fastjet/tools/RestFrameNSubjettinessTagger.$(ObjSuf): \
+	external/fastjet/tools/RestFrameNSubjettinessTagger.$(SrcSuf)
+tmp/external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.$(ObjSuf): \
+	external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.$(SrcSuf) \
 	external/fastjet/ClusterSequence.hh
-tmp/external/fastjet/plugins/ATLASCone/JetConeFinderTool.$(ObjSuf): \
-	external/fastjet/plugins/ATLASCone/JetConeFinderTool.$(SrcSuf)
-tmp/external/fastjet/plugins/ATLASCone/Jet.$(ObjSuf): \
-	external/fastjet/plugins/ATLASCone/Jet.$(SrcSuf)
-tmp/external/fastjet/plugins/ATLASCone/JetSplitMergeTool.$(ObjSuf): \
-	external/fastjet/plugins/ATLASCone/JetSplitMergeTool.$(SrcSuf)
 tmp/external/fastjet/plugins/NestedDefs/NestedDefsPlugin.$(ObjSuf): \
 	external/fastjet/plugins/NestedDefs/NestedDefsPlugin.$(SrcSuf) \
 	external/fastjet/ClusterSequence.hh
-tmp/external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.$(ObjSuf): \
-	external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.$(SrcSuf) \
+tmp/external/fastjet/plugins/EECambridge/EECambridgePlugin.$(ObjSuf): \
+	external/fastjet/plugins/EECambridge/EECambridgePlugin.$(SrcSuf) \
 	external/fastjet/ClusterSequence.hh \
-	external/fastjet/Error.hh
-tmp/external/fastjet/plugins/TrackJet/TrackJetPlugin.$(ObjSuf): \
-	external/fastjet/plugins/TrackJet/TrackJetPlugin.$(SrcSuf) \
-	external/fastjet/ClusterSequence.hh
+	external/fastjet/NNH.hh
 tmp/external/fastjet/plugins/CDFCones/CDFMidPointPlugin.$(ObjSuf): \
 	external/fastjet/plugins/CDFCones/CDFMidPointPlugin.$(SrcSuf) \
@@ -866,38 +871,4 @@
 tmp/external/fastjet/plugins/CDFCones/JetCluAlgorithm.$(ObjSuf): \
 	external/fastjet/plugins/CDFCones/JetCluAlgorithm.$(SrcSuf)
-tmp/external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.$(ObjSuf): \
-	external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.$(SrcSuf) \
-	external/fastjet/ClusterSequence.hh \
-	external/fastjet/Error.hh
-tmp/external/fastjet/plugins/SISCone/geom_2d.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/geom_2d.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/SISConePlugin.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/SISConePlugin.$(SrcSuf) \
-	external/fastjet/ClusterSequence.hh
-tmp/external/fastjet/plugins/SISCone/siscone.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/siscone.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/hash.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/hash.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/quadtree.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/quadtree.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/area.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/area.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/momentum.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/momentum.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/reference.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/reference.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/ranlux.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/ranlux.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/protocones.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/protocones.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/split_merge.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/split_merge.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/vicinity.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/vicinity.$(SrcSuf)
-tmp/external/fastjet/plugins/SISCone/siscone_error.$(ObjSuf): \
-	external/fastjet/plugins/SISCone/siscone_error.$(SrcSuf)
-tmp/external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.$(ObjSuf): \
-	external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.$(SrcSuf) \
-	external/fastjet/ClusterSequence.hh
 tmp/external/fastjet/plugins/GridJet/GridJetPlugin.$(ObjSuf): \
 	external/fastjet/plugins/GridJet/GridJetPlugin.$(SrcSuf) \
@@ -907,124 +878,169 @@
 	external/fastjet/ClusterSequence.hh \
 	external/fastjet/NNH.hh
-tmp/external/fastjet/plugins/EECambridge/EECambridgePlugin.$(ObjSuf): \
-	external/fastjet/plugins/EECambridge/EECambridgePlugin.$(SrcSuf) \
+tmp/external/fastjet/plugins/SISCone/split_merge.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/split_merge.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/geom_2d.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/geom_2d.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/hash.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/hash.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/siscone.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/siscone.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/area.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/area.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/vicinity.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/vicinity.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/protocones.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/protocones.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/quadtree.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/quadtree.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/reference.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/reference.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/momentum.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/momentum.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/siscone_error.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/siscone_error.$(SrcSuf)
+tmp/external/fastjet/plugins/SISCone/SISConePlugin.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/SISConePlugin.$(SrcSuf) \
+	external/fastjet/ClusterSequence.hh
+tmp/external/fastjet/plugins/SISCone/ranlux.$(ObjSuf): \
+	external/fastjet/plugins/SISCone/ranlux.$(SrcSuf)
+tmp/external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.$(ObjSuf): \
+	external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.$(SrcSuf) \
 	external/fastjet/ClusterSequence.hh \
-	external/fastjet/NNH.hh
+	external/fastjet/Error.hh
+tmp/external/fastjet/plugins/TrackJet/TrackJetPlugin.$(ObjSuf): \
+	external/fastjet/plugins/TrackJet/TrackJetPlugin.$(SrcSuf) \
+	external/fastjet/ClusterSequence.hh
+tmp/external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.$(ObjSuf): \
+	external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.$(SrcSuf) \
+	external/fastjet/ClusterSequence.hh \
+	external/fastjet/Error.hh
+tmp/external/fastjet/plugins/ATLASCone/JetConeFinderTool.$(ObjSuf): \
+	external/fastjet/plugins/ATLASCone/JetConeFinderTool.$(SrcSuf)
+tmp/external/fastjet/plugins/ATLASCone/JetSplitMergeTool.$(ObjSuf): \
+	external/fastjet/plugins/ATLASCone/JetSplitMergeTool.$(SrcSuf)
+tmp/external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(ObjSuf): \
+	external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(SrcSuf) \
+	external/fastjet/ClusterSequence.hh
+tmp/external/fastjet/plugins/ATLASCone/Jet.$(ObjSuf): \
+	external/fastjet/plugins/ATLASCone/Jet.$(SrcSuf)
 DELPHES_OBJ +=  \
+	tmp/classes/DelphesPileUpReader.$(ObjSuf) \
+	tmp/classes/DelphesSTDHEPReader.$(ObjSuf) \
+	tmp/classes/DelphesLHEFReader.$(ObjSuf) \
+	tmp/classes/DelphesPileUpWriter.$(ObjSuf) \
+	tmp/classes/DelphesFormula.$(ObjSuf) \
+	tmp/classes/DelphesClasses.$(ObjSuf) \
+	tmp/classes/DelphesStream.$(ObjSuf) \
+	tmp/classes/DelphesModule.$(ObjSuf) \
+	tmp/classes/DelphesTF2.$(ObjSuf) \
+	tmp/classes/DelphesFactory.$(ObjSuf) \
 	tmp/classes/DelphesHepMCReader.$(ObjSuf) \
-	tmp/classes/DelphesLHEFReader.$(ObjSuf) \
-	tmp/classes/DelphesFactory.$(ObjSuf) \
-	tmp/classes/DelphesFormula.$(ObjSuf) \
-	tmp/classes/DelphesSTDHEPReader.$(ObjSuf) \
-	tmp/classes/DelphesStream.$(ObjSuf) \
-	tmp/classes/DelphesPileUpWriter.$(ObjSuf) \
-	tmp/classes/DelphesModule.$(ObjSuf) \
-	tmp/classes/DelphesClasses.$(ObjSuf) \
-	tmp/classes/DelphesPileUpReader.$(ObjSuf) \
+	tmp/modules/Calorimeter.$(ObjSuf) \
 	tmp/modules/LeptonDressing.$(ObjSuf) \
+	tmp/modules/PileUpMerger.$(ObjSuf) \
+	tmp/modules/BTagging.$(ObjSuf) \
+	tmp/modules/EnergySmearing.$(ObjSuf) \
+	tmp/modules/MomentumSmearing.$(ObjSuf) \
+	tmp/modules/ConstituentFilter.$(ObjSuf) \
+	tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \
+	tmp/modules/Merger.$(ObjSuf) \
+	tmp/modules/ExampleModule.$(ObjSuf) \
+	tmp/modules/EnergyScale.$(ObjSuf) \
+	tmp/modules/Cloner.$(ObjSuf) \
+	tmp/modules/TreeWriter.$(ObjSuf) \
+	tmp/modules/JetPileUpSubtractor.$(ObjSuf) \
+	tmp/modules/Isolation.$(ObjSuf) \
+	tmp/modules/Delphes.$(ObjSuf) \
+	tmp/modules/TauTagging.$(ObjSuf) \
+	tmp/modules/StatusPidFilter.$(ObjSuf) \
+	tmp/modules/FastJetFinder.$(ObjSuf) \
+	tmp/modules/TimeSmearing.$(ObjSuf) \
+	tmp/modules/ParticlePropagator.$(ObjSuf) \
 	tmp/modules/Efficiency.$(ObjSuf) \
 	tmp/modules/UniqueObjectFinder.$(ObjSuf) \
-	tmp/modules/ExampleModule.$(ObjSuf) \
-	tmp/modules/ParticlePropagator.$(ObjSuf) \
-	tmp/modules/EnergySmearing.$(ObjSuf) \
-	tmp/modules/FastJetFinder.$(ObjSuf) \
-	tmp/modules/StatusPidFilter.$(ObjSuf) \
-	tmp/modules/ConstituentFilter.$(ObjSuf) \
-	tmp/modules/EnergyScale.$(ObjSuf) \
-	tmp/modules/TauTagging.$(ObjSuf) \
-	tmp/modules/Merger.$(ObjSuf) \
-	tmp/modules/BTagging.$(ObjSuf) \
-	tmp/modules/TreeWriter.$(ObjSuf) \
 	tmp/modules/Weighter.$(ObjSuf) \
-	tmp/modules/Delphes.$(ObjSuf) \
-	tmp/modules/Calorimeter.$(ObjSuf) \
-	tmp/modules/Isolation.$(ObjSuf) \
-	tmp/modules/PileUpMerger.$(ObjSuf) \
-	tmp/modules/TrackPileUpSubtractor.$(ObjSuf) \
-	tmp/modules/Cloner.$(ObjSuf) \
-	tmp/modules/JetPileUpSubtractor.$(ObjSuf) \
-	tmp/modules/MomentumSmearing.$(ObjSuf) \
+	tmp/external/ExRootAnalysis/ExRootProgressBar.$(ObjSuf) \
+	tmp/external/ExRootAnalysis/ExRootTask.$(ObjSuf) \
+	tmp/external/ExRootAnalysis/ExRootTreeWriter.$(ObjSuf) \
+	tmp/external/ExRootAnalysis/ExRootUtilities.$(ObjSuf) \
+	tmp/external/ExRootAnalysis/ExRootConfReader.$(ObjSuf) \
+	tmp/external/ExRootAnalysis/ExRootResult.$(ObjSuf) \
 	tmp/external/ExRootAnalysis/ExRootFilter.$(ObjSuf) \
-	tmp/external/ExRootAnalysis/ExRootConfReader.$(ObjSuf) \
-	tmp/external/ExRootAnalysis/ExRootTreeWriter.$(ObjSuf) \
-	tmp/external/ExRootAnalysis/ExRootResult.$(ObjSuf) \
+	tmp/external/ExRootAnalysis/ExRootTreeReader.$(ObjSuf) \
 	tmp/external/ExRootAnalysis/ExRootTreeBranch.$(ObjSuf) \
-	tmp/external/ExRootAnalysis/ExRootTreeReader.$(ObjSuf) \
-	tmp/external/ExRootAnalysis/ExRootTask.$(ObjSuf) \
-	tmp/external/ExRootAnalysis/ExRootProgressBar.$(ObjSuf) \
-	tmp/external/ExRootAnalysis/ExRootUtilities.$(ObjSuf) \
-	tmp/external/fastjet/Dnn2piCylinder.$(ObjSuf) \
-	tmp/external/fastjet/GhostedAreaSpec.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequenceActiveArea.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequence_Delaunay.$(ObjSuf) \
+	tmp/external/fastjet/Selector.$(ObjSuf) \
 	tmp/external/fastjet/ClusterSequenceArea.$(ObjSuf) \
-	tmp/external/fastjet/Voronoi.$(ObjSuf) \
-	tmp/external/fastjet/Selector.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequence_TiledN2.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf) \
+	tmp/external/fastjet/PseudoJet.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequence_N2.$(ObjSuf) \
+	tmp/external/fastjet/FunctionOfPseudoJet.$(ObjSuf) \
 	tmp/external/fastjet/LimitedWarning.$(ObjSuf) \
 	tmp/external/fastjet/CompositeJetStructure.$(ObjSuf) \
+	tmp/external/fastjet/Error.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequence_CP2DChan.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequenceVoronoiArea.$(ObjSuf) \
 	tmp/external/fastjet/DnnPlane.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequence_DumbN3.$(ObjSuf) \
 	tmp/external/fastjet/ClusterSequencePassiveArea.$(ObjSuf) \
-	tmp/external/fastjet/BasicRandom.$(ObjSuf) \
 	tmp/external/fastjet/ClusterSequenceAreaBase.$(ObjSuf) \
 	tmp/external/fastjet/PseudoJetStructureBase.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequence_TiledN2.$(ObjSuf) \
+	tmp/external/fastjet/BasicRandom.$(ObjSuf) \
+	tmp/external/fastjet/MinHeap.$(ObjSuf) \
+	tmp/external/fastjet/GhostedAreaSpec.$(ObjSuf) \
+	tmp/external/fastjet/ClosestPair2D.$(ObjSuf) \
+	tmp/external/fastjet/JetDefinition.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequenceStructure.$(ObjSuf) \
 	tmp/external/fastjet/ClusterSequence.$(ObjSuf) \
-	tmp/external/fastjet/JetDefinition.$(ObjSuf) \
-	tmp/external/fastjet/Error.$(ObjSuf) \
 	tmp/external/fastjet/RangeDefinition.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequence_N2.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequenceStructure.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequence1GhostPassiveArea.$(ObjSuf) \
+	tmp/external/fastjet/Voronoi.$(ObjSuf) \
+	tmp/external/fastjet/AreaDefinition.$(ObjSuf) \
 	tmp/external/fastjet/Dnn4piCylinder.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequence1GhostPassiveArea.$(ObjSuf) \
-	tmp/external/fastjet/MinHeap.$(ObjSuf) \
-	tmp/external/fastjet/PseudoJet.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequence_DumbN3.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequence_Delaunay.$(ObjSuf) \
+	tmp/external/fastjet/Dnn2piCylinder.$(ObjSuf) \
+	tmp/external/fastjet/ClusterSequenceActiveArea.$(ObjSuf) \
 	tmp/external/fastjet/Dnn3piCylinder.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequence_CP2DChan.$(ObjSuf) \
-	tmp/external/fastjet/ClusterSequenceVoronoiArea.$(ObjSuf) \
-	tmp/external/fastjet/ClosestPair2D.$(ObjSuf) \
-	tmp/external/fastjet/FunctionOfPseudoJet.$(ObjSuf) \
-	tmp/external/fastjet/AreaDefinition.$(ObjSuf) \
+	tmp/external/fastjet/tools/MassDropTagger.$(ObjSuf) \
+	tmp/external/fastjet/tools/Subtractor.$(ObjSuf) \
+	tmp/external/fastjet/tools/TopTaggerBase.$(ObjSuf) \
+	tmp/external/fastjet/tools/Filter.$(ObjSuf) \
+	tmp/external/fastjet/tools/GridMedianBackgroundEstimator.$(ObjSuf) \
+	tmp/external/fastjet/tools/JHTopTagger.$(ObjSuf) \
 	tmp/external/fastjet/tools/CASubJetTagger.$(ObjSuf) \
-	tmp/external/fastjet/tools/TopTaggerBase.$(ObjSuf) \
+	tmp/external/fastjet/tools/JetMedianBackgroundEstimator.$(ObjSuf) \
+	tmp/external/fastjet/tools/Pruner.$(ObjSuf) \
 	tmp/external/fastjet/tools/BackgroundEstimatorBase.$(ObjSuf) \
-	tmp/external/fastjet/tools/Subtractor.$(ObjSuf) \
 	tmp/external/fastjet/tools/RestFrameNSubjettinessTagger.$(ObjSuf) \
-	tmp/external/fastjet/tools/JetMedianBackgroundEstimator.$(ObjSuf) \
-	tmp/external/fastjet/tools/MassDropTagger.$(ObjSuf) \
-	tmp/external/fastjet/tools/JHTopTagger.$(ObjSuf) \
-	tmp/external/fastjet/tools/GridMedianBackgroundEstimator.$(ObjSuf) \
-	tmp/external/fastjet/tools/Filter.$(ObjSuf) \
-	tmp/external/fastjet/tools/Pruner.$(ObjSuf) \
-	tmp/external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(ObjSuf) \
-	tmp/external/fastjet/plugins/ATLASCone/JetConeFinderTool.$(ObjSuf) \
-	tmp/external/fastjet/plugins/ATLASCone/Jet.$(ObjSuf) \
-	tmp/external/fastjet/plugins/ATLASCone/JetSplitMergeTool.$(ObjSuf) \
+	tmp/external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.$(ObjSuf) \
 	tmp/external/fastjet/plugins/NestedDefs/NestedDefsPlugin.$(ObjSuf) \
-	tmp/external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.$(ObjSuf) \
-	tmp/external/fastjet/plugins/TrackJet/TrackJetPlugin.$(ObjSuf) \
+	tmp/external/fastjet/plugins/EECambridge/EECambridgePlugin.$(ObjSuf) \
 	tmp/external/fastjet/plugins/CDFCones/CDFMidPointPlugin.$(ObjSuf) \
 	tmp/external/fastjet/plugins/CDFCones/MidPointAlgorithm.$(ObjSuf) \
 	tmp/external/fastjet/plugins/CDFCones/CDFJetCluPlugin.$(ObjSuf) \
 	tmp/external/fastjet/plugins/CDFCones/JetCluAlgorithm.$(ObjSuf) \
-	tmp/external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/geom_2d.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/SISConePlugin.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/siscone.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/hash.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/quadtree.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/area.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/momentum.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/reference.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/ranlux.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/protocones.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/split_merge.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/vicinity.$(ObjSuf) \
-	tmp/external/fastjet/plugins/SISCone/siscone_error.$(ObjSuf) \
-	tmp/external/fastjet/plugins/CMSIterativeCone/CMSIterativeConePlugin.$(ObjSuf) \
 	tmp/external/fastjet/plugins/GridJet/GridJetPlugin.$(ObjSuf) \
 	tmp/external/fastjet/plugins/Jade/JadePlugin.$(ObjSuf) \
-	tmp/external/fastjet/plugins/EECambridge/EECambridgePlugin.$(ObjSuf)
+	tmp/external/fastjet/plugins/SISCone/split_merge.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/geom_2d.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/hash.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/siscone.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/area.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/vicinity.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/protocones.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/quadtree.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/reference.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/momentum.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/siscone_error.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/SISConePlugin.$(ObjSuf) \
+	tmp/external/fastjet/plugins/SISCone/ranlux.$(ObjSuf) \
+	tmp/external/fastjet/plugins/D0RunICone/D0RunIBaseConePlugin.$(ObjSuf) \
+	tmp/external/fastjet/plugins/TrackJet/TrackJetPlugin.$(ObjSuf) \
+	tmp/external/fastjet/plugins/D0RunIICone/D0RunIIConePlugin.$(ObjSuf) \
+	tmp/external/fastjet/plugins/ATLASCone/JetConeFinderTool.$(ObjSuf) \
+	tmp/external/fastjet/plugins/ATLASCone/JetSplitMergeTool.$(ObjSuf) \
+	tmp/external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(ObjSuf) \
+	tmp/external/fastjet/plugins/ATLASCone/Jet.$(ObjSuf)
 
 ifeq ($(HAS_PYTHIA8),true)
@@ -1048,86 +1064,86 @@
 endif
 
+tmp/external/tcl/tclVar.$(ObjSuf): \
+	external/tcl/tclVar.c
+tmp/external/tcl/tclGet.$(ObjSuf): \
+	external/tcl/tclGet.c
+tmp/external/tcl/tclCkalloc.$(ObjSuf): \
+	external/tcl/tclCkalloc.c
+tmp/external/tcl/tclCompExpr.$(ObjSuf): \
+	external/tcl/tclCompExpr.c
+tmp/external/tcl/tclAsync.$(ObjSuf): \
+	external/tcl/tclAsync.c
+tmp/external/tcl/tclCompile.$(ObjSuf): \
+	external/tcl/tclCompile.c
 tmp/external/tcl/tclObj.$(ObjSuf): \
 	external/tcl/tclObj.c
-tmp/external/tcl/tclUtil.$(ObjSuf): \
-	external/tcl/tclUtil.c
-tmp/external/tcl/tclAsync.$(ObjSuf): \
-	external/tcl/tclAsync.c
+tmp/external/tcl/tclExecute.$(ObjSuf): \
+	external/tcl/tclExecute.c
+tmp/external/tcl/tclPreserve.$(ObjSuf): \
+	external/tcl/tclPreserve.c
+tmp/external/tcl/tclLink.$(ObjSuf): \
+	external/tcl/tclLink.c
+tmp/external/tcl/tclProc.$(ObjSuf): \
+	external/tcl/tclProc.c
+tmp/external/tcl/tclBasic.$(ObjSuf): \
+	external/tcl/tclBasic.c
 tmp/external/tcl/tclPosixStr.$(ObjSuf): \
 	external/tcl/tclPosixStr.c
-tmp/external/tcl/tclCompile.$(ObjSuf): \
-	external/tcl/tclCompile.c
-tmp/external/tcl/tclHistory.$(ObjSuf): \
-	external/tcl/tclHistory.c
+tmp/external/tcl/tclCmdAH.$(ObjSuf): \
+	external/tcl/tclCmdAH.c
+tmp/external/tcl/tclIndexObj.$(ObjSuf): \
+	external/tcl/tclIndexObj.c
+tmp/external/tcl/tclCmdIL.$(ObjSuf): \
+	external/tcl/tclCmdIL.c
+tmp/external/tcl/tclHash.$(ObjSuf): \
+	external/tcl/tclHash.c
+tmp/external/tcl/tclNamesp.$(ObjSuf): \
+	external/tcl/tclNamesp.c
+tmp/external/tcl/tclCmdMZ.$(ObjSuf): \
+	external/tcl/tclCmdMZ.c
+tmp/external/tcl/tclListObj.$(ObjSuf): \
+	external/tcl/tclListObj.c
+tmp/external/tcl/tclStringObj.$(ObjSuf): \
+	external/tcl/tclStringObj.c
 tmp/external/tcl/tclResolve.$(ObjSuf): \
 	external/tcl/tclResolve.c
 tmp/external/tcl/tclParse.$(ObjSuf): \
 	external/tcl/tclParse.c
-tmp/external/tcl/tclVar.$(ObjSuf): \
-	external/tcl/tclVar.c
-tmp/external/tcl/tclIndexObj.$(ObjSuf): \
-	external/tcl/tclIndexObj.c
-tmp/external/tcl/tclCkalloc.$(ObjSuf): \
-	external/tcl/tclCkalloc.c
-tmp/external/tcl/tclListObj.$(ObjSuf): \
-	external/tcl/tclListObj.c
-tmp/external/tcl/tclHash.$(ObjSuf): \
-	external/tcl/tclHash.c
-tmp/external/tcl/tclCmdIL.$(ObjSuf): \
-	external/tcl/tclCmdIL.c
-tmp/external/tcl/tclStringObj.$(ObjSuf): \
-	external/tcl/tclStringObj.c
+tmp/external/tcl/tclHistory.$(ObjSuf): \
+	external/tcl/tclHistory.c
 tmp/external/tcl/tclAlloc.$(ObjSuf): \
 	external/tcl/tclAlloc.c
-tmp/external/tcl/tclCompExpr.$(ObjSuf): \
-	external/tcl/tclCompExpr.c
-tmp/external/tcl/tclLink.$(ObjSuf): \
-	external/tcl/tclLink.c
-tmp/external/tcl/tclCmdAH.$(ObjSuf): \
-	external/tcl/tclCmdAH.c
+tmp/external/tcl/tclUtil.$(ObjSuf): \
+	external/tcl/tclUtil.c
 tmp/external/tcl/panic.$(ObjSuf): \
 	external/tcl/panic.c
-tmp/external/tcl/tclBasic.$(ObjSuf): \
-	external/tcl/tclBasic.c
-tmp/external/tcl/tclPreserve.$(ObjSuf): \
-	external/tcl/tclPreserve.c
-tmp/external/tcl/tclGet.$(ObjSuf): \
-	external/tcl/tclGet.c
-tmp/external/tcl/tclNamesp.$(ObjSuf): \
-	external/tcl/tclNamesp.c
-tmp/external/tcl/tclProc.$(ObjSuf): \
-	external/tcl/tclProc.c
-tmp/external/tcl/tclExecute.$(ObjSuf): \
-	external/tcl/tclExecute.c
-tmp/external/tcl/tclCmdMZ.$(ObjSuf): \
-	external/tcl/tclCmdMZ.c
 TCL_OBJ +=  \
+	tmp/external/tcl/tclVar.$(ObjSuf) \
+	tmp/external/tcl/tclGet.$(ObjSuf) \
+	tmp/external/tcl/tclCkalloc.$(ObjSuf) \
+	tmp/external/tcl/tclCompExpr.$(ObjSuf) \
+	tmp/external/tcl/tclAsync.$(ObjSuf) \
+	tmp/external/tcl/tclCompile.$(ObjSuf) \
 	tmp/external/tcl/tclObj.$(ObjSuf) \
-	tmp/external/tcl/tclUtil.$(ObjSuf) \
-	tmp/external/tcl/tclAsync.$(ObjSuf) \
+	tmp/external/tcl/tclExecute.$(ObjSuf) \
+	tmp/external/tcl/tclPreserve.$(ObjSuf) \
+	tmp/external/tcl/tclLink.$(ObjSuf) \
+	tmp/external/tcl/tclProc.$(ObjSuf) \
+	tmp/external/tcl/tclBasic.$(ObjSuf) \
 	tmp/external/tcl/tclPosixStr.$(ObjSuf) \
-	tmp/external/tcl/tclCompile.$(ObjSuf) \
-	tmp/external/tcl/tclHistory.$(ObjSuf) \
+	tmp/external/tcl/tclCmdAH.$(ObjSuf) \
+	tmp/external/tcl/tclIndexObj.$(ObjSuf) \
+	tmp/external/tcl/tclCmdIL.$(ObjSuf) \
+	tmp/external/tcl/tclHash.$(ObjSuf) \
+	tmp/external/tcl/tclNamesp.$(ObjSuf) \
+	tmp/external/tcl/tclCmdMZ.$(ObjSuf) \
+	tmp/external/tcl/tclListObj.$(ObjSuf) \
+	tmp/external/tcl/tclStringObj.$(ObjSuf) \
 	tmp/external/tcl/tclResolve.$(ObjSuf) \
 	tmp/external/tcl/tclParse.$(ObjSuf) \
-	tmp/external/tcl/tclVar.$(ObjSuf) \
-	tmp/external/tcl/tclIndexObj.$(ObjSuf) \
-	tmp/external/tcl/tclCkalloc.$(ObjSuf) \
-	tmp/external/tcl/tclListObj.$(ObjSuf) \
-	tmp/external/tcl/tclHash.$(ObjSuf) \
-	tmp/external/tcl/tclCmdIL.$(ObjSuf) \
-	tmp/external/tcl/tclStringObj.$(ObjSuf) \
+	tmp/external/tcl/tclHistory.$(ObjSuf) \
 	tmp/external/tcl/tclAlloc.$(ObjSuf) \
-	tmp/external/tcl/tclCompExpr.$(ObjSuf) \
-	tmp/external/tcl/tclLink.$(ObjSuf) \
-	tmp/external/tcl/tclCmdAH.$(ObjSuf) \
-	tmp/external/tcl/panic.$(ObjSuf) \
-	tmp/external/tcl/tclBasic.$(ObjSuf) \
-	tmp/external/tcl/tclPreserve.$(ObjSuf) \
-	tmp/external/tcl/tclGet.$(ObjSuf) \
-	tmp/external/tcl/tclNamesp.$(ObjSuf) \
-	tmp/external/tcl/tclProc.$(ObjSuf) \
-	tmp/external/tcl/tclExecute.$(ObjSuf) \
-	tmp/external/tcl/tclCmdMZ.$(ObjSuf)
+	tmp/external/tcl/tclUtil.$(ObjSuf) \
+	tmp/external/tcl/panic.$(ObjSuf)
 
 external/fastjet/internal/ClosestPair2D.hh: \
@@ -1138,5 +1154,4 @@
 
 external/fastjet/ClusterSequence.hh: \
-	external/fastjet/internal/DynamicNearestNeighbours.hh \
 	external/fastjet/PseudoJet.hh \
 	external/fastjet/Error.hh \
@@ -1259,4 +1274,8 @@
 	@touch $@
 
+external/fastjet/internal/DynamicNearestNeighbours.hh: \
+	external/fastjet/internal/numconsts.hh
+	@touch $@
+
 modules/Cloner.h: \
 	classes/DelphesModule.h
@@ -1376,12 +1395,16 @@
 	@touch $@
 
-external/fastjet/AreaDefinition.hh: \
-	external/fastjet/GhostedAreaSpec.hh
-	@touch $@
-
 external/fastjet/internal/Dnn3piCylinder.hh: \
 	external/fastjet/internal/DynamicNearestNeighbours.hh \
 	external/fastjet/internal/DnnPlane.hh \
 	external/fastjet/internal/numconsts.hh
+	@touch $@
+
+external/fastjet/AreaDefinition.hh: \
+	external/fastjet/GhostedAreaSpec.hh
+	@touch $@
+
+modules/TimeSmearing.h: \
+	classes/DelphesModule.h
 	@touch $@
 
Index: /trunk/classes/DelphesClasses.h
===================================================================
--- /trunk/classes/DelphesClasses.h	(revision 1344)
+++ /trunk/classes/DelphesClasses.h	(revision 1345)
@@ -211,5 +211,7 @@
 
   Float_t E; // photon energy
-
+  
+  Float_t T; //particle arrival time of flight 
+  
   Float_t EhadOverEem; // ratio of the hadronic versus electromagnetic energy deposited in the calorimeter
 
@@ -233,5 +235,7 @@
   Float_t Eta; // electron pseudorapidity
   Float_t Phi; // electron azimuthal angle
-
+  
+  Float_t T; //particle arrival time of flight 
+  
   Int_t Charge; // electron charge
 
@@ -258,4 +262,6 @@
   Float_t Phi; // muon azimuthal angle
 
+  Float_t T; //particle arrival time of flight 
+    
   Int_t Charge; // muon charge
 
@@ -280,4 +286,6 @@
   Float_t Phi; // jet azimuthal angle
 
+  Float_t T; //particle arrival time of flight 
+  
   Float_t Mass; // jet invariant mass
 
@@ -323,8 +331,10 @@
   Float_t Y; // track vertex position (y component)
   Float_t Z; // track vertex position (z component)
+  Float_t T; // track vertex position (z component)
 
   Float_t XOuter; // track position (x component) at the tracker edge
   Float_t YOuter; // track position (y component) at the tracker edge
   Float_t ZOuter; // track position (z component) at the tracker edge
+  Float_t TOuter; // track position (z component) at the tracker edge
 
   TRef Particle; // reference to generated particle
@@ -349,4 +359,6 @@
   Float_t E; // calorimeter tower energy
 
+  Float_t T; //particle arrival time of flight 
+  
   Float_t Eem; // calorimeter tower electromagnetic energy
   Float_t Ehad; // calorimeter tower hadronic energy
Index: /trunk/examples/delphes_card_ATLAS_PileUp.tcl
===================================================================
--- /trunk/examples/delphes_card_ATLAS_PileUp.tcl	(revision 1344)
+++ /trunk/examples/delphes_card_ATLAS_PileUp.tcl	(revision 1345)
@@ -65,6 +65,21 @@
   # average expected pile up
   set MeanPileUp 50
-  # spread in the beam direction in m (assumes gaussian)
-  set ZVertexSpread 0.07
+  
+  # maximum spread in the beam direction in m 
+  set ZVertexSpread 0.10
+  
+  # maximum spread in time in s
+  set TVertexSpread 1.5E-09
+
+  # vertex smearing formula f(z,t) (z,t need to be respectively given in m,s)
+  
+  set VertexDistributionFormula {exp(-(t^2/(2*(0.05/2.99792458E8*exp(-(z^2/(2*(0.05)^2))))^2)))}
+
+  #set VertexDistributionFormula { (abs(t) <= 1.0e-09) * (abs(z) <= 0.15) * (1.00) + \
+  #                                (abs(t) >  1.0e-09) * (abs(z) <= 0.15) * (0.00) + \
+  #				  (abs(t) <= 1.0e-09) * (abs(z) > 0.15)  * (0.00) + \
+  #				  (abs(t) >  1.0e-09) * (abs(z) > 0.15)  * (0.00)}
+
+
 }
 
Index: /trunk/examples/delphes_card_CMS_PileUp.tcl
===================================================================
--- /trunk/examples/delphes_card_CMS_PileUp.tcl	(revision 1344)
+++ /trunk/examples/delphes_card_CMS_PileUp.tcl	(revision 1345)
@@ -64,7 +64,22 @@
 
   # average expected pile up
-  set MeanPileUp 50
-  # spread in the beam direction in m (assumes gaussian)
-  set ZVertexSpread 0.07
+  set MeanPileUp 10
+  
+  # maximum spread in the beam direction in m 
+  set ZVertexSpread 0.10
+  
+  # maximum spread in time in s
+  set TVertexSpread 1.5E-09
+
+  # vertex smearing formula f(z,t) (z,t need to be respectively given in m,s)
+  
+  set VertexDistributionFormula {exp(-(t^2/(2*(0.05/2.99792458E8*exp(-(z^2/(2*(0.05)^2))))^2)))}
+
+  #set VertexDistributionFormula { (abs(t) <= 1.0e-09) * (abs(z) <= 0.15) * (1.00) + \
+  #                                (abs(t) >  1.0e-09) * (abs(z) <= 0.15) * (0.00) + \
+  #				  (abs(t) <= 1.0e-09) * (abs(z) > 0.15)  * (0.00) + \
+  #				  (abs(t) >  1.0e-09) * (abs(z) > 0.15)  * (0.00)}
+
+
 }
 
Index: /trunk/examples/delphes_card_CMS_PileUp_Timing.tcl
===================================================================
--- /trunk/examples/delphes_card_CMS_PileUp_Timing.tcl	(revision 1345)
+++ /trunk/examples/delphes_card_CMS_PileUp_Timing.tcl	(revision 1345)
@@ -0,0 +1,226 @@
+set MaxEvents 1000
+
+#######################################
+# Order of execution of various modules
+#######################################
+
+set ExecutionPath {
+
+  PileUpMerger
+  ParticlePropagator
+
+  ChargedHadronTrackingEfficiency
+  ElectronTrackingEfficiency
+  MuonTrackingEfficiency
+
+  ChargedHadronMomentumSmearing
+  ElectronEnergySmearing
+  MuonMomentumSmearing
+
+  MuonTimeSmearing
+
+  TreeWriter
+}
+
+
+###############
+# PileUp Merger
+###############
+
+module PileUpMerger PileUpMerger {
+  set InputArray Delphes/stableParticles
+
+  set ParticleOutputArray stableParticles
+  set VertexOutputArray vertices
+
+  # pre-generated minbias input file
+  set PileUpFile MinBias.pileup
+
+  # average expected pile up
+  set MeanPileUp 20
+  
+  # maximum spread in the beam direction in m 
+  set ZVertexSpread 0.05
+  
+  # maximum spread in time in s
+  set TVertexSpread 0.5E-09
+
+  # vertex smearing formula f(z,t) (z,t need to be respectively given in m,s)
+  
+  set VertexDistributionFormula {exp(-(t^2/(2*(0.05/2.99792458E8*exp(-(z^2/(2*(0.05)^2))))^2)))}
+
+  #set VertexDistributionFormula { (abs(t) <= 1.0e-09) * (abs(z) <= 0.15) * (1.00) + \
+  #                                (abs(t) >  1.0e-09) * (abs(z) <= 0.15) * (0.00) + \
+  #				  (abs(t) <= 1.0e-09) * (abs(z) > 0.15)  * (0.00) + \
+  #				  (abs(t) >  1.0e-09) * (abs(z) > 0.15)  * (0.00)}
+
+}
+
+#################################
+# Propagate particles in cylinder
+#################################
+
+module ParticlePropagator ParticlePropagator {
+  set InputArray PileUpMerger/stableParticles
+
+  set OutputArray stableParticles
+  set ChargedHadronOutputArray chargedHadrons
+  set ElectronOutputArray electrons
+  set MuonOutputArray muons
+
+  # radius of the magnetic field coverage, in m
+  set Radius 1.29
+  # half-length of the magnetic field coverage, in m
+  set HalfLength 3.00
+
+  # magnetic field
+  set Bz 3.8
+}
+
+####################################
+# Charged hadron tracking efficiency
+####################################
+
+module Efficiency ChargedHadronTrackingEfficiency {
+  set InputArray ParticlePropagator/chargedHadrons
+  set OutputArray chargedHadrons
+
+  # add EfficiencyFormula {efficiency formula as a function of eta and pt}
+
+  # tracking efficiency formula for charged hadrons
+  set EfficiencyFormula {                                                    (pt <= 0.1)   * (0.00) + \
+                                           (abs(eta) <= 1.5) * (pt > 0.1   && pt <= 1.0)   * (0.70) + \
+                                           (abs(eta) <= 1.5) * (pt > 1.0)                  * (0.95) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1   && pt <= 1.0)   * (0.60) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0)                  * (0.85) + \
+                         (abs(eta) > 2.5)                                                  * (0.00)}
+}
+
+##############################
+# Electron tracking efficiency
+##############################
+
+module Efficiency ElectronTrackingEfficiency {
+  set InputArray ParticlePropagator/electrons
+  set OutputArray electrons
+
+  # set EfficiencyFormula {efficiency formula as a function of eta and pt}
+
+  # tracking efficiency formula for electrons
+  set EfficiencyFormula {                                                    (pt <= 0.1)   * (0.00) + \
+                                           (abs(eta) <= 1.5) * (pt > 0.1   && pt <= 1.0)   * (0.73) + \
+                                           (abs(eta) <= 1.5) * (pt > 1.0   && pt <= 1.0e2) * (0.95) + \
+                                           (abs(eta) <= 1.5) * (pt > 1.0e2)                * (0.99) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1   && pt <= 1.0)   * (0.50) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0   && pt <= 1.0e2) * (0.83) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2)                * (0.90) + \
+                         (abs(eta) > 2.5)                                                  * (0.00)}
+}
+
+##########################
+# Muon tracking efficiency
+##########################
+
+module Efficiency MuonTrackingEfficiency {
+  set InputArray ParticlePropagator/muons
+  set OutputArray muons
+
+  # set EfficiencyFormula {efficiency formula as a function of eta and pt}
+
+  # tracking efficiency formula for muons
+  set EfficiencyFormula {                                                    (pt <= 0.1)   * (0.00) + \
+                                           (abs(eta) <= 1.5) * (pt > 0.1   && pt <= 1.0)   * (0.75) + \
+                                           (abs(eta) <= 1.5) * (pt > 1.0)                  * (0.99) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1   && pt <= 1.0)   * (0.70) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0)                  * (0.98) + \
+                         (abs(eta) > 2.5)                                                  * (0.00)}
+}
+
+########################################
+# Momentum resolution for charged tracks
+########################################
+
+module MomentumSmearing ChargedHadronMomentumSmearing {
+  set InputArray ChargedHadronTrackingEfficiency/chargedHadrons
+  set OutputArray chargedHadrons
+
+  # set ResolutionFormula {resolution formula as a function of eta and pt}
+
+  # resolution formula for charged hadrons
+  set ResolutionFormula {                  (abs(eta) <= 1.5) * (pt > 0.1   && pt <= 1.0)   * (0.02) + \
+                                           (abs(eta) <= 1.5) * (pt > 1.0   && pt <= 1.0e1) * (0.01) + \
+                                           (abs(eta) <= 1.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.03) + \
+                                           (abs(eta) <= 1.5) * (pt > 2.0e2)                * (0.05) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1   && pt <= 1.0)   * (0.03) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0   && pt <= 1.0e1) * (0.02) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e1 && pt <= 2.0e2) * (0.04) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2)                * (0.05)}
+}
+
+#################################
+# Energy resolution for electrons
+#################################
+
+module EnergySmearing ElectronEnergySmearing {
+  set InputArray ElectronTrackingEfficiency/electrons
+  set OutputArray electrons
+
+  # set ResolutionFormula {resolution formula as a function of eta and energy}
+
+  # resolution formula for electrons
+  set ResolutionFormula {                  (abs(eta) <= 2.5) * (energy > 0.1   && energy <= 2.0e1) * (energy*0.0225) + \
+                                           (abs(eta) <= 2.5) * (energy > 2.0e1)                    * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
+                         (abs(eta) > 2.5 && abs(eta) <= 3.0)                                       * sqrt(energy^2*0.007^2 + energy*0.07^2 + 0.35^2) + \
+                         (abs(eta) > 3.0 && abs(eta) <= 5.0)                                       * sqrt(energy^2*0.107^2 + energy*2.08^2)}
+
+}
+
+###############################
+# Momentum resolution for muons
+###############################
+
+module MomentumSmearing MuonMomentumSmearing {
+  set InputArray MuonTrackingEfficiency/muons
+  set OutputArray muons
+
+  # set ResolutionFormula {resolution formula as a function of eta and pt}
+
+  # resolution formula for muons
+  set ResolutionFormula {                  (abs(eta) <= 0.5) * (pt > 0.1   && pt <= 5.0)   * (0.02) + \
+                                           (abs(eta) <= 0.5) * (pt > 5.0   && pt <= 1.0e2) * (0.015) + \
+                                           (abs(eta) <= 0.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.03) + \
+                                           (abs(eta) <= 0.5) * (pt > 2.0e2)                * (0.05 + pt*1.e-4) + \
+                         (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 0.1   && pt <= 5.0)   * (0.03) + \
+                         (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 5.0   && pt <= 1.0e2) * (0.02) + \
+                         (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.04) + \
+                         (abs(eta) > 0.5 && abs(eta) <= 1.5) * (pt > 2.0e2)                * (0.05 + pt*1.e-4) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 0.1   && pt <= 5.0)   * (0.04) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 5.0   && pt <= 1.0e2) * (0.035) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 1.0e2 && pt <= 2.0e2) * (0.05) + \
+                         (abs(eta) > 1.5 && abs(eta) <= 2.5) * (pt > 2.0e2)                * (0.05 + pt*1.e-4)}
+}
+
+
+##############
+# Muon Timing 
+##############
+
+module TimeSmearing MuonTimeSmearing {
+  set InputArray ParticlePropagator/muons
+  set OutputArray muons
+  
+  set TimeResolution 1.0e-10
+
+}
+
+##################
+# ROOT tree writer
+##################
+
+module TreeWriter TreeWriter {
+# add Branch InputArray BranchName BranchClass
+  add Branch Delphes/allParticles Particle GenParticle
+  add Branch MuonTimeSmearing/muons MuonTimeSmeared Muon
+  add Branch PileUpMerger/vertices Vertex Vertex
+}
+
Index: /trunk/modules/Calorimeter.cc
===================================================================
--- /trunk/modules/Calorimeter.cc	(revision 1344)
+++ /trunk/modules/Calorimeter.cc	(revision 1345)
@@ -330,4 +330,13 @@
       fTrackHCalEnergy = 0.0;
 
+      fTowerECalTime = 0.0;
+      fTowerHCalTime = 0.0;
+
+      fTrackECalTime = 0.0;
+      fTrackHCalTime = 0.0;
+
+      fTowerECalWeightTime = 0.0; 
+      fTowerHCalWeightTime = 0.0;
+     
       fTowerTrackHits = 0;
       fTowerPhotonHits = 0;
@@ -343,5 +352,7 @@
       track = static_cast<Candidate*>(fTrackInputArray->At(number));
       momentum = track->Momentum;
-
+      position = track->Position;
+
+      
       ecalEnergy = momentum.E() * fTrackECalFractions[number];
       hcalEnergy = momentum.E() * fTrackHCalFractions[number];
@@ -349,4 +360,10 @@
       fTrackECalEnergy += ecalEnergy;
       fTrackHCalEnergy += hcalEnergy;
+      
+      fTrackECalTime += TMath::Sqrt(ecalEnergy)*position.T();
+      fTrackHCalTime += TMath::Sqrt(hcalEnergy)*position.T();
+       
+      fTrackECalWeightTime += TMath::Sqrt(ecalEnergy);
+      fTrackHCalWeightTime += TMath::Sqrt(hcalEnergy);
 
       fTowerTrackArray->Add(track);
@@ -360,4 +377,5 @@
     particle = static_cast<Candidate*>(fParticleInputArray->At(number));
     momentum = particle->Momentum;
+    position = particle->Position;
 
     // fill current tower
@@ -367,4 +385,11 @@
     fTowerECalEnergy += ecalEnergy;
     fTowerHCalEnergy += hcalEnergy;
+
+    fTowerECalTime += TMath::Sqrt(ecalEnergy)*position.T();
+    fTowerHCalTime += TMath::Sqrt(hcalEnergy)*position.T();
+
+    fTowerECalWeightTime += TMath::Sqrt(ecalEnergy);
+    fTowerHCalWeightTime += TMath::Sqrt(hcalEnergy);
+    
 
     fTower->AddCandidate(particle);
@@ -383,4 +408,5 @@
   Double_t ecalEnergy, hcalEnergy;
   Double_t ecalSigma, hcalSigma;
+  Double_t ecalTime, hcalTime, time;
 
   if(!fTower) return;
@@ -392,4 +418,5 @@
 
   ecalEnergy = LogNormal(fTowerECalEnergy, ecalSigma);
+  ecalTime = (fTowerECalWeightTime < 1.0E-09 ) ? 0 : fTowerECalTime/fTowerECalWeightTime;
 
   hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerHCalEnergy);
@@ -399,6 +426,8 @@
 
   hcalEnergy = LogNormal(fTowerHCalEnergy, hcalSigma);
+  hcalTime = (fTowerHCalWeightTime < 1.0E-09 ) ? 0 : fTowerHCalTime/fTowerHCalWeightTime;
 
   energy = ecalEnergy + hcalEnergy;
+  time = (TMath::Sqrt(ecalEnergy)*ecalTime + TMath::Sqrt(hcalEnergy)*hcalTime)/(TMath::Sqrt(ecalEnergy) + TMath::Sqrt(hcalEnergy)); 
 
 //  eta = fTowerEta;
@@ -410,5 +439,6 @@
   pt = energy / TMath::CosH(eta);
 
-  fTower->Position.SetPtEtaPhiE(1.0, eta, phi, 0.0);
+ // fTower->Position.SetXYZT(-time, 0.0, 0.0, time);
+  fTower->Position.SetPtEtaPhiE(1.0, eta, phi, time);
   fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy);
   fTower->Eem = ecalEnergy;
@@ -420,4 +450,5 @@
   fTower->Edges[3] = fTowerEdges[3];
 
+
   // fill calorimeter towers and photon candidates
   if(energy > 0.0)
Index: /trunk/modules/Calorimeter.h
===================================================================
--- /trunk/modules/Calorimeter.h	(revision 1344)
+++ /trunk/modules/Calorimeter.h	(revision 1345)
@@ -45,4 +45,11 @@
   Double_t fTowerECalEnergy, fTowerHCalEnergy;
   Double_t fTrackECalEnergy, fTrackHCalEnergy;
+  
+  Double_t fTowerECalTime, fTowerHCalTime;
+  Double_t fTrackECalTime, fTrackHCalTime;
+   
+  Double_t fTowerECalWeightTime, fTowerHCalWeightTime;
+  Double_t fTrackECalWeightTime, fTrackHCalWeightTime;
+  
   Int_t fTowerTrackHits, fTowerPhotonHits;
 
Index: /trunk/modules/FastJetFinder.cc
===================================================================
--- /trunk/modules/FastJetFinder.cc	(revision 1344)
+++ /trunk/modules/FastJetFinder.cc	(revision 1345)
@@ -193,4 +193,5 @@
   TLorentzVector momentum;
   Double_t deta, dphi, detaMax, dphiMax;
+  Double_t time, weightTime, avTime;
   Int_t number;
   Double_t rho = 0;
@@ -259,4 +260,7 @@
     candidate = factory->NewCandidate();
 
+    time=0;
+    weightTime=0;
+
     inputList.clear();
     inputList = sequence->constituents(*itOutputList);
@@ -269,9 +273,15 @@
       if(deta > detaMax) detaMax = deta;
       if(dphi > dphiMax) dphiMax = dphi;
-
+      
+      time += TMath::Sqrt(constituent->Momentum.E())*(constituent->Position.T());
+      weightTime += TMath::Sqrt(constituent->Momentum.E());
+    
       candidate->AddCandidate(constituent);
     }
+   
+    avTime = time/weightTime;
 
     candidate->Momentum = momentum;
+    candidate->Position.SetT(avTime);
     candidate->Area.SetPxPyPzE(area.px(), area.py(), area.pz(), area.E());
 
Index: /trunk/modules/ModulesLinkDef.h
===================================================================
--- /trunk/modules/ModulesLinkDef.h	(revision 1344)
+++ /trunk/modules/ModulesLinkDef.h	(revision 1345)
@@ -19,4 +19,5 @@
 #include "modules/EnergySmearing.h"
 #include "modules/MomentumSmearing.h"
+#include "modules/TimeSmearing.h"
 #include "modules/Calorimeter.h"
 #include "modules/Isolation.h"
@@ -50,4 +51,5 @@
 #pragma link C++ class EnergySmearing+;
 #pragma link C++ class MomentumSmearing+;
+#pragma link C++ class TimeSmearing+;
 #pragma link C++ class Calorimeter+;
 #pragma link C++ class Isolation+;
Index: /trunk/modules/PileUpMerger.cc
===================================================================
--- /trunk/modules/PileUpMerger.cc	(revision 1344)
+++ /trunk/modules/PileUpMerger.cc	(revision 1345)
@@ -16,5 +16,5 @@
 #include "classes/DelphesClasses.h"
 #include "classes/DelphesFactory.h"
-#include "classes/DelphesFormula.h"
+#include "classes/DelphesTF2.h"
 #include "classes/DelphesPileUpReader.h"
 
@@ -41,7 +41,9 @@
 
 PileUpMerger::PileUpMerger() :
-  fReader(0), fItInputArray(0)
-{
-}
+  fFunction(0), fReader(0), fItInputArray(0)
+{
+  fFunction = new DelphesTF2;
+}
+
 
 //------------------------------------------------------------------------------
@@ -49,4 +51,5 @@
 PileUpMerger::~PileUpMerger()
 {
+  delete fFunction;
 }
 
@@ -60,6 +63,13 @@
 
   fMeanPileUp  = GetDouble("MeanPileUp", 10);
-  fZVertexSpread = GetDouble("ZVertexSpread", 0.05)*1.0E3;
-
+  
+  fZVertexSpread = GetDouble("ZVertexSpread", 0.15);
+  fTVertexSpread = GetDouble("TVertexSpread", 1.5E-09);
+
+  // read vertex smearing formula
+	
+  fFunction->Compile(GetString("VertexDistributionFormula", "0.0"));
+  fFunction->SetRange(-fZVertexSpread,-fTVertexSpread,fZVertexSpread,fTVertexSpread);
+ 
   fileName = GetString("PileUpFile", "MinBias.pileup");
   fReader = new DelphesPileUpReader(fileName);
@@ -90,18 +100,36 @@
   Float_t x, y, z, t;
   Float_t px, py, pz, e;
-  Double_t dz, dphi;
+  Double_t dz, dphi, dt;
   Int_t numberOfEvents, event;
   Long64_t allEntries, entry;
-  Candidate *candidate;
+  Candidate *candidate, *vertexcandidate;
   DelphesFactory *factory;
+  
+  const Double_t c_light = 2.99792458E8;
 
   fItInputArray->Reset();
+  
+    // --- Deal with Primary vertex first  ------
+  
+  fFunction->GetRandom2(dz,dt);
+ 
+  dt *= c_light*1.0E3; //necessary in order to make t in mm/c
+  dz *= 1.0E3; //necessary in order to make z in mm
+  
   while((candidate = static_cast<Candidate*>(fItInputArray->Next())))
   {
+    candidate->Position.SetXYZT(x, y, z+dz, t+dt);
     fParticleOutputArray->Add(candidate);
   }
 
   factory = GetFactory();
-
+  
+  vertexcandidate = factory->NewCandidate();
+  vertexcandidate->Position.SetXYZT(0.0, 0.0, dz, dt);
+  fVertexOutputArray->Add(vertexcandidate);
+ 
+  
+  // --- Then with pile-up vertices  ------
+ 
   switch(fPileUpDistribution)
   {
@@ -118,5 +146,5 @@
 
   allEntries = fReader->GetEntries();
-
+ 
   for(event = 0; event < numberOfEvents; ++event)
   {
@@ -128,11 +156,19 @@
 
     fReader->ReadEntry(entry);
-
-    dz = gRandom->Gaus(0.0, fZVertexSpread);
+ 
+   // --- Pile-up vertex smearing 
+    
+    fFunction->GetRandom2(dz,dt);
+ 
+    dt *= c_light*1.0E3; //necessary in order to make t in mm/c
+    dz *= 1.0E3; //necessary in order to make z in mm
+ 
     dphi = gRandom->Uniform(-TMath::Pi(), TMath::Pi());
 
-    candidate = factory->NewCandidate();
-    candidate->Position.SetXYZT(0.0, 0.0, dz, 0.0);
-    fVertexOutputArray->Add(candidate);
+    vertexcandidate = factory->NewCandidate();
+    vertexcandidate->Position.SetXYZT(0.0, 0.0, dz, dt);
+    vertexcandidate->IsPU = 1;
+    
+    fVertexOutputArray->Add(vertexcandidate);
 
     while(fReader->ReadParticle(pid, x, y, z, t, px, py, pz, e))
@@ -149,11 +185,11 @@
 
       candidate->IsPU = 1;
-
+    
       candidate->Momentum.SetPxPyPzE(px, py, pz, e);
       candidate->Momentum.RotateZ(dphi);
 
-      candidate->Position.SetXYZT(x, y, z + dz, t);
+      candidate->Position.SetXYZT(x, y, z+dz, t+dt);
       candidate->Position.RotateZ(dphi);
-
+      
       fParticleOutputArray->Add(candidate);
     }
Index: /trunk/modules/PileUpMerger.h
===================================================================
--- /trunk/modules/PileUpMerger.h	(revision 1344)
+++ /trunk/modules/PileUpMerger.h	(revision 1345)
@@ -19,4 +19,5 @@
 class TObjArray;
 class DelphesPileUpReader;
+class DelphesTF2;
 
 class PileUpMerger: public DelphesModule
@@ -35,8 +36,12 @@
   Int_t fPileUpDistribution;
   Double_t fMeanPileUp;
+  
   Double_t fZVertexSpread;
+  Double_t fTVertexSpread;
 
   DelphesPileUpReader *fReader;
-
+  
+  DelphesTF2 *fFunction; //!
+  
   TIterator *fItInputArray; //!
 
Index: /trunk/modules/TrackPileUpSubtractor.cc
===================================================================
--- /trunk/modules/TrackPileUpSubtractor.cc	(revision 1344)
+++ /trunk/modules/TrackPileUpSubtractor.cc	(revision 1345)
@@ -53,4 +53,9 @@
 void TrackPileUpSubtractor::Init()
 {
+// import input array
+
+  fVertexInputArray = ImportArray(GetString("VertexInputArray", "PileUpMerger/vertices"));
+  fItVertexInputArray = fVertexInputArray->MakeIterator();
+  
   fZVertexResolution  = GetDouble("ZVertexResolution", 0.005)*1.0E3;
 
@@ -85,4 +90,6 @@
     if(iterator) delete iterator;
   }
+
+  if(fItVertexInputArray) delete fItVertexInputArray;
 }
 
@@ -95,5 +102,19 @@
   TIterator *iterator;
   TObjArray *array;
-  Double_t z;
+  Double_t z, zvtx;
+
+  
+  // find z position of primary vertex
+  
+  fItVertexInputArray->Reset();
+  while((candidate = static_cast<Candidate*>(fItVertexInputArray->Next())))
+  {
+    if(candidate->IsPU == 0)
+    {
+    zvtx = candidate->Position.Z();
+    break;
+    }
+  }
+
 
   // loop over all input arrays
@@ -112,5 +133,5 @@
       // apply pile-up subtraction
       // assume perfect pile-up subtraction for tracks outside fZVertexResolution
-      if(candidate->IsPU && TMath::Abs(z) > fZVertexResolution) continue;
+      if(candidate->IsPU && TMath::Abs(z-zvtx) > fZVertexResolution) continue;
 
       array->Add(candidate);
Index: /trunk/modules/TrackPileUpSubtractor.h
===================================================================
--- /trunk/modules/TrackPileUpSubtractor.h	(revision 1344)
+++ /trunk/modules/TrackPileUpSubtractor.h	(revision 1345)
@@ -39,4 +39,9 @@
 
   ClassDef(TrackPileUpSubtractor, 1)
+
+  TIterator *fItVertexInputArray; //!
+
+  const TObjArray *fVertexInputArray; //!
+
 };
 
Index: /trunk/modules/TreeWriter.cc
===================================================================
--- /trunk/modules/TreeWriter.cc	(revision 1344)
+++ /trunk/modules/TreeWriter.cc	(revision 1345)
@@ -95,5 +95,5 @@
       continue;
     }
-
+    
     itClassMap = fClassMap.find(branchClass);
     if(itClassMap == fClassMap.end())
@@ -115,5 +115,4 @@
 void TreeWriter::Finish()
 {
-
 }
 
@@ -161,5 +160,7 @@
   GenParticle *entry = 0;
   Double_t pt, signPz, cosTheta, eta, rapidity;
-
+  
+  const Double_t c_light = 2.99792458E8;
+  
   // loop over all particles
   iterator.Reset();
@@ -208,5 +209,5 @@
     entry->Y = position.Y();
     entry->Z = position.Z();
-    entry->T = position.T();
+    entry->T = position.T()*1.0E-3/c_light;
   }
 }
@@ -219,4 +220,6 @@
   Candidate *candidate = 0;
   Vertex *entry = 0;
+  
+  const Double_t c_light = 2.99792458E8;
 
   // loop over all vertices
@@ -231,5 +234,5 @@
     entry->Y = position.Y();
     entry->Z = position.Z();
-    entry->T = position.T();
+    entry->T = position.T()*1.0E-3/c_light;
   }
 }
@@ -244,5 +247,6 @@
   Track *entry = 0;
   Double_t pt, signz, cosTheta, eta, rapidity;
-
+  const Double_t c_light = 2.99792458E8;
+  
   // loop over all tracks
   iterator.Reset();
@@ -271,4 +275,5 @@
     entry->YOuter = position.Y();
     entry->ZOuter = position.Z();
+    entry->TOuter = position.T()*1.0E-3/c_light;
 
     const TLorentzVector &momentum = candidate->Momentum;
@@ -290,4 +295,5 @@
     entry->Y = initialPosition.Y();
     entry->Z = initialPosition.Z();
+    entry->T = initialPosition.T()*1.0E-3/c_light;
 
     entry->Particle = particle;
@@ -303,5 +309,6 @@
   Tower *entry = 0;
   Double_t pt, signPz, cosTheta, eta, rapidity;
-
+  const Double_t c_light = 2.99792458E8;
+  
   // loop over all towers
   iterator.Reset();
@@ -309,5 +316,6 @@
   {
     const TLorentzVector &momentum = candidate->Momentum;
-
+    const TLorentzVector &position = candidate->Position;
+    
     pt = momentum.Pt();
     cosTheta = TMath::Abs(momentum.CosTheta());
@@ -331,5 +339,7 @@
     entry->Edges[2] = candidate->Edges[2];
     entry->Edges[3] = candidate->Edges[3];
-
+    
+    entry->T = position.T()*1.0E-3/c_light;
+    
     FillParticles(candidate, &entry->Particles);
   }
@@ -344,5 +354,6 @@
   Photon *entry = 0;
   Double_t pt, signPz, cosTheta, eta, rapidity;
-
+  const Double_t c_light = 2.99792458E8;
+  
   array->Sort();
 
@@ -353,4 +364,6 @@
     TIter it1(candidate->GetCandidates());
     const TLorentzVector &momentum = candidate->Momentum;
+    const TLorentzVector &position = candidate->Position;
+    
 
     pt = momentum.Pt();
@@ -366,5 +379,7 @@
     entry->PT = pt;
     entry->E = momentum.E();
-
+    
+    entry->T = position.T()*1.0E-3/c_light;
+   
     entry->EhadOverEem = candidate->Eem > 0.0 ? candidate->Ehad/candidate->Eem : 999.9;
 
@@ -381,5 +396,6 @@
   Electron *entry = 0;
   Double_t pt, signPz, cosTheta, eta, rapidity;
-
+  const Double_t c_light = 2.99792458E8;
+  
   array->Sort();
 
@@ -389,5 +405,6 @@
   {
     const TLorentzVector &momentum = candidate->Momentum;
-
+    const TLorentzVector &position = candidate->Position;
+    
     pt = momentum.Pt();
     cosTheta = TMath::Abs(momentum.CosTheta());
@@ -401,5 +418,7 @@
     entry->Phi = momentum.Phi();
     entry->PT = pt;
-
+    
+    entry->T = position.T()*1.0E-3/c_light;
+    
     entry->Charge = candidate->Charge;
 
@@ -418,5 +437,7 @@
   Muon *entry = 0;
   Double_t pt, signPz, cosTheta, eta, rapidity;
-
+  
+  const Double_t c_light = 2.99792458E8;
+  
   array->Sort();
 
@@ -426,4 +447,6 @@
   {
     const TLorentzVector &momentum = candidate->Momentum;
+    const TLorentzVector &position = candidate->Position;
+    
 
     pt = momentum.Pt();
@@ -442,4 +465,8 @@
     entry->PT = pt;
 
+    entry->T = position.T()*1.0E-3/c_light;
+    
+   // cout<<entry->PT<<","<<entry->T<<endl;
+
     entry->Charge = candidate->Charge;
 
@@ -457,5 +484,6 @@
   Double_t pt, signPz, cosTheta, eta, rapidity;
   Double_t ecalEnergy, hcalEnergy;
-
+  const Double_t c_light = 2.99792458E8;
+  
   array->Sort();
 
@@ -465,6 +493,8 @@
   {
     TIter itConstituents(candidate->GetCandidates());
-    const TLorentzVector &momentum = candidate->Momentum;
-
+    
+    const TLorentzVector &momentum = candidate->Momentum;
+    const TLorentzVector &position = candidate->Position;
+   
     pt = momentum.Pt();
     cosTheta = TMath::Abs(momentum.CosTheta());
@@ -479,4 +509,6 @@
     entry->PT = pt;
 
+    entry->T = position.T()*1.0E-3/c_light;
+    
     entry->Mass = momentum.M();
 
