]>
Commit | Line | Data |
---|---|---|
7cab7ab5 | 1 | |
2 | void InitHistograms(AliDielectron *die, Int_t cutDefinition); | |
3 | void InitCF(AliDielectron* die, Int_t cutDefinition); | |
4 | ||
5 | void InitMCCuts(Bool_t mcStatus, Int_t nPDGC, TArrayI* pdgC); | |
6 | ||
7 | void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition); | |
8 | ||
9 | void SetupPairCuts(AliDielectron *die, Int_t cutDefinition); | |
10 | ||
11 | void EnableMC(); | |
12 | AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition); | |
13 | AliESDtrackCuts *SetupESDtrackCutsITSSA(Int_t cutDefinition); | |
14 | ||
0034d0a6 | 15 | TString names=("Base"); |
7cab7ab5 | 16 | TObjArray *arrNames=names.Tokenize(";"); |
17 | const Int_t nDie=arrNames->GetEntries(); | |
18 | Bool_t MCenabled=kFALSE; | |
19 | ||
ddf338d8 | 20 | Bool_t kMix = 0; //Event mixing (M.Koehler) |
7cab7ab5 | 21 | |
22 | AliDielectron* ConfigLowMassDiEOezdemir(Int_t cutDefinition,Bool_t hasMC=kFALSE) | |
23 | { | |
24 | // | |
25 | // Setup the instance of AliDielectron | |
26 | // | |
27 | ||
28 | MCenabled=hasMC; | |
29 | ||
30 | // create the actual framework object | |
31 | ||
32 | TString name=Form("%02d",cutDefinition); | |
33 | if ((cutDefinition)<arrNames->GetEntriesFast()){ | |
34 | name=arrNames->At((cutDefinition))->GetName(); | |
35 | } | |
36 | ||
37 | //thisCut only relevant for MC: | |
38 | AliDielectron *die = | |
39 | new AliDielectron(Form | |
40 | ("%s",name.Data()), | |
41 | Form("Track cuts: %s",name.Data())); | |
42 | //Event mixing (M.Koehler) | |
43 | if(kMix){ | |
44 | AliDielectronMixingHandler *mix = new AliDielectronMixingHandler; | |
45 | mix->SetMixType(AliDielectronMixingHandler::kAll); | |
46 | mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10."); | |
47 | mix->AddVariable(AliDielectronVarManager::kNacc,"0,10000"); | |
48 | mix->SetDepth(10); | |
49 | die->SetMixingHandler(mix); | |
50 | } | |
51 | ||
52 | // cut setup | |
53 | SetupTrackCuts(die,cutDefinition); | |
54 | SetupPairCuts(die,cutDefinition); | |
55 | ||
56 | // histogram setup | |
57 | // only if an AliDielectronHistos object is attached to the | |
58 | // dielectron framework histograms will be filled | |
59 | // | |
60 | InitHistograms(die,cutDefinition); | |
61 | ||
62 | // the last definition uses no cuts and only the QA histograms should be filled! | |
0034d0a6 | 63 | //InitCF(die,cutDefinition); |
7cab7ab5 | 64 | /* |
65 | AliDielectronTrackRotator *rot=new AliDielectronTrackRotator; | |
66 | rot->SetIterations(1); | |
67 | rot->SetConeAnglePhi(TMath::Pi()); | |
68 | die->SetTrackRotator(rot); | |
69 | */ | |
70 | return die; | |
71 | } | |
72 | ||
73 | //______________________________________________________________________________________ | |
74 | void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition) | |
75 | { | |
76 | // | |
77 | // Setup the track cuts | |
78 | // | |
79 | // | |
80 | ||
81 | ||
82 | // | |
83 | // ============ DALITZ REJECTION CUTS ==================== | |
84 | // | |
85 | AliDielectronCutGroup* cgITSTPC = new AliDielectronCutGroup("cgITSTPC","cgITSTPC",AliDielectronCutGroup::kCompAND); | |
86 | AliDielectronCutGroup* cgITSSA = new AliDielectronCutGroup("cgITSSA","cgITSSA",AliDielectronCutGroup::kCompAND); | |
87 | ||
88 | cgITSTPC->AddCut(SetupESDtrackCuts(cutDefinition)); | |
89 | ||
90 | AliDielectronPID *pidITSTPC = new AliDielectronPID("TPCpre","TPCpre"); | |
91 | pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.); | |
92 | cgITSTPC->AddCut(pidITSTPC); | |
93 | ||
94 | //--- | |
95 | ||
96 | cgITSSA->AddCut(SetupESDtrackCutsITSSA(cutDefinition)); | |
97 | ||
98 | AliDielectronPID *pidITSSA = new AliDielectronPID("pidITSSA","pidITSSA"); | |
99 | //pidITSSA->AddCut(AliDielectronPID::kITS,AliPID::kPion,-999999.,-2.5,0.0,0.15,kFALSE ); //18.01.11: electron ID@lowpT | |
100 | //pidITSSA->AddCut(AliDielectronPID::kITS,AliPID::kElectron,-3.,3.); | |
101 | cgITSSA->AddCut(pidITSSA); | |
102 | ||
103 | // | |
104 | // ================Setup PID-Cuts (for final acceptance)=============== | |
105 | // | |
106 | AliDielectronVarCuts *pt = new AliDielectronVarCuts("P>.2","P>.2"); | |
107 | pt->AddCut(AliDielectronVarManager::kP,.2,1e30); | |
108 | ||
109 | // + [2] added for Dec2010 Cut! | |
110 | TF1 *lowerCut = new TF1("lowerCut", "[0] * TMath::Exp([1]*x) + [2]", 0, 20); | |
111 | /* until Nov2010 | |
112 | lowerCut->SetParameter(0, -2.7); | |
113 | lowerCut->SetParameter(1, -0.4357); | |
114 | */ | |
115 | /* 18.01.2011 ALiHFEpid.cxx */ | |
116 | lowerCut->SetParameter(0,-3.7); | |
117 | lowerCut->SetParameter(1,-0.8); | |
118 | lowerCut->SetParameter(2,-0.35); | |
119 | /* | |
120 | if (MCenabled) { //overwrite parameters | |
121 | lowerCut->SetParameter(0,-2.5); | |
122 | lowerCut->SetParameter(2,-2.2); | |
123 | } | |
124 | */ | |
125 | //___________________________________________ | |
126 | ||
127 | AliDielectronPID *pidTPChardTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE"); | |
128 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,lowerCut,3.,0.0,100.,kFALSE); | |
129 | pidTPChardTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE ); | |
130 | ||
131 | //___________________________________________ | |
0034d0a6 | 132 | AliDielectronPID *pidTT = new AliDielectronPID("TPC-TOF","TPC-TOF"); |
133 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE); | |
134 | pidTT->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -2. , 2. , 0.4 , 5., kFALSE ); | |
135 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE); | |
7cab7ab5 | 136 | |
137 | //___________________________________________ | |
138 | AliDielectronPID *pidTTnew = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE"); | |
139 | pidTTnew->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE); | |
140 | pidTTnew->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 5., kFALSE ); | |
141 | pidTTnew->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE); | |
7cab7ab5 | 142 | |
143 | //___________________________________________ | |
144 | AliDielectronPID *pidTTonlyKP = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE"); | |
145 | pidTTonlyKP->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,lowerCut,3.,0.0,100.,kFALSE); | |
146 | pidTTonlyKP->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 100., kFALSE ); | |
147 | pidTTonlyKP->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3,3.,0.,0.4,kTRUE); | |
148 | pidTTonlyKP->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3,3.,0.,0.4,kTRUE); | |
149 | ||
150 | //___________________________________________ | |
151 | ||
152 | AliDielectronPID *pidTTupp = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE"); | |
153 | pidTTupp->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.,3.,0.0,100.,kFALSE); | |
154 | pidTTupp->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -1. , 3. , 0.4 , 100., kFALSE ); | |
155 | pidTTupp->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-1,3.,0.,0.4,kTRUE); | |
156 | pidTTupp->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-1,3.,0.,0.4,kTRUE); | |
157 | pidTTupp->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-1,3.,0.,0.4,kTRUE); | |
158 | //___________________________________________ | |
159 | ||
160 | AliDielectronPID *pidITS = new AliDielectronPID("ITS PID","ITS PID"); | |
161 | //pidITS->AddCut(AliDielectronPID::kITS,AliPID::kElectron,-1.,1.,0.0,100.,kFALSE ); | |
162 | pidITS->AddCut(AliDielectronPID::kITS,AliPID::kPion,-999999.,-2.5,0.0,0.15,kFALSE ); //18.01.11: electron ID@lowpT | |
163 | pidITS->AddCut(AliDielectronPID::kITS,AliPID::kPion,-2.,2.,0.15,0.3,kTRUE ); //18.01.11: electron ID@lowpT | |
164 | //move to config section, to give additional point in CF | |
165 | pidITS->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,lowerCut,3.,0.0,100.,kFALSE); | |
166 | pidITS->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.0,100.,kTRUE); | |
167 | pidITS->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.3 , 100., kFALSE ); | |
168 | ||
169 | AliDielectronVarCuts *ptITS = new AliDielectronVarCuts("Pt>.05","Pt>.05"); | |
170 | ptITS->AddCut(AliDielectronVarManager::kPt,.05,1e30); | |
171 | //___________________________________________ | |
172 | ||
173 | AliDielectronPID *pidJpsi = new AliDielectronPID("TPC Jpsi-like","TPC Jpsi-like"); | |
174 | pidJpsi->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,lowerCut,3.,kFALSE); | |
175 | pidJpsi->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3,3.,kTRUE); //Difference: HFE-like inclusion | |
176 | pidJpsi->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,kTRUE); //Difference: HFE-like inclusion | |
177 | pidJpsi->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3,3.,kTRUE); //Difference: HFE-like inclusion | |
178 | ||
179 | //___________________________________________ | |
180 | AliDielectronPID *pidTPConlyE = new AliDielectronPID("TPC PID","TPC PID"); | |
181 | pidTPConlyE->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.,100.,kFALSE); | |
182 | ||
183 | //___________________________________________ | |
184 | AliDielectronPID *pidTPC = new AliDielectronPID("TPC PID","TPC PID"); | |
185 | pidTPC->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.,100.,kFALSE); | |
186 | pidTPC->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-1.5,1.5,0.,100.,kTRUE); | |
187 | pidTPC->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-1.5,1.5,0.,100.,kTRUE); | |
188 | pidTPC->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-1.5,1.5,0.,100.,kTRUE); | |
189 | ||
190 | // | |
191 | // =============CREATE GROUPS FOR ============== | |
192 | // | |
193 | ||
194 | //Soft cut conditions for initial single-track analysis | |
195 | AliDielectronCutGroup* cgInitialTrackFilter = new AliDielectronCutGroup("cgInitialTrackFilter","cgInitialTrackFilter",AliDielectronCutGroup::kCompOR); | |
196 | cgInitialTrackFilter->AddCut(cgITSTPC); | |
197 | cgInitialTrackFilter->AddCut(cgITSSA); | |
198 | ||
199 | ||
200 | //Setup possible CutGroups for Step2 | |
201 | //HFE-Like: | |
202 | // | |
203 | //ITS-TPC-TOF | |
204 | AliDielectronCutGroup* cgSecondTrackFilterITS = new AliDielectronCutGroup("cgSecondTrackFilterITS","cgSecondTrackFilterITS",AliDielectronCutGroup::kCompAND); | |
205 | cgSecondTrackFilterITS->AddCut(cgITSTPC); | |
206 | cgSecondTrackFilterITS->AddCut(pidITS); | |
207 | cgSecondTrackFilterITS->AddCut(ptITS); | |
208 | ||
209 | ||
210 | //Config 6: TPC-TOF classic rej. only kaon & proton | |
211 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPConlyKP = new AliDielectronCutGroup("cgPIDTPConlyKP","cgPIDTPConlyKP",AliDielectronCutGroup::kCompAND); | |
212 | cgSecondTrackFilterPIDTPConlyKP->AddCut(pt); | |
213 | cgSecondTrackFilterPIDTPConlyKP->AddCut(SetupESDtrackCuts(cutDefinition)); | |
214 | cgSecondTrackFilterPIDTPConlyKP->AddCut(pidTTonlyKP); | |
215 | ||
216 | ||
217 | //Config 0: TPC-TOF classic | |
218 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPCclassic = new AliDielectronCutGroup("cgPIDTPCclassic","cgPIDTPCclassic",AliDielectronCutGroup::kCompAND); | |
7cab7ab5 | 219 | cgSecondTrackFilterPIDTPCclassic->AddCut(SetupESDtrackCuts(cutDefinition)); |
0034d0a6 | 220 | //cgSecondTrackFilterPIDTPCclassic->AddCut(pidTT); |
7cab7ab5 | 221 | |
222 | //Config 1: TPC-TOF Classic with -1.5/3 sigma (soft TOF, TPC exclusion) | |
223 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND); | |
7cab7ab5 | 224 | cgSecondTrackFilterPIDTPC->AddCut(SetupESDtrackCuts(cutDefinition)); |
225 | cgSecondTrackFilterPIDTPC->AddCut(pidTTnew); | |
226 | ||
227 | //Config 2: TPC only electrons | |
228 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPConlyE = new AliDielectronCutGroup("cgPIDTPConlyE","cgPIDTPConlyE",AliDielectronCutGroup::kCompAND); | |
229 | cgSecondTrackFilterPIDTPConlyE->AddCut(SetupESDtrackCuts(cutDefinition)); | |
230 | cgSecondTrackFilterPIDTPConlyE->AddCut(pidTPConlyE); | |
231 | ||
232 | //TPC (kaon, proton, pion exclusion) | |
233 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPCSA = new AliDielectronCutGroup("cgPIDTPCSA","cgPIDTPCSA",AliDielectronCutGroup::kCompAND); | |
234 | cgSecondTrackFilterPIDTPCSA->AddCut(SetupESDtrackCuts(cutDefinition)); | |
235 | cgSecondTrackFilterPIDTPCSA->AddCut(pidTPC); | |
236 | ||
237 | //Not in use | |
238 | AliDielectronCutGroup* cgSecondTrackFilterJpsi = new AliDielectronCutGroup("cgSecondTrackFilterJpsi","cgSecondTrackFilterJpsi",AliDielectronCutGroup::kCompAND); | |
239 | cgSecondTrackFilterJpsi->AddCut(pt); | |
240 | cgSecondTrackFilterJpsi->AddCut(pidJpsi); | |
241 | cgSecondTrackFilterJpsi->AddCut(cgITSTPC); | |
242 | ||
243 | AliDielectronCutGroup* cgSecondTrackFilterCombinedTPC= new AliDielectronCutGroup("cgSecondTrackFilterCombinedTPC","cgSecondTrackFilterCombinedTPC",AliDielectronCutGroup::kCompOR); | |
244 | cgSecondTrackFilterCombinedTPC->AddCut(cgSecondTrackFilterPIDTPC); | |
245 | cgSecondTrackFilterCombinedTPC->AddCut(cgSecondTrackFilterJpsi); | |
246 | ||
247 | ||
248 | ||
249 | //Correct BG scheme for Combinatorial BG | |
250 | //die->SetPreFilterUnlikeOnly(); | |
251 | die->SetPreFilterAllSigns(); | |
252 | die->SetUseKF(kFALSE); | |
253 | ||
254 | //New Cut-scheme | |
255 | // | |
256 | // | |
7cab7ab5 | 257 | |
0034d0a6 | 258 | // if ( cutDefinition ==0 ) { |
259 | // //Step1: TrackFilter, nur grob | |
260 | // die->GetTrackFilter().AddCuts(cgInitialTrackFilter); | |
261 | // //Step2: "Final" PID | |
262 | // die->GetPairPreFilterLegs().AddCuts(cgSecondTrackFilterPIDTPC); | |
263 | // } | |
264 | ||
7cab7ab5 | 265 | |
7cab7ab5 | 266 | if ( cutDefinition ==0 ) { |
0034d0a6 | 267 | die->GetTrackFilter().AddCuts(cgSecondTrackFilterPIDTPC); |
7cab7ab5 | 268 | } |
7cab7ab5 | 269 | |
270 | } | |
271 | //______________________________________________________________________________________ | |
272 | ||
273 | void SetupPairCuts(AliDielectron *die, Int_t cutDefinition) | |
274 | { | |
275 | // | |
276 | // Setup the pair cuts | |
277 | // | |
278 | ||
7cab7ab5 | 279 | |
280 | if(cutDefinition == 0){ | |
281 | ||
282 | AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","conversion tagging"); | |
283 | noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE); | |
284 | die->GetTrackFilter().AddCuts(noconv); | |
285 | ||
0034d0a6 | 286 | //pair rapidity |
287 | // AliDielectronVarCuts *RapidityCut=new AliDielectronVarCuts("RapidityCut","RapidityCut"); | |
288 | // RapidityCut->AddCut(AliDielectronVarManager::kY, -0.8 , 0.8); | |
289 | // die->GetPairFilter().AddCuts(RapidityCut); | |
7cab7ab5 | 290 | |
291 | AliDielectronVarCuts *PhiV = new AliDielectronVarCuts("PhiV","PhiV");//mass and Phiv together | |
292 | PhiV->AddCut(AliDielectronVarManager::kM, 0.0 , 0.05); | |
293 | PhiV->AddCut(AliDielectronVarManager::kPhivPair, 2.5 , 3.2 ); | |
294 | die->GetPairPreFilter().AddCuts(PhiV); | |
295 | /* | |
296 | AliDielectronVarCuts *PhiV2 = new AliDielectronVarCuts("PhiV2","PhiV2");//mass and Phiv together | |
297 | PhiV2->AddCut(AliDielectronVarManager::kM, 0.05 , 1000.); | |
298 | ||
299 | AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR); | |
300 | pairCutsCG2->AddCut(PhiV); | |
301 | pairCutsCG2->AddCut(PhiV2); | |
302 | die->GetPairFilter().AddCuts(pairCutsCG2); | |
303 | */ | |
0034d0a6 | 304 | /* |
305 | if (MCenabled) { | |
306 | AliDielectronVarCuts *mcpid =new AliDielectronVarCuts("mcpid","mcpid"); | |
307 | mcpid->SetCutType(AliDielectronVarCuts::kAny); | |
308 | mcpid->AddCut(AliDielectronVarManager::kPdgCode, 11); | |
309 | mcpid->AddCut(AliDielectronVarManager::kPdgCode, -11); | |
310 | die->GetTrackFilter().AddCuts(mcpid); | |
311 | ||
312 | AliDielectronVarCuts *MCnoConv =new AliDielectronVarCuts("MCnoConv","MCnoConv"); | |
313 | MCnoConv->AddCut(AliDielectronVarManager::kPdgCodeMother, 22,kTRUE); | |
314 | die->GetTrackFilter().AddCuts(MCnoConv); | |
7cab7ab5 | 315 | } |
0034d0a6 | 316 | */ |
317 | } | |
7cab7ab5 | 318 | |
319 | } | |
320 | ||
321 | //______________________________________________________________________________________ | |
322 | AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition) | |
323 | { | |
324 | // | |
325 | // Setup default AliESDtrackCuts | |
326 | // | |
327 | AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts; | |
328 | //esdTrackCuts->SetDCAToVertex2D(kTRUE); | |
329 | ||
330 | esdTrackCuts->SetMaxDCAToVertexZ(3.0); | |
331 | esdTrackCuts->SetMaxDCAToVertexXY(1.0); | |
332 | //esdTrackCuts->SetMaxNsigmaToVertex(3.0); | |
333 | ||
334 | esdTrackCuts->SetPtRange( 0.2 , 100.0); | |
335 | esdTrackCuts->SetEtaRange( -0.8 , 0.8 ); | |
336 | esdTrackCuts->SetRequireSigmaToVertex(kFALSE); | |
337 | esdTrackCuts->SetAcceptKinkDaughters(kFALSE); | |
338 | esdTrackCuts->SetDCAToVertex2D(kFALSE); | |
339 | ||
340 | esdTrackCuts->SetRequireITSRefit(kTRUE); | |
0034d0a6 | 341 | //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth); //SPDboth |
342 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); //Base | |
343 | //esdTrackCuts->SetMinNClustersITS(4); // ITSCls4 | |
344 | esdTrackCuts->SetMinNClustersITS(3); //Base | |
345 | ||
7cab7ab5 | 346 | esdTrackCuts->SetRequireTPCRefit(kTRUE); |
0034d0a6 | 347 | //esdTrackCuts->SetMinNClustersTPC(100); //TPCCls100 |
348 | esdTrackCuts->SetMinNClustersTPC(80); //Base | |
349 | ||
350 | ||
351 | //esdTrackCuts->SetMinNCrossedRowsTPC(120); //TPCCrsR120 | |
352 | esdTrackCuts->SetMinNCrossedRowsTPC(100); //Base | |
353 | ||
7cab7ab5 | 354 | esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.5); |
355 | esdTrackCuts->SetMaxChi2PerClusterTPC(4); | |
356 | ||
357 | return esdTrackCuts; | |
358 | } | |
359 | ||
360 | //______________________________________________________________________________________ | |
361 | ||
362 | AliESDtrackCuts *SetupESDtrackCutsITSSA(Int_t cutDefinition) | |
363 | { | |
364 | // | |
365 | // Setup default AliESDtrackCuts | |
366 | // | |
367 | AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts; | |
368 | esdTrackCuts->SetDCAToVertex2D(kTRUE); | |
369 | ||
370 | esdTrackCuts->SetMaxDCAToVertexZ(3.0); | |
371 | esdTrackCuts->SetMaxDCAToVertexXY(1.0); | |
372 | ||
373 | esdTrackCuts->SetEtaRange( -0.84 , 0.84 ); | |
374 | ||
375 | esdTrackCuts->SetPtRange( 0.0, 200.); | |
376 | ||
377 | esdTrackCuts->SetAcceptKinkDaughters(kFALSE); | |
378 | esdTrackCuts->SetRequireITSRefit(kTRUE); | |
379 | esdTrackCuts->SetRequireITSStandAlone(kTRUE); | |
380 | ||
381 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); | |
382 | esdTrackCuts->SetMinNClustersITS(3); //PhotonGroup-Dalitz: 2?! | |
383 | ||
384 | ||
385 | return esdTrackCuts; | |
386 | } | |
387 | ||
388 | //______________________________________________________________________________________ | |
389 | ||
390 | void InitHistograms(AliDielectron *die, Int_t cutDefinition) | |
391 | { | |
7cab7ab5 | 392 | // |
393 | // Initialise the histograms | |
394 | // | |
395 | ||
396 | //Setup histogram classes | |
397 | AliDielectronHistos *histos= | |
398 | new AliDielectronHistos(die->GetName(), | |
399 | die->GetTitle()); | |
400 | ||
401 | ||
402 | ||
403 | //Initialise histogram classes | |
404 | histos->SetReservedWords("Track;Pair"); | |
0034d0a6 | 405 | //histos->SetReservedWords("Track"); |
406 | ||
7cab7ab5 | 407 | //Event class |
408 | histos->AddClass("Event"); | |
409 | ||
410 | ||
411 | //Track classes | |
412 | //to fill also track info from 2nd event loop until 2 | |
413 | for (Int_t i=0; i<2; ++i){ | |
414 | histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i))); | |
415 | } | |
416 | ||
417 | //Pair classes | |
418 | // to fill also mixed event histograms loop until 10 | |
419 | ||
420 | for (Int_t i=0; i<3; ++i){ | |
421 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i))); | |
422 | ||
423 | } | |
424 | ||
425 | if(kMix){ | |
426 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); //ME ++ | |
427 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));//ME -+ | |
428 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));//ME +- | |
429 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); // ME -- | |
430 | } | |
431 | ||
432 | //if(kRot)histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10)));//Rot | |
433 | ||
434 | ||
435 | //add histograms to event class | |
436 | histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",1,0,1,AliDielectronVarManager::kNevents); | |
437 | histos->UserHistogram("Event","ZVertex","ZVertex;ZVertex/cm",480,-12.,12.,AliDielectronVarManager::kZvPrim); | |
438 | histos->UserHistogram("Event","nESDTracks","ESD tracks;ESD tracks;Number events",100,0,200,AliDielectronVarManager::kTracks); | |
439 | histos->UserHistogram("Event","Nacc","Number of accepted tracks;Number events",100,0,200,AliDielectronVarManager::kNacc); | |
440 | histos->UserHistogram("Event","NVtxContrib","Number of Vertex Contributor;NVtx;Number events",100,0,100,AliDielectronVarManager::kNVtxContrib); | |
441 | ||
442 | ||
443 | //add histograms to Track classes | |
444 | histos->UserHistogram("Track","P","P;P [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPIn); | |
445 | histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPt); | |
446 | histos->UserHistogram("Track","Eta","Eta; Eta ;#tracks",100,-1.,1.,AliDielectronVarManager::kEta); | |
447 | histos->UserHistogram("Track","Phi","Phi; Phi ;#tracks",640,0.,6.4,AliDielectronVarManager::kPhi); | |
448 | ||
449 | ||
450 | histos->UserHistogram("Track","Eta_phi","Eta vs Phi;Eta;Phi",100,-1.,1.,320,0.,6.4,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); | |
451 | histos->UserHistogram("Track","Eta_pt","Eta vs Pt;Eta;Pt",100,-1.,1.,500,0.,10.,AliDielectronVarManager::kEta,AliDielectronVarManager::kPt); | |
452 | Content-type: text/html ]>