Index: /trunk/Delphes.cpp
===================================================================
--- /trunk/Delphes.cpp	(revision 93)
+++ /trunk/Delphes.cpp	(revision 94)
@@ -29,4 +29,5 @@
 #include "interface/VeryForward.h"
 #include "interface/JetUtils.h"
+#include "interface/FrogUtil.h"
 
 #include <vector>
@@ -40,7 +41,7 @@
   cout << "** TODO list ..." << endl;
   while(infile.good()) {
-	string temp;
-	getline(infile,temp);
-	cout << "*" << temp << endl;
+    string temp;
+    getline(infile,temp);
+    cout << "*" << temp << endl;
   }
   cout << "** done...\n"; 
@@ -55,14 +56,14 @@
   char *appargv[] = {appName, "-b"};
   TApplication app(appName, &appargc, appargv);
-
+  
   if(argc != 4 && argc != 3 && argc != 5) {
-      cout << " Usage: " << argv[0] << " input_file output_file [detector_card] [trigger_card] " << endl;
-      cout << " input_list - list of files in Ntpl, StdHep of LHEF format," << endl;
-      cout << " output_file - output file." << endl;
-      cout << " detector_card - Datacard containing resolution variables for the detector simulation (optional) "<<endl;
-      cout << " trigger_card - Datacard containing the trigger algorithms (optional) "<<endl;
-      exit(1);
+    cout << " Usage: " << argv[0] << " input_file output_file [detector_card] [trigger_card] " << endl;
+    cout << " input_list - list of files in Ntpl, StdHep of LHEF format," << endl;
+    cout << " output_file - output file." << endl;
+    cout << " detector_card - Datacard containing resolution variables for the detector simulation (optional) "<<endl;
+    cout << " trigger_card - Datacard containing the trigger algorithms (optional) "<<endl;
+    exit(1);
   }
-
+  
   srand (time (NULL));         /* Initialisation du gÃ©nÃ©rateur */
   
@@ -70,6 +71,6 @@
   string inputFileList(argv[1]), outputfilename(argv[2]);
   if(outputfilename.find(".root") > outputfilename.length() ) {
-	cout << "output_file should be a .root file!\n"; 
-  	exit(1);
+    cout << "output_file should be a .root file!\n"; 
+    exit(1);
   }
   //create output log-file name
@@ -77,43 +78,43 @@
   string LogName = forLog.erase(forLog.find(".root"));
   LogName = LogName+"_run.log";
-
+  
   TFile *outputFile = TFile::Open(outputfilename.c_str(), "RECREATE"); // Creates the file, but should be closed just after
   outputFile->Close();
-
+  
   string line;
   ifstream infile(inputFileList.c_str());
   infile >> line; // the first line determines the type of input files
-
+  
   //read the datacard input file
   string DetDatacard("");
-  if(argc==4)  DetDatacard =argv[3];
-
+  if(argc>=4)  DetDatacard =argv[3];
+  
   //Smearing information
   RESOLution *DET = new RESOLution();
   DET->ReadDataCard(DetDatacard);
   DET->Logfile(LogName);
-
+  
   //read the trigger input file
   string TrigDatacard("data/trigger.dat");
   if(argc==5)  TrigDatacard =argv[4];
- 
+  
   //Trigger information
   TriggerTable *TRIGT = new TriggerTable();
   TRIGT->TriggerCardReader(TrigDatacard.c_str());
   TRIGT->PrintTriggerTable(LogName);
-
+  
   //Propagation of tracks in the B field
   TrackPropagation *TRACP = new TrackPropagation(); 
-
+  
   //Jet information
   JetsUtil *JETRUN = new JetsUtil();
-
+  
   //VFD information
   VeryForward * VFD = new VeryForward();
-
+  
   //todo(LogName.c_str());
- 
+  
   DataConverter *converter=0;
-   
+  
   if(strstr(line.c_str(),".hep"))
     {                           
@@ -174,8 +175,8 @@
   TLorentzVector genMomentumCalo(0,0,0,0);
   LorentzVector jetMomentum;
- 
+  
   vector<fastjet::PseudoJet> input_particles;//for FastJet algorithm
   vector<fastjet::PseudoJet> sorted_jets;
-
+  
   vector<TLorentzVector> TrackCentral;  
   vector<PhysicsTower> towers;
@@ -186,6 +187,6 @@
   TSimpleArray<TRootGenParticle> NFCentralQ;
   
-
-
+  
+  
   // Loop over all events
   Long64_t entry, allEntries = treeReader->GetEntries();
@@ -212,13 +213,13 @@
 	{
           int pid = abs(particle->PID);
-         //// This subarray is needed for the B-jet algorithm
+	  //// This subarray is needed for the B-jet algorithm
 	  // optimization for speed : put first PID condition, then ETA condition, then either pt or status
 	  if( (pid <= pB || pid == pGLUON) &&// is it a light quark or a gluon, i.e. is it one of these : u,d,c,s,b,g ?
-              fabs(particle->Eta) < DET->MAX_TRACKER &&
+              fabs(particle->Eta) < DET->CEN_max_tracker &&
               particle->Status != 1 &&
               particle->PT > DET->PT_QUARKS_MIN ) {
             NFCentralQ.Add(particle);
           }
-	 	  
+	  
 	  // keeps only final particles, visible by the central detector, including the fiducial volume
 	  // the ordering of conditions have been optimised for speed : put first the STATUS condition
@@ -227,77 +228,80 @@
           if( (particle->Status == 1)    &&
 	      ((pid != pNU1) && (pid != pNU2) && (pid != pNU3)) &&
-              (fabs(particle->Eta) < DET->MAX_CALO_FWD)
-	    ) 
+              (fabs(particle->Eta) < DET->CEN_max_calo_fwd)
+	      ) 
             { 
-            genMomentum.SetPxPyPzE(particle->Px, particle->Py, particle->Pz, particle->E);
-            TRACP->Propagation(particle,genMomentum);
-            float eta=fabs(genMomentum.Eta());
-
-            switch(pid) {
+	      genMomentum.SetPxPyPzE(particle->Px, particle->Py, particle->Pz, particle->E);
+	      if(DET->FLAG_bfield==1)TRACP->Propagation(particle,genMomentum);
+	      float eta=fabs(genMomentum.Eta());
 	      
-	    case pE: // all electrons with eta < DET->MAX_CALO_FWD
-              DET->SmearElectron(genMomentum);
-              if(genMomentum.E()!=0 && eta < DET->MAX_TRACKER && genMomentum.Pt() > DET->ELEC_pt){
-	      electron.push_back(ParticleUtil(genMomentum,particle->PID));
-              }
-	      break; // case pE
-	    case pGAMMA: // all photons with eta < DET->MAX_CALO_FWD
-	      DET->SmearElectron(genMomentum);
-	      if(genMomentum.E()!=0 && eta < DET->MAX_TRACKER && genMomentum.Pt() > DET->GAMMA_pt) {
-                gamma.push_back(ParticleUtil(genMomentum,particle->PID));
+	      switch(pid) {
+		
+	      case pE: // all electrons with eta < DET->MAX_CALO_FWD
+		DET->SmearElectron(genMomentum);
+		if(genMomentum.E()!=0 && eta < DET->CEN_max_tracker && genMomentum.Pt() > DET->PTCUT_elec){
+		  electron.push_back(ParticleUtil(genMomentum,particle->PID));
+		}
+		break; // case pE
+	      case pGAMMA: // all photons with eta < DET->MAX_CALO_FWD
+		DET->SmearElectron(genMomentum);
+		if(genMomentum.E()!=0 && eta < DET->CEN_max_tracker && genMomentum.Pt() > DET->PTCUT_gamma) {
+		  gamma.push_back(ParticleUtil(genMomentum,particle->PID));
+		}
+		break; // case pGAMMA
+	      case pMU: // all muons with eta < DET->MAX_MU
+		DET->SmearMu(genMomentum);
+		if(genMomentum.E()!=0 && eta < DET->CEN_max_mu &&  genMomentum.Pt() > DET->PTCUT_muon){
+		  muon.push_back(ParticleUtil(genMomentum,particle->PID));
+		}
+		break; // case pMU
+	      case pLAMBDA: // all lambdas with eta < DET->MAX_CALO_FWD
+	      case pK0S:    // all K0s with eta < DET->MAX_CALO_FWD
+		DET->SmearHadron(genMomentum, 0.7);
+		break; // case hadron
+	      default:   // all other final particles with eta < DET->MAX_CALO_FWD
+		DET->SmearHadron(genMomentum, 1.0);
+		break;
+	      } // switch (pid)
+	      
+	      // all final particles but muons and neutrinos	
+	      // for calorimetric towers and mission PT
+	      int charge=Charge(pid); 
+	      if(genMomentum.E() !=0 && pid != pMU) {
+		if(charge == 0 || (charge !=0 && genMomentum.Pt() >= DET->TRACK_ptmin)){
+		  PhysicsTower CaloTower = PhysicsTower(LorentzVector(genMomentum.Px(),genMomentum.Py(),genMomentum.Pz(), genMomentum.E()));
+		  towers.push_back(CaloTower);
+		  // create a fastjet::PseudoJet with these components and put it onto
+		  // back of the input_particles vector
+		  input_particles.push_back(fastjet::PseudoJet(genMomentum.Px(),genMomentum.Py(),genMomentum.Pz(), genMomentum.E())); 
+		  
+		  genMomentumCalo.SetPxPyPzE(CaloTower.fourVector.px,CaloTower.fourVector.py,CaloTower.fourVector.pz,CaloTower.fourVector.E);
+		  
+		  elementCalo = (TRootCalo*) branchCalo->NewEntry();
+		  elementCalo->Set(genMomentumCalo);
+		  DET->BinEtaPhi(genMomentumCalo.Phi(), genMomentumCalo.Eta(), elementCalo->Phi, elementCalo->Eta);
+		}
 	      }
-	      break; // case pGAMMA
-	    case pMU: // all muons with eta < DET->MAX_MU
-	      DET->SmearMu(genMomentum);
-              if(genMomentum.E()!=0 && eta < DET->MAX_MU &&  genMomentum.Pt() > DET->MUON_pt){
-	      muon.push_back(ParticleUtil(genMomentum,particle->PID));
-              }
-	      break; // case pMU
-	    case pLAMBDA: // all lambdas with eta < DET->MAX_CALO_FWD
-	    case pK0S:    // all K0s with eta < DET->MAX_CALO_FWD
-	      DET->SmearHadron(genMomentum, 0.7);
-	      break; // case hadron
-	    default:   // all other final particles with eta < DET->MAX_CALO_FWD
-	      DET->SmearHadron(genMomentum, 1.0);
-	      break;
-	    } // switch (pid)
-	    
-	    // all final particles but muons and neutrinos	
-	    // for calorimetric towers and mission PT
-	    int charge=Charge(pid); 
-	    if(genMomentum.E() !=0 && pid != pMU) {
-	      if(charge == 0 || (charge !=0 && genMomentum.Pt() >= DET->PT_TRACKS_MIN)){
-                PhysicsTower CaloTower = PhysicsTower(LorentzVector(genMomentum.Px(),genMomentum.Py(),genMomentum.Pz(), genMomentum.E()));
-    		towers.push_back(CaloTower);
-		// create a fastjet::PseudoJet with these components and put it onto
-		// back of the input_particles vector
-		input_particles.push_back(fastjet::PseudoJet(genMomentum.Px(),genMomentum.Py(),genMomentum.Pz(), genMomentum.E())); 
-                
-                genMomentumCalo.SetPxPyPzE(CaloTower.fourVector.px,CaloTower.fourVector.py,CaloTower.fourVector.pz,CaloTower.fourVector.E);
-		
-		elementCalo = (TRootCalo*) branchCalo->NewEntry();
-		elementCalo->Set(genMomentumCalo);
-		DET->BinEtaPhi(genMomentumCalo.Phi(), genMomentumCalo.Eta(), elementCalo->Phi, elementCalo->Eta);
-	      }
-	    }
-	    
-	    // all final charged particles
-	    if(
-	       (genMomentum.E()!=0) &&
-	       (fabs(genMomentum.Eta()) < DET->MAX_TRACKER) && 
-               (genMomentum.Pt() > DET->PT_TRACKS_MIN ) &&     // pt too small to be taken into account
-               ((rand()%100) < DET->TRACKING_EFF)  &&
-               (charge!=0)
-	       )
-	      {
-		elementTracks = (TRootTracks*) branchTracks->NewEntry();
-		elementTracks->Set(genMomentum);
-		TrackCentral.push_back(genMomentum);
-	      }
-	    
+	      
+	      // all final charged particles
+	      if(
+		 (genMomentum.E()!=0) &&
+		 (fabs(genMomentum.Eta()) < DET->CEN_max_tracker) && 
+		 (genMomentum.Pt() > DET->TRACK_ptmin ) &&     // pt too small to be taken into account
+		 ((rand()%100) < DET->TRACK_eff)  &&
+		 (charge!=0)
+		 )
+		{
+		  elementTracks = (TRootTracks*) branchTracks->NewEntry();
+		  elementTracks->Set(genMomentum);
+		  TrackCentral.push_back(genMomentum);
+		}
+	      
 	    } // switch
 	  
-          VFD->ZDC(treeWriter,branchZDC,particle);
-          VFD->RomanPots(treeWriter,branchRP220,branchFP420,particle);
+	  if(DET->FLAG_vfd==1)
+	    {  
+	      VFD->ZDC(treeWriter,branchZDC,particle);
+	      VFD->RomanPots(treeWriter,branchRP220,branchFP420,particle);
+	    }
 	  
 	} // while
@@ -350,8 +354,8 @@
   treeWriter->Write();
   delete treeWriter;
-
+  
   //running the trigger in case the FLAG trigger is put to 1 in the datacard
- 
-  if(DET->DOTRIGGER == 1)
+  
+  if(DET->FLAG_trigger == 1)
     {
       TChain chainT("Analysis");
@@ -378,9 +382,17 @@
           treeWriterT->Fill();
         }
-
+      
       treeWriterT->Write();
       delete treeWriterT;
     }
-
+  
+  //FROG display
+  if(DET->FLAG_frog == 1)
+    {
+      FrogDisplay *FROG = new FrogDisplay();
+      FROG->BuidEvents(outputfilename,DET->NEvents_Frog);
+      FROG->BuildGeom();
+    }
+  
   cout << "** Exiting..." << endl;
   
@@ -391,7 +403,7 @@
   delete JETRUN;
   delete VFD;
- 
+  
   if(converter) delete converter;
-
+  
   todo("TODO");
 }
Index: /trunk/Makefile
===================================================================
--- /trunk/Makefile	(revision 93)
+++ /trunk/Makefile	(revision 94)
@@ -28,4 +28,22 @@
 
 
+Resolutions$(ExeSuf): \
+	tmp/Resolutions.$(ObjSuf)
+
+tmp/Resolutions.$(ObjSuf): \
+	Resolutions.cpp \
+	Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
+	Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
+	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
+	interface/DataConverter.h \
+	interface/HEPEVTConverter.h \
+	interface/LHEFConverter.h \
+	interface/STDHEPConverter.h \
+	interface/SmearUtil.h \
+	interface/JetUtils.h \
+	interface/BFieldProp.h \
+	Utilities/Fastjet/include/fastjet/PseudoJet.hh \
+	Utilities/Fastjet/include/fastjet/ClusterSequence.hh \
+	interface/TreeClasses.h
 Delphes$(ExeSuf): \
 	tmp/Delphes.$(ObjSuf)
@@ -45,21 +63,4 @@
 	interface/VeryForward.h \
 	interface/JetUtils.h
-Resolutions$(ExeSuf): \
-	tmp/Resolutions.$(ObjSuf)
-
-tmp/Resolutions.$(ObjSuf): \
-	Resolutions.cpp \
-	Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
-	Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
-	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
-	interface/DataConverter.h \
-	interface/HEPEVTConverter.h \
-	interface/LHEFConverter.h \
-	interface/STDHEPConverter.h \
-	interface/SmearUtil.h \
-	Utilities/Fastjet/include/fastjet/PseudoJet.hh \
-	Utilities/Fastjet/include/fastjet/ClusterSequence.hh \
-	Utilities/Fastjet/include/fastjet/config.h \
-	interface/TreeClasses.h
 Analysis_Ex$(ExeSuf): \
 	tmp/Examples/Analysis_Ex.$(ObjSuf)
@@ -84,12 +85,12 @@
 	Utilities/ExRootAnalysis/interface/BlockClasses.h
 EXECUTABLE =  \
+	Resolutions$(ExeSuf) \
 	Delphes$(ExeSuf) \
-	Resolutions$(ExeSuf) \
 	Analysis_Ex$(ExeSuf) \
 	Trigger_Only$(ExeSuf)
 
 EXECUTABLE_OBJ =  \
+	tmp/Resolutions.$(ObjSuf) \
 	tmp/Delphes.$(ObjSuf) \
-	tmp/Resolutions.$(ObjSuf) \
 	tmp/Examples/Analysis_Ex.$(ObjSuf) \
 	tmp/Examples/Trigger_Only.$(ObjSuf)
@@ -117,21 +118,4 @@
 	src/BFieldProp.$(SrcSuf) \
 	interface/BFieldProp.h
