]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosJPSI/ConfigJpsi_sweber_pPb_TRDtrigger.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / ConfigJpsi_sweber_pPb_TRDtrigger.C
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 }