]>
Commit | Line | Data |
---|---|---|
f53e4bfa | 1 | void SetupTrackCutsDieleData(AliDielectron *diele, Int_t cutDefinition, Bool_t isAOD); |
2 | void SetupPairCutsDieleData(AliDielectron *diele, Int_t cutDefinition, Bool_t isAOD); | |
3 | void InitHistogramsDieleData(AliDielectron *diele, Int_t cutDefinition, Bool_t isAOD); | |
4 | void InitCFDieleData(AliDielectron *diele, Int_t cutDefinition, Bool_t isAOD); | |
5 | ||
6 | ||
7 | TString namesDieleData=("basicQ+SPDfirst+pt>1+PID; basicQ+SPDany+pt>1+PID; basicQ+ITS012+pt>1+PID; basicQ+SPDany+pt>1+noexclPIDforcontrolpurpose");//; basicQ+SPDany+pt>1+p>1.2+PIDrequirementsHFEnoexclPIDforcontrolpurpose; basicQ+SPDany+pt>1+p>1.2+PIDrequirementsHFE+PID; basicQ+SPDany+p>1.+PID"); | |
8 | //TString namesDieleData=("basicQ+SPDfirst+pt>1+PID"); | |
9 | ||
10 | TObjArray *arrNamesDieleData=namesDieleData.Tokenize("; "); | |
11 | ||
12 | const Int_t nDie=arrNamesDieleData->GetEntries(); | |
13 | ||
14 | AliDielectron* ConfigJpsi_sweber_pPb_TRDtrigger(Int_t cutDefinition, Bool_t isAOD=kFALSE/*must be kTRUE for AODs old setting*/) | |
15 | { | |
16 | // | |
17 | // Setup the instance of AliDielectron | |
18 | // | |
19 | ||
20 | // create the actual framework object | |
21 | TString name=Form("%02d",cutDefinition); | |
22 | if (cutDefinition<arrNamesDieleData->GetEntriesFast()){ | |
23 | name=arrNamesDieleData->At(cutDefinition)->GetName(); | |
24 | } | |
25 | AliDielectron *diele = new AliDielectron(Form("%s",name.Data()), | |
26 | Form("Track cuts: %s",name.Data())); | |
27 | ||
28 | ||
29 | // estimators filename | |
30 | //NOTE: what does this mean?: estimator for pp multiplicity, not needed for instance for my pA-purpose(mwinn 16.1.2012).. | |
31 | diele->SetEstimatorFilename("$ALICE_ROOT/PWGDQ/dielectron/files/estimators.root"); | |
32 | //diele->SetEstimatorFilename("estimators.root"); | |
33 | // cut setup | |
34 | SetupTrackCutsDieleData(diele, cutDefinition, isAOD); | |
35 | SetupPairCutsDieleData(diele, cutDefinition, isAOD); | |
36 | // | |
37 | // histogram setup | |
38 | // only if an AliDielectronHistos object is attached to the | |
39 | // dielelectron framework histograms will be filled | |
40 | // | |
41 | InitHistogramsDieleData(diele, cutDefinition, isAOD); | |
42 | ||
43 | // the last definition uses no cuts and only the QA histograms should be filled!, now for all cuts | |
44 | if(cutDefinition == 2 || cutDefinition == 3 || cutDefinition == 4 || cutDefinition == 5|| cutDefinition == 6) InitCFDieleData(diele, cutDefinition, isAOD);//first 2 cut sets in 3rd included | |
45 | ||
46 | AliDielectronTrackRotator *rot=new AliDielectronTrackRotator; | |
47 | if(cutDefinition == 0 || cutDefinition == 1 || cutDefinition == 2 || cutDefinition == 3 || cutDefinition == 4 || cutDefinition == 5|| cutDefinition == 6) rot->SetConeAnglePhi(TMath::Pi()); | |
48 | //else if(cutDefinition == 2) rot->SetConeAnglePhi(TMath::Pi()/180.*135.); | |
49 | //rot->SetIterations(10); | |
50 | rot->SetIterations(20); | |
51 | diele->SetTrackRotator(rot); | |
52 | ||
53 | /* AliDielectronMixingHandler *mix = new AliDielectronMixingHandler; | |
54 | mix->SetMixType(AliDielectronMixingHandler::kAll); | |
55 | mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10."); | |
56 | //NOTE: other mixing classes probably needed!!! | |
57 | mix->SetDepth(10); | |
58 | diele->SetMixingHandler(mix);*/ | |
59 | ||
60 | ||
61 | return diele; | |
62 | } | |
63 | ||
64 | //______________________________________________________________________________________ | |
65 | void SetupTrackCutsDieleData(AliDielectron *diele, Int_t cutDefinition, Bool_t isAOD) | |
66 | { | |
67 | // | |
68 | // Setup the track cuts | |
69 | // | |
70 | ||
71 | //if (!isAOD) {//NOTE: seems to work, see AliDielectronTrackCuts method IsSelected at the beginning, to be checked with AODs | |
72 | //exclude conversion electrons selected by the tender | |
73 | AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","noConv"); | |
74 | noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE); | |
75 | diele->GetTrackFilter().AddCuts(noconv); | |
76 | // } | |
77 | AliDielectronTrackCuts *trackCuts=new AliDielectronTrackCuts("ITSandgeneral_trackCuts","ITSandgeneral_trackCuts"); | |
78 | //ITS related cuts | |
79 | if (cutDefinition==0) | |
80 | trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); | |
81 | else if ((cutDefinition==1)||(cutDefinition ==3)||(cutDefinition ==4)||(cutDefinition ==5)||(cutDefinition ==6)) | |
82 | trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); | |
83 | trackCuts->SetRequireTPCRefit(kTRUE); | |
84 | trackCuts->SetRequireITSRefit(kTRUE); | |
85 | diele->GetTrackFilter().AddCuts(trackCuts); | |
86 | ||
87 | //Pt cut ---------------------------------------------------------- | |
88 | AliDielectronVarCuts *pt = new AliDielectronVarCuts("trackkineandTPCQ","trackkine_and_TPCQ"); | |
89 | if ((cutDefinition==0)||(cutDefinition==1)||(cutDefinition ==3)||(cutDefinition ==4)||(cutDefinition ==5)) | |
90 | pt->AddCut(AliDielectronVarManager::kPt,1.,1e30); | |
91 | else if (cutDefinition==6) pt->AddCut(AliDielectronVarManager::kP,1.,1e30); | |
92 | pt->AddCut(AliDielectronVarManager::kKinkIndex0,0.); | |
93 | // ITS 0 1 2 : only for third variant | |
94 | if (cutDefinition==2) pt->AddCut(AliDielectronVarManager::kITSLayerFirstCls,0.,2.5); | |
95 | //AOD additions since there are no AliESDtrackCuts ----------------- | |
96 | // | |
97 | // TPC #clusteres cut | |
98 | pt->AddCut(AliDielectronVarManager::kNclsTPC,70.,160.); | |
99 | if((cutDefinition==4)||(cutDefinition==5)) pt->AddCut(AliDielectronVarManager::kNclsTPC,120.,160.); | |
100 | pt->AddCut(AliDielectronVarManager::kTPCchi2Cl,0.,4.); | |
101 | pt->AddCut(AliDielectronVarManager::kEta,-0.9,0.9); | |
102 | //TODO: DCA cuts to be investigated!!! NOTE: why?? (mwinn, 15.01.2013) | |
103 | pt->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.); | |
104 | pt->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.); | |
105 | ||
106 | diele->GetTrackFilter().AddCuts(pt); | |
107 | ||
108 | // PID cuts -------------------------------------------------------- | |
109 | if(cutDefinition ==0 || cutDefinition ==1 ||cutDefinition ==2||cutDefinition ==6){ | |
110 | AliDielectronPID *pid = new AliDielectronPID("PID10","TPC nSigma |e|<3 + |Pi|>3.5 + P>3"); | |
111 | pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.); | |
112 | pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.5,3.5,0.,0.,kTRUE); | |
113 | pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-20.,3.,0.,0.,kTRUE); | |
114 | diele->GetTrackFilter().AddCuts(pid); | |
115 | } | |
116 | if(cutDefinition ==3){ | |
117 | AliDielectronPID *pid = new AliDielectronPID("PID10","TPC nSigma |e|<3"); | |
118 | pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.); | |
119 | diele->GetTrackFilter().AddCuts(pid); | |
120 | /* //taken out at the 04.02.2013 in order to have some feeling for PID cuts in QAplots... | |
121 | AliDielectronVarCuts *pidsubs = new AliDielectronVarCuts("pidSubs","pidsubs cut"); | |
122 | pidsubs->AddCut(AliDielectronVarManager::kP,1.2,1e30); | |
123 | pidsubs->AddCut(AliDielectronVarManager::kTPCsignal,70.,110.); | |
124 | diele->GetTrackFilter().AddCuts(pidsubs);*/ | |
125 | } | |
126 | if(cutDefinition ==4||cutDefinition ==5){ | |
127 | ||
128 | AliDielectronPID *pid = new AliDielectronPID("PID10","TPC nSigma |e|<3"); | |
129 | pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.); | |
130 | diele->GetTrackFilter().AddCuts(pid); | |
131 | AliDielectronVarCuts *hfe = new AliDielectronVarCuts("hfeTPCQ","hfeTPCQ"); | |
132 | hfe->AddCut(AliDielectronVarManager::kTPCsignalN,80.,160.);//TPC PID Cluster | |
133 | diele->GetTrackFilter().AddCuts(hfe); | |
134 | if(cutDefinition ==5){ | |
135 | AliDielectronPID *pidexclusion = new AliDielectronPID("PIDhfe","TPC nSigma |Pi|>3.5 + P>3"); | |
136 | pidexclusion->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.5,3.5,0.,0.,kTRUE); | |
137 | pidexclusion->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-20.,3.,0.,0.,kTRUE); | |
138 | diele->GetTrackFilter().AddCuts(pidexclusion); | |
139 | } | |
140 | } | |
141 | } | |
142 | ||
143 | //______________________________________________________________________________________ | |
144 | void SetupPairCutsDieleData(AliDielectron *diele, Int_t cutDefinition, Bool_t isAOD) | |
145 | { | |
146 | // | |
147 | // Setup the pair cuts | |
148 | // | |
149 | // conversion rejection | |
150 | //Double_t gCut = 0.05; // default | |
151 | Double_t gCut = 0.100; // default | |
152 | ||
153 | AliDielectronVarCuts *gammaCut=new AliDielectronVarCuts("gammaCut","gammaCut"); | |
154 | gammaCut->AddCut(AliDielectronVarManager::kM,0.,gCut); | |
155 | diele->GetPairPreFilter().AddCuts(gammaCut); | |
156 | diele->SetPreFilterUnlikeOnly(); | |
157 | ||
158 | ||
159 | //Invariant mass and rapidity selection | |
160 | AliDielectronVarCuts *pairCut=new AliDielectronVarCuts("2<M<4+|Y|<.9","2<M<4 + |Y|<.9"); | |
161 | // pairCut->AddCut(AliDielectronVarManager::kM,2.,4.); | |
162 | pairCut->AddCut(AliDielectronVarManager::kY,-0.9,0.9); | |
163 | diele->GetPairFilter().AddCuts(pairCut); | |
164 | } | |
165 | //______________________________________________________________________________________ | |
166 | ||
167 | ||
168 | void InitHistogramsDieleData(AliDielectron *diele, Int_t cutDefinition, Bool_t isAOD) | |
169 | { | |
170 | // | |
171 | // Initialise the histograms | |
172 | // | |
173 | ||
174 | //Setup histogram Manager | |
175 | AliDielectronHistos *histos=new AliDielectronHistos(diele->GetName(),diele->GetTitle()); | |
176 | ||
177 | //Initialise histogram classes | |
178 | histos->SetReservedWords("Track;Pair"); | |
179 | ||
180 | //Track classes | |
181 | //to fill also track info from 2nd event loop until 2 | |
182 | for (Int_t i=0; i<2; ++i){ | |
183 | histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i))); | |
184 | } | |
185 | ||
186 | //Pair classes | |
187 | // to fill also mixed event histograms loop until 10 | |
188 | for (Int_t i=0; i<3/*for mixing until 10*/; ++i){ | |
189 | histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i))); | |
190 | } | |
191 | ||
192 | //legs from pair | |
193 | for (Int_t i=0; i<3; ++i){ | |
194 | histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(i))); | |
195 | } | |
196 | ||
197 | //track rotation | |
198 | histos->AddClass(Form("Pair_%s",PairClassName(AliDielectron::kEv1PMRot))); | |
199 | histos->AddClass(Form("Track_Legs_%s",PairClassName(AliDielectron::kEv1PMRot))); | |
200 | ||
201 | ||
202 | ||
203 | ||
204 | //add histograms to event class | |
205 | if (cutDefinition==0) { | |
206 | histos->AddClass("Event"); | |
207 | histos->AddClass("Event_noCuts"); | |
208 | histos->UserHistogram("Event","VtxZ","Vertex Z;Z[cm]",300,-15.,15.,AliDielectronVarManager::kZvPrim); | |
209 | // nAcc | |
210 | histos->UserHistogram("Event","NAccRaw","Accepted raw SPD tracklets, |y|<1; nTrackl; #Entries",101,-0.5,100.5, AliDielectronVarManager::kNaccTrckltsEsd10); | |
211 | histos->UserHistogram("Event","NAccCorr","Accepted corr SPD tracklets, |y|<1; nTrackl; #Entries",101,-0.5,100.5, AliDielectronVarManager::kNaccTrckltsEsd10Corr); | |
212 | // nAcc vs Zvtx | |
213 | histos->UserHistogram("Event","NAccRaw_vs_Zvtx","Accepted raw SPD tracklets vs Z vtx, |y|<1; Zvtx[cm]; nTrackl ",300,-15.,15.,101,-0.5,100.5, AliDielectronVarManager::kZvPrim,AliDielectronVarManager::kNaccTrckltsEsd10); | |
214 | histos->UserHistogram("Event","NAccCorr_vs_Zvtx","Accepted corr SPD tracklets vs Z vtx, |y|<1; Zvtx[cm]; nTrackl ",300,-15.,15.,101,-0.5,100.5, AliDielectronVarManager::kZvPrim,AliDielectronVarManager::kNaccTrckltsEsd10Corr); | |
215 | ||
216 | ||
217 | // no event cuts | |
218 | histos->UserHistogram("Event_noCuts","VtxZ","Vertex Z;Z[cm]",300,-15.,15.,AliDielectronVarManager::kZvPrim); | |
219 | // nAcc | |
220 | histos->UserHistogram("Event_noCuts","NAccRaw","Accepted raw SPD tracklets, |y|<1; nTrackl; #Entries",101,-0.5,100.5, AliDielectronVarManager::kNaccTrckltsEsd10); | |
221 | histos->UserHistogram("Event_noCuts","NAccCorr","Accepted corr SPD tracklets, |y|<1; nTrackl; #Entries",101,-0.5,100.5, AliDielectronVarManager::kNaccTrckltsEsd10Corr); | |
222 | // nAcc vs Zvtx | |
223 | histos->UserHistogram("Event_noCuts","NAccRaw_vs_Zvtx","Accepted raw SPD tracklets vs Z vtx, |y|<1; Zvtx[cm]; nTrackl ",300,-15.,15.,101,-0.5,100.5, AliDielectronVarManager::kZvPrim,AliDielectronVarManager::kNaccTrckltsEsd10); | |
224 | histos->UserHistogram("Event_noCuts","NAccCorr_vs_Zvtx","Accepted corr SPD tracklets vs Z vtx, |y|<1; Zvtx[cm]; nTrackl ",300,-15.,15.,101,-0.5,100.5, AliDielectronVarManager::kZvPrim,AliDielectronVarManager::kNaccTrckltsEsd10Corr); | |
225 | ||
226 | } | |
227 | ||
228 | //add histograms to Track classes | |
229 | histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",400,0,20.,AliDielectronVarManager::kPt); | |
230 | histos->UserHistogram("Track","TOFPIDBit","TOFPIDBit;TOFPIDBit;#tracks",2,-0.5,1.5,AliDielectronVarManager::kTOFPIDBit); | |
231 | histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC); | |
232 | histos->UserHistogram("Track","TPCsignalN","Number of PID Clusters TPC;TPC PID number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kTPCsignalN); | |
233 | histos->UserHistogram("Track","nClsoverfindablecluster","Number of found Clusters TPC over findably ;TPC number cluster over findable;#tracks",160,0.0,1.1,AliDielectronVarManager::kNFclsTPCrFrac); | |
234 | histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",500,-1.,1.,AliDielectronVarManager::kImpactParXY); | |
235 | histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",600,-3.,3.,AliDielectronVarManager::kImpactParZ); | |
236 | histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks", | |
237 | 100,-1,1,144,0,6.285,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi); | |
238 | ||
239 | histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks", | |
240 | 200,0.2,20.,100,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE); | |
241 | histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks", | |
242 | 200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE); | |
243 | histos->UserHistogram("Track","TPCnSigmaPi_P","TPC number of sigmas Kaons;PIN [GeV];TPC number of sigmas Pions;#tracks", | |
244 | 200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE); | |
245 | histos->UserHistogram("Track","TPCnSigmaPro_P","TPC number of sigmas Protons;PIN [GeV];TPC number of sigmas Protons;#tracks", | |
246 | 200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPro,kTRUE); | |
247 | histos->UserHistogram("Track","TPCnSigmaKao_P","TPC number of sigmas Kaons;PIN [GeV];TPC number of sigmas Kaons;#tracks", | |
248 | 200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE); | |
249 | histos->UserHistogram("Track","TOFbeta_P","TOF beta;P [GeV];TOF beta;#tracks", | |
250 | 200,0.2,20.,100,0.,1.,AliDielectronVarManager::kP,AliDielectronVarManager::kTOFnSigmaEle,kTRUE); | |
251 | histos->UserHistogram("Track","TOFnSigmaEle_P","TOF number of sigmas Electrons;P [GeV];TOF number of sigmas Electrons;#tracks", | |
252 | 200,0.2,20.,200,-20.,20.,AliDielectronVarManager::kP,AliDielectronVarManager::kTOFnSigmaEle,kTRUE); | |
253 | histos->UserHistogram("Track","TRDnCls","Number of Clusters TRD;TRD number clusters;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTRD); | |
254 | histos->UserHistogram("Track","TRDntracklets","Number of tracklets TRD;TRD number tracklets;#tracks",7,-0.5,6.5,AliDielectronVarManager::kTRDntracklets); | |
255 | histos->UserHistogram("Track","TRDprobEle_P","TRD electron prob.;P [GeV];TRD electron prob.;#tracks", | |
256 | 200,0.2,20.,100,.0,1.,AliDielectronVarManager::kP,AliDielectronVarManager::kTRDprobEle,kTRUE); | |
257 | histos->UserHistogram("Track","TRDprobEle2D_P","TRD electron prob. 2D;P [GeV];TRD electron prob. 2D;#tracks", | |
258 | 200,0.2,20.,100,.0,1.,AliDielectronVarManager::kP,AliDielectronVarManager::kTRDprob2DEle,kTRUE); | |
259 | ||
260 | ||
261 | ||
262 | ||
263 | ||
264 | //add histograms to Pair classes | |
265 | histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs", | |
266 | 125,0.,125*.04,AliDielectronVarManager::kM); | |
267 | histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs", | |
268 | 100,-1.,1.,AliDielectronVarManager::kY); | |
269 | histos->UserHistogram("Pair","Pt","Pt;Pt;#pairs", | |
270 | 200,0.,20.,AliDielectronVarManager::kPt); | |
271 | histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle", | |
272 | 100,0.,3.15,AliDielectronVarManager::kOpeningAngle); | |
273 | histos->UserHistogram("Pair","OpeningAngletransverse","Opening angle transverse;angle", | |
274 | 100,0.,3.15,AliDielectronVarManager::kDeltaPhi); | |
275 | histos->UserHistogram("Pair","Chi2NDF","chisquareNDF;chisquare/ndf;#pairs", | |
276 | 100,0.,30.,AliDielectronVarManager::kChi2NDF); | |
277 | histos->UserHistogram("Pair","distanceXY","distancelegsXY;distanceXY[cm];#pairs", | |
278 | 100,0.,.0001,AliDielectronVarManager::kLegDistXY); | |
279 | histos->UserHistogram("Pair","distance","distancelegs;distance[cm];#pairs", | |
280 | 100,0.,.0001,AliDielectronVarManager::kLegDist); | |
281 | histos->UserHistogram("Pair","pseudoproperdecaylength","pseudoproperdecaylength;pseudoproperdecaylength[cm];#pairs", | |
282 | 100,0.,.5,AliDielectronVarManager::kPseudoProperTime); | |
283 | histos->UserHistogram("Pair","Armenteros-Podolanski","Armenteros-Podolanski;ArmAlpha;ArmPt[GeV];#tracks", | |
284 | 100,-10.0,10.,100,0.,2.,AliDielectronVarManager::kArmAlpha,AliDielectronVarManager::kArmPt,kTRUE); | |
285 | ||
286 | ||
287 | ||
288 | // 3D histos: invMass - Multiplicity - ptJpsi | |
289 | histos->UserHistogram("Pair","InvMass_NaccRaw_PtJpsi","Inv.Mass - NaccRaw - PtJpsi;Inv. Mass [GeV];NaccRaw; pTJpsi[GeV/c]", 125,0.,125*.04,101,-0.5,100.5, 100, 0.,10., AliDielectronVarManager::kM,AliDielectronVarManager::kNaccTrckltsEsd10, AliDielectronVarManager::kPt); | |
290 | histos->UserHistogram("Pair","InvMass_NaccCorr_PtJpsi","Inv.Mass - NaccCorr - PtJpsi;Inv. Mass [GeV];NaccCor; pTJpsi[GeV/c]", 125,0.,125*.04,101,-0.5,100.5,100,0.,10., AliDielectronVarManager::kM,AliDielectronVarManager::kNaccTrckltsEsd10Corr, AliDielectronVarManager::kPt); | |
291 | ||
292 | diele->SetHistogramManager(histos); | |
293 | } | |
294 | ||
295 | ||
296 | void InitCFDieleData(AliDielectron *diele, Int_t cutDefinition, Bool_t isAOD) | |
297 | { | |
298 | // | |
299 | // Setupd the CF Manager if needed | |
300 | // | |
301 | ||
302 | AliDielectronCF *cf=new AliDielectronCF(diele->GetName(),diele->GetTitle()); | |
303 | ||
304 | //pair variables | |
305 | cf->AddVariable(AliDielectronVarManager::kPt,"0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.5, 3.8, 4.2, 4.6, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0"); | |
306 | cf->AddVariable(AliDielectronVarManager::kY,"-5,-1,-0.9,-0.8,-0.7,-0.5,-0.3,0.3,0.5,0.7,0.8,0.9,1.0,5"); | |
307 | cf->AddVariable(AliDielectronVarManager::kM,125,0.,125*.04); //40Mev Steps | |
308 | cf->AddVariable(AliDielectronVarManager::kPseudoProperTime,150,-0.3,0.3); | |
309 | cf->AddVariable(AliDielectronVarManager::kPseudoProperTimeErr,600,0.,0.3); | |
310 | cf->AddVariable(AliDielectronVarManager::kPairType,"-0.5,0.5,1.5,2.5,9.5,10.5"); | |
311 | cf->AddVariable(AliDielectronVarManager::kArmAlpha,"-10.,-5.,-2.,-.1.,0.,1.,2.,5.,10."); | |
312 | cf->AddVariable(AliDielectronVarManager::kArmPt,"0.0,0.4,0.6,0.8,1.0,1.5,2.0,3.0"); | |
313 | ||
314 | ||
315 | //leg variables | |
316 | cf->AddVariable(AliDielectronVarManager::kPt,"0.0, 0.8, 0.9, 0.95, 1.0, 1.05, 1.1, 1.2, 100.0",kTRUE); | |
317 | cf->AddVariable(AliDielectronVarManager::kNclsTPC,"0, 70, 75, 80, 85, 90, 100, 120, 160",kTRUE); | |
318 | //cf->AddVariable(AliDielectronVarManager::kTPCsignalN,"0, 50, 60, 70, 80, 90, 100, 160",kTRUE); | |
319 | cf->AddVariable(AliDielectronVarManager::kTPCchi2Cl,"0, 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4.",kTRUE); | |
320 | cf->AddVariable(AliDielectronVarManager::kEta, "-1.0, -0.88, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.88, 1.0", kTRUE); | |
321 | cf->AddVariable(AliDielectronVarManager::kTPCnSigmaEle,"-2.5,-2,-1.5,-1,-0.5,4.",kTRUE); | |
322 | cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPio,"3.,3.5,4.,100",kTRUE); | |
323 | cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPro,"3.,3.5,4.,100",kTRUE); | |
324 | cf->AddVariable(AliDielectronVarManager::kITSLayerFirstCls,6,-0.5,5.5,kTRUE); | |
325 | cf->AddVariable(AliDielectronVarManager::kP,"0.0, 0.8, 0.9, 0.95, 1.0, 1.05, 1.1, 1.2,1.5,2.0,3.0,4.0,5.0, 100.0",kTRUE); | |
326 | //event variables | |
327 | //cf->AddVariable(AliDielectronVarManager::kNaccTrcklts,"0.0, 9.0, 17.0, 25.0, 36.0, 55.0, 500.0"); | |
328 | cf->AddVariable(AliDielectronVarManager::kNaccTrckltsEsd10,101,-0.5,100.5); | |
329 | //cf->AddVariable(AliDielectronVarManager::kNaccTrckltsEsd10Corr,101,-0.5,100.5); | |
330 | cf->AddVariable(AliDielectronVarManager::kZvPrim,"-20.,-15.,-10.,-5.,0.,5.,10.,15.,20."); | |
331 | if (!isAOD){ | |
332 | Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0); | |
333 | if (hasMC){ | |
334 | cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE); | |
335 | cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE); | |
336 | cf->AddVariable(AliDielectronVarManager::kPdgCodeGrandMother,10000,-5000.5,4999.5,kTRUE); | |
337 | } | |
338 | } | |
339 | ||
340 | //only in this case write MC truth info | |
341 | //if (cutDefinition==0){ | |
342 | // cf->SetStepForMCtruth(); | |
343 | //} | |
344 | ||
345 | diele->SetCFManagerPair(cf); | |
346 | ||
347 | } |