]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/ConfigAsakoLMEEPbPb2011AOD.C
update from pr task : sjena
[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","Centrality2","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   histos->UserHistogram("Event","RadomRP","RandomRP;RandomRP",
311                                                 100,-2.0,2.0,
312                                                 AliDielectronVarManager::kRandomRP);
313
314   
315   /* histos->UserHistogram("Event","Corr_v0ACrpH2_old","CORR VZERO-AC RP;#Psi_{2}^{V0A} (rad.);#Psi_{2}^{V0C} (rad.)",
316                                                 100,-2.0,2.0.,100,-2.0,2.0,
317                                                 AliDielectronVarManager::kv0ArpH2,AliDielectronVarManager::kv0CrpH2);
318
319   histos->UserHistogram("Event","v0ACrpH2","VZERO-AC;v0ACrpH2",
320                         100,0.,3.15,
321                         AliDielectronVarManager::kv0ACrpH2);
322
323   histos->UserHistogram("Event","v0ArpH2","VZERO-A;v0ArpH2",
324                         100,0.,3.15,
325                         AliDielectronVarManager::kv0ArpH2);
326   histos->UserHistogram("Event","v0CrpH2","VZERO-C;v0CrpH2",
327                         100,0.,3.15,
328                         AliDielectronVarManager::kv0CrpH2);
329
330   histos->UserHistogram("Event","Corr_v0ACrpH2","CORR VZERO-AC RP;#Psi_{2}^{V0A} (rad.);#Psi_{2}^{V0C} (rad.)",
331                         100,0.,3.15.,100,0.,3.15,
332                         AliDielectronVarManager::kv0ArpH2,AliDielectronVarManager::kv0CrpH2);
333   */
334         //add histograms to Track classes
335     histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
336   histos->UserHistogram("Track","Px","Px;Px [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPx);
337   histos->UserHistogram("Track","Py","Py;Py [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPy);
338   histos->UserHistogram("Track","Pz","Pz;Pz [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPz);
339
340   // histos->UserHistogram("Track","NclsSFracTPC","NclsSFracTPC; NclsSFracTPC;#tracks",200,0,10.,AliDielectronVarManager::kNclsSFracTPC);
341   // histos->UserHistogram("Track","TPCclsDiff","TPCclsDiff; TPCclsDiff;#tracks",200,0,10.,AliDielectronVarManager::kTPCclsDiff);
342   
343   // histos->UserHistogram("Track","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks",
344   // 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE);
345
346   // histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
347   // 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
348   /*  
349   histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
350     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
351   histos->UserHistogram("Track","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks",
352     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE);
353   histos->UserHistogram("Track","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks",
354     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE);
355
356   histos->UserHistogram("Track","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks",
357     400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE);
358   histos->UserHistogram("Track","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks",
359     400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE);
360
361   histos->UserHistogram("Track","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks",
362     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE);
363   histos->UserHistogram("Track","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks",
364     400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE);
365
366   histos->UserHistogram("Track","TOFbeta","TOF beta;P [GeV];TOF beta;#tracks",
367     400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta,kTRUE);
368
369   */
370   histos->UserHistogram("Track","Eta","Eta; Eta;#tracks",
371     200,-2,2,AliDielectronVarManager::kEta);
372   histos->UserHistogram("Track","Phi","Phi; Phi;#tracks",
373     200,0.,3.15,AliDielectronVarManager::kPhi);
374   /*
375   histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
376     200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
377
378   histos->UserHistogram("Track","dXY_dZ","dXY dZ Map; dXY; dZ;#tracks",
379     200,-2,2,200,-2,2.,AliDielectronVarManager::kImpactParXY,AliDielectronVarManager::kImpactParZ);
380
381
382   histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY);
383   histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParZ);
384
385     histos->UserHistogram("Track","TPCcrossedRowsOverFindable","Number of Crossed Rows TPC over Findable;TPC crossed rows over findable;#tracks",100,0.,1.,AliDielectronVarManager::kNFclsTPCfCross);
386           histos->UserHistogram("Track","TPCcrossedRows","Number of Crossed Rows TPC;TPC crossed rows;#tracks",159,0.,159.,AliDielectronVarManager::kNFclsTPCr);
387
388         
389     histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC);
390                   histos->UserHistogram("Track","ITSnCls","Number of Clusters ITS;ITS number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsITS);
391
392                     histos->UserHistogram("Track","TPCchi2","TPC Chi2 value;TPC chi2;#tracks",100,0.,10.,AliDielectronVarManager::kTPCchi2Cl);
393                           histos->UserHistogram("Track","ITSchi2","ITS Chi2 value;ITS chi2;#tracks",100,0.,10.,AliDielectronVarManager::kITSchi2Cl);
394
395                             histos->UserHistogram("Track","TPCnCls_kNFclsTPCr","nTPC vs nTPCr;nTPC vs nTPCr;#tracks",159,0.,159.,159,0.,159.,AliDielectronVarManager::kNclsTPC,AliDielectronVarManager::kNFclsTPCr);
396
397                                   histos->UserHistogram("Track","kNFclsTPCr_pT","nTPCr vs pt;nTPCr vs pt;#tracks",159,0.,159.,200,0.,20.,AliDielectronVarManager::kNFclsTPCr,AliDielectronVarManager::kPt);
398                                     
399   */
400   
401   //add histograms to Pair classes
402   histos->UserHistogram("Pair","InvMassAll","Inv.Mass;Inv. Mass [GeV];#pairs",
403                                                 500,0.0,5.00,AliDielectronVarManager::kM);
404   /* histos->UserHistogram("Pair","InvMassLow","Inv.Mass;Inv. Mass [GeV];#pairs",
405                                                 300,0.0,0.03,AliDielectronVarManager::kM);
406   histos->UserHistogram("Pair","InvMassMiddle","Inv.Mass;Inv. Mass [GeV];#pairs",
407                                                 180,0.12,0.3,AliDielectronVarManager::kM);
408   histos->UserHistogram("Pair","InvMassHigh","Inv.Mass;Inv. Mass [GeV];#pairs",
409                                                 200,0.3,0.5,AliDielectronVarManager::kM);
410   */
411     
412   histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
413                                                 100,-2.,2.,AliDielectronVarManager::kY);
414   histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
415                                                 100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
416   histos->UserHistogram("Pair","PhivPair","PhiV ;#",
417                                                 100,0.,3.15,AliDielectronVarManager::kPhivPair );
418     
419   histos->UserHistogram("Pair","Pt","Pt;Pt [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPt);
420   histos->UserHistogram("Pair","Px","Px;Px [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPx);
421   histos->UserHistogram("Pair","Py","Py;Py [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPy);
422   histos->UserHistogram("Pair","Pz","Pz;Pz [GeV];#tracks",300,0,30.,AliDielectronVarManager::kPz);
423   histos->UserHistogram("Pair","Phi","Phi;Phi[rad];#counts",100,-3.15,3.15,AliDielectronVarManager::kPhi );
424     
425     
426   histos->UserHistogram("Pair","DeltaPhiv0ArpH2","Phi;Phi[rad];#counts",
427                                                 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0ArpH2);
428   histos->UserHistogram("Pair","DeltaPhiv0CrpH2","Phi;Phi[rad];#counts",
429                                                 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0CrpH2);
430   histos->UserHistogram("Pair","DeltaPhiv0ACrpH2","Phi;Phi[rad];#counts",
431                                                 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiv0ACrpH2);
432   histos->UserHistogram("Pair","DeltaPhiRandomRP","Phi;Phi[rad];#counts",
433                                                 100,-3.15,3.15,AliDielectronVarManager::kDeltaPhiRandomRP);
434
435     
436     histos->UserHistogram("Pair","PairPlaneAngle2C","Phi;Phi[rad];#counts",
437                                                 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle2C);
438     histos->UserHistogram("Pair","PairPlaneAngle3C","Phi;Phi[rad];#counts",
439                                                 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle3C);
440     histos->UserHistogram("Pair","PairPlaneAngle4C","Phi;Phi[rad];#counts",
441                                                 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle4C);
442     histos->UserHistogram("Pair","PairPlaneAngleRan","Phi;Phi[rad];#counts",
443                                                 100,0,1.6,AliDielectronVarManager::kPairPlaneAngle3Ran);
444
445   
446       
447   //2D Histo Plot
448       
449         histos->UserHistogram("Pair","InvMAllPP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
450                           500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C);
451     histos->UserHistogram("Pair","InvMLowPP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
452                           300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C);
453     histos->UserHistogram("Pair","InvMMiddlePP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
454                           180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C);
455     histos->UserHistogram("Pair","InvMHighPP1C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
456                           200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle1C);
457  
458         histos->UserHistogram("Pair","InvMAllPP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
459                                                   500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C);
460         histos->UserHistogram("Pair","InvMLowPP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
461                                                   300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C);
462         histos->UserHistogram("Pair","InvMMiddlePP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
463                                                   180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C);
464         histos->UserHistogram("Pair","InvMHighPP2C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
465                                                   200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle2C);
466
467         histos->UserHistogram("Pair","InvMAllPP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
468                                                   500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C);
469         histos->UserHistogram("Pair","InvMLowPP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
470                                                   300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C);
471         histos->UserHistogram("Pair","InvMMiddlePP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
472                                                   180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C);
473         histos->UserHistogram("Pair","InvMHighPP3C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
474                                                   200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3C);
475
476         histos->UserHistogram("Pair","InvMAllPP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
477                                                   500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C);
478         histos->UserHistogram("Pair","InvMLowPP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
479                                                   300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C);
480         histos->UserHistogram("Pair","InvMMiddlePP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
481                                                   180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C);
482         histos->UserHistogram("Pair","InvMHighPP4C","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
483                                                   200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle4C);
484         /*
485         histos->UserHistogram("Pair","InvMAllPP3Ran","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
486                                                   500,0.0,0.50,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3Ran);
487         histos->UserHistogram("Pair","InvMLowPP3Ran","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
488                                                   300,0.0,0.03,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3Ran);
489         histos->UserHistogram("Pair","InvMMiddlePP3Ran","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
490                                                   180,0.12,0.3,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3Ran);
491         histos->UserHistogram("Pair","InvMHighPP3Ran","Inv.Mass vs PairPlaneAngle;Inv. Mass [GeV];Phi [rad]",
492                                                   200,0.3,0.5,100,0.,3.15,AliDielectronVarManager::kM,AliDielectronVarManager::kPairPlaneAngle3Ran);
493         */
494         
495      
496
497   //add histograms to Track classes
498   /*  histos->UserHistogram("Pre","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
499
500   histos->UserHistogram("Pre","ITS_dEdx_P","ITS_dEdx;P [GeV];ITS signal (arb units);#tracks",
501                                                 400,0.0,20.,1000,0.,1000.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal,kTRUE);
502
503   histos->UserHistogram("Pre","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
504                                                 400,0.0,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
505
506
507   histos->UserHistogram("Pre","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
508                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
509   histos->UserHistogram("Pre","TPCnSigmaKao_P","TPC number of sigmas Kaons;P [GeV];TPC number of sigmas Kaons;#tracks",
510                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaKao,kTRUE);
511   histos->UserHistogram("Pre","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks",
512                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE);
513
514   histos->UserHistogram("Pre","TRDpidPobEle_P","TRD PID probability Electrons;P [GeV];TRD prob Electrons;#tracks",
515                                                 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle,kTRUE);
516   histos->UserHistogram("Pre","TRDpidPobPio_P","TRD PID probability Pions;P [GeV];TRD prob Pions;#tracks",
517                                                 400,0.0,20.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio,kTRUE);
518
519   histos->UserHistogram("Pre","TOFnSigmaKao_P","TOF number of sigmas Kaons;P [GeV];TOF number of sigmas Kaons;#tracks",
520                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE);
521   histos->UserHistogram("Pre","TOFnSigmaPro_P","TOF number of sigmas Protons;P [GeV];TOF number of sigmas Protons;#tracks",
522                                                 400,0.0,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE);
523
524   histos->UserHistogram("Pre","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
525                                                 200,-2,2,200,0,3.15,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
526
527   histos->UserHistogram("Pre","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY);
528
529   histos->UserHistogram("Pre","ZVertex ","ZVertex ;ZVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kZv);
530   histos->UserHistogram("Pre","XVertex ","XVertex ;XVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kXv);
531   histos->UserHistogram("Pre","YVertex ","YVertex ;YVertex[cm];#tracks",20,-20,20,AliDielectronVarManager::kYv);
532
533   histos->UserHistogram("Pre","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",159,0.,159.,AliDielectronVarManager::kNclsTPC);
534   */    
535   //add histograms to Pair classes For Rejected Pairs:
536   die->SetHistogramManager(histos);
537 }
538
539 void InitCF(AliDielectron* die, Int_t cutDefinition)
540 {
541   //
542   // Setupd the CF Manager if needed
543   //
544   AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());
545
546   //pair variables
547   cf->AddVariable(AliDielectronVarManager::kP,200,0,20);
548   // cf->AddVariable(AliDielectronVarManager::kPt,200,0,20);// added
549   cf->AddVariable(AliDielectronVarManager::kM,201,-0.01,4.01); //20Mev Steps
550   //cf->AddVariable(AliDielectronVarManager::kM, 1000,0,5.00); //5Mev Steps 
551   cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10);
552   //cf->AddVariable(AliDielectronVarManager::kCentrality,100, 0, 100);
553
554
555    cf->AddVariable(AliDielectronVarManager::kCentrality,"0.,10.0,30.0,40.0,60.,80.,100.");
556
557   //leg variables
558   cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE);
559   cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE);
560   cf->AddVariable(AliDielectronVarManager::kTPCsignal,500,0.0.,500.,kTRUE);
561   cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10,kTRUE);
562
563   //only in this case write MC truth info
564   if (MCenabled) {
565         cf->SetStepForMCtruth();
566         cf->SetStepsForMCtruthOnly();
567         cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);
568         cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);
569   }
570
571   cf->SetStepsForSignal();
572   die->SetCFManagerPair(cf);
573 }
574
575 //--------------------------------------
576 void EnableMC() {
577   MCenabled=kTRUE;
578 }
579
580
581