]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/macros/electrons/ConfigAnalysisElectron.C
New PWG4 electron-jet analysis macros and goodies
[u/mrichter/AliRoot.git] / PWG4 / macros / electrons / ConfigAnalysisElectron.C
index 1925cf6f8919ff4295db83c62a2f7159c4c27e54..8346b9ff18f33fd8baf6629036cfd7d1fe209fe7 100644 (file)
@@ -1,10 +1,9 @@
-/* $Id: $ */\r
-/* $Log$ */\r
-\r
 //------------------------------------\r
 // Configuration macro example:\r
 //\r
-// Do EMCal electron analysis with ESDs\r
+// Configure EMCal electron analysis\r
+//\r
+// Modified by: K. Read\r
 //\r
 //------------------------------------\r
 \r
@@ -16,74 +15,72 @@ AliAnaPartCorrMaker*  ConfigAnalysis()
   printf("======================== \n");\r
   printf("ConfigAnalysisElectron() \n");\r
   printf("======================== \n");\r
-  \r
-       \r
+  Bool_t kInputIsESD = kTRUE;     //uncomment for input ESD\r
+//Bool_t kInputIsESD = kFALSE;    //uncomment for input AODs\r
+  Bool_t kFollowsFilter = kTRUE;  //uncomment if follows ESD filter task\r
+//Bool_t kFollowsFilter = kFALSE; //uncomment if no ESD filter task\r
+\r
   //Detector Fidutial Cuts\r
   AliFidutialCut * fidCut = new AliFidutialCut();\r
   fidCut->DoCTSFidutialCut(kFALSE) ;\r
   fidCut->DoEMCALFidutialCut(kFALSE) ;\r
   fidCut->DoPHOSFidutialCut(kFALSE) ;\r
-  \r
+\r
   //fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.);\r
   //fidCut->SetSimpleEMCALFidutialCut(0.7,80.,190.);\r
   //fidCut->SetSimplePHOSFidutialCut(0.13,220.,320.);\r
-  \r
+\r
   fidCut->Print("");\r
-  \r
-  \r
+\r
   //-----------------------------------------------------------  \r
   // Reader\r
   //-----------------------------------------------------------\r
-  //AliCaloTrackAODReader *reader = new AliCaloTrackAODReader();\r
-  AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();\r
+  if(kInputIsESD && !kFollowsFilter)AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();\r
+  else           AliCaloTrackAODReader *reader = new AliCaloTrackAODReader();\r
   reader->SetDebug(-1);//10 for lots of messages\r
-  \r
+\r
   //Switch on or off the detectors information that you want\r
-  reader->SwitchOnCTS();\r
   reader->SwitchOnEMCAL();\r
+  reader->SwitchOnCTS();\r
+  //reader->SwitchOffEMCALCells();     \r
   reader->SwitchOffPHOS();\r
-  \r
+  //reader->SwitchOffPHOSCells();      \r
+\r
   //Kine\r
-  //reader->SwitchOffStack();  // On  by default, remember to SwitchOnMCData() in analysis classes\r
-  //reader->SwitchOnAODMCParticles(); // Off by default, remember to SwitchOnMCData() in analysis classes\r
+  if(!kInputIsESD){\r
+    reader->SwitchOffStack();          // On  by default, remember to SwitchOnMCData() in analysis classes\r
+    reader->SwitchOnAODMCParticles();  // Off by default, remember to SwitchOnMCData() in analysis classes\r
+  }\r
 \r
   //Min particle pT\r
-  reader->SetEMCALPtMin(1.); \r
-  \r
-  //In case of generating jet events (with PYTHIA), if pt hard\r
-  //bin is small reject events with large difference between\r
-  //ptHard and triggered jet\r
+  reader->SetCTSPtMin(0.0);   //new\r
+  reader->SetEMCALPtMin(0.0); //new\r
+  if(kFollowsFilter)reader->SetTrackStatus(0);  //to prevent automatic TPC and ITS refit\r
+\r
+  //In case of generating jet events (with PYTHIA), if pt hard bin is small\r
+  //reject events with large difference between ptHard and triggered jet\r
   //reader->SetPtHardAndJetPtComparison(kTRUE);\r
-  \r
+\r
   reader->SetFidutialCut(fidCut);\r
