]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/electrons/ConfigAnalysisElectron.C
change default max p/E cut
[u/mrichter/AliRoot.git] / PWG4 / macros / electrons / ConfigAnalysisElectron.C
1 //------------------------------------\r
2 // Configuration macro example:\r
3 //\r
4 // Configure EMCal electron analysis\r
5 //\r
6 // Modified by: K. Read\r
7 //\r
8 //------------------------------------\r
9 \r
10 AliAnaPartCorrMaker*  ConfigAnalysis()\r
11 {\r
12   //\r
13   // Configuration goes here\r
14   // \r
15   printf("======================== \n");\r
16   printf("ConfigAnalysisElectron() \n");\r
17   printf("======================== \n");\r
18   Bool_t kInputIsESD = kTRUE;     //uncomment for input ESD\r
19 //Bool_t kInputIsESD = kFALSE;    //uncomment for input AODs\r
20   Bool_t kFollowsFilter = kTRUE;  //uncomment if follows ESD filter task\r
21 //Bool_t kFollowsFilter = kFALSE; //uncomment if no ESD filter task\r
22 \r
23   //Alternatively, select input via anaInputData environment variable.\r
24   if (gSystem->Getenv("anaInputData")){\r
25     TString kInputData = gSystem->Getenv("anaInputData");\r
26     if( kInputData == "AOD" ){\r
27       kInputIsESD = kFALSE;\r
28       kFollowsFilter = kFALSE;\r
29     }\r
30   }\r
31 \r
32   //Detector Fidutial Cuts\r
33   AliFidutialCut * fidCut = new AliFidutialCut();\r
34   fidCut->DoCTSFidutialCut(kFALSE) ;\r
35   fidCut->DoEMCALFidutialCut(kFALSE) ;\r
36   fidCut->DoPHOSFidutialCut(kFALSE) ;\r
37 \r
38   //fidCut->SetSimpleCTSFidutialCut(0.9,0.,360.);\r
39   //fidCut->SetSimpleEMCALFidutialCut(0.7,80.,190.);\r
40   //fidCut->SetSimplePHOSFidutialCut(0.13,220.,320.);\r
41 \r
42   fidCut->Print("");\r
43 \r
44   //-----------------------------------------------------------  \r
45   // Reader\r
46   //-----------------------------------------------------------\r
47   if(kInputIsESD && !kFollowsFilter)AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();\r
48   else           AliCaloTrackAODReader *reader = new AliCaloTrackAODReader();\r
49   reader->SetDebug(-1);//10 for lots of messages\r
50 \r
51   //Switch on or off the detectors information that you want\r
52   reader->SwitchOnEMCAL();\r
53   reader->SwitchOnCTS();\r
54   //reader->SwitchOffEMCALCells();      \r
55   reader->SwitchOffPHOS();\r
56   //reader->SwitchOffPHOSCells();       \r
57 \r
58   //Kine\r
59   if(!kInputIsESD){\r
60     reader->SwitchOffStack();          // On  by default, remember to SwitchOnMCData() in analysis classes\r
61     reader->SwitchOnAODMCParticles();  // Off by default, remember to SwitchOnMCData() in analysis classes\r
62   }\r
63 \r
64   //Min particle pT\r
65   reader->SetCTSPtMin(0.0);   //new\r
66   reader->SetEMCALPtMin(0.0); //new\r
67   if(kFollowsFilter)reader->SetTrackStatus(0);  //to prevent automatic TPC and ITS refit\r
68 \r
69   //In case of generating jet events (with PYTHIA), if pt hard bin is small\r
70   //reject events with large difference between ptHard and triggered jet\r
71   //reader->SetPtHardAndJetPtComparison(kTRUE);\r
72 \r
73   reader->SetFidutialCut(fidCut);\r
74 \r
75   if(!kInputIsESD){\r
76     // Analysis with tracks, select only tracks with\r
77     // following bits\r
78 \r
79     //     //We want tracks fitted in the detectors:\r
80     //     ULong_t status=AliAODTrack::kTPCrefit;\r
81     //     status|=AliAODTrack::kITSrefit;\r
82    \r
83     //     We want tracks whose PID bit is set:\r
84     //     ULong_t status =AliAODTrack::kITSpid;\r
85     //     status|=AliAODTrack::kTPCpid;        \r
86 \r
87     //  reader->SetTrackStatus(status);\r
88   }\r
89 \r
90   reader->Print("");\r
91 \r
92 \r
93   //Detector Fidutial Cuts\r
94   AliFidutialCut * fidCut2 = new AliFidutialCut();\r
95   fidCut2->DoEMCALFidutialCut(kTRUE) ;\r
96   fidCut2->SetSimpleEMCALFidutialCut(0.7,80.,190.);\r
97 \r
98   fidCut2->DoCTSFidutialCut(kTRUE) ;\r
99   fidCut2->SetSimpleCTSFidutialCut(0.9,0.,360.); \r
100 \r
101   fidCut2->Print("");\r
102 \r
103   //---------------------------------------------------------------------\r
104   // Analysis algorithm\r
105   //---------------------------------------------------------------------\r
106 \r
107   AliAnaElectron *anaelectron = new AliAnaElectron();\r
108   anaelectron->SetDebug(-1); //10 for lots of messages\r
109   anaelectron->SetCalorimeter("EMCAL");\r
110   anaelectron->SwitchOnDataMC();\r
111   anaelectron->SetpOverEmin(0.8);\r
112   anaelectron->SetpOverEmax(1.1);\r
113   anaelectron->SetResidualCut(0.02);\r
114   anaelectron->SetMinPt(1.);\r
115   anaelectron->SetImpactCut(1.0);  //instead of 0.5\r
116   anaelectron->SetSdcaCut(0.05);  //instead of 0.1\r
117   anaelectron->SetOutputAODName("Electrons");\r
118   anaelectron->SetOutputAODClassName("AliAODPWG4Particle");\r
119   anaelectron->SetWriteNtuple(kFALSE);\r
120   //Set Histrograms bins and ranges\r
121   anaelectron->SetHistoPtRangeAndNBins(0, 50, 100) ;\r
122   anaelectron->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;\r
123   anaelectron->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;\r
124   anaelectron->Print("");\r
125 \r
126   //---------------------------------------------------------------------\r
127   // Set  analysis algorithm and reader\r
128   //---------------------------------------------------------------------\r
129   maker = new AliAnaPartCorrMaker();\r
130   maker->SetReader(reader);//pointer to reader\r
131   maker->AddAnalysis(anaelectron,0);\r
132   maker->SetAnaDebug(-1)  ;\r
133   maker->SwitchOnHistogramsMaker()  ;\r
134   maker->SwitchOnAODsMaker()  ;\r
135 \r
136   maker->Print("");\r
137   //\r
138   printf("============================ \n");\r
139   printf("END ConfigAnalysisElectron() \n");\r
140   printf("============================ \n");\r
141   return maker ;\r
142 }\r