]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/ConfigAsakoLMEEPbPb2011AOD.C
08cebd645d2e706d5bd45daad25b2672ff56958b
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / ConfigAsakoLMEEPbPb2011AOD.C
1 //#include "PWGDQ/dielectron/macrosLMEE/LMEECutLib.C"
2
3 void InitHistograms(AliDielectron *die, Int_t cutDefinition);
4 void InitCF(AliDielectron* die, Int_t cutDefinition);
5 void EnableMC();
6
7 TString names=("noPairing;TPCTOFCentwidenoRej;TPCTOFSemiCent1noRej;TPCTOFSemiCent2noRej;TPCTOFPerinoRej;TPCTOFCentRP;TPCTOFSemiCent1RP;TPCTOFSemiCent2RP;TPCTOFPeriRP;TPCTOFCentMag;TPCTOFSemiCent1Mag;TPCTOFSemiCent2Mag;TPCTOFPeriMag;TPCTOFCentnoTOF;NoPIDNoPairing;TPCTOFCentnoRej");
8 TObjArray *arrNames=names.Tokenize(";");
9 const Int_t nDie=arrNames->GetEntries();
10
11 Bool_t MCenabled=kFALSE;
12
13
14 AliDielectron* ConfigAsakoLMEEPbPb2011AOD(Int_t cutDefinition, Bool_t hasMC=kFALSE, Bool_t ESDanalysis=kFALSE)
15 {
16
17   Int_t selectedPID=-1;
18   Int_t selectedCentrality=-1;
19   Int_t selectedPairCut=-1;
20   //  Int_t selectedPairMCut=-1;
21   Bool_t rejectionStep=kFALSE;
22   Bool_t PairCut=kFALSE; //add by asako
23   LMEECutLibAsako*  LMCL = new LMEECutLibAsako();
24
25   //
26   // Setup the instance of AliDielectron
27   //
28
29   MCenabled=hasMC;
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
43
44   //Setup AnalysisSelection:
45   if (cutDefinition==0) {
46         //not yet implemented
47   }
48   else if (cutDefinition==1) {
49         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
50         selectedCentrality = LMEECutLibAsako::kPbPb2011Central;
51         rejectionStep = kFALSE;
52         PairCut = kFALSE;
53
54   }
55   else if (cutDefinition==2) {
56         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
57         selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral1;
58         rejectionStep = kFALSE;
59         PairCut=kFALSE;
60   }
61   else if (cutDefinition==3) {
62     selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
63     selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral2;
64     rejectionStep = kFALSE;
65         PairCut=kFALSE;
66   }
67
68   else if (cutDefinition==4) {
69         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
70         selectedCentrality = LMEECutLibAsako::kPbPb2011Peripheral;
71         rejectionStep = kFALSE;
72         PairCut=kFALSE;
73   }
74
75   ///////////////////////////////////////////////////////////
76   else if (cutDefinition==5) {
77     selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
78     selectedCentrality = LMEECutLibAsako::kPbPb2011Central;
79         selectedPairCut = LMEECutLibAsako::kPbPb2011RP;
80         //selectedPairMCut = LMEECutLibAsako::kPbPb2011MassAll;
81         rejectionStep = kFALSE;
82         PairCut=kTRUE;
83   }
84   else if (cutDefinition==6) {
85         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
86         selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral1;
87         selectedPairCut = LMEECutLibAsako::kPbPb2011RP;
88         // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle;
89         rejectionStep = kFALSE;
90         PairCut=kTRUE;
91   }
92   else if (cutDefinition==7) {
93         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
94         selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral2;
95         // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle;
96         selectedPairCut = LMEECutLibAsako::kPbPb2011RP;
97         rejectionStep = kFALSE;
98         PairCut=kTRUE;
99   }
100   else if (cutDefinition==8) {
101         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
102         selectedCentrality = LMEECutLibAsako::kPbPb2011Peripheral;
103         selectedPairCut = LMEECutLibAsako::kPbPb2011RP;
104         // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle;
105         rejectionStep = kFALSE;
106         PairCut=kTRUE;
107   }
108
109   /////////////////////////////////////////////////////////
110   else if (cutDefinition==9) {
111         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
112         selectedCentrality = LMEECutLibAsako::kPbPb2011Central;
113         selectedPairCut = LMEECutLibAsako::kPbPb2011Mag;
114         // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassAll;
115         rejectionStep = kFALSE;
116         PairCut=kTRUE;
117   }
118   
119   else if (cutDefinition==10) {
120         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
121         selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral1;
122         selectedPairCut = LMEECutLibAsako::kPbPb2011Mag;
123         // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle;
124         rejectionStep = kFALSE;
125         PairCut=kTRUE;
126   }
127   else if (cutDefinition==11) {
128         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
129         selectedCentrality = LMEECutLibAsako::kPbPb2011SemiCentral2;
130         // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle;
131         selectedPairCut = LMEECutLibAsako::kPbPb2011Mag;
132         rejectionStep = kFALSE;
133         PairCut=kTRUE;
134   }
135   else if (cutDefinition==12) {
136         selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOFwide;
137         selectedCentrality = LMEECutLibAsako::kPbPb2011Peripheral;
138         selectedPairCut = LMEECutLibAsako::kPbPb2011Mag;
139         // selectedPairMCut = LMEECutLibAsako::kPbPb2011MassMiddle;
140         rejectionStep = kFALSE;
141         PairCut=kTRUE;
142   }
143
144   
145
146   ///////////////////////////////////////////////////////
147   else if (cutDefinition==13) {
148         //selectedPID = LMEECutLib::kPbPb2011TPCandTOFwide;
149         selectedPID = LMEECutLibAsako::kPbPb2011TPC;
150         selectedCentrality = LMEECutLibAsako::kPbPb2011Central;
151         rejectionStep = kFALSE;
152         PairCut=kFALSE;
153   }
154   else if (cutDefinition==14) {
155         selectedPID = LMEECutLibAsako::kPbPb2011NoPID;
156         selectedCentrality = LMEECutLibAsako::kPbPb2011Central;
157         rejectionStep = kFALSE;
158         PairCut=kFALSE;
159   }
160
161   else if (cutDefinition==15) {
162     selectedPID = LMEECutLibAsako::kPbPb2011TPCandTOF;
163     selectedCentrality = LMEECutLibAsako::kPbPb2011Central;
164     rejectionStep = kFALSE;
165     PairCut = kFALSE;
166   }
167
168
169   else Semi{
170         cout << " =============================== " << endl;
171         cout << " ==== INVALID CONFIGURATION ==== " << endl;
172         cout << " =============================== " << endl;
173   }
174
175
176   //Now configure task
177
178   //Apply correct Pre-Filter Scheme, if necessary
179   die->SetPreFilterAllSigns();
180
181   //switch off KF PArticle:
182   die->SetUseKF(kFALSE);
183
184   if (selectedPID == LMEECutLibAsako::kPbPb2011NoPID) {
185         die->SetNoPairing();
186   }
187
188   //  if (ESDanalysis) {
189   //die->GetTrackFilter().AddCuts( LMCL->GetESDTrackCutsAna(selectedPID) );
190   // }
191
192   die->GetEventFilter().AddCuts(LMCL->GetCentralityCuts(selectedCentrality));
193   die->GetTrackFilter().AddCuts( LMCL->GetTrackCutsAna(selectedPID) );
194   die->GetTrackFilter().AddCuts( LMCL->GetPIDCutsAna(selectedPID) );
195
196   if(PairCut){
197         if (rejectionStep) {
198           die->GetPairPreFilterLegs().AddCuts(LMCL->GetPIDCutsAna(selectedPID) );
199           die->GetPairPreFilter().AddCuts( LMCL->GetPairPreFilterCuts(selectedPairCut));
200           die->GetPairFilter().AddCuts( LMCL->GetPairCuts(selectedPairCut));
201         }
202         else {   
203           die->GetPairFilter().AddCuts( LMCL->GetPairCutsInOut(selectedPairCut));
204           //  die->GetPairFilter().AddCuts( LMCL->GetPairCuts4(selectedPairMCut));
205         }
206   }
207   
208
209
210
211   AliDielectronTrackRotator *rot= 0x0;
212   /*AliDielectronTrackRotator *rot= LMCL->GetTrackRotator(selectedPID);
213   die->SetTrackRotator(rot);
214   */
215   AliDielectronMixingHandler *mix=LMCL->GetMixingHandler(selectedPID);
216   die->SetMixingHandler(mix);
217
218   // histogram setup
219   // only if an AliDielectronHistos object is attached to the
220   // dielectron framework histograms will be filled
221   //
222   InitHistograms(die,cutDefinition);
223
224   // the last definition uses no cuts and only the QA histograms should be filled!
225   //  InitCF(die,cutDefinition);
226
227   return die;
228 }
229
230 //______________________________________________________________________________________
231
232 void InitHistograms(AliDielectron *die, Int_t cutDefinition)
233 {
234   //
235   // Initialise the histograms
236   //
237
238   //Setup histogram Manager
239   AliDielectronHistos *histos=
240         new AliDielectronHistos(die->GetName(),
241                                                         die->GetTitle());
242   //Initialise histogram classes
243   histos->SetReservedWords("Track;Pair;Pre;RejTrack;RejPair");
244
245   //Event class
246   //  if (cutDefinition==nDie-1) 
247   histos->AddClass("Event");
248
249   //Track classes
250   //to fill also track info from 2nd event loop until 2
251   for (Int_t i=0; i<2; ++i){
252         histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
253   }
254
255   //Pair classes
256   // to fill also mixed event histograms loop until 10
257   for (Int_t i=0; i<3; ++i){
258         histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
259   }
260
261   //ME and track rot
262   if (die->GetMixingHandler()) {
263         histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3)));
264         histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));
265         histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));
266         histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7)));
267   }
268   if (die->GetTrackRotator()) {
269         histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10)));
270   }
271
272   //PreFilter Classes
273   //to fill also track info from 2nd event loop until 2
274   for (Int_t i=0; i<2; ++i){
275         histos->AddClass(Form("Pre_%s",AliDielectron::TrackClassName(i)));
276   }
277
278
279   //Create Classes for Rejected Tracks/Pairs:
280   for (Int_t i=0; i<2; ++i){
281         histos->AddClass(Form("RejTrack_%s",AliDielectron::TrackClassName(i)));
282   }
283   for (Int_t i=0; i<3; ++i){
284         histos->AddClass(Form("RejPair_%s",AliDielectron::PairClassName(i)));
285   }
286
287   /*
288   //track rotation
289
290   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot)));
291   histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(AliDielectron::kEv1PMRot)));
292   */
293   //add histograms to event class
294   histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",
295                                                 1,0.,1.,AliDielectronVarManager::kNevents);
296   histos->UserHistogram("Event","Centrality","Centrality;Centrality [%]","0,10,20,40,80,100,101",
297                                                 AliDielectronVarManager::kCentrality);
298   histos->UserHistogram("Event","Centrality","Centrality;Centrality [%]",100, 0, 100,
299                                                 AliDielectronVarManager::kCentrality);
300
301   histos->UserHistogram("Event","v0ACrpH2","VZERO-AC;v0ACrpH2",
302                                                 100,-2.0,2.0,
303                                                 AliDielectronVarManager::kv0ACrpH2);
304   histos->UserHistogram("Event","v0ArpH2","VZERO-A;v0ArpH2",
305                                                 100,-2.0,2.0,
306                                                 AliDielectronVarManager::kv0ArpH2);
307   histos->UserHistogram("Event","v0CrpH2","VZERO-C;v0CrpH2",
308                                                 100,-2.0,2.0,
309                                                 AliDielectronVarManager::kv0CrpH2);
310
311   histos->UserHistogram("Event","Corr_v0ACrpH2","CORR VZERO-AC RP;#Psi_{2}^{V0A} (rad.);#Psi_{2}^{V0C} (rad.)",
312                                                 100,-2.0,2.0.,100,-2.0,2.0,
313                                                 AliDielectronVarManager::kv0ArpH2,AliDielectronVarManager::kv0CrpH2);
314   
315         //add histograms to Track classes
316   /*  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
317   histos->UserHistogram("Track","Px","Px;Px [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPx);
318   histos->UserHistogram("Track","Py","Py;Py [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPy);
319   histos->UserHistogram("Track","Pz","Pz;Pz [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPz);
320
321   histos->UserHistogram("Track","NclsSFracTPC","NclsSFracTPC; NclsSFracTPC;#tracks",200,0,10.,AliDielectronVarManager::kNclsSFracTPC);
322   histos->UserHistogram("Track","TPCclsDiff","TPCclsDiff; TPCclsDiff;#tracks",200,0,10.,AliDielectronVarManager::kTPCclsDiff);
323   */
324   histos->UserHistogram("Track","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks",
325     400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE);
326
327   histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
328     400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
329   /*
330   histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
331     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
332   histos->UserHistogram("Track","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks",
333     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE);
334   histos->UserHistogram("Track","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks",
335     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE);
336
337   histos->UserHistogram("Track","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks",
338     400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE);
339   histos->UserHistogram("Track","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks",
340     400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE);
341
342   histos->UserHistogram("Track","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks",
343     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE);
344   histos->UserHistogram("Track","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks",
345     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE);
346
347   histos->UserHistogram("Track","TOFbeta","TOF beta;P [GeV];TOF beta;#tracks",
348     400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta,kTRUE);
349
350   
351   histos->UserHistogram("Track","Eta","Eta; Eta;#tracks",
352     200,-2,2,AliDielectronVarManager::kEta);
353   histos->UserHistogram("Track","Phi","Phi; Phi;#tracks",
354     200,0.,3.15,AliDielectronVarManager::kPhi);
355
356   histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
357     200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
358
359   histos->UserHistogram("Track","dXY_dZ","dXY dZ Map; dXY; dZ;#tracks",
360     200,-2,2,200,-2,2.,AliDielectronVarManager::kImpactParXY,AliDielectronVarManager::kImpactParZ);
361
362
363   histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY);
364   histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParZ);
365
366     histos->UserHistogram("Track","TPCcrossedRowsOverFindable","Number of Crossed Rows TPC over Findable;TPC crossed rows over findable;#tracks",100,0.,1.,AliDielectronVarManager::kNFclsTPCfCross);
367           histos->UserHistogram("Track","TPCcrossedRows","Number of Crossed Rows TPC;TPC crossed rows;#tracks",159,0.,159.,AliDielectronVarManager::kNFclsTPCr);
368
369         
370     histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC);
371                   histos->UserHistogram("Track","ITSnCls","Number of Clusters ITS;ITS number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsITS);
372
373                     histos->UserHistogram("Track","TPCchi2","TPC Chi2 value;TPC chi2;#tracks",100,0.,10.,AliDielectronVarManager::kTPCchi2Cl);
374                           histos->UserHistogram("Track","ITSchi2","ITS Chi2 value;ITS chi2;#tracks",100,0.,10.,AliDielectronVarManager::kITSchi2Cl);
375
376                             histos->UserHistogram("Track","TPCnCls_kNFclsTPCr","nTPC vs nTPCr;nTPC vs nTPCr;#tracks",159,0.,159.,159,0.,159.,AliDielectronVarManager::kNclsTPC,AliDielectronVarManager::kNFclsTPCr);
377
378                                   histos->UserHistogram("Track","kNFclsTPCr_pT","nTPCr vs pt;nTPCr vs pt;#tracks",159,0.,159.,200,0.,20.,AliDielectronVarManager::kNFclsTPCr,AliDielectronVarManager::kPt);
379                                     
380   */
381   
382   //add histograms to Pair classes
383   histos->UserHistogram("Pair","InvMassAll","Inv.Mass;Inv. Mass [GeV];#pairs",
384                                                 500,0.0,5.00,AliDielectronVarManager::kM);
385   histos->UserHistogram("Pair","InvMassLow","Inv.Mass;Inv. Mass [GeV];#pairs",
386                                                 300,0.0,0.03,AliDielectronVarManager::kM);
387   histos->UserHistogram("Pair","InvMassMiddle","Inv.Mass;Inv. Mass [GeV];#pairs",
388                                                 180,0.12,0.3,AliDielectronVarManager::kM);
389   histos->UserHistogram("Pair","InvMassHigh","Inv.Mass;Inv. Mass [GeV];#pairs",
390                                                 200,0.3,0.5,AliDielectronVarManager::kM);
391
392     
393   histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
394                                                 100,-2.,2.,AliDielectronVarManager::kY);
395   histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
396                                                 100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
397   histos->UserHistogram("Pair","PhivPair","PhiV ;#",
398                                                 100,0.,3.15,AliDielectronVarManager::kPhivPair );
399     
400   histos->UserHistogram("Pair","Pt","Pt;Pt [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPt);
401   histos->UserHistogram("Pair","Px","Px;Px [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPx);
402   histos->UserHistogram("Pair","Py","Py;Py [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPy);
403   histos->UserHistogram("Pair","Pz","Pz;Pz [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPz);
404   histos->UserHistogram("Pair","Phi","Phi;Phi[rad];#counts",100,-3.15,3.15,AliDielectronVarManager::kPhi );
405     
406     
407   histos->UserHistogram("Pair","DeltaPhiv0ArpH2","Phi;Phi[rad];#counts",
408                                                 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0ArpH2);
409   histos->UserHistogram("Pair","DeltaPhiv0CrpH2","Phi;Phi[rad];#counts",
410                                                 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0CrpH2);
411   histos->UserHistogram("Pair","DeltaPhiv0ACrpH2","Phi;Phi[rad];#counts",
412                                                 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0ACrpH2);
413
414     
415   histos->UserHistogram("Pair","PairPlanev0ACrpH2Angle","Phi;Phi[rad];#counts",
416                                                 100,0,1.6,AliDielectronVarManager::kPairPlanev0rpH2Angle);
417   histos->UserHistogram("Pair","PairPlaneMagAngle","Phi;Phi[rad];#counts",
418                                                 100,0,1.6,AliDielectronVarManager::kPairPlaneMagAngle);
419
420     
421   //2D Histo Plot
422   histos->UserHistogram("Pair","InvMassALLPairPt","Inv.Mass vs PairPt;Inv. Mass [GeV], pT [GeV];#pairs",
423                                                 1000,0.0,5.0,500,0.,50.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt);
424   histos->UserHistogram("Pair","InvMassALL2PairPt","Inv.Mass vs PairPt;Inv. Mass [GeV], pT [GeV];#pairs",
425                                                 500,0.0,0.5,500,0.,50.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt);
426   histos->UserHistogram("Pair","InvMassLowPairPt","Inv.Mass vs PairPt;Inv. Mass [GeV], pT [GeV];#pairs",
427                                                 300,0.0,0.03,500,0.,50.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt);
428   histos->UserHistogram("Pair","InvMassMiddlePairPt","Inv.Mass vs PairPt;Inv. Mass [GeV], pT [GeV];#pairs",
429                                                 180,0.12,0.3,500,0.,50.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt);
430   histos->UserHistogram("Pair","InvMassHighPairPt","Inv.Mass vs PairPt;Inv. Mass [GeV], pT [GeV];#pairs",
431                                                 200,0.3,0.5,500,0.,50.,AliDielectronVarManager::kM,AliDielectronVarManager::kPt);
432     
433   
434
435   histos->UserHistogram("Pair","InvMassALLPhivPair","PhivPair vs Inv. Mass;Inv. Mass [GeV]; Phiv",
436                                                 1000,0.0,5.0,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair);
437   histos->UserHistogram("Pair","InvMassALL2PhivPair","PhivPair vs Inv. Mass;Inv. Mass [GeV]; Phiv",
438                                                 500,0.0,0.50,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair);
439   histos->UserHistogram("Pair","InvMassLowPhivPair","PhivPair vs Inv. Mass;Inv. Mass [GeV]; Phiv",
440                                                 300,0.0,0.03,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair);
441   histos->UserHistogram("Pair","InvMassMiddlePhivPair","PhivPair vs Inv. Mass;Inv. Mass [GeV]; Phiv",
442                                                 180,0.12,0.3,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair);
443   histos->UserHistogram("Pair","InvMassHighPhivPair","PhivPair vs Inv. Mass;Inv. Mass [GeV]; Phiv",
444                                                 200,0.3,0.50,200,0.,4,AliDielectronVarManager::kM,AliDielectronVarManager::kPhivPair);
445
446   histos->UserHistogram("Pair","InvMassAllOpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV];#pairs",
447                                                 1000,0.0,5.0,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle);
448   histos->UserHistogram("Pair","InvMassAll2OpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV];#pairs",
449                                                 500,0.0,0.5,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle);
450   histos->UserHistogram("Pair","InvMassLowOpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV];#pairs",
451                                                 300,0.0,0.03,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle);
452   histos->UserHistogram("Pair","InvMassMiddleOpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV];#pairs",
453                                                 180,0.12,0.3,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle);
454   histos->UserHistogram("Pair","InvMassHighOpeningAngle","Opening Angle vs Inv.Mass;Inv. Mass [GeV];#pairs",
455                                                 200,0.3,0.5,200,0.,6.3,AliDielectronVarManager::kM,AliDielectronVarManager::kOpeningAngle);
456
457
458
459
460   histos->UserHistogram("Pair","InvMassAllPairplaneMagAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
461                                                 1000,0.0,5.0,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagAngle);
462   histos->UserHistogram("Pair","InvMassAll2PairplaneMagAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
463                         500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagAngle);
464   histos->UserHistogram("Pair","InvMassLoweeplaneMagAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
465                                                 300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagAngle);
466   histos->UserHistogram("Pair","InvMassMiddleeelaneMagAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
467                                                 180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagAngle);
468   histos->UserHistogram("Pair","InvMassHighPairplaneMagAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
469                                                 200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneMagAngle);
470
471   histos->UserHistogram("Pair","InvMassAllPairplaneRPAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
472                                                 1000,0.0,5.0,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlanev0rpH2Angle);
473   histos->UserHistogram("Pair","InvMassAll2PairplaneRPAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
474                                                 500,0.0,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlanev0rpH2Angle);
475   histos->UserHistogram("Pair","InvMassLoweeplaneRPAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
476                                                 300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlanev0rpH2Angle);
477   histos->UserHistogram("Pair","InvMassMiddleeelaneRPAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
478                                                 180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlanev0rpH2Angle);
479   histos->UserHistogram("Pair","InvMassHighPairplaneRPAngle","ee plane and Mag Vector Angle vs Inv.Mass;Inv. Mass [GeV];Phi [rad]",
480                                                 200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlanev0rpH2Angle);
481     
482     
483      
484
485   //add histograms to Track classes
486   /*  histos->UserHistogram("Pre","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
487
488   histos->UserHistogram("Pre","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks",
489                                                 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE);
490
491   histos->UserHistogram("Pre","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
492                                                 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
493
494
495   histos->UserHistogram("Pre","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
496                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
497   histos->UserHistogram("Pre","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks",
498                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE);
499   histos->UserHistogram("Pre","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks",
500                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE);
501
502   histos->UserHistogram("Pre","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks",
503                                                 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE);
504   histos->UserHistogram("Pre","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks",
505                                                 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE);
506
507   histos->UserHistogram("Pre","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks",
508                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE);
509   histos->UserHistogram("Pre","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks",
510                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE);
511
512   histos->UserHistogram("Pre","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
513                                                 200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
514
515   histos->UserHistogram("Pre","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY);
516
517   histos->UserHistogram("Pre","ZVertex ","ZVertex ;ZVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kZv);
518   histos->UserHistogram("Pre","XVertex ","XVertex ;XVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kXv);
519   histos->UserHistogram("Pre","YVertex ","YVertex ;YVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kYv);
520
521   histos->UserHistogram("Pre","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC);
522   */    
523   //add histograms to Pair classes For Rejected Pairs:
524   die->SetHistogramManager(histos);
525 }
526
527
528 void InitCF(AliDielectron* die, Int_t cutDefinition)
529 {
530   //
531   // Setupd the CF Manager if needed
532   //
533   AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());
534
535   //pair variables
536   cf->AddVariable(AliDielectronVarManager::kP,200,0,20);
537   // cf->AddVariable(AliDielectronVarManager::kPt,200,0,20);// added
538   cf->AddVariable(AliDielectronVarManager::kM,201,-0.01,4.01); //20Mev Steps
539   //cf->AddVariable(AliDielectronVarManager::kM, 1000,0,5.00); //5Mev Steps 
540   cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10);
541   //cf->AddVariable(AliDielectronVarManager::kCentrality,100, 0, 100);
542
543
544    cf->AddVariable(AliDielectronVarManager::kCentrality,"0.,10.0,30.0,40.0,60.,80.,100.");
545
546   //leg variables
547   cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE);
548   cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE);
549   cf->AddVariable(AliDielectronVarManager::kTPCsignal,500,0.0.,500.,kTRUE);
550   cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10,kTRUE);
551
552   //only in this case write MC truth info
553   if (MCenabled) {
554         cf->SetStepForMCtruth();
555         cf->SetStepsForMCtruthOnly();
556         cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);
557         cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);
558   }
559
560   cf->SetStepsForSignal();
561   die->SetCFManagerPair(cf);
562 }
563
564 //--------------------------------------
565 void EnableMC() {
566   MCenabled=kTRUE;
567 }