-  \r
-  //Embedding/mixing/merging analysis with other events in\r
-  //another AOD file\r
-  //reader->SetSecondInputFileName("./aod.root");\r
-  //Standard event loop can have less events, start mixing at\r
-  //event N\r
-  //reader->SetSecondInputFirstEvent(0);\r
-  \r
-  // Analysis with tracks, select only tracks with\r
-  // following bits\r
-  \r
-  //We want tracks fitted in the detectors:\r
-  //     ULong_t status=AliAODTrack::kTPCrefit;\r
-  //     status|=AliAODTrack::kITSrefit;\r
-  \r
-  //We want tracks whose PID bit is set:\r
-  //     ULong_t status =AliAODTrack::kITSpid;\r
-  //     status|=AliAODTrack::kTPCpid;\r
-  \r
-  //    reader->SetTrackStatus(status);\r
-  \r
+\r
+  if(!kInputIsESD){\r
+    // Analysis with tracks, select only tracks with\r
+    // following bits\r
+\r
+    //     //We want tracks fitted in the detectors:\r
+    //     ULong_t status=AliAODTrack::kTPCrefit;\r
+    //     status|=AliAODTrack::kITSrefit;\r
+   \r
+    //     We want tracks whose PID bit is set:\r
+    //     ULong_t status =AliAODTrack::kITSpid;\r
+    //     status|=AliAODTrack::kTPCpid;       \r
+\r
+    // reader->SetTrackStatus(status);\r
+  }\r
+\r
   reader->Print("");\r
-  \r
-  \r
-  //---------------------------------------------------------------------\r
-  // Analysis algorithm\r
-  //---------------------------------------------------------------------\r
-  \r
+\r
+\r
   //Detector Fidutial Cuts\r
   AliFidutialCut * fidCut2 = new AliFidutialCut();\r
   fidCut2->DoEMCALFidutialCut(kTRUE) ;\r
@@ -94,34 +91,29 @@ AliAnaPartCorrMaker*  ConfigAnalysis()
 \r
   fidCut2->Print("");\r
 \r
+  //---------------------------------------------------------------------\r
+  // Analysis algorithm\r
+  //---------------------------------------------------------------------\r
+\r
   AliAnaElectron *anaelectron = new AliAnaElectron();\r
   anaelectron->SetDebug(-1); //10 for lots of messages\r
   anaelectron->SetCalorimeter("EMCAL");\r
-  anaelectron->SetWriteNtuple(kTRUE);\r
-  //matching cuts\r
+  anaelectron->SwitchOnDataMC();\r
   anaelectron->SetpOverEmin(0.8);\r
   anaelectron->SetpOverEmax(1.2);\r
   anaelectron->SetResidualCut(0.05);\r
-  //B-tagging cuts\r
-  anaelectron->SetDrCut(1.0);\r
-  anaelectron->SetPairDcaCut(0.02);\r
-  anaelectron->SetDecayLenCut(1.0);\r
-  anaelectron->SetImpactCut(0.5);\r
-  anaelectron->SetAssocPtCut(1.0);\r
-  anaelectron->SetMassCut(1.5);\r
-  anaelectron->SetSdcaCut(0.1);\r
-  anaelectron->SetITSCut(4);\r
-\r
-  anaelectron->SwitchOnDataMC();  //Access MC stack and fill more histograms\r
   anaelectron->SetMinPt(1.);\r
+  anaelectron->SetImpactCut(1.0);  //instead of 0.5\r
+  anaelectron->SetSdcaCut(0.05);  //instead of 0.1\r
   anaelectron->SetOutputAODName("Electrons");\r
   anaelectron->SetOutputAODClassName("AliAODPWG4Particle");\r
+  anaelectron->SetWriteNtuple(kFALSE);\r
   //Set Histrograms bins and ranges\r
   anaelectron->SetHistoPtRangeAndNBins(0, 50, 100) ;\r
   anaelectron->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;\r
-  anaelectron->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;      \r
+  anaelectron->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;\r
   anaelectron->Print("");\r
-       \r
+\r
   //---------------------------------------------------------------------\r
   // Set  analysis algorithm and reader\r
   //---------------------------------------------------------------------\r
@@ -131,11 +123,11 @@ AliAnaPartCorrMaker*  ConfigAnalysis()
   maker->SetAnaDebug(-1)  ;\r
   maker->SwitchOnHistogramsMaker()  ;\r
   maker->SwitchOnAODsMaker()  ;\r
-  \r
+\r
   maker->Print("");\r
   //\r
-  printf("======================== \n");\r
+  printf("============================ \n");\r
   printf("END ConfigAnalysisElectron() \n");\r
-  printf("======================== \n");\r
+  printf("============================ \n");\r
   return maker ;\r
 }\r