-tmp/src/HEPEVTConverter.$(ObjSuf): \
-	src/HEPEVTConverter.$(SrcSuf) \
-	Utilities/ExRootAnalysis/interface/BlockClasses.h \
-	Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
-	Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
-	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
-	interface/HEPEVTConverter.h
-tmp/src/JetUtils.$(ObjSuf): \
-	src/JetUtils.$(SrcSuf) \
-	interface/JetUtils.h
-tmp/src/LHEFConverter.$(ObjSuf): \
-	src/LHEFConverter.$(SrcSuf) \
-	Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
-	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
-	Utilities/ExRootAnalysis/interface/BlockClasses.h \
-	interface/LHEFConverter.h \
-	Utilities/ExRootAnalysis/interface/LHEF.h
 tmp/src/STDHEPConverter.$(ObjSuf): \
 	src/STDHEPConverter.$(SrcSuf) \
@@ -144,140 +128,159 @@
 	Utilities/stdhep/stdhep_declarations.h \
 	interface/STDHEPConverter.h
-tmp/src/SmearUtil.$(ObjSuf): \
-	src/SmearUtil.$(SrcSuf) \
-	interface/SmearUtil.h
-tmp/src/TreeClasses.$(ObjSuf): \
-	src/TreeClasses.$(SrcSuf) \
-	interface/TreeClasses.h
-tmp/src/TriggerUtil.$(ObjSuf): \
-	src/TriggerUtil.$(SrcSuf) \
-	interface/TriggerUtil.h
+tmp/src/JetUtils.$(ObjSuf): \
+	src/JetUtils.$(SrcSuf) \
+	interface/JetUtils.h
 tmp/src/VeryForward.$(ObjSuf): \
 	src/VeryForward.$(SrcSuf) \
 	interface/VeryForward.h \
 	interface/SmearUtil.h
-tmp/Utilities/ExRootAnalysis/src/BlockClasses.$(ObjSuf): \
-	Utilities/ExRootAnalysis/src/BlockClasses.$(SrcSuf) \
-	Utilities/ExRootAnalysis/interface/BlockClasses.h \
-	Utilities/ExRootAnalysis/interface/BlockCompare.h
+tmp/src/TriggerUtil.$(ObjSuf): \
+	src/TriggerUtil.$(SrcSuf) \
+	interface/TriggerUtil.h
+tmp/src/HEPEVTConverter.$(ObjSuf): \
+	src/HEPEVTConverter.$(SrcSuf) \
+	Utilities/ExRootAnalysis/interface/BlockClasses.h \
+	Utilities/ExRootAnalysis/interface/ExRootTreeReader.h \
+	Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
+	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
+	interface/HEPEVTConverter.h
+tmp/src/SmearUtil.$(ObjSuf): \
+	src/SmearUtil.$(SrcSuf) \
+	interface/SmearUtil.h
+tmp/src/FrogUtil.$(ObjSuf): \
+	src/FrogUtil.$(SrcSuf)
+tmp/src/TreeClasses.$(ObjSuf): \
+	src/TreeClasses.$(SrcSuf) \
+	interface/TreeClasses.h
+tmp/src/LHEFConverter.$(ObjSuf): \
+	src/LHEFConverter.$(SrcSuf) \
+	Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
+	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
+	Utilities/ExRootAnalysis/interface/BlockClasses.h \
+	interface/LHEFConverter.h \
+	Utilities/ExRootAnalysis/interface/LHEF.h
+tmp/Utilities/ExRootAnalysis/src/ExRootTreeReader.$(ObjSuf): \
+	Utilities/ExRootAnalysis/src/ExRootTreeReader.$(SrcSuf) \
+	Utilities/ExRootAnalysis/interface/ExRootTreeReader.h
+tmp/Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(ObjSuf): \
+	Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(SrcSuf) \
+	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h
 tmp/Utilities/ExRootAnalysis/src/ExRootProgressBar.$(ObjSuf): \
 	Utilities/ExRootAnalysis/src/ExRootProgressBar.$(SrcSuf) \
 	Utilities/ExRootAnalysis/interface/ExRootProgressBar.h
-tmp/Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(ObjSuf): \
-	Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(SrcSuf) \
-	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h
-tmp/Utilities/ExRootAnalysis/src/ExRootTreeReader.$(ObjSuf): \
-	Utilities/ExRootAnalysis/src/ExRootTreeReader.$(SrcSuf) \
-	Utilities/ExRootAnalysis/interface/ExRootTreeReader.h
 tmp/Utilities/ExRootAnalysis/src/ExRootTreeWriter.$(ObjSuf): \
 	Utilities/ExRootAnalysis/src/ExRootTreeWriter.$(SrcSuf) \
 	Utilities/ExRootAnalysis/interface/ExRootTreeWriter.h \
 	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h
+tmp/Utilities/ExRootAnalysis/src/BlockClasses.$(ObjSuf): \
+	Utilities/ExRootAnalysis/src/BlockClasses.$(SrcSuf) \
+	Utilities/ExRootAnalysis/interface/BlockClasses.h \
+	Utilities/ExRootAnalysis/interface/BlockCompare.h
+tmp/Utilities/Hector/src/H_Parameters.$(ObjSuf): \
+	Utilities/Hector/src/H_Parameters.$(SrcSuf)
+tmp/Utilities/Hector/src/H_HorizontalKicker.$(ObjSuf): \
+	Utilities/Hector/src/H_HorizontalKicker.$(SrcSuf)
+tmp/Utilities/Hector/src/H_HorizontalQuadrupole.$(ObjSuf): \
+	Utilities/Hector/src/H_HorizontalQuadrupole.$(SrcSuf)
+tmp/Utilities/Hector/src/H_SectorDipole.$(ObjSuf): \
+	Utilities/Hector/src/H_SectorDipole.$(SrcSuf)
+tmp/Utilities/Hector/src/H_RecRPObject.$(ObjSuf): \
+	Utilities/Hector/src/H_RecRPObject.$(SrcSuf)
+tmp/Utilities/Hector/src/H_CircularAperture.$(ObjSuf): \
+	Utilities/Hector/src/H_CircularAperture.$(SrcSuf)
+tmp/Utilities/Hector/src/H_RectEllipticAperture.$(ObjSuf): \
+	Utilities/Hector/src/H_RectEllipticAperture.$(SrcSuf)
 tmp/Utilities/Hector/src/H_AbstractBeamLine.$(ObjSuf): \
 	Utilities/Hector/src/H_AbstractBeamLine.$(SrcSuf)
+tmp/Utilities/Hector/src/H_TransportMatrices.$(ObjSuf): \
+	Utilities/Hector/src/H_TransportMatrices.$(SrcSuf)
 tmp/Utilities/Hector/src/H_Aperture.$(ObjSuf): \
 	Utilities/Hector/src/H_Aperture.$(SrcSuf)
+tmp/Utilities/Hector/src/H_OpticalElement.$(ObjSuf): \
+	Utilities/Hector/src/H_OpticalElement.$(SrcSuf)
+tmp/Utilities/Hector/src/H_BeamLine.$(ObjSuf): \
+	Utilities/Hector/src/H_BeamLine.$(SrcSuf)
+tmp/Utilities/Hector/src/H_BeamParticle.$(ObjSuf): \
+	Utilities/Hector/src/H_BeamParticle.$(SrcSuf)
+tmp/Utilities/Hector/src/H_RectangularCollimator.$(ObjSuf): \
+	Utilities/Hector/src/H_RectangularCollimator.$(SrcSuf)
+tmp/Utilities/Hector/src/H_RectangularDipole.$(ObjSuf): \
+	Utilities/Hector/src/H_RectangularDipole.$(SrcSuf)
+tmp/Utilities/Hector/src/H_BeamLineParser.$(ObjSuf): \
+	Utilities/Hector/src/H_BeamLineParser.$(SrcSuf)
 tmp/Utilities/Hector/src/H_Beam.$(ObjSuf): \
 	Utilities/Hector/src/H_Beam.$(SrcSuf)
-tmp/Utilities/Hector/src/H_BeamLine.$(ObjSuf): \
-	Utilities/Hector/src/H_BeamLine.$(SrcSuf)
-tmp/Utilities/Hector/src/H_BeamLineParser.$(ObjSuf): \
-	Utilities/Hector/src/H_BeamLineParser.$(SrcSuf)
-tmp/Utilities/Hector/src/H_BeamParticle.$(ObjSuf): \
-	Utilities/Hector/src/H_BeamParticle.$(SrcSuf)
-tmp/Utilities/Hector/src/H_CircularAperture.$(ObjSuf): \
-	Utilities/Hector/src/H_CircularAperture.$(SrcSuf)
-tmp/Utilities/Hector/src/H_Dipole.$(ObjSuf): \
-	Utilities/Hector/src/H_Dipole.$(SrcSuf)
+tmp/Utilities/Hector/src/H_Marker.$(ObjSuf): \
+	Utilities/Hector/src/H_Marker.$(SrcSuf)
+tmp/Utilities/Hector/src/H_Kicker.$(ObjSuf): \
+	Utilities/Hector/src/H_Kicker.$(SrcSuf)
+tmp/Utilities/Hector/src/H_RomanPot.$(ObjSuf): \
+	Utilities/Hector/src/H_RomanPot.$(SrcSuf)
 tmp/Utilities/Hector/src/H_Drift.$(ObjSuf): \
 	Utilities/Hector/src/H_Drift.$(SrcSuf)
 tmp/Utilities/Hector/src/H_EllipticAperture.$(ObjSuf): \
 	Utilities/Hector/src/H_EllipticAperture.$(SrcSuf)
-tmp/Utilities/Hector/src/H_HorizontalKicker.$(ObjSuf): \
-	Utilities/Hector/src/H_HorizontalKicker.$(SrcSuf)
-tmp/Utilities/Hector/src/H_HorizontalQuadrupole.$(ObjSuf): \
-	Utilities/Hector/src/H_HorizontalQuadrupole.$(SrcSuf)
-tmp/Utilities/Hector/src/H_Kicker.$(ObjSuf): \
-	Utilities/Hector/src/H_Kicker.$(SrcSuf)
-tmp/Utilities/Hector/src/H_Marker.$(ObjSuf): \
-	Utilities/Hector/src/H_Marker.$(SrcSuf)
-tmp/Utilities/Hector/src/H_OpticalElement.$(ObjSuf): \
-	Utilities/Hector/src/H_OpticalElement.$(SrcSuf)
-tmp/Utilities/Hector/src/H_Parameters.$(ObjSuf): \
-	Utilities/Hector/src/H_Parameters.$(SrcSuf)
+tmp/Utilities/Hector/src/H_RectangularAperture.$(ObjSuf): \
+	Utilities/Hector/src/H_RectangularAperture.$(SrcSuf)
+tmp/Utilities/Hector/src/H_VerticalQuadrupole.$(ObjSuf): \
+	Utilities/Hector/src/H_VerticalQuadrupole.$(SrcSuf)
+tmp/Utilities/Hector/src/H_Dipole.$(ObjSuf): \
+	Utilities/Hector/src/H_Dipole.$(SrcSuf)
+tmp/Utilities/Hector/src/H_VerticalKicker.$(ObjSuf): \
+	Utilities/Hector/src/H_VerticalKicker.$(SrcSuf)
 tmp/Utilities/Hector/src/H_Quadrupole.$(ObjSuf): \
 	Utilities/Hector/src/H_Quadrupole.$(SrcSuf)
-tmp/Utilities/Hector/src/H_RecRPObject.$(ObjSuf): \
-	Utilities/Hector/src/H_RecRPObject.$(SrcSuf)
-tmp/Utilities/Hector/src/H_RectEllipticAperture.$(ObjSuf): \
-	Utilities/Hector/src/H_RectEllipticAperture.$(SrcSuf)
-tmp/Utilities/Hector/src/H_RectangularAperture.$(ObjSuf): \
-	Utilities/Hector/src/H_RectangularAperture.$(SrcSuf)
-tmp/Utilities/Hector/src/H_RectangularCollimator.$(ObjSuf): \
-	Utilities/Hector/src/H_RectangularCollimator.$(SrcSuf)
-tmp/Utilities/Hector/src/H_RectangularDipole.$(ObjSuf): \
-	Utilities/Hector/src/H_RectangularDipole.$(SrcSuf)
-tmp/Utilities/Hector/src/H_RomanPot.$(ObjSuf): \
-	Utilities/Hector/src/H_RomanPot.$(SrcSuf)
-tmp/Utilities/Hector/src/H_SectorDipole.$(ObjSuf): \
-	Utilities/Hector/src/H_SectorDipole.$(SrcSuf)
-tmp/Utilities/Hector/src/H_TransportMatrices.$(ObjSuf): \
-	Utilities/Hector/src/H_TransportMatrices.$(SrcSuf)
-tmp/Utilities/Hector/src/H_VerticalKicker.$(ObjSuf): \
-	Utilities/Hector/src/H_VerticalKicker.$(SrcSuf)
-tmp/Utilities/Hector/src/H_VerticalQuadrupole.$(ObjSuf): \
-	Utilities/Hector/src/H_VerticalQuadrupole.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClosestPair2D.$(ObjSuf): \
+	Utilities/Fastjet/src/ClosestPair2D.$(SrcSuf)
+tmp/Utilities/Fastjet/src/Dnn2piCylinder.$(ObjSuf): \
+	Utilities/Fastjet/src/Dnn2piCylinder.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequenceActiveArea.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequenceActiveArea.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequence_TiledN2.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequence_TiledN2.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequence_N2.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequence_N2.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequencePassiveArea.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequencePassiveArea.$(SrcSuf)
+tmp/Utilities/Fastjet/src/GhostedAreaSpec.$(ObjSuf): \
+	Utilities/Fastjet/src/GhostedAreaSpec.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequence.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequence.$(SrcSuf)
+tmp/Utilities/Fastjet/src/RangeDefinition.$(ObjSuf): \
+	Utilities/Fastjet/src/RangeDefinition.$(SrcSuf)
+tmp/Utilities/Fastjet/src/BasicRandom.$(ObjSuf): \
+	Utilities/Fastjet/src/BasicRandom.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequenceArea.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequenceArea.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(SrcSuf)
+tmp/Utilities/Fastjet/src/PseudoJet.$(ObjSuf): \
+	Utilities/Fastjet/src/PseudoJet.$(SrcSuf)
 tmp/Utilities/Fastjet/src/AreaDefinition.$(ObjSuf): \
 	Utilities/Fastjet/src/AreaDefinition.$(SrcSuf)
-tmp/Utilities/Fastjet/src/BasicRandom.$(ObjSuf): \
-	Utilities/Fastjet/src/BasicRandom.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClosestPair2D.$(ObjSuf): \
-	Utilities/Fastjet/src/ClosestPair2D.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequence.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequence.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequence_DumbN3.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequence_DumbN3.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(SrcSuf)
+tmp/Utilities/Fastjet/src/Dnn3piCylinder.$(ObjSuf): \
+	Utilities/Fastjet/src/Dnn3piCylinder.$(SrcSuf)
+tmp/Utilities/Fastjet/src/Error.$(ObjSuf): \
+	Utilities/Fastjet/src/Error.$(SrcSuf)
+tmp/Utilities/Fastjet/src/ClusterSequenceAreaBase.$(ObjSuf): \
+	Utilities/Fastjet/src/ClusterSequenceAreaBase.$(SrcSuf)
+tmp/Utilities/Fastjet/src/Dnn4piCylinder.$(ObjSuf): \
+	Utilities/Fastjet/src/Dnn4piCylinder.$(SrcSuf)
 tmp/Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(ObjSuf): \
 	Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequenceActiveArea.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequenceActiveArea.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequenceArea.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequenceArea.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequenceAreaBase.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequenceAreaBase.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequencePassiveArea.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequencePassiveArea.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(SrcSuf)
+tmp/Utilities/Fastjet/src/JetDefinition.$(ObjSuf): \
+	Utilities/Fastjet/src/JetDefinition.$(SrcSuf)
+tmp/Utilities/Fastjet/src/DnnPlane.$(ObjSuf): \
+	Utilities/Fastjet/src/DnnPlane.$(SrcSuf)
 tmp/Utilities/Fastjet/src/ClusterSequence_Delaunay.$(ObjSuf): \
 	Utilities/Fastjet/src/ClusterSequence_Delaunay.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequence_DumbN3.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequence_DumbN3.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequence_N2.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequence_N2.$(SrcSuf)
-tmp/Utilities/Fastjet/src/ClusterSequence_TiledN2.$(ObjSuf): \
-	Utilities/Fastjet/src/ClusterSequence_TiledN2.$(SrcSuf)
-tmp/Utilities/Fastjet/src/Dnn2piCylinder.$(ObjSuf): \
-	Utilities/Fastjet/src/Dnn2piCylinder.$(SrcSuf)
-tmp/Utilities/Fastjet/src/Dnn3piCylinder.$(ObjSuf): \
-	Utilities/Fastjet/src/Dnn3piCylinder.$(SrcSuf)
-tmp/Utilities/Fastjet/src/Dnn4piCylinder.$(ObjSuf): \
-	Utilities/Fastjet/src/Dnn4piCylinder.$(SrcSuf)
-tmp/Utilities/Fastjet/src/DnnPlane.$(ObjSuf): \
-	Utilities/Fastjet/src/DnnPlane.$(SrcSuf)
-tmp/Utilities/Fastjet/src/Error.$(ObjSuf): \
-	Utilities/Fastjet/src/Error.$(SrcSuf)
-tmp/Utilities/Fastjet/src/GhostedAreaSpec.$(ObjSuf): \
-	Utilities/Fastjet/src/GhostedAreaSpec.$(SrcSuf)
-tmp/Utilities/Fastjet/src/JetDefinition.$(ObjSuf): \
-	Utilities/Fastjet/src/JetDefinition.$(SrcSuf)
 tmp/Utilities/Fastjet/src/MinHeap.$(ObjSuf): \
 	Utilities/Fastjet/src/MinHeap.$(SrcSuf)
