]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/macros/ConfigAnalysisBTag.C
Bug fix. TRG mistaken for MUONTRG
[u/mrichter/AliRoot.git] / PWG4 / macros / ConfigAnalysisBTag.C
CommitLineData
32301b07 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
10AliAnaPartCorrMaker* 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 Bool_t kMC = kTRUE; //set to kFALSE for data\r
23\r
24 //enum for the different electron cut sets\r
25 //defined for dR and p/E\r
26 //kTight2 is the default standard cuts\r
27 enum kCutTypes {kTight2, kLooseTight, kTightLoose, kLoose2};\r
28 Int_t kCutSet = kTight2;\r
29 Double_t pOverEmin = 0.8; //tight\r
30 Double_t pOverEmax = 1.2; //tight\r
31 Double_t dRmax = 0.02; //tight\r
32 if (gSystem->Getenv("ELECUTSET")){\r
33 kCutSet = atoi(gSystem->Getenv("ELECUTSET"));\r
34 }\r
35 if(kCutSet == kLooseTight) {\r
36 pOverEmin = 0.6; //loose\r
37 pOverEmax = 1.4; //loose\r
38 dRmax = 0.02; //tight\r
39 }\r
40 if(kCutSet == kTightLoose) {\r
41 pOverEmin = 0.8; //tight\r
42 pOverEmax = 1.2; //tight\r
43 dRmax = 0.05; //loose\r
44 }\r
45 if(kCutSet == kLoose2) {\r
46 pOverEmin = 0.6; //loose\r
47 pOverEmax = 1.4; //loose\r
48 dRmax = 0.05; //loose\r
49 } \r
50\r
51 //Alternatively, select input via anaInputData environment variable.\r
52 if (gSystem->Getenv("anaInputData")){\r
53 TString kInputData = gSystem->Getenv("anaInputData");\r
54 if( kInputData == "AOD" ){\r
55 kInputIsESD = kFALSE;\r
56 kFollowsFilter = kFALSE;\r
57 }\r
58 }\r
59\r
60 //Alternatively, adjust for real data based on kMC value.\r
61 if (gSystem->Getenv("anakMC")){\r
62 kMC = atoi(gSystem->Getenv("anakMC"));\r
63 }\r
64\r
65 //Detector Fiducial Cuts\r
66 AliFiducialCut * fidCut = new AliFiducialCut();\r
67 fidCut->DoCTSFiducialCut(kFALSE) ;\r
68 fidCut->DoEMCALFiducialCut(kFALSE) ;\r
69 fidCut->DoPHOSFiducialCut(kFALSE) ;\r
70\r
71 //fidCut->SetSimpleCTSFiducialCut(0.9,0.,360.);\r
72 //fidCut->SetSimpleEMCALFiducialCut(0.7,80.,190.);\r
73 //fidCut->SetSimplePHOSFiducialCut(0.13,220.,320.);\r
74\r
75 fidCut->Print("");\r
76\r
77 //----------------------------------------------------------- \r
78 // Reader\r
79 //-----------------------------------------------------------\r
80 if(kInputIsESD && !kFollowsFilter)AliCaloTrackESDReader *reader = new AliCaloTrackESDReader();\r
81 else AliCaloTrackAODReader *reader = new AliCaloTrackAODReader();\r
82 reader->SetDebug(-1);//10 for lots of messages\r
83\r
84 //Switch on or off the detectors information that you want\r
85 reader->SwitchOnEMCAL();\r
86 reader->SwitchOnCTS();\r
87 //reader->SwitchOffEMCALCells(); \r
88 reader->SwitchOffPHOS();\r
89 //reader->SwitchOffPHOSCells(); \r
90\r
91 //Kine\r
92 if(kMC && !kInputIsESD){\r
93 reader->SwitchOffStack(); // On by default, remember to SwitchOnMCData() in analysis classes\r
94 reader->SwitchOnAODMCParticles(); // Off by default, remember to SwitchOnMCData() in analysis classes\r
95 }\r
96\r
97 //Select Trigger Class for real data\r
98 if(!kMC) reader->SetFiredTriggerClassName("CINT1B-ABCE-NOPF-ALL");\r
99\r
100 //Min particle pT\r
101 reader->SetCTSPtMin(0.0); //new\r
102 reader->SetEMCALPtMin(0.0); //new\r
103 if(kFollowsFilter)reader->SetTrackStatus(0); //to prevent automatic TPC and ITS refit\r
104\r
105 //In case of generating jet events (with PYTHIA), if pt hard bin is small\r
106 //reject events with large difference between ptHard and triggered jet\r
107 //reader->SetPtHardAndJetPtComparison(kTRUE);\r
108\r
109 reader->SetFiducialCut(fidCut);\r
110\r
111 if(!kInputIsESD){\r
112 // Analysis with tracks, select only tracks with\r
113 // following bits\r
114\r
115 // //We want tracks fitted in the detectors:\r
116 // ULong_t status=AliAODTrack::kTPCrefit;\r
117 // status|=AliAODTrack::kITSrefit;\r
118 \r
119 // We want tracks whose PID bit is set:\r
120 // ULong_t status =AliAODTrack::kITSpid;\r
121 // status|=AliAODTrack::kTPCpid; \r
122\r
123 // reader->SetTrackStatus(status);\r
124 }\r
125\r
126 reader->Print("");\r
127\r
128\r
129 //Detector Fiducial Cuts\r
130 AliFiducialCut * fidCut2 = new AliFiducialCut();\r
131 fidCut2->DoEMCALFiducialCut(kTRUE) ;\r
132 fidCut2->SetSimpleEMCALFiducialCut(0.7,80.,190.);\r
133\r
134 fidCut2->DoCTSFiducialCut(kTRUE) ;\r
135 fidCut2->SetSimpleCTSFiducialCut(0.9,0.,360.); \r
136\r
137 fidCut2->Print("");\r
138\r
139 //---------------------------------------------------------------------\r
140 // Analysis algorithm\r
141 //---------------------------------------------------------------------\r
142\r
143 AliAnaBtag *anaelectron = new AliAnaBtag();\r
144 anaelectron->SetDebug(-1); //10 for lots of messages\r
145 anaelectron->SetCalorimeter("EMCAL");\r
146 if(kMC){\r
147 anaelectron->SwitchOffDataMC();\r
148 anaelectron->SetMinPt(1.);\r
149 }\r
150 anaelectron->SetOutputAODName("Electrons");\r
151 anaelectron->SetOutputAODClassName("AliAODPWG4Particle");\r
152 anaelectron->SetWriteNtuple(kFALSE);\r
153 //Determine which cuts to use based on enum\r
154 anaelectron->SetpOverEmin(pOverEmin);\r
155 anaelectron->SetpOverEmax(pOverEmax);\r
156 anaelectron->SetResidualCut(dRmax);\r
157 //Set Histrograms bins and ranges\r
158 anaelectron->SetHistoPtRangeAndNBins(0, 100, 100) ;\r
159 anaelectron->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;\r
160 anaelectron->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;\r
161 anaelectron->Print("");\r
162\r
163 //---------------------------------------------------------------------\r
164 // Set analysis algorithm and reader\r
165 //---------------------------------------------------------------------\r
166 maker = new AliAnaPartCorrMaker();\r
167 maker->SetReader(reader);//pointer to reader\r
168 maker->AddAnalysis(anaelectron,0);\r
169 maker->SetAnaDebug(-1) ;\r
170 maker->SwitchOnHistogramsMaker() ;\r
171 maker->SwitchOnAODsMaker() ;\r
172\r
173 maker->Print("");\r
174 //\r
175 printf("============================ \n");\r
176 printf("END ConfigAnalysisElectron() \n");\r
177 printf("============================ \n");\r
178 return maker ;\r
179}\r