-tmp/Utilities/Fastjet/src/PseudoJet.$(ObjSuf): \
-	Utilities/Fastjet/src/PseudoJet.$(SrcSuf)
-tmp/Utilities/Fastjet/src/RangeDefinition.$(ObjSuf): \
-	Utilities/Fastjet/src/RangeDefinition.$(SrcSuf)
 tmp/Utilities/Fastjet/src/Voronoi.$(ObjSuf): \
 	Utilities/Fastjet/src/Voronoi.$(SrcSuf)
@@ -289,47 +292,47 @@
 	Utilities/Fastjet/include/fastjet/ClusterSequence.hh \
 	Utilities/Fastjet/include/fastjet/Error.hh
+tmp/Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(ObjSuf): \
+	Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(ObjSuf): \
+	Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(ObjSuf): \
+	Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(ObjSuf): \
+	Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(SrcSuf)
 tmp/Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(ObjSuf): \
 	Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(ObjSuf): \
+	Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(SrcSuf)
 tmp/Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(ObjSuf): \
 	Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(ObjSuf): \
-	Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(ObjSuf): \
-	Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(ObjSuf): \
-	Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(ObjSuf): \
-	Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(SrcSuf)
 tmp/Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(ObjSuf): \
 	Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(ObjSuf): \
-	Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(SrcSuf)
 tmp/Utilities/Fastjet/plugins/SISCone/SISConePlugin.$(ObjSuf): \
 	Utilities/Fastjet/plugins/SISCone/SISConePlugin.$(SrcSuf) \
 	Utilities/Fastjet/include/fastjet/ClusterSequence.hh
+tmp/Utilities/Fastjet/plugins/SISCone/src/ranlux.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/ranlux.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/protocones.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/protocones.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/vicinity.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/vicinity.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/siscone.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/siscone.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/area.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/area.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/hash.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/hash.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/reference.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/reference.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/momentum.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/momentum.$(SrcSuf)
 tmp/Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(ObjSuf): \
 	Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/area.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/area.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/momentum.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/momentum.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/hash.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/hash.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/protocones.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/protocones.$(SrcSuf)
+tmp/Utilities/Fastjet/plugins/SISCone/src/split_merge.$(ObjSuf): \
+	Utilities/Fastjet/plugins/SISCone/src/split_merge.$(SrcSuf)
 tmp/Utilities/Fastjet/plugins/SISCone/src/quadtree.$(ObjSuf): \
 	Utilities/Fastjet/plugins/SISCone/src/quadtree.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/ranlux.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/ranlux.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/reference.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/reference.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/siscone.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/siscone.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/split_merge.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/split_merge.$(SrcSuf)
-tmp/Utilities/Fastjet/plugins/SISCone/src/vicinity.$(ObjSuf): \
-	Utilities/Fastjet/plugins/SISCone/src/vicinity.$(SrcSuf)
 tmp/Examples/src/Analysis_Ex.$(ObjSuf): \
 	Examples/src/Analysis_Ex.$(SrcSuf) \
@@ -337,122 +340,123 @@
 SOURCE_OBJ =  \
 	tmp/src/BFieldProp.$(ObjSuf) \
+	tmp/src/STDHEPConverter.$(ObjSuf) \
+	tmp/src/JetUtils.$(ObjSuf) \
+	tmp/src/VeryForward.$(ObjSuf) \
+	tmp/src/TriggerUtil.$(ObjSuf) \
 	tmp/src/HEPEVTConverter.$(ObjSuf) \
-	tmp/src/JetUtils.$(ObjSuf) \
+	tmp/src/SmearUtil.$(ObjSuf) \
+	tmp/src/FrogUtil.$(ObjSuf) \
+	tmp/src/TreeClasses.$(ObjSuf) \
 	tmp/src/LHEFConverter.$(ObjSuf) \
-	tmp/src/STDHEPConverter.$(ObjSuf) \
-	tmp/src/SmearUtil.$(ObjSuf) \
-	tmp/src/TreeClasses.$(ObjSuf) \
-	tmp/src/TriggerUtil.$(ObjSuf) \
-	tmp/src/VeryForward.$(ObjSuf) \
+	tmp/Utilities/ExRootAnalysis/src/ExRootTreeReader.$(ObjSuf) \
+	tmp/Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(ObjSuf) \
+	tmp/Utilities/ExRootAnalysis/src/ExRootProgressBar.$(ObjSuf) \
+	tmp/Utilities/ExRootAnalysis/src/ExRootTreeWriter.$(ObjSuf) \
 	tmp/Utilities/ExRootAnalysis/src/BlockClasses.$(ObjSuf) \
-	tmp/Utilities/ExRootAnalysis/src/ExRootProgressBar.$(ObjSuf) \
-	tmp/Utilities/ExRootAnalysis/src/ExRootTreeBranch.$(ObjSuf) \
-	tmp/Utilities/ExRootAnalysis/src/ExRootTreeReader.$(ObjSuf) \
-	tmp/Utilities/ExRootAnalysis/src/ExRootTreeWriter.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_Parameters.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_HorizontalKicker.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_HorizontalQuadrupole.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_SectorDipole.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_RecRPObject.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_CircularAperture.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_RectEllipticAperture.$(ObjSuf) \
 	tmp/Utilities/Hector/src/H_AbstractBeamLine.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_TransportMatrices.$(ObjSuf) \
 	tmp/Utilities/Hector/src/H_Aperture.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_OpticalElement.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_BeamLine.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_BeamParticle.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_RectangularCollimator.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_RectangularDipole.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_BeamLineParser.$(ObjSuf) \
 	tmp/Utilities/Hector/src/H_Beam.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_BeamLine.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_BeamLineParser.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_BeamParticle.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_CircularAperture.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_Dipole.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_Marker.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_Kicker.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_RomanPot.$(ObjSuf) \
 	tmp/Utilities/Hector/src/H_Drift.$(ObjSuf) \
 	tmp/Utilities/Hector/src/H_EllipticAperture.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_HorizontalKicker.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_HorizontalQuadrupole.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_Kicker.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_Marker.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_OpticalElement.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_Parameters.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_RectangularAperture.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_VerticalQuadrupole.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_Dipole.$(ObjSuf) \
+	tmp/Utilities/Hector/src/H_VerticalKicker.$(ObjSuf) \
 	tmp/Utilities/Hector/src/H_Quadrupole.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_RecRPObject.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_RectEllipticAperture.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_RectangularAperture.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_RectangularCollimator.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_RectangularDipole.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_RomanPot.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_SectorDipole.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_TransportMatrices.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_VerticalKicker.$(ObjSuf) \
-	tmp/Utilities/Hector/src/H_VerticalQuadrupole.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClosestPair2D.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/Dnn2piCylinder.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequenceActiveArea.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequence_TiledN2.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequence_N2.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequencePassiveArea.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/GhostedAreaSpec.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequence.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/RangeDefinition.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/BasicRandom.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequenceArea.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/PseudoJet.$(ObjSuf) \
 	tmp/Utilities/Fastjet/src/AreaDefinition.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/BasicRandom.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClosestPair2D.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequence.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequence_DumbN3.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/Dnn3piCylinder.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/Error.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/ClusterSequenceAreaBase.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/Dnn4piCylinder.$(ObjSuf) \
 	tmp/Utilities/Fastjet/src/ClusterSequence1GhostPassiveArea.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequenceActiveArea.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequenceActiveAreaExplicitGhosts.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequenceArea.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequenceAreaBase.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequencePassiveArea.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequenceVoronoiArea.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequence_CP2DChan.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/JetDefinition.$(ObjSuf) \
+	tmp/Utilities/Fastjet/src/DnnPlane.$(ObjSuf) \
 	tmp/Utilities/Fastjet/src/ClusterSequence_Delaunay.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequence_DumbN3.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequence_N2.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/ClusterSequence_TiledN2.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/Dnn2piCylinder.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/Dnn3piCylinder.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/Dnn4piCylinder.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/DnnPlane.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/Error.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/GhostedAreaSpec.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/JetDefinition.$(ObjSuf) \
 	tmp/Utilities/Fastjet/src/MinHeap.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/PseudoJet.$(ObjSuf) \
-	tmp/Utilities/Fastjet/src/RangeDefinition.$(ObjSuf) \
 	tmp/Utilities/Fastjet/src/Voronoi.$(ObjSuf) \
 	tmp/Utilities/Fastjet/plugins/CDFCones/CDFJetCluPlugin.$(ObjSuf) \
 	tmp/Utilities/Fastjet/plugins/CDFCones/CDFMidPointPlugin.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(ObjSuf) \
 	tmp/Utilities/Fastjet/plugins/CDFCones/src/CalTower.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(ObjSuf) \
 	tmp/Utilities/Fastjet/plugins/CDFCones/src/Centroid.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/CDFCones/src/Cluster.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/CDFCones/src/ClusterComparisons.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/CDFCones/src/JetCluAlgorithm.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/CDFCones/src/LorentzVector.$(ObjSuf) \
 	tmp/Utilities/Fastjet/plugins/CDFCones/src/MidPointAlgorithm.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/CDFCones/src/PhysicsTower.$(ObjSuf) \
 	tmp/Utilities/Fastjet/plugins/SISCone/SISConePlugin.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/ranlux.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/protocones.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/vicinity.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/siscone.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/area.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/hash.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/reference.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/momentum.$(ObjSuf) \
 	tmp/Utilities/Fastjet/plugins/SISCone/src/geom_2d.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/area.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/momentum.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/hash.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/protocones.$(ObjSuf) \
+	tmp/Utilities/Fastjet/plugins/SISCone/src/split_merge.$(ObjSuf) \
 	tmp/Utilities/Fastjet/plugins/SISCone/src/quadtree.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/ranlux.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/reference.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/siscone.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/siscone_error.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/split_merge.$(ObjSuf) \
-	tmp/Utilities/Fastjet/plugins/SISCone/src/vicinity.$(ObjSuf) \
 	tmp/Examples/src/Analysis_Ex.$(ObjSuf)
 
+tmp/Utilities/mcfio/mcfio_Direct.$(ObjSuf): \
+	Utilities/mcfio/mcfio_Direct.c
+tmp/Utilities/mcfio/mcfio_Block.$(ObjSuf): \
+	Utilities/mcfio/mcfio_Block.c
+tmp/Utilities/mcfio/mcf_evt_xdr.$(ObjSuf): \
+	Utilities/mcfio/mcf_evt_xdr.c
+tmp/Utilities/mcfio/mcf_NTuIOUtils.$(ObjSuf): \
+	Utilities/mcfio/mcf_NTuIOUtils.c
 tmp/Utilities/mcfio/mcf_NTuIOFiles.$(ObjSuf): \
 	Utilities/mcfio/mcf_NTuIOFiles.c
-tmp/Utilities/mcfio/mcf_NTuIOUtils.$(ObjSuf): \
-	Utilities/mcfio/mcf_NTuIOUtils.c
-tmp/Utilities/mcfio/mcf_evt_xdr.$(ObjSuf): \
-	Utilities/mcfio/mcf_evt_xdr.c
+tmp/Utilities/mcfio/mcfio_Util1.$(ObjSuf): \
+	Utilities/mcfio/mcfio_Util1.c
+tmp/Utilities/mcfio/mcf_ntubldInit.$(ObjSuf): \
+	Utilities/mcfio/mcf_ntubldInit.c
+tmp/Utilities/mcfio/mcfio_UserDictionary.$(ObjSuf): \
+	Utilities/mcfio/mcfio_UserDictionary.c
 tmp/Utilities/mcfio/mcf_ntuBldDbinc.$(ObjSuf): \
 	Utilities/mcfio/mcf_ntuBldDbinc.c
-tmp/Utilities/mcfio/mcf_ntubldInit.$(ObjSuf): \
-	Utilities/mcfio/mcf_ntubldInit.c
-tmp/Utilities/mcfio/mcfio_Block.$(ObjSuf): \
-	Utilities/mcfio/mcfio_Block.c
-tmp/Utilities/mcfio/mcfio_Direct.$(ObjSuf): \
-	Utilities/mcfio/mcfio_Direct.c
 tmp/Utilities/mcfio/mcfio_SeqDummy.$(ObjSuf): \
 	Utilities/mcfio/mcfio_SeqDummy.c
-tmp/Utilities/mcfio/mcfio_UserDictionary.$(ObjSuf): \
-	Utilities/mcfio/mcfio_UserDictionary.c
-tmp/Utilities/mcfio/mcfio_Util1.$(ObjSuf): \
-	Utilities/mcfio/mcfio_Util1.c
-tmp/Utilities/stdhep/mcf_Stdhep_xdr.$(ObjSuf): \
-	Utilities/stdhep/mcf_Stdhep_xdr.c \
+tmp/Utilities/stdhep/mcf_hepup_xdr.$(ObjSuf): \
+	Utilities/stdhep/mcf_hepup_xdr.c \
 	Utilities/mcfio/mcfio_Dict.h \
 	Utilities/mcfio/mcf_xdr.h \
-	Utilities/stdhep/stdhep.h \
-	Utilities/stdhep/stdtmp.h \
+	Utilities/stdhep/hepeup.h \
+	Utilities/stdhep/heprup.h \
 	Utilities/stdhep/stdver.h
 tmp/Utilities/stdhep/mcf_hepev4_xdr.$(ObjSuf): \
@@ -463,11 +467,4 @@
 	Utilities/stdhep/hepev4.h \
 	Utilities/stdhep/stdtmp.h \
-	Utilities/stdhep/stdver.h
-tmp/Utilities/stdhep/mcf_hepup_xdr.$(ObjSuf): \
-	Utilities/stdhep/mcf_hepup_xdr.c \
-	Utilities/mcfio/mcfio_Dict.h \
-	Utilities/mcfio/mcf_xdr.h \
-	Utilities/stdhep/hepeup.h \
-	Utilities/stdhep/heprup.h \
 	Utilities/stdhep/stdver.h
 tmp/Utilities/stdhep/mcf_stdcm1_xdr.$(ObjSuf): \
@@ -498,26 +495,28 @@
 	Utilities/stdhep/stdcnt.h \
 	Utilities/stdhep/stdhep_mcfio.h
+tmp/Utilities/stdhep/mcf_Stdhep_xdr.$(ObjSuf): \
+	Utilities/stdhep/mcf_Stdhep_xdr.c \
+	Utilities/mcfio/mcfio_Dict.h \
+	Utilities/mcfio/mcf_xdr.h \
+	Utilities/stdhep/stdhep.h \
+	Utilities/stdhep/stdtmp.h \
+	Utilities/stdhep/stdver.h
 STDHEP_OBJ =  \
+	tmp/Utilities/mcfio/mcfio_Direct.$(ObjSuf) \
+	tmp/Utilities/mcfio/mcfio_Block.$(ObjSuf) \
+	tmp/Utilities/mcfio/mcf_evt_xdr.$(ObjSuf) \
+	tmp/Utilities/mcfio/mcf_NTuIOUtils.$(ObjSuf) \
 	tmp/Utilities/mcfio/mcf_NTuIOFiles.$(ObjSuf) \
-	tmp/Utilities/mcfio/mcf_NTuIOUtils.$(ObjSuf) \
-	tmp/Utilities/mcfio/mcf_evt_xdr.$(ObjSuf) \
+	tmp/Utilities/mcfio/mcfio_Util1.$(ObjSuf) \
+	tmp/Utilities/mcfio/mcf_ntubldInit.$(ObjSuf) \
+	tmp/Utilities/mcfio/mcfio_UserDictionary.$(ObjSuf) \
 	tmp/Utilities/mcfio/mcf_ntuBldDbinc.$(ObjSuf) \
-	tmp/Utilities/mcfio/mcf_ntubldInit.$(ObjSuf) \
-	tmp/Utilities/mcfio/mcfio_Block.$(ObjSuf) \
-	tmp/Utilities/mcfio/mcfio_Direct.$(ObjSuf) \
 	tmp/Utilities/mcfio/mcfio_SeqDummy.$(ObjSuf) \
-	tmp/Utilities/mcfio/mcfio_UserDictionary.$(ObjSuf) \
-	tmp/Utilities/mcfio/mcfio_Util1.$(ObjSuf) \
-	tmp/Utilities/stdhep/mcf_Stdhep_xdr.$(ObjSuf) \
+	tmp/Utilities/stdhep/mcf_hepup_xdr.$(ObjSuf) \
 	tmp/Utilities/stdhep/mcf_hepev4_xdr.$(ObjSuf) \
-	tmp/Utilities/stdhep/mcf_hepup_xdr.$(ObjSuf) \
 	tmp/Utilities/stdhep/mcf_stdcm1_xdr.$(ObjSuf) \
 	tmp/Utilities/stdhep/stdhep_internal_utils.$(ObjSuf) \
-	tmp/Utilities/stdhep/stdhep_mcfio.$(ObjSuf)
-
-interface/DataConverter.h: \
-	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
-	Utilities/ExRootAnalysis/interface/LHEF.h
-	@touch $@
+	tmp/Utilities/stdhep/stdhep_mcfio.$(ObjSuf) \
+	tmp/Utilities/stdhep/mcf_Stdhep_xdr.$(ObjSuf)
 
 interface/TriggerUtil.h: \
@@ -525,4 +524,9 @@
 	Utilities/ExRootAnalysis/interface/TSimpleArray.h \
 	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h
+	@touch $@
+
+interface/DataConverter.h: \
+	Utilities/ExRootAnalysis/interface/ExRootTreeBranch.h \
+	Utilities/ExRootAnalysis/interface/LHEF.h
 	@touch $@
 
Index: /trunk/Resolutions.cpp
===================================================================
--- /trunk/Resolutions.cpp	(revision 93)
+++ /trunk/Resolutions.cpp	(revision 94)
@@ -236,5 +236,5 @@
 	  
           //input generator level particle for jet algorithm	  
-          if(particle->Status == 1 && eta < DET->MAX_CALO_FWD)
+          if(particle->Status == 1 && eta < DET->CEN_max_calo_fwd)
 	    {
 	      input_particlesGEN.push_back(fastjet::PseudoJet(genMomentum.Px(),genMomentum.Py(),genMomentum.Pz(), genMomentum.E()));
@@ -246,5 +246,5 @@
 	  if( (particle->Status == 1)    &&
               ((pid != pNU1) && (pid != pNU2) && (pid != pNU3)) &&
-              (fabs(particle->Eta) < DET->MAX_CALO_FWD)
+              (fabs(particle->Eta) < DET->CEN_max_calo_fwd)
 	      )
             {
@@ -260,5 +260,5 @@
 	      case pE: // all electrons with eta < DET->MAX_CALO_FWD
                 DET->SmearElectron(recoMomentum);
-                if(recoMomentum.E() !=0 && eta < DET->MAX_TRACKER){
+                if(recoMomentum.E() !=0 && eta < DET->CEN_max_tracker){
 		  elementElec=(RESOLELEC*) branchelec->NewEntry();
 		  elementElec->E = genMomentum.E();
@@ -287,5 +287,5 @@
 	      int charge=Charge(pid);
 	      if(recoMomentum.E() !=0 && pid != pMU) {
-		if(charge == 0 || (charge !=0 && recoMomentum.Pt() >= DET->PT_TRACKS_MIN)){
+		if(charge == 0 || (charge !=0 && recoMomentum.Pt() >= DET->TRACK_ptmin)){
 		  towers.push_back(PhysicsTower(LorentzVector(recoMomentum.Px(),recoMomentum.Py(),recoMomentum.Pz(), recoMomentum.E())));
 		  input_particlesReco.push_back(fastjet::PseudoJet(recoMomentum.Px(),recoMomentum.Py(),recoMomentum.Pz(), recoMomentum.E()));
@@ -296,7 +296,7 @@
 	      if(
 		 (genMomentum.E()!=0) &&
-		 (fabs(genMomentum.Eta()) < DET->MAX_TRACKER) &&
-		 (genMomentum.Pt() > DET->PT_TRACKS_MIN ) &&     // pt too small to be taken into account
-		 ((rand()%100) < DET->TRACKING_EFF)  &&
+		 (fabs(genMomentum.Eta()) < DET->CEN_max_tracker) &&
+		 (genMomentum.Pt() > DET->TRACK_ptmin ) &&     // pt too small to be taken into account
+		 ((rand()%100) < DET->TRACK_eff)  &&
 		 (charge!=0)
 		 )
@@ -346,5 +346,5 @@
         TLorentzVector JETT(0,0,0,0);
         JETT.SetPxPyPzE(sorted_jetsReco[i].px(),sorted_jetsReco[i].py(),sorted_jetsReco[i].pz(),sorted_jetsReco[i].E());
-        if(fabs(JETT.Eta()) < (DET->MAX_TRACKER - DET->TAU_CONE_TRACKS)) 
+        if(fabs(JETT.Eta()) < (DET->CEN_max_tracker - DET->TAU_track_scone)) 
            {
             for(Int_t i=0; i<TausHadr.GetEntries();i++)
@@ -354,5 +354,5 @@
                     elementTaujet= (TAUHAD*) branchtaujet->NewEntry();
                     elementTaujet->EnergieCen = (DET->EnergySmallCone(towers,JETT.Eta(),JETT.Phi())/JETT.E());
-                    elementTaujet->NumTrack = DET->NumTracks(TrackCentral,DET->PT_TRACK_TAU,JETT.Eta(),JETT.Phi());
+                    elementTaujet->NumTrack = DET->NumTracks(TrackCentral,DET->TAU_track_pt,JETT.Eta(),JETT.Phi());
                  }
               }
Index: /trunk/VERSION
===================================================================
--- /trunk/VERSION	(revision 93)
+++ /trunk/VERSION	(revision 94)
@@ -1,1 +1,1 @@
-2.0
+1.0
Index: /trunk/data/DataCardDet.dat
===================================================================
--- /trunk/data/DataCardDet.dat	(revision 93)
+++ /trunk/data/DataCardDet.dat	(revision 94)
@@ -1,82 +1,90 @@
-#Detector characteristics
-MAX_TRACKER      2.5          
-MAX_CALO_CEN     3.0 
-MAX_CALO_FWD     5.0      		// forward calorimeter pseudorapidity coverage
-MAX_MU           2.4	     		// muon chambers pseudorapidity coverage
-MIN_CALO_VFWD	 5.2			// very forward calorimeter (if any) like CASTOR
-MAX_CALO_VFWD	 6.6
-MIN_ZDC		 8.3
-ZDC_S		 140			// distance of the ZDC to the IP in meters
-RP220_S		 220			// distance of the RP to the IP in meters
-RP220_X		 0.002			// distance of the RP to the beam in meters
-FP420_S		 420			// distance of the RP to the IP in meters
-FP420_X		 0.004			// distance of the RP to the beam in meters
+# Detector characteristics
+CEN_max_tracker    4                // Maximum tracker coverage          
+CEN_max_calo_cen   2.0                // central calorimeter coverage
+CEN_max_calo_fwd   5.0                // forward calorimeter pseudorapidity coverage
+CEN_max_mu         2.4                // muon chambers pseudorapidity coverage
+  
+# Energy resolution for electron/photon
+# \sigma/E = C + N/E + S/\sqrt{E}
+ELG_Scen          0.05              // S term for central ECAL
+ELG_Ncen          0.25              // N term for central ECAL
+ELG_Ccen          0.005              // C term for central ECAL
+ELG_Cfwd          0.107             // S term for forward ECAL
+ELG_Sfwd          2.084             // C term for forward ECAL
+ELG_Nfwd          0.0               // N term for central ECAL
 
-#Magnetic Field 
-TRACKING_RADIUS   129                   //radius of the BField coverage
-TRACKING_LENGTH   300                   //length of the BField coverage
-BFIELD_X          0
-BFIELD_Y          0
-BFIELD_Z         3.8
+# Energy resolution for hadrons in ecal/hcal/hf
+# \sigma/E = C + N/E + S/\sqrt{E}
+HAD_Shcal         1.5               // S term for central HCAL // hadronic calorimeter
+HAD_Nhcal         0.                // N term for central HCAL
+HAD_Chcal         0.05              // C term for central HCAL
+HAD_Shf           2.7               // S term for HF // forward calorimeter
+HAD_Nhf           0.                // N term for HF
+HAD_Chf           0.13              // C term for HF
 
+# Muon smearing
+MU_SmearPt        0.01
 
-#energy resolution for electron/photon
-# \sigma/E = C + N/E + S/\sqrt{E}
-ELG_Scen         0.05 			// S term for central ECAL
-ELG_Ncen         0.25   		// N term for central ECAL
-ELG_Ccen         0.0055 		// C term for central ECAL
-ELG_Cfwd         0.107  		// S term for forward ECAL
-ELG_Sfwd         2.084  		// C term for forward ECAL
-ELG_Nfwd         0.0    		// N term for central ECAL
+# Tracking efficiencies
+TRACK_ptmin       0.9               // minimal pt needed to reach the calorimeter in GeV
+TRACK_eff         100               // efficiency associated to the tracking
 
-#energy resolution for hadrons in ecal/hcal/hf
-# \sigma/E = C + N/E + S/\sqrt{E}
-HAD_Shcal 	 1.5			  // S term for central HCAL // hadronic calorimeter
-HAD_Nhcal 	 0.			  // N term for central HCAL
-HAD_Chcal 	 0.05			  // C term for central HCAL
-HAD_Shf 	 2.7			  // S term for HF // forward calorimeter
-HAD_Nhf 	 0.			  // N term for HF
-HAD_Chf 	 0.13			  // C term for HF
+# Calorimetric towers
+TOWER_number         40
+TOWER_eta_edges 0. 0.087 0.174 0.261 0.348 0.435 0.522 0.609 0.696 0.783 0.870 0.957 1.044 1.131 1.218 1.305 1.392 1.479 1.566 1.653 1.740 1.830 1.930 2.043 2.172 2.322 2.500 2.650 2.868 2.950 3.125 3.300 3.475 3.650 3.825 4.000 4.175 4.350 4.525 4.700 5.000
+## list of the edges of each tower in eta for eta>0 assuming a symmetric detector in eta<0
+### the list starts with the lower edge of the most central tower
+### the list ends with the higher edged of the most forward tower
+### there should be NTOWER+1 values
+#TOWER_dphi 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 20 20
+### list of the tower size in phi (in degrees), assuming that all towers are similar in phi for a given eta value
+### the list starts with the phi-size of the most central tower (eta=0)
+### the list ends with the phi-size of the most forward tower
+### there should be NTOWER values
+##
+#
 
-# muon smearing
-MU_SmearPt 	 0.01
+# Thresholds for reconstructed objetcs
+PTCUT_elec       10.0
+PTCUT_muon       10.0
+PTCUT_jet        20.0
+PTCUT_gamma      10.0
+PTCUT_taujet     10.0
 
-#thresholds for reconstructed objects
-ELEC_pt          10
-MUON_pt          10
-JET_pt           20
-TAUJET_pt        10
+# General jet variable
+JET_coneradius   0.7            // generic jet radius ; not for tau's !!!
+JET_jetalgo      1              // 1 for Cone algorithm, 2 for MidPoint algorithm, 3 for SIScone algorithm, 4 for kt algorithm
+JET_seed         1.0            // minimum seed to start jet reconstruction
 
-#For Tau-jet definition
-TAU_CONE_ENERGIE 0.15			 // Delta R = radius of the cone
-TAU_CONE_TRACKS  0.4			 //Delta R
-PT_TRACK_TAU	 2.0		         // GeV
+# Tagging definition
+BTAG_b           40
+BTAG_mistag_c    10
+BTAG_mistag_l    1
 
-#Tracker acceptance
-PT_TRACKS_MIN	 0.9 			 // minimal pt needed to reach the calorimeter in GeV 
-TRACKING_EFF	 100			 // efficiency associated to the tracking
+# FLAGS
+FLAG_bfield      1                       //1 to run the bfield propagation else 0
+FLAG_vfd         1                       //1 to run the very forward detectors else 0
+FLAG_trigger     1                       //1 to run the trigger selection else 0
+FLAG_frog        1                       //1 to run the FROG event display
 
-#tagging definition
-TAGGING_B 	 40 
-MISTAGGING_C 	 10
-MISTAGGING_L 	 1
+# In case BField propagation allowed
+TRACK_radius      129                   //radius of the BField coverage
+TRACK_length      300                   //length of the BField coverage
+TRACK_bfield_x    0                     //X composant of the BField
+TRACK_bfield_y    0                     //Y composant of the BField
+TRACK_bfield_z    3.8                   //Z composant of the BField
 
-#Trigger flag
-DOTRIGGER        1                       //1 to run the trigger else 0
+# In case Very forward detectors allowed
+VFD_min_calo_vfd  5.2                   // very forward calorimeter (if any) like CASTOR
+VFD_max_calo_vfd  6.6
+VFD_min_zdc       8.3
+VFD_s_zdc         140                   // distance of the Zero Degree Calorimeter, from the Interaction poin, in [m]
 
-#DeltaR cone definition
-CONERADIUS  	0.7
-JETALGO           1               // 1 for Cone algorithm 2 for MidPoint algorithm 3 for SIScone algorithm 4 for kt algorithm
+RP_220_s          220                   // distance of the RP to the IP, in meters
+RP_220_x          0.002                 // distance of the RP to the beam, in meters
+RP_420_s          420                   // distance of the RP to the IP, in meters
+RP_420_x          0.004                 // distance of the RP to the beam, in meters
 
-#Calorimetric towers
-NTOWERS		40
-TOWER_ETA_EDGES 0. 0.087 0.174 0.261 0.348 0.435 0.522 0.609 0.696 0.783 0.870 0.957 1.044 1.131 1.218 1.305 1.392 1.479 1.566 1.653 1.740 1.830 1.930 2.043 2.172 2.322 2.500 2.650 2.868 2.950 3.125 3.300 3.475 3.650 3.825 4.000 4.175 4.350 4.525 4.700 5.000
-# list of the edges of each tower in eta for eta>0 assuming a symmetric detector in eta<0
-# the list starts with the lower edge of the most central tower
-# the list ends with the higher edged of the most forward tower
-# there should be NTOWER+1 values
-TOWER_DPHI 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 20 20 
-# list of the tower size in phi (in degrees), assuming that all towers are similar in phi for a given eta value
-# the list starts with the phi-size of the most central tower (eta=0)
-# the list ends with the phi-size of the most forward tower
-# there should be NTOWER values
+# In case FROG event display allowed
+NEvents_Frog      2
+
Index: /trunk/interface/SmearUtil.h
===================================================================
--- /trunk/interface/SmearUtil.h	(revision 93)
+++ /trunk/interface/SmearUtil.h	(revision 94)
@@ -61,26 +61,20 @@
   
   // Detector coverage
-  float MAX_TRACKER;    // tracker pseudorapidity coverage
-  float MAX_CALO_CEN;   // central calorimeter pseudorapidity coverage
-  float MAX_CALO_FWD;   // forward calorimeter pseudorapidity coverage
-  float MAX_MU;         // muon chambers pseudorapidity coverage
-  float MIN_CALO_VFWD;  // very forward calorimeter pseudorapidity coverage
-  float MAX_CALO_VFWD;  // very forward calorimeter pseudorapidity coverage
-  float MIN_ZDC;        // coverage for Zero Degree Calorimeter, for photons and neutrons
-
-  float ZDC_S;   // distance of the Zero Degree Calorimeter, from the Interaction poin, in [m]
-  float RP220_S; // distance of the RP to the IP, in meters
-  float RP220_X; // distance of the RP to the beam, in meters
-  float FP420_S; // distance of the RP to the IP, in meters
-  float FP420_X; // distance of the RP to the beam, in meters
-
-  //Magnetic Field information
-  int TRACKING_RADIUS;                      //radius of the BField coverage
-  int TRACKING_LENGTH;                      //length of the BField coverage
-  float BFIELD_X;          
-  float BFIELD_Y;          
-  float BFIELD_Z;         
-
-  
+  float CEN_max_tracker;    // tracker pseudorapidity coverage
+  float CEN_max_calo_cen;   // central calorimeter pseudorapidity coverage
+  float CEN_max_calo_fwd;   // forward calorimeter pseudorapidity coverage
+  float CEN_max_mu;         // muon chambers pseudorapidity coverage
+
+  float VFD_min_calo_vfd;  // very forward calorimeter pseudorapidity coverage
+  float VFD_max_calo_vfd;  // very forward calorimeter pseudorapidity coverage
+  float VFD_min_zdc;        // coverage for Zero Degree Calorimeter, for photons and neutrons
+  float VFD_s_zdc;   // distance of the Zero Degree Calorimeter, from the Interaction poin, in [m]
+
+  float RP_220_s; // distance of the RP to the IP, in meters
+  float RP_220_x; // distance of the RP to the beam, in meters
+  float RP_420_s; // distance of the RP to the IP, in meters
+  float RP_420_x; // distance of the RP to the beam, in meters
+
+
   //energy resolution for electron/photon
   // \sigma/E = C + N/E + S/\sqrt{E}
@@ -103,57 +97,71 @@
   // muon smearing
   float MU_SmearPt;
- 
-  //threshold for reconstructed objetcs
-  float ELEC_pt;
-  float MUON_pt;
-  float JET_pt;
-  float GAMMA_pt;
-  float TAUJET_pt;
- 
-  //For Tau-jet definition
-  // R = sqrt (phi^2 + eta^2)
-  float TAU_CONE_ENERGY;  // radius R of the cone for tau definition, based on energy threshold
-  float TAU_CONE_TRACKS;  // radius R of the cone for tau definition, based on track number
-  float PT_TRACK_TAU;     // minimal pt [GeV] for tracks to be considered in tau definition
-  float TAU_EM_COLLIMATION; // fraction of energy required in the central part of the cone, for tau jets
-  
-  // Tracker acceptance
-  float PT_TRACKS_MIN;    // minimal pt needed to reach the calorimeter, in GeV
+  
+  //Magnetic Field information
+  int   TRACK_radius;                      //radius of the BField coverage
+  int   TRACK_length;                      //length of the BField coverage
+  float TRACK_bfield_x;
+  float TRACK_bfield_y;
+  float TRACK_bfield_z;
+  float TRACK_ptmin;    // minimal pt needed to reach the calorimeter, in GeV
+  int   TRACK_eff;       // in percent, should be an integer
+  
+
+  //Define Calorimetric towers
+  unsigned int TOWER_number;
+  float *      TOWER_eta_edges;
+  float *      TOWER_dphi;
+
+  //thresholds for reconstructed objetcs
+  float PTCUT_elec;
+  float PTCUT_muon;
+  float PTCUT_jet;
+  float PTCUT_gamma;
+  float PTCUT_taujet;
+  
+  //General jet variable
+  double JET_coneradius;
+  int    JET_jetalgo;
+  double JET_seed;
+  double JET_overlap;
+  
+  // MidPoint algorithm definition
+  double JET_M_coneareafraction;
+  int    JET_M_maxpairsize;
+  int    JET_M_maxiterations;
+  // Define Cone algorithm.
+  int    JET_C_adjacencycut;
+  int    JET_C_maxiterations;
+  int    JET_C_iratch;
+  //Define SISCone algorithm.
+  int    JET_S_npass;
+  double JET_S_protojet_ptmin;
+  
+ //For Tau-jet definition
+ // R = sqrt (phi^2 + eta^2)
+ float TAU_energy_scone;  // radius R of the cone for tau definition, based on energy threshold
+ float TAU_track_scone;  // radius R of the cone for tau definition, based on track number
+ float TAU_track_pt;     // minimal pt [GeV] for tracks to be considered in tau definition
+ float TAU_energy_frac;      // fraction of energy required in the central part of the cone, for tau jets
+ 
+ //tagging definition
+ int BTAG_b;         
+ int BTAG_mistag_c;
+ int BTAG_mistag_l;
+ 
+
+ //trigger flag
+ int FLAG_trigger;             //flag for trigger
+ int FLAG_frog;                //flag for frog display
+ int FLAG_bfield;               //flag for bfield propagation
+ int FLAG_vfd;                  //flag for very forward detector
+ 
+ int NEvents_Frog;
+
+
+
+
+
   float PT_QUARKS_MIN;    // minimal pt needed for quarks to reach the tracker, in GeV
-  int TRACKING_EFF;       // in percent, should be an integer
-  
-  //tagging definition
-  int TAGGING_B;         //
-  int MISTAGGING_C; 
-  int MISTAGGING_L; 
-  
-  //trigger flag
-  int DOTRIGGER;
-
-  double CONERADIUS;
-  int JETALGO;
-
-  //General jet variable
-  double SEEDTHRESHOLD;    
-  double OVERLAPTHRESHOLD; 
-
-  // MidPoint algorithm definition
-  double M_CONEAREAFRACTION; 
-  int    M_MAXPAIRSIZE;      
-  int    M_MAXITERATIONS;    
- 
-  // Define Cone algorithm.
-  int    C_ADJACENCYCUT;
-  int    C_MAXITERATIONS;
-  int    C_IRATCH;
-
-  //Define SISCone algorithm.
-  int NPASS;
-  double PROTOJET_PTMIN;
-
-  // Define Calorimetric towers
-  unsigned int NTOWERS;
-  float * TOWER_ETA_EDGES;
-  float * TOWER_DPHI; 
 
   // to sort a vector
Index: /trunk/src/BFieldProp.cc
===================================================================
--- /trunk/src/BFieldProp.cc	(revision 93)
+++ /trunk/src/BFieldProp.cc	(revision 94)
@@ -43,6 +43,6 @@
   
   //out of trackibg coverage?
-  if(sqrt(Xvertex1*Xvertex1+Yvertex1*Yvertex1) > TRACKING_RADIUS){return;}
-  if(fabs(Zvertex1) > TRACKING_LENGTH){return;}
+  if(sqrt(Xvertex1*Xvertex1+Yvertex1*Yvertex1) > TRACK_radius){return;}
+  if(fabs(Zvertex1) > TRACK_length){return;}
   
   float Px = Part->Px;
@@ -62,7 +62,7 @@
      double vz = pz/M;
 
-     double Bx = BFIELD_X;
-     double By = BFIELD_Y;
-     double Bz = BFIELD_Z;
+     double Bx = TRACK_bfield_x;
+     double By = TRACK_bfield_y;
+     double Bz = TRACK_bfield_z;
 
      double ax =  (q/M)*(Bz*vy - By*vz);
@@ -99,6 +99,6 @@
         z  += vz*dt;
 
-       if( (x*x+y*y) > TRACKING_RADIUS*TRACKING_RADIUS ){ x /= (x*x+y*y)/(TRACKING_RADIUS*TRACKING_RADIUS); y /= (x*x+y*y)/(TRACKING_RADIUS*TRACKING_RADIUS); break;}
-       if( fabs(z)>TRACKING_LENGTH)break;
+       if( (x*x+y*y) > TRACK_radius*TRACK_radius ){ x /= (x*x+y*y)/(TRACK_radius*TRACK_radius); y /= (x*x+y*y)/(TRACK_radius*TRACK_radius); break;}
+       if( fabs(z)>TRACK_length)break;
 
        xold = x;
Index: /trunk/src/JetUtils.cc
===================================================================
--- /trunk/src/JetUtils.cc	(revision 93)
+++ /trunk/src/JetUtils.cc	(revision 94)
@@ -17,5 +17,5 @@
 JetsUtil::JetsUtil() {
   
-  switch(JETALGO) {
+  switch(JET_jetalgo) {
   default:
   case 1: {
@@ -23,5 +23,5 @@
     // set up a CDF midpoint jet definition
 #ifdef ENABLE_PLUGIN_CDFCONES
-    plugins = new fastjet::CDFJetCluPlugin(SEEDTHRESHOLD,CONERADIUS,C_ADJACENCYCUT,C_MAXITERATIONS,C_IRATCH,OVERLAPTHRESHOLD);
+    plugins = new fastjet::CDFJetCluPlugin(JET_seed,JET_coneradius,JET_C_adjacencycut,JET_C_maxiterations,JET_C_iratch,JET_overlap);
     jet_def = fastjet::JetDefinition(plugins);
 #else
@@ -34,5 +34,5 @@
     // set up a CDF midpoint jet definition
 #ifdef ENABLE_PLUGIN_CDFCONES
-    plugins = new fastjet::CDFMidPointPlugin (SEEDTHRESHOLD,CONERADIUS,M_CONEAREAFRACTION,M_MAXPAIRSIZE,M_MAXITERATIONS,OVERLAPTHRESHOLD);
+    plugins = new fastjet::CDFMidPointPlugin (JET_seed,JET_coneradius,JET_M_coneareafraction,JET_M_maxpairsize,JET_M_maxiterations,JET_overlap);
     jet_def = fastjet::JetDefinition(plugins);
 #else
@@ -45,5 +45,5 @@
     // set up a siscone jet definition
 #ifdef ENABLE_PLUGIN_SISCONE
-    plugins = new fastjet::SISConePlugin (CONERADIUS,OVERLAPTHRESHOLD,NPASS, PROTOJET_PTMIN);
+    plugins = new fastjet::SISConePlugin (JET_coneradius,JET_overlap,JET_S_npass, JET_S_protojet_ptmin);
     jet_def = fastjet::JetDefinition(plugins);
 #else
@@ -54,15 +54,15 @@
     
   case 4: {
-    jet_def = fastjet::JetDefinition(fastjet::kt_algorithm, CONERADIUS);
+    jet_def = fastjet::JetDefinition(fastjet::kt_algorithm, JET_coneradius);
   }
     break;
     
   case 5: {
-    jet_def = fastjet::JetDefinition(fastjet::cambridge_algorithm,CONERADIUS);
+    jet_def = fastjet::JetDefinition(fastjet::cambridge_algorithm,JET_coneradius);
   }
     break;
     
   case 6: {
-    jet_def = fastjet::JetDefinition(fastjet::antikt_algorithm,CONERADIUS);
+    jet_def = fastjet::JetDefinition(fastjet::antikt_algorithm,JET_coneradius);
   }
     break;
@@ -96,5 +96,5 @@
   for (unsigned int i = 0; i < sorted_jets.size(); i++) {
     JET.SetPxPyPzE(sorted_jets[i].px(),sorted_jets[i].py(),sorted_jets[i].pz(),sorted_jets[i].E());
-    if(JET.Pt() > JET_pt)
+    if(JET.Pt() > PTCUT_jet)
       {
 	elementJet = (TRootJet*) branchJet->NewEntry();
@@ -102,5 +102,5 @@
 	// b-jets
 	bool btag=false;
-	if((fabs(JET.Eta()) < MAX_TRACKER && Btaggedjet(JET, NFCentralQ)))btag=true;
+	if((fabs(JET.Eta()) < CEN_max_tracker && Btaggedjet(JET, NFCentralQ)))btag=true;
 	elementJet->Btag = btag;
       }
@@ -116,10 +116,10 @@
     JET.SetPxPyPzE(sorted_jets[i].px(),sorted_jets[i].py(),sorted_jets[i].pz(),sorted_jets[i].E());
     // Tau jet identification : 1! track and electromagnetic collimation
-    if(fabs(JET.Eta()) < (MAX_TRACKER - TAU_CONE_TRACKS)) {
+    if(fabs(JET.Eta()) < (CEN_max_tracker - TAU_track_scone)) {
       double Energie_tau_central = EnergySmallCone(towers,JET.Eta(),JET.Phi());
       if(
-	 ( Energie_tau_central/JET.E() > TAU_EM_COLLIMATION ) &&
-	 ( NumTracks(TrackCentral,PT_TRACK_TAU,JET.Eta(),JET.Phi()) == 1 ) &&
-	 ( JET.Pt() > TAUJET_pt)
+	 ( Energie_tau_central/JET.E() > TAU_energy_frac ) &&
+	 ( NumTracks(TrackCentral,TAU_track_pt,JET.Eta(),JET.Phi()) == 1 ) &&
+	 ( JET.Pt() > PTCUT_taujet)
 	 ) {
 	elementTauJet = (TRootTauJet*) branchTauJet->NewEntry();
Index: /trunk/src/SmearUtil.cc
===================================================================
--- /trunk/src/SmearUtil.cc	(revision 93)
+++ /trunk/src/SmearUtil.cc	(revision 94)
@@ -29,98 +29,120 @@
 RESOLution::RESOLution() {
 
-MAX_TRACKER  = 	2.5;  // tracker coverage
-MAX_CALO_CEN =  3.0;  // central calorimeter coverage
-MAX_CALO_FWD =  5.0;  // forward calorimeter pseudorapidity coverage
-MAX_MU       =  2.4;  // muon chambers pseudorapidity coverage
-MIN_CALO_VFWD=  5.2;  // very forward calorimeter (if any), like CASTOR
-MAX_CALO_VFWD=  6.6;  // very forward calorimeter (if any), like CASTOR
-MIN_ZDC      =  8.3;  // zero-degree calorimeter, coverage
-
-ZDC_S	     =  140.; // ZDC  distance to IP
-RP220_S      =  220;  // distance of the RP to the IP, in meters
-RP220_X      =  0.002;// distance of the RP to the beam, in meters
-FP420_S      =  420;  // distance of the RP to the IP, in meters
-FP420_X      =  0.004;// distance of the RP to the beam, in meters
-
-TRACKING_RADIUS  = 129;                   //radius of the BField coverage
-TRACKING_LENGTH  = 300;                   //length of the BField coverage
-BFIELD_X         = 0.0;
-BFIELD_Y         = 0.0;
-BFIELD_Z         = 3.8;
-
-ELG_Scen =        0.05;                  // S term for central ECAL
-ELG_Ncen =        0.25 ;                 // N term for central ECAL
-ELG_Ccen =        0.0055 ;                // C term for central ECAL
-ELG_Cfwd =        0.107 ;                 // S term for forward ECAL
-ELG_Sfwd =        2.084 ;                 // C term for forward ECAL
-ELG_Nfwd =        0.0   ;                 // N term for central ECAL
-
-HAD_Shcal =       1.5 ;                    // S term for central HCAL // hadronic calorimeter
-HAD_Nhcal  =      0.0   ;                    // N term for central HCAL
-HAD_Chcal  =      0.05 ;                   // C term for central HCAL
-HAD_Shf  =        2.7  ;                    // S term for central HF // forward calorimeter
-HAD_Nhf  =        0.0   ;                    // N term for central HF
-HAD_Chf  =        0.13 ;                    // C term for central HF
-
-MU_SmearPt =      0.01 ;
-
-ELEC_pt =         10.0;
-MUON_pt =         10.0;
-JET_pt =          20.0;
-GAMMA_pt =        10.0;
-TAUJET_pt =       10.0;
-
-
-TAU_CONE_ENERGY = 0.15  ;                  // Delta R = radius of the cone // for "electromagnetic collimation"
-TAU_EM_COLLIMATION = 0.95;
-TAU_CONE_TRACKS=  0.4  ;                   //Delta R for tracker isolation for tau's
-PT_TRACK_TAU =    2.0  ;                   // GeV // 6 GeV ????
-
-
-PT_TRACKS_MIN =   0.9  ;                   // minimal pt needed to reach the calorimeter, in GeV
-PT_QUARKS_MIN =   2.0  ;                   // minimal pt needed by quarks to reach the tracker, in GeV (??????)
-TRACKING_EFF  =   90;
-
-
-TAGGING_B    =    40;
-MISTAGGING_C =    10;
-MISTAGGING_L =    1;
-
-//Trigger flag
-DOTRIGGER    =     1;
-
-CONERADIUS   = 0.7; 	// generic jet radius ; not for tau's !!!
-JETALGO      =   1;     // 1 for Cone algorithm, 2 for MidPoint algorithm, 3 for SIScone algorithm, 4 for kt algorithm
-
-//General jet parameters
-SEEDTHRESHOLD     = 1.0;
-OVERLAPTHRESHOLD = 0.75;
-
-// Define Cone algorithm.
-C_ADJACENCYCUT     = 2;
-C_MAXITERATIONS    = 100;
-C_IRATCH           = 1;
-
-//Define MidPoint algorithm.
-M_CONEAREAFRACTION  =   0.25;
-M_MAXPAIRSIZE       =   2;
-M_MAXITERATIONS     =   100;
-
-// Define Calorimeter Towers
-NTOWERS	= 40;
-
-const float tower_eta_edges[41] = { 
+  // Detector characteristics
+  CEN_max_tracker   = 2.5;                // Maximum tracker coverage          
+  CEN_max_calo_cen  = 3.0;                // central calorimeter coverage
+  CEN_max_calo_fwd  = 5.0;                // forward calorimeter pseudorapidity coverage
+  CEN_max_mu        = 2.4;                // muon chambers pseudorapidity coverage
+  
+  // Energy resolution for electron/photon
+  // \sigma/E = C + N/E + S/\sqrt{E}
+  ELG_Scen          = 0.05;              // S term for central ECAL
+  ELG_Ncen          = 0.25;              // N term for central ECAL
+  ELG_Ccen          = 0.005;             // C term for central ECAL
+  ELG_Cfwd          = 0.107;             // S term for forward ECAL
+  ELG_Sfwd          = 2.084;             // C term for forward ECAL
+  ELG_Nfwd          = 0.0;               // N term for central ECAL
+
+  // Energy resolution for hadrons in ecal/hcal/hf
+  // \sigma/E = C + N/E + S/\sqrt{E}
+  HAD_Shcal         = 1.5;               // S term for central HCAL // hadronic calorimeter
+  HAD_Nhcal         = 0.;                // N term for central HCAL
+  HAD_Chcal         = 0.05;              // C term for central HCAL
+  HAD_Shf           = 2.7;               // S term for HF // forward calorimeter
+  HAD_Nhf           = 0.;                // N term for HF
+  HAD_Chf           = 0.13;              // C term for HF
+
+  // Muon smearing
+  MU_SmearPt        = 0.01;
+
+  // Tracking efficiencies
+  TRACK_ptmin       = 0.9;               // minimal pt needed to reach the calorimeter in GeV
+  TRACK_eff         = 100;               // efficiency associated to the tracking
+
+  // Calorimetric towers
+  TOWER_number      = 40;
+  const float tower_eta_edges[41] = { 
     0., 0.087, 0.174, 0.261, 0.348, 0.435, 0.522, 0.609, 0.696, 0.783, 0.870, 0.957, 1.044, 1.131, 1.218, 1.305, 1.392, 1.479, 1.566,
     1.653, 1.740, 1.830, 1.930, 2.043, 2.172, 2.322, 2.500, 2.650, 2.868, 2.950, 3.125, 3.300, 3.475, 3.650, 3.825, 4.000, 4.175,
     4.350, 4.525,  4.700, 5.000}; // temporary object
-TOWER_ETA_EDGES = new float[NTOWERS+1];
-for(unsigned int i=0; i<NTOWERS+1; i++) TOWER_ETA_EDGES[i] = tower_eta_edges[i];
-
-const float tower_dphi[40] = { 
-     5, 5, 5, 5, 5,  5, 5, 5, 5, 5,  5, 5, 5, 5, 5,  5, 5, 5, 5, 10,
+  TOWER_eta_edges = new float[TOWER_number+1];
+  for(unsigned int i=0; i<TOWER_number +1; i++) TOWER_eta_edges[i] = tower_eta_edges[i];
+  
+  const float tower_dphi[40] = { 
+    5, 5, 5, 5, 5,  5, 5, 5, 5, 5,  5, 5, 5, 5, 5,  5, 5, 5, 5, 10,
     10,10,10,10,10, 10,10,10,10,10, 10,10,10,10,10, 10,10,10,20, 20 }; // temporary object
-TOWER_DPHI = new float[NTOWERS];
-for(unsigned int i=0; i<NTOWERS; i++) TOWER_DPHI[i] = tower_dphi[i];
-
+  TOWER_dphi = new float[TOWER_number];
+  for(unsigned int i=0; i<TOWER_number; i++) TOWER_dphi[i] = tower_dphi[i];
+
+
+  // Thresholds for reconstructed objetcs
+  PTCUT_elec      = 10.0;
+  PTCUT_muon      = 10.0;
+  PTCUT_jet       = 20.0;
+  PTCUT_gamma     = 10.0;
+  PTCUT_taujet    = 10.0;
+
+  // General jet variable
+  JET_coneradius   = 0.7;	     // generic jet radius ; not for tau's !!!
+  JET_jetalgo      = 1;              // 1 for Cone algorithm, 2 for MidPoint algorithm, 3 for SIScone algorithm, 4 for kt algorithm
+  JET_seed         = 1.0;            // minimum seed to start jet reconstruction
+
+  // Tagging definition
+  BTAG_b           = 40;
+  BTAG_mistag_c    = 10;
+  BTAG_mistag_l    = 1;
+
+  // FLAGS
+  FLAG_bfield      = 1;                       //1 to run the bfield propagation else 0
+  FLAG_vfd         = 1;                       //1 to run the very forward detectors else 0
+  FLAG_trigger     = 1;                       //1 to run the trigger selection else 0
+  FLAG_frog        = 1;                       //1 to run the FROG event display
+
+  // In case BField propagation allowed
+  TRACK_radius      = 129;                   //radius of the BField coverage
+  TRACK_length      = 300;                   //length of the BField coverage
+  TRACK_bfield_x    = 0;                     //X composant of the BField
+  TRACK_bfield_y    = 0;                     //Y composant of the BField
+  TRACK_bfield_z    = 3.8;                   //Z composant of the BField
+
+  // In case Very forward detectors allowed
+  VFD_min_calo_vfd  = 5.2;                   // very forward calorimeter (if any) like CASTOR
+  VFD_max_calo_vfd  = 6.6;
+  VFD_min_zdc       = 8.3;
+  VFD_s_zdc         = 140;                   // distance of the Zero Degree Calorimeter, from the Interaction poin, in [m]
+
+  RP_220_s          = 220;                   // distance of the RP to the IP, in meters
+  RP_220_x          = 0.002;                 // distance of the RP to the beam, in meters
+  RP_420_s          = 420;                   // distance of the RP to the IP, in meters
+  RP_420_x          = 0.004;                 // distance of the RP to the beam, in meters
+
+  // In case FROG event display allowed
+  NEvents_Frog      = 10;
+
+  //********************************************
+  //jet stuffs not defined in the input datacard
+  //********************************************
+  
+  JET_overlap     = 0.75;
+  // MidPoint algorithm definition
+  JET_M_coneareafraction = 0.25;
+  JET_M_maxpairsize      = 2;
+  JET_M_maxiterations    = 100;
+  // Define Cone algorithm.
+  JET_C_adjacencycut  =  2;
+  JET_C_maxiterations = 100;
+  JET_C_iratch        =  1;
+  //Define SISCone algorithm.
+  JET_S_npass         = 0;
+  JET_S_protojet_ptmin= 0.0;
+  
+  //For Tau-jet definition
+  TAU_energy_scone = 0.15;  // radius R of the cone for tau definition, based on energy threshold
+  TAU_track_scone  = 0.4;   // radius R of the cone for tau definition, based on track number
+  TAU_track_pt     = 2;     // minimal pt [GeV] for tracks to be considered in tau definition
+  TAU_energy_frac  = 0.95;  // fraction of energy required in the central part of the cone, for tau jets
+  
+  PT_QUARKS_MIN =   2.0  ;                   // minimal pt needed by quarks to do b-tag
+  
 }
 
@@ -133,8 +155,8 @@
   ifstream fichier_a_lire(datacard.c_str());
   if(!fichier_a_lire.good()) {
-	cout << datacard << "Datadard " << datacard << " not found, use default values" << endl;
-	return;
-  }
-
+    cout << datacard << "Datadard " << datacard << " not found, use default values" << endl;
+    return;
+  }
+  
   while (getline(fichier_a_lire,temp_string)) {
     curstring.clear(); // needed when using several times istringstream::str(string)
@@ -144,75 +166,93 @@
     
     if(strstr(temp_string.c_str(),"#")) { }
-    else if(strstr(temp_string.c_str(),"MAX_TRACKER")){curstring >> varname >> value; MAX_TRACKER = value;}
-    else if(strstr(temp_string.c_str(),"MAX_CALO_CEN")){curstring >> varname >> value; MAX_CALO_CEN = value;}
-    else if(strstr(temp_string.c_str(),"MAX_CALO_FWD")){curstring >> varname >> value; MAX_CALO_FWD = value;}
-    else if(strstr(temp_string.c_str(),"MAX_MU")){curstring >> varname >> value; MAX_MU = value;}
-    else if(strstr(temp_string.c_str(),"TRACKING_RADIUS")){curstring >> varname >> ivalue; TRACKING_RADIUS = ivalue;}
-    else if(strstr(temp_string.c_str(),"TRACKING_LENGTH")){curstring >> varname >> ivalue; TRACKING_LENGTH = ivalue;}
-    else if(strstr(temp_string.c_str(),"BFIELD_X")){curstring >> varname >> value; BFIELD_X = value;}
-    else if(strstr(temp_string.c_str(),"BFIELD_Y")){curstring >> varname >> value; BFIELD_Y = value;}
-    else if(strstr(temp_string.c_str(),"BFIELD_Z")){curstring >> varname >> value; BFIELD_Z = value;}
-    else if(strstr(temp_string.c_str(),"ELG_Scen")){curstring >> varname >> value; ELG_Scen = value;}
-    else if(strstr(temp_string.c_str(),"ELG_Ncen")){curstring >> varname >> value; ELG_Ncen = value;}
-    else if(strstr(temp_string.c_str(),"ELG_Ccen")){curstring >> varname >> value; ELG_Ccen = value;}
-    else if(strstr(temp_string.c_str(),"ELG_Sfwd")){curstring >> varname >> value; ELG_Sfwd = value;}
-    else if(strstr(temp_string.c_str(),"ELG_Cfwd")){curstring >> varname >> value; ELG_Cfwd = value;}
-    else if(strstr(temp_string.c_str(),"ELG_Nfwd")){curstring >> varname >> value; ELG_Nfwd = value;}
-    else if(strstr(temp_string.c_str(),"HAD_Shcal")){curstring >> varname >> value; HAD_Shcal = value;}
-    else if(strstr(temp_string.c_str(),"HAD_Nhcal")){curstring >> varname >> value; HAD_Nhcal = value;}
-    else if(strstr(temp_string.c_str(),"HAD_Chcal")){curstring >> varname >> value; HAD_Chcal = value;}
-    else if(strstr(temp_string.c_str(),"HAD_Shf")){curstring >> varname >> value; HAD_Shf = value;}
-    else if(strstr(temp_string.c_str(),"HAD_Nhf")){curstring >> varname >> value; HAD_Nhf = value;}
-    else if(strstr(temp_string.c_str(),"HAD_Chf")){curstring >> varname >> value; HAD_Chf = value;}
-    else if(strstr(temp_string.c_str(),"MU_SmearPt")){curstring >> varname >> value; MU_SmearPt = value;}
-    else if(strstr(temp_string.c_str(),"TAU_CONE_ENERGY")){curstring >> varname >> value; TAU_CONE_ENERGY = value;}
-    else if(strstr(temp_string.c_str(),"TAU_CONE_TRACKS")){curstring >> varname >> value; TAU_CONE_TRACKS = value;}
-    else if(strstr(temp_string.c_str(),"PT_TRACK_TAU")){curstring >> varname >> value; PT_TRACK_TAU = value;}
-    else if(strstr(temp_string.c_str(),"PT_TRACKS_MIN")){curstring >> varname >> value; PT_TRACKS_MIN = value;}
-    else if(strstr(temp_string.c_str(),"TAGGING_B")){curstring >> varname >> ivalue; TAGGING_B = ivalue;}
-    else if(strstr(temp_string.c_str(),"MISTAGGING_C")){curstring >> varname >> ivalue; MISTAGGING_C = ivalue;}
-    else if(strstr(temp_string.c_str(),"MISTAGGING_L")){curstring >> varname >> ivalue; MISTAGGING_L = ivalue;}
-    else if(strstr(temp_string.c_str(),"CONERADIUS")){curstring >> varname >> value; CONERADIUS = value;}
-    else if(strstr(temp_string.c_str(),"JETALGO")){curstring >> varname >> ivalue; JETALGO = ivalue;}
-    else if(strstr(temp_string.c_str(),"TRACKING_EFF")){curstring >> varname >> ivalue; TRACKING_EFF = ivalue;}
-    else if(strstr(temp_string.c_str(),"ELEC_pt")){curstring >> varname >> value; ELEC_pt = value;}
-    else if(strstr(temp_string.c_str(),"MUON_pt")){curstring >> varname >> value; MUON_pt = value;}
-    else if(strstr(temp_string.c_str(),"JET_pt")){curstring >> varname >> value; JET_pt = value;}
-    else if(strstr(temp_string.c_str(),"GAMMA_pt")){curstring >> varname >> value; GAMMA_pt = value;}
-    else if(strstr(temp_string.c_str(),"TAUJET_pt")){curstring >> varname >> value; TAUJET_pt = value;}
-    else if(strstr(temp_string.c_str(),"NTOWERS")){curstring >> varname >> ivalue; NTOWERS = ivalue;}
-    else if(strstr(temp_string.c_str(),"DOTRIGGER")){curstring >> varname >> ivalue; DOTRIGGER = ivalue;}
-    else if(strstr(temp_string.c_str(),"TOWER_ETA_EDGES")){
-	curstring >> varname;	for(unsigned int i=0; i<NTOWERS+1; i++) {curstring >> value; TOWER_ETA_EDGES[i] = value;} }
-    else if(strstr(temp_string.c_str(),"TOWER_DPHI")){
-	curstring >> varname;	for(unsigned int i=0; i<NTOWERS; i++) {curstring >> value; TOWER_DPHI[i] = value;} }
-   
-
-  }
-
-// General jet variables
- SEEDTHRESHOLD     = 1.0;
- OVERLAPTHRESHOLD = 0.75;
-
-// Define Cone algorithm.
- C_ADJACENCYCUT     = 2;
- C_MAXITERATIONS    = 100;
- C_IRATCH           = 1;
-
-//Define MidPoint algorithm.
- M_CONEAREAFRACTION  =   0.25;
- M_MAXPAIRSIZE       =   2;
- M_MAXITERATIONS     =   100;
-
-//Define SISCone algorithm.
- NPASS = 0;               
- PROTOJET_PTMIN = 0.0; 
-
-
+    else if(strstr(temp_string.c_str(),"CEN_max_tracker"))  {curstring >> varname >> value; CEN_max_tracker   = value;}
+    else if(strstr(temp_string.c_str(),"CEN_max_calo_cen")) {curstring >> varname >> value; CEN_max_calo_cen  = value;}
+    else if(strstr(temp_string.c_str(),"CEN_max_calo_fwd")) {curstring >> varname >> value; CEN_max_calo_fwd  = value;}
+    else if(strstr(temp_string.c_str(),"CEN_max_mu"))       {curstring >> varname >> value; CEN_max_mu        = value;}
+    
+    else if(strstr(temp_string.c_str(),"VFD_min_calo_vfd")) {curstring >> varname >> value; VFD_min_calo_vfd  = value;}
+    else if(strstr(temp_string.c_str(),"VFD_max_calo_vfd")) {curstring >> varname >> value; VFD_max_calo_vfd  = value;}
+    else if(strstr(temp_string.c_str(),"VFD_min_zdc"))      {curstring >> varname >> value; VFD_min_zdc       = value;}
+    else if(strstr(temp_string.c_str(),"VFD_s_zdc"))        {curstring >> varname >> value; VFD_s_zdc         = value;}
+    
+    else if(strstr(temp_string.c_str(),"RP_220_s"))         {curstring >> varname >> value; RP_220_s          = value;}
+    else if(strstr(temp_string.c_str(),"RP_220_x"))         {curstring >> varname >> value; RP_220_x          = value;}
+    else if(strstr(temp_string.c_str(),"RP_420_s"))         {curstring >> varname >> value; RP_420_s          = value;}
+    else if(strstr(temp_string.c_str(),"RP_420_x"))         {curstring >> varname >> value; RP_420_x          = value;}
+    
+    else if(strstr(temp_string.c_str(),"ELG_Scen"))         {curstring >> varname >> value; ELG_Scen          = value;}
+    else if(strstr(temp_string.c_str(),"ELG_Ncen"))         {curstring >> varname >> value; ELG_Ncen          = value;}
+    else if(strstr(temp_string.c_str(),"ELG_Ccen"))         {curstring >> varname >> value; ELG_Ccen          = value;}
+    else if(strstr(temp_string.c_str(),"ELG_Sfwd"))         {curstring >> varname >> value; ELG_Sfwd          = value;}
+    else if(strstr(temp_string.c_str(),"ELG_Cfwd"))         {curstring >> varname >> value; ELG_Cfwd          = value;}
+    else if(strstr(temp_string.c_str(),"ELG_Nfwd"))         {curstring >> varname >> value; ELG_Nfwd          = value;}
+    else if(strstr(temp_string.c_str(),"HAD_Shcal"))        {curstring >> varname >> value; HAD_Shcal         = value;}
+    else if(strstr(temp_string.c_str(),"HAD_Nhcal"))        {curstring >> varname >> value; HAD_Nhcal         = value;}
+    else if(strstr(temp_string.c_str(),"HAD_Chcal"))        {curstring >> varname >> value; HAD_Chcal         = value;}
+    else if(strstr(temp_string.c_str(),"HAD_Shf"))          {curstring >> varname >> value; HAD_Shf           = value;}
+    else if(strstr(temp_string.c_str(),"HAD_Nhf"))          {curstring >> varname >> value; HAD_Nhf           = value;}
+    else if(strstr(temp_string.c_str(),"HAD_Chf"))          {curstring >> varname >> value; HAD_Chf           = value;}
+    else if(strstr(temp_string.c_str(),"MU_SmearPt"))       {curstring >> varname >> value; MU_SmearPt        = value;}
+    
+    else if(strstr(temp_string.c_str(),"TRACK_radius"))     {curstring >> varname >> ivalue;TRACK_radius      = ivalue;}
+    else if(strstr(temp_string.c_str(),"TRACK_length"))     {curstring >> varname >> ivalue;TRACK_length      = ivalue;}
+    else if(strstr(temp_string.c_str(),"TRACK_bfield_x"))   {curstring >> varname >> value; TRACK_bfield_x    = value;}
+    else if(strstr(temp_string.c_str(),"TRACK_bfield_y"))   {curstring >> varname >> value; TRACK_bfield_y    = value;}
+    else if(strstr(temp_string.c_str(),"TRACK_bfield_z"))   {curstring >> varname >> value; TRACK_bfield_z    = value;}
+    else if(strstr(temp_string.c_str(),"FLAG_bfield"))      {curstring >> varname >> ivalue; FLAG_bfield      = ivalue;}
+    else if(strstr(temp_string.c_str(),"TRACK_ptmin"))      {curstring >> varname >> value; TRACK_ptmin       = value;}
+    else if(strstr(temp_string.c_str(),"TRACK_eff"))        {curstring >> varname >> ivalue;TRACK_eff         = ivalue;}
+
+    else if(strstr(temp_string.c_str(),"TOWER_number"))     {curstring >> varname >> ivalue;TOWER_number      = ivalue;}
+    else if(strstr(temp_string.c_str(),"TOWER_eta_edges")){
+	curstring >> varname;	for(unsigned int i=0; i<TOWER_number+1; i++) {curstring >> value; TOWER_eta_edges[i] = value;} }
+    else if(strstr(temp_string.c_str(),"TOWER_dphi")){
+	curstring >> varname;	for(unsigned int i=0; i<TOWER_number; i++)   {curstring >> value; TOWER_dphi[i] = value;} }
+
+    else if(strstr(temp_string.c_str(),"PTCUT_elec"))       {curstring >> varname >> value; PTCUT_elec        = value;}
+    else if(strstr(temp_string.c_str(),"PTCUT_muon"))       {curstring >> varname >> value; PTCUT_muon        = value;}
+    else if(strstr(temp_string.c_str(),"PTCUT_jet"))        {curstring >> varname >> value; PTCUT_jet         = value;}
+    else if(strstr(temp_string.c_str(),"PTCUT_gamma"))      {curstring >> varname >> value; PTCUT_gamma       = value;}
+    else if(strstr(temp_string.c_str(),"PTCUT_taujet"))     {curstring >> varname >> value; PTCUT_taujet      = value;}
+
+    else if(strstr(temp_string.c_str(),"JET_coneradius"))   {curstring >> varname >> value; JET_coneradius    = value;}
+    else if(strstr(temp_string.c_str(),"JET_jetalgo"))      {curstring >> varname >> ivalue;JET_jetalgo       = ivalue;}
+    else if(strstr(temp_string.c_str(),"JET_seed"))         {curstring >> varname >> value; JET_seed          = value;}
+ 
+    else if(strstr(temp_string.c_str(),"BTAG_b"))           {curstring >> varname >> ivalue;BTAG_b            = ivalue;}
+    else if(strstr(temp_string.c_str(),"BTAG_mistag_c"))    {curstring >> varname >> ivalue;BTAG_mistag_c     = ivalue;}
+    else if(strstr(temp_string.c_str(),"BTAG_mistag_l"))    {curstring >> varname >> ivalue;BTAG_mistag_l     = ivalue;}
+
+    else if(strstr(temp_string.c_str(),"FLAG_vfd"))         {curstring >> varname >> ivalue; FLAG_vfd         = ivalue;}
+    else if(strstr(temp_string.c_str(),"FLAG_trigger"))     {curstring >> varname >> ivalue; FLAG_trigger     = ivalue;}
+    else if(strstr(temp_string.c_str(),"FLAG_frog"))        {curstring >> varname >> ivalue; FLAG_frog        = ivalue;}
+    else if(strstr(temp_string.c_str(),"NEvents_Frog"))     {curstring >> varname >> ivalue; NEvents_Frog     = ivalue;}
+  }
+  
+  //jet stuffs not defined in the input datacard
+  JET_overlap     = 0.75;
+  // MidPoint algorithm definition
+  JET_M_coneareafraction = 0.25;
+  JET_M_maxpairsize      = 2;
+  JET_M_maxiterations    = 100;
+  // Define Cone algorithm.
+  JET_C_adjacencycut  =  2;
+  JET_C_maxiterations = 100;
+  JET_C_iratch        =  1;
+  //Define SISCone algorithm.
+  JET_S_npass         = 0;
+  JET_S_protojet_ptmin= 0.0;
+  
+  //For Tau-jet definition
+  TAU_energy_scone = 0.15;  // radius R of the cone for tau definition, based on energy threshold
+  TAU_track_scone  = 0.4;   // radius R of the cone for tau definition, based on track number
+  TAU_track_pt     = 2;     // minimal pt [GeV] for tracks to be considered in tau definition
+  TAU_energy_frac  = 0.95;  // fraction of energy required in the central part of the cone, for tau jets
+  
 }
 
 void RESOLution::Logfile(string LogName) { 
-//void RESOLution::Logfile(string outputfilename) { 
-
+  //void RESOLution::Logfile(string outputfilename) { 
+  
   ofstream f_out(LogName.c_str());
   
@@ -251,72 +291,41 @@
   f_out<<"*                                                                    *"<<"\n";
   f_out << left << setw(30) <<"* Maximum tracking system:                   "<<""
-	<< left << setw(10) <<MAX_TRACKER   <<""<< right << setw(15)<<"*"<<"\n";
+	<< left << setw(10) <<CEN_max_tracker   <<""<< right << setw(15)<<"*"<<"\n";
   f_out << left << setw(30) <<"* Maximum central calorimeter:               "<<""
-	<< left << setw(10) <<MAX_CALO_CEN  <<""<< right << setw(15)<<"*"<<"\n";
+	<< left << setw(10) <<CEN_max_calo_cen  <<""<< right << setw(15)<<"*"<<"\n";
   f_out << left << setw(30) <<"* Maximum forward calorimeter:               "<<""
-	<< left << setw(10) <<MAX_CALO_FWD  <<""<< right << setw(15)<<"*"<<"\n";
+	<< left << setw(10) <<CEN_max_calo_fwd  <<""<< right << setw(15)<<"*"<<"\n";
   f_out << left << setw(30) <<"* Muon chambers coverage:                    "<<""
-	<< left << setw(10) <<MAX_MU        <<""<< right << setw(15)<<"*"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-  f_out<<"#*************************************                               *"<<"\n";
-  f_out<<"# Very forward detector caracteristics                               *"<<"\n";
-  f_out<<"#*************************************                               *"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-  f_out << left << setw(55) <<"* Minimum very forward calorimeter:          "<<""
-	<< left << setw(5) <<MIN_CALO_VFWD <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Maximum very forward calorimeter:          "<<""
-	<< left << setw(5) <<MAX_CALO_VFWD <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Distance of the ZDC to the IP, in meters:  "<<""
-	<< left << setw(5) <<ZDC_S         <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Distance of the RP to the IP, in meters:   "<<""
-	<< left << setw(5) <<RP220_S       <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Distance of the RP to the beam, in meters: "<<""
-	<< left << setw(5) <<RP220_X       <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Distance of the RP to the IP, in meters:   "<<""
-	<< left << setw(5) <<FP420_S       <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Distance of the RP to the beam, in meters: "<<""
-	<< left << setw(5) <<FP420_X       <<""<< right << setw(10)<<"*"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-  f_out<<"#***********************************                                 *"<<"\n";
-  f_out<<"# Magnetic field needed informations                                 *"<<"\n";
-  f_out<<"#***********************************                                 *"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-  f_out << left << setw(55) <<"* Radius of the BField coverage:              "<<""
-        << left << setw(5) <<TRACKING_RADIUS <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Length of the BField coverage:              "<<""
-        << left << setw(5) <<TRACKING_LENGTH <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* BField X component:                         "<<""
-        << left << setw(5) <<BFIELD_X <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* BField Y component:                         "<<""
-        << left << setw(5) <<BFIELD_Y <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* BField Z component:                         "<<""
-        << left << setw(5) <<BFIELD_Z <<""<< right << setw(10)<<"*"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-
-
-  f_out<<"*                                                                    *"<<"\n";
-  f_out<<"#********************                                                *"<<"\n";
-  f_out<<"# Calorimetric Towers                                                *"<<"\n";
-  f_out<<"#********************                                                *"<<"\n";
-  f_out << left << setw(55) <<"* Number of calorimetric towers in eta, for eta>0: "<<""
-        << left << setw(5) << NTOWERS <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Tower edges in eta, for eta>0: "<<"" << right << setw(15)<<"*"<<"\n";
-	  f_out << "*   ";
-	  for (unsigned int i=0; i<NTOWERS+1; i++) {
-		f_out << left << setw(7) << TOWER_ETA_EDGES[i];
-		if(!( (i+1) %9 )) f_out << right << setw(3) << "*" << "\n" << "*   ";
-	  }
-	  for (unsigned int i=(NTOWERS+1)%9; i<9; i++) f_out << left << setw(7) << "";
-	  f_out << right << setw(3)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Tower sizes in phi, for eta>0 [degree]:"<<"" << right << setw(15)<<"*"<<"\n";
-	  f_out << "*   ";
-	  for (unsigned int i=0; i<NTOWERS; i++) {
-		f_out << left << setw(7) << TOWER_DPHI[i];
-		if(!( (i+1) %9 )) f_out << right << setw(3) << "*" << "\n" << "*   ";
-	  }
-	  for (unsigned int i=(NTOWERS)%9; i<9; i++) f_out << left << setw(7) << "";
-	  f_out << right << setw(3)<<"*"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-
+	<< left << setw(10) <<CEN_max_mu        <<""<< right << setw(15)<<"*"<<"\n";
+  f_out<<"*                                                                    *"<<"\n";
+  if(FLAG_vfd==1){
+    f_out<<"#**********************************                                  *"<<"\n";
+    f_out<<"# Very forward detector switches on                                  *"<<"\n";
+    f_out<<"#**********************************                                  *"<<"\n";
+    f_out<<"*                                                                    *"<<"\n";
+    f_out << left << setw(55) <<"* Minimum very forward calorimeter:          "<<""
+	  << left << setw(5) <<VFD_min_calo_vfd <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Maximum very forward calorimeter:          "<<""
+	  << left << setw(5) <<VFD_max_calo_vfd <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Minimum coverage zero_degree calorimeter "<<""
+	  << left << setw(5) <<VFD_min_zdc          <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Distance of the ZDC to the IP, in meters:  "<<""
+	  << left << setw(5) <<VFD_s_zdc            <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Distance of the RP to the IP, in meters:   "<<""
+	  << left << setw(5) <<RP_220_s             <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Distance of the RP to the beam, in meters: "<<""
+	  << left << setw(5) <<RP_220_x             <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Distance of the RP to the IP, in meters:   "<<""
+	  << left << setw(5) <<RP_420_s             <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Distance of the RP to the beam, in meters: "<<""
+	  << left << setw(5) <<RP_420_x             <<""<< right << setw(10)<<"*"<<"\n";
+    f_out<<"*                                                                    *"<<"\n";
+  }
+  else {
+    f_out<<"#***********************************                                 *"<<"\n";
+    f_out<<"# Very forward detector switches off                                 *"<<"\n";
+    f_out<<"#***********************************                                 *"<<"\n";
+    f_out<<"*                                                                    *"<<"\n";
+  }
   f_out<<"#************************************                                *"<<"\n";
   f_out<<"# Electromagnetic smearing parameters                                *"<<"\n";
@@ -354,31 +363,63 @@
 	<< left << setw(30) <<HAD_Chf         <<""<< right << setw(10)<<"*"<<"\n";
   f_out<<"*                                                                    *"<<"\n";
-  f_out<<"#***************************                                         *"<<"\n";
-  f_out<<"# Tracking system acceptance                                         *"<<"\n";
-  f_out<<"#***************************                                         *"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-  f_out << left << setw(55) <<"* Minimal pT needed to reach the calorimeter [GeV]: "<<""
-	<< left << setw(10) <<PT_TRACKS_MIN         <<""<< right << setw(5)<<"*"<<"\n";
-  f_out << left << setw(55) <<"* Efficiency associated to the tracking: "<<""
-	<< left << setw(10) <<TRACKING_EFF          <<""<< right << setw(5)<<"*"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
   f_out<<"#*************************                                           *"<<"\n";
   f_out<<"# Muon smearing parameters                                           *"<<"\n";
   f_out<<"#*************************                                           *"<<"\n";
   f_out<<"*                                                                    *"<<"\n";
-  //MU_SmearPt       0.01
-  f_out<<"*                                                                    *"<<"\n";
-  f_out<<"#******************************                                      *"<<"\n";
-  f_out<<"# Tau-jet definition parameters                                      *"<<"\n";
-  f_out<<"#******************************                                      *"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-  f_out << left << setw(45) <<"* Cone radius for calorimeter tagging:  "<<""
-	<< left << setw(5) <<TAU_CONE_ENERGY                           <<""<< right << setw(20)<<"*"<<"\n";
-  f_out << left << setw(45) <<"* Fraction of energy in the small cone: "<<""
-        << left << setw(5) <<TAU_EM_COLLIMATION*100                    <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(45) <<"* Cone radius for tracking tagging:     "<<""
-	<< left << setw(5) <<TAU_CONE_TRACKS                           <<""<< right << setw(20)<<"*"<<"\n";
-  f_out << left << setw(45) <<"* Minimum track pT [GeV]:               "<<""
-	<< left << setw(5) <<PT_TRACK_TAU                              <<""<< right << setw(20)<<"*"<<"\n";
+  f_out << left << setw(55) <<"* PT resolution for muons        :              "<<""
+        << left << setw(5) <<MU_SmearPt            <<""<< right << setw(10)<<"*"<<"\n";
+  f_out<<"*                                                                    *"<<"\n";
+  if(FLAG_bfield==1){
+    f_out<<"#***************************                                         *"<<"\n";
+    f_out<<"# Magnetic field switches on                                         *"<<"\n";
+    f_out<<"#***************************                                         *"<<"\n";
+    f_out<<"*                                                                    *"<<"\n";
+    f_out << left << setw(55) <<"* Radius of the BField coverage:              "<<""
+	  << left << setw(5) <<TRACK_radius    <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Length of the BField coverage:              "<<""
+	  << left << setw(5) <<TRACK_length    <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* BField X component:                         "<<""
+	  << left << setw(5) <<TRACK_bfield_x  <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* BField Y component:                         "<<""
+	  << left << setw(5) <<TRACK_bfield_y  <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* BField Z component:                         "<<""
+	  << left << setw(5) <<TRACK_bfield_z  <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Minimal pT needed to reach the calorimeter [GeV]: "<<""
+	  << left << setw(10) <<TRACK_ptmin         <<""<< right << setw(5)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Efficiency associated to the tracking: "<<""
+	  << left << setw(10) <<TRACK_eff          <<""<< right << setw(5)<<"*"<<"\n";
+    f_out<<"*                                                                    *"<<"\n";
+  }
+  else {
+    f_out<<"#****************************                                        *"<<"\n";
+    f_out<<"# Magnetic field switches off                                        *"<<"\n";
+    f_out<<"#****************************                                        *"<<"\n";
+    f_out << left << setw(55) <<"* Minimal pT needed to reach the calorimeter [GeV]: "<<""
+	  << left << setw(10) <<TRACK_ptmin         <<""<< right << setw(5)<<"*"<<"\n";
+    f_out << left << setw(55) <<"* Efficiency associated to the tracking: "<<""
+	  << left << setw(10) <<TRACK_eff          <<""<< right << setw(5)<<"*"<<"\n";
+    f_out<<"*                                                                    *"<<"\n";
+  }
+  f_out<<"#********************                                                *"<<"\n";
+  f_out<<"# Calorimetric Towers                                                *"<<"\n";
+  f_out<<"#********************                                                *"<<"\n";
+  f_out << left << setw(55) <<"* Number of calorimetric towers in eta, for eta>0: "<<""
+        << left << setw(5)  << TOWER_number <<""<< right << setw(10)<<"*"<<"\n";
+  f_out << left << setw(55) <<"* Tower edges in eta, for eta>0: "<<"" << right << setw(15)<<"*"<<"\n";
+  f_out << "*   ";
+  for (unsigned int i=0; i<TOWER_number+1; i++) {
+    f_out << left << setw(7) << TOWER_eta_edges[i];
+    if(!( (i+1) %9 )) f_out << right << setw(3) << "*" << "\n" << "*   ";
+  }
+  for (unsigned int i=(TOWER_number+1)%9; i<9; i++) f_out << left << setw(7) << "";
+  f_out << right << setw(3)<<"*"<<"\n";
+  f_out << left << setw(55) <<"* Tower sizes in phi, for eta>0 [degree]:"<<"" << right << setw(15)<<"*"<<"\n";
+  f_out << "*   ";
+  for (unsigned int i=0; i<TOWER_number; i++) {
+    f_out << left << setw(7) << TOWER_dphi[i];
+    if(!( (i+1) %9 )) f_out << right << setw(3) << "*" << "\n" << "*   ";
+  }
+  for (unsigned int i=(TOWER_number)%9; i<9; i++) f_out << left << setw(7) << "";
+  f_out << right << setw(3)<<"*"<<"\n";
   f_out<<"*                                                                    *"<<"\n";
   f_out<<"#*******************                                                 *"<<"\n";
@@ -387,24 +428,13 @@
   f_out<<"*                                                                    *"<<"\n";
   f_out << left << setw(40) <<"* Minimum pT for electrons: "<<""
-	<< left << setw(20) <<ELEC_pt         <<""<< right << setw(10)<<"*"<<"\n";
+	<< left << setw(20) <<PTCUT_elec         <<""<< right << setw(10)<<"*"<<"\n";
   f_out << left << setw(40) <<"* Minimum pT for muons: "<<""
-	<< left << setw(20) <<MUON_pt         <<""<< right << setw(10)<<"*"<<"\n";
+	<< left << setw(20) <<PTCUT_muon         <<""<< right << setw(10)<<"*"<<"\n";
   f_out << left << setw(40) <<"* Minimum pT for jets: "<<""
-	<< left << setw(20) <<JET_pt         <<""<< right << setw(10)<<"*"<<"\n";
+	<< left << setw(20) <<PTCUT_jet          <<""<< right << setw(10)<<"*"<<"\n";
   f_out << left << setw(40) <<"* Minimum pT for Tau-jets: "<<""
-	<< left << setw(20) <<TAUJET_pt         <<""<< right << setw(10)<<"*"<<"\n";
+	<< left << setw(20) <<PTCUT_taujet       <<""<< right << setw(10)<<"*"<<"\n";
   f_out << left << setw(40) <<"* Minimum pT for photons: "<<""
-        << left << setw(20) <<GAMMA_pt         <<""<< right << setw(10)<<"*"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-  f_out<<"#***************************                                         *"<<"\n";
-  f_out<<"# B-tagging efficiencies [%]                                         *"<<"\n";
-  f_out<<"#***************************                                         *"<<"\n";
-  f_out<<"*                                                                    *"<<"\n";
-  f_out << left << setw(50) <<"* Efficiency to tag a \"b\" as a b-jet: "<<""
-	<< left << setw(10) <<TAGGING_B         <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(50) <<"* Efficiency to mistag a c-jet as a b-jet: "<<""
-	<< left << setw(10) <<MISTAGGING_C         <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(50) <<"* Efficiency to mistag a light jet as a b-jet: "<<""
-	<< left << setw(10) <<MISTAGGING_L         <<""<< right << setw(10)<<"*"<<"\n";
+        << left << setw(20) <<PTCUT_gamma        <<""<< right << setw(10)<<"*"<<"\n";
   f_out<<"*                                                                    *"<<"\n";
   f_out<<"#***************                                                     *"<<"\n";
@@ -421,75 +451,98 @@
   f_out<<"*                                                                    *"<<"\n";
   f_out<<"* You have chosen                                                    *"<<"\n";
-  switch(JETALGO) {
+  switch(JET_jetalgo) {
   default:
   case 1: {
-  f_out<<"* CDF JetClu jet algorithm with parameters:                          *"<<"\n";
-  f_out << left << setw(40) <<"*        - Seed threshold:    "<<""
-        << left << setw(10) <<SEEDTHRESHOLD                   <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Cone radius:       "<<""
-        << left << setw(10) <<CONERADIUS                      <<""<< right << setw(20)<<"*"<<"\n";
-  f_out << left << setw(40) <<"*        - Adjacency cut:     "<<""
-        << left << setw(10) <<C_ADJACENCYCUT                  <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Max iterations:    "<<""
-        << left << setw(10) <<C_MAXITERATIONS                 <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Iratch:            "<<""
-        << left << setw(10) <<C_IRATCH                        <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Overlap threshold: "<<""
-        << left << setw(10) <<OVERLAPTHRESHOLD                <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
+    f_out<<"* CDF JetClu jet algorithm with parameters:                          *"<<"\n";
+    f_out << left << setw(40) <<"*        - Seed threshold:    "<<""
+	  << left << setw(10) <<JET_seed                        <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Cone radius:       "<<""
+	  << left << setw(10) <<JET_coneradius                  <<""<< right << setw(20)<<"*"<<"\n";
+    f_out << left << setw(40) <<"*        - Adjacency cut:     "<<""
+	  << left << setw(10) <<JET_C_adjacencycut              <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Max iterations:    "<<""
+	  << left << setw(10) <<JET_C_maxiterations             <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Iratch:            "<<""
+	  << left << setw(10) <<JET_C_iratch                    <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Overlap threshold: "<<""
+	  << left << setw(10) <<JET_overlap                     <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
   }
     break;
   case 2: {
-  f_out<<"* CDF midpoint jet algorithm with parameters:                        *"<<"\n";
-  f_out << left << setw(40) <<"*        - Seed threshold:    "<<""
-        << left << setw(20) <<SEEDTHRESHOLD                   <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Cone radius:       "<<""
-        << left << setw(20) <<CONERADIUS                      <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(40) <<"*        - Cone area fraction:"<<""
-        << left << setw(20) <<M_CONEAREAFRACTION              <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Maximum pair size: "<<""
-        << left << setw(20) <<M_MAXPAIRSIZE                   <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Max iterations:    "<<""
-        << left << setw(20) <<M_MAXITERATIONS                 <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Overlap threshold: "<<""
-        << left << setw(20) <<OVERLAPTHRESHOLD                <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
+    f_out<<"* CDF midpoint jet algorithm with parameters:                        *"<<"\n";
+    f_out << left << setw(40) <<"*        - Seed threshold:    "<<""
+	  << left << setw(20) <<JET_seed                        <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Cone radius:       "<<""
+	  << left << setw(20) <<JET_coneradius                  <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(40) <<"*        - Cone area fraction:"<<""
+	  << left << setw(20) <<JET_M_coneareafraction          <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Maximum pair size: "<<""
+	  << left << setw(20) <<JET_M_maxpairsize               <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Max iterations:    "<<""
+	  << left << setw(20) <<JET_M_maxiterations             <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Overlap threshold: "<<""
+	  << left << setw(20) <<JET_overlap                     <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
   }
     break;
   case 3: {
-  f_out <<"* SISCone jet algorithm with parameters:                            *"<<"\n";
-  f_out << left << setw(40) <<"*        - Cone radius:             "<<""
-        << left << setw(20) <<CONERADIUS                            <<""<< right << setw(10)<<"*"<<"\n";
-  f_out << left << setw(40) <<"*        - Overlap threshold:       "<<""
-        << left << setw(20) <<OVERLAPTHRESHOLD                      <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Number pass max:         "<<""
-	<< left << setw(20) <<NPASS                                 <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
-  f_out << left << setw(40) <<"*        - Minimum pT for protojet: "<<""
-	<< left << setw(20) <<PROTOJET_PTMIN                        <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
+    f_out <<"* SISCone jet algorithm with parameters:                            *"<<"\n";
+    f_out << left << setw(40) <<"*        - Cone radius:             "<<""
+	  << left << setw(20) <<JET_coneradius                        <<""<< right << setw(10)<<"*"<<"\n";
+    f_out << left << setw(40) <<"*        - Overlap threshold:       "<<""
+	  << left << setw(20) <<JET_overlap                           <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Number pass max:         "<<""
+	  << left << setw(20) <<JET_S_npass                           <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
+    f_out << left << setw(40) <<"*        - Minimum pT for protojet: "<<""
+	  << left << setw(20) <<JET_S_protojet_ptmin                  <<""<< right << setw(10)<<"! not in datacard  *"<<"\n";
   }
     break;
   case 4: {
-  f_out <<"* KT jet algorithm with parameters:                                 *"<<"\n";
-  f_out << left << setw(40) <<"*        - Cone radius: "<<""
-        << left << setw(20) <<CONERADIUS                <<""<< right << setw(10)<<"*"<<"\n";
+    f_out <<"* KT jet algorithm with parameters:                                 *"<<"\n";
+    f_out << left << setw(40) <<"*        - Cone radius: "<<""
+	  << left << setw(20) <<JET_coneradius                <<""<< right << setw(10)<<"*"<<"\n";
   }
     break;
   case 5: {
-  f_out <<"* Cambridge/Aachen jet algorithm with parameters:                   *"<<"\n";
-  f_out << left << setw(40) <<"*        - Cone radius: "<<""
-        << left << setw(20) <<CONERADIUS                <<""<< right << setw(10)<<"*"<<"\n";
+    f_out <<"* Cambridge/Aachen jet algorithm with parameters:                   *"<<"\n";
+    f_out << left << setw(40) <<"*        - Cone radius: "<<""
+	  << left << setw(20) <<JET_coneradius                <<""<< right << setw(10)<<"*"<<"\n";
   }
     break;
   case 6: {
-  f_out <<"* Anti-kt jet algorithm with parameters:                            *"<<"\n";
-  f_out << left << setw(40) <<"*        - Cone radius: "<<""
-        << left << setw(20) <<CONERADIUS                <<""<< right << setw(10)<<"*"<<"\n";
+    f_out <<"* Anti-kt jet algorithm with parameters:                            *"<<"\n";
+    f_out << left << setw(40) <<"*        - Cone radius: "<<""
+	  << left << setw(20) <<JET_coneradius                <<""<< right << setw(10)<<"*"<<"\n";
   }
     break;
-
-
-  }
+  }
+  f_out<<"*                                                                    *"<<"\n";
+  f_out<<"#******************************                                      *"<<"\n";
+  f_out<<"# Tau-jet definition parameters                                      *"<<"\n";
+  f_out<<"#******************************                                      *"<<"\n";
+  f_out<<"*                                                                    *"<<"\n";
+  f_out << left << setw(45) <<"* Cone radius for calorimeter tagging:  "<<""
+	<< left << setw(5) <<TAU_energy_scone                           <<""<< right << setw(20)<<"*"<<"\n";
+  f_out << left << setw(45) <<"* Fraction of energy in the small cone: "<<""
+	<< left << setw(5) <<TAU_energy_frac*100                        <<""<< right << setw(20)<<"! not in datacard  *"<<"\n";
+  f_out << left << setw(45) <<"* Cone radius for tracking tagging:     "<<""
+	<< left << setw(5) <<TAU_track_scone                            <<""<< right << setw(20)<<"*"<<"\n";
+  f_out << left << setw(45) <<"* Minimum track pT [GeV]:               "<<""
+	<< left << setw(5) <<TAU_track_pt                                <<""<< right << setw(20)<<"*"<<"\n";
+  f_out<<"*                                                                    *"<<"\n";
+  f_out<<"#***************************                                         *"<<"\n";
+  f_out<<"# B-tagging efficiencies [%]                                         *"<<"\n";
+  f_out<<"#***************************                                         *"<<"\n";
+  f_out<<"*                                                                    *"<<"\n";
+  f_out << left << setw(50) <<"* Efficiency to tag a \"b\" as a b-jet: "<<""
+	<< left << setw(10) <<BTAG_b               <<""<< right << setw(10)<<"*"<<"\n";
+  f_out << left << setw(50) <<"* Efficiency to mistag a c-jet as a b-jet: "<<""
+	<< left << setw(10) <<BTAG_mistag_c            <<""<< right << setw(10)<<"*"<<"\n";
+  f_out << left << setw(50) <<"* Efficiency to mistag a light jet as a b-jet: "<<""
+	<< left << setw(10) <<BTAG_mistag_l            <<""<< right << setw(10)<<"*"<<"\n";
+  f_out<<"*                                                                    *"<<"\n";
   f_out<<"*                                                                    *"<<"\n";
   f_out<<"#....................................................................*"<<"\n";
   f_out<<"#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<"\n";
-
+  
 }
 
@@ -502,5 +555,5 @@
   float energyS = 0.0;		// after smearing  // \sigma/E = C + N/E + S/\sqrt{E}
   
-  if(fabs(electron.Eta()) < MAX_TRACKER) { // if the electron is inside the tracker
+  if(fabs(electron.Eta()) < CEN_max_tracker) { // if the electron is inside the tracker
     energyS = gRandom->Gaus(energy, sqrt( 
 					 pow(ELG_Ncen,2) + 
@@ -508,5 +561,5 @@
 					 pow(ELG_Scen*sqrt(energy),2) ));
   } 
-  if(fabs(electron.Eta()) > MAX_TRACKER && fabs(electron.Eta()) < MAX_CALO_FWD){
+  if(fabs(electron.Eta()) > CEN_max_tracker && fabs(electron.Eta()) < CEN_max_calo_fwd){
     energyS = gRandom->Gaus(energy, sqrt(
 					 pow(ELG_Nfwd,2) +
@@ -526,5 +579,5 @@
   float ptS=pt;
 
-  if(fabs(muon.Eta()) < MAX_MU )
+  if(fabs(muon.Eta()) < CEN_max_mu )
    {
      ptS = gRandom->Gaus(pt, MU_SmearPt*pt ); // after smearing // \sigma/E = C + N/E + S/\sqrt{E}
@@ -550,5 +603,5 @@
   
   float energyS1,energyS2;
-  if(fabs(hadron.Eta()) < MAX_CALO_CEN) {
+  if(fabs(hadron.Eta()) < CEN_max_calo_cen) {
    energyS1 = gRandom->Gaus(energy_hcal, sqrt(
 					      pow(HAD_Nhcal,2) +
@@ -564,5 +617,5 @@
   energyS = ((energyS1>0)?energyS1:0) + ((energyS2>0)?energyS2:0);
   } 
-  if(abs(hadron.Eta()) > MAX_CALO_CEN && fabs(hadron.Eta()) < MAX_CALO_FWD){ 
+  if(abs(hadron.Eta()) > CEN_max_calo_cen && fabs(hadron.Eta()) < CEN_max_calo_fwd){ 
     energyS = gRandom->Gaus(energy, sqrt(
 			    pow(HAD_Nhf,2) +
@@ -609,6 +662,6 @@
   double Energie=0;
   for(unsigned int i=0; i < towers.size(); i++) {
-      if(towers[i].fourVector.pt() < SEEDTHRESHOLD) continue;
-      if((DeltaR(phi,eta,towers[i].fourVector.phi(),towers[i].fourVector.eta()) < TAU_CONE_ENERGY)) {
+      if(towers[i].fourVector.pt() < JET_seed) continue;
+      if((DeltaR(phi,eta,towers[i].fourVector.phi(),towers[i].fourVector.eta()) < TAU_energy_scone)) {
           Energie += towers[i].fourVector.E;
       }
@@ -630,5 +683,5 @@
   for(unsigned int i=0; i < tracks.size(); i++) { 
       if((tracks[i].Pt() < pt_track )||
-	 (DeltaR(phi,eta,tracks[i].Phi(),tracks[i].Eta()) > TAU_CONE_TRACKS)
+	 (DeltaR(phi,eta,tracks[i].Phi(),tracks[i].Eta()) > TAU_track_scone)
         )continue;
       numtrack++;
@@ -647,5 +700,5 @@
       for(int i=0; i < subarray.GetEntries();i++) { // should have pt>PT_JETMIN and a small cone radius (r<CONE_JET)
 	  float genDeltaR = DeltaR(subarray[i]->Phi,subarray[i]->Eta,phi,eta);
-          if(genDeltaR < CONERADIUS && subarray[i]->E > emax) {
+          if(genDeltaR < JET_coneradius && subarray[i]->E > emax) {
               emax=subarray[i]->E;
               Ppid=abs(subarray[i]->PID);
@@ -659,7 +712,7 @@
 //******************** Simulates the b-tagging efficiency for real bjet, or the misendentification for other jets****************
 bool RESOLution::Btaggedjet(const TLorentzVector &JET, const TSimpleArray<TRootGenParticle> &subarray)	{
-  if(      rand()%100 < (TAGGING_B+1)    && Bjets(subarray,JET.Eta(),JET.Phi())==pB ) return true; // b-tag of b-jets is 40%
-  else if( rand()%100 < (MISTAGGING_C+1) && Bjets(subarray,JET.Eta(),JET.Phi())==pC ) return true; // b-tag of c-jets is 10%
-  else if( rand()%100 < (MISTAGGING_L+1) && Bjets(subarray,JET.Eta(),JET.Phi())!=0)   return true; // b-tag of light jets is 1%
+  if(      rand()%100 < (BTAG_b+1)    && Bjets(subarray,JET.Eta(),JET.Phi())==pB ) return true; // b-tag of b-jets is 40%
+  else if( rand()%100 < (BTAG_mistag_c+1) && Bjets(subarray,JET.Eta(),JET.Phi())==pC ) return true; // b-tag of c-jets is 10%
+  else if( rand()%100 < (BTAG_mistag_l+1) && Bjets(subarray,JET.Eta(),JET.Phi())!=0)   return true; // b-tag of light jets is 1%
   return false;
 }
@@ -691,7 +744,7 @@
    iEta = -100; 
    int index=-100;
-   for (unsigned int i=1; i< NTOWERS+1; i++) {
-	if(fabs(eta)>TOWER_ETA_EDGES[i-1] && fabs(eta)<TOWER_ETA_EDGES[i]) {
-		iEta = (eta>0) ? TOWER_ETA_EDGES[i-1] : -TOWER_ETA_EDGES[i];
+   for (unsigned int i=1; i< TOWER_number+1; i++) {
+	if(fabs(eta)>TOWER_eta_edges[i-1] && fabs(eta)<TOWER_eta_edges[i]) {
+		iEta = (eta>0) ? TOWER_eta_edges[i-1] : -TOWER_eta_edges[i];
 		index = i-1;
 		//cout << setw(15) << left << eta << "\t" << iEta << endl;
@@ -701,6 +754,6 @@
    if(index==-100) return; 
    iPhi = -100;
-   float dphi = TOWER_DPHI[index]*PI/180.; 
-   for (unsigned int i=1; i < 360/TOWER_DPHI[index]; i++ ) {
+   float dphi = TOWER_dphi[index]*PI/180.; 
+   for (unsigned int i=1; i < 360/TOWER_dphi[index]; i++ ) {
 	float low = -PI+(i-1)*dphi;
 	float high= low+dphi;
Index: /trunk/src/VeryForward.cc
===================================================================
--- /trunk/src/VeryForward.cc	(revision 93)
+++ /trunk/src/VeryForward.cc	(revision 94)
@@ -62,5 +62,5 @@
   TLorentzVector genMomentum; 
   // Zero degree calorimeter, for forward neutrons and photons
-  if (particle->Status ==1 && (pid == pN || pid == pGAMMA ) && eta > MIN_ZDC ) {
+  if (particle->Status ==1 && (pid == pN || pid == pGAMMA ) && eta > VFD_min_zdc ) {
     genMomentum.SetPxPyPzE(particle->Px, particle->Py, particle->Pz, particle->E);
     // !!!!!!!!! vÃ©rifier que particle->Z est bien en micromÃštres!!!
@@ -75,5 +75,5 @@
     //double theta = (1E-6)*sqrt( pow(tx,2) + pow(ty,2) );
     //double flight_distance = (DET->ZDC_S - particle->Z*(1E-6))/cos(theta) ; // assumes that Z is in micrometers
-    double flight_distance = (ZDC_S - particle->Z*(1E-6));
+    double flight_distance = (VFD_s_zdc - particle->Z*(1E-6));
     // assumes also that the emission angle is so small that 1/(cos theta) = 1
     elementZdc->T = 0*particle->T + flight_distance/speed_of_light; // assumes highly relativistic particles
@@ -95,5 +95,5 @@
   genMomentum.SetPxPyPzE(particle->Px, particle->Py, particle->Pz, particle->E);
   // if forward proton
-  if( (pid == pP)  && (particle->Status == 1) &&  (fabs(genMomentum.Eta()) > MAX_CALO_FWD) )
+  if( (pid == pP)  && (particle->Status == 1) &&  (fabs(genMomentum.Eta()) > CEN_max_calo_fwd) )
     {
       // !!!!!!!! put here particle->CHARGE and particle->MASS
@@ -112,5 +112,5 @@
       if(p1.stopped(beamline)) {
 	if (p1.getStoppingElement()->getName()=="rp220_1" || p1.getStoppingElement()->getName()=="rp220_2") {
-	  p1.propagate(RP220_S);
+	  p1.propagate(RP_220_s);
 	  elementRP220 = (TRootRomanPotHits*) branchRP220->NewEntry();
 	  elementRP220->X  = (1E-6)*p1.getX();  // [m]
@@ -125,5 +125,5 @@
 	  
 	} else if (p1.getStoppingElement()->getName()=="rp420_1" || p1.getStoppingElement()->getName()=="rp420_2") {
-	  p1.propagate(FP420_S);
+	  p1.propagate(RP_420_s);
 	  elementFP420 = (TRootRomanPotHits*) branchFP420->NewEntry();
 	  elementFP420->X  = (1E-6)*p1.getX();  // [m]
