]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/TakuAlberica/single/ConfigJpsi2eeDataTaku.C
initial commit
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / TakuAlberica / single / ConfigJpsi2eeDataTaku.C
1 void SetupTrackCutsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
2 void SetupPairCutsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
3 void InitHistogramsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
4 void InitTreesDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
5 void InitCFDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD);
6
7 AliESDtrackCuts *SetupESDtrackCutsDieleData(Int_t cutDefinition);
8
9 //TString namesDieleData=("basicQ+SPDfirst+pt>1+PID; basicQ+SPDany+pt>1+PID");
10 TString namesDieleData=("basicQ+SPDfirst+pt>1+PID");
11
12 TObjArray *arrNamesDieleData=namesDieleData.Tokenize("; ");
13
14 const Int_t nDie=arrNamesDieleData->GetEntries();
15
16 AliDielectronTaku* ConfigJpsi2ee(Int_t cutDefinition, Bool_t isAOD=kFALSE)
17 {
18   //
19   //cout<<" Setup the instance of AliDielectronTaku "<<endl;
20   //
21   
22   // create the actual framework object
23   TString name=Form("%02d",cutDefinition);
24   if (cutDefinition<arrNamesDieleData->GetEntriesFast()){
25     name=arrNamesDieleData->At(cutDefinition)->GetName();
26   }
27   AliDielectronTaku *diele = new AliDielectronTaku(Form("%s",name.Data()),
28                                                    Form("Track cuts: %s",name.Data()));
29
30   // cut setup
31   SetupTrackCutsDieleData(diele, cutDefinition, isAOD);
32   SetupPairCutsDieleData(diele, cutDefinition, isAOD);
33   
34   //
35   // histogram setup
36   // only if an AliDielectronHistos object is attached to the
37   // dielelectron framework histograms will be filled
38   //
39   InitHistogramsDieleData(diele, cutDefinition, isAOD);
40   //InitTreesDieleData(diele, cutDefinition, isAOD);
41
42   // the last definition uses no cuts and only the QA histograms should be filled!
43 //   if (cutDefinition<nDie-1)
44   InitCFDieleData(diele, cutDefinition, isAOD);
45
46   AliDielectronTrackRotator *rot=new AliDielectronTrackRotator;
47   rot->SetConeAnglePhi(TMath::Pi());
48   rot->SetIterations(10);
49   diele->SetTrackRotator(rot);
50   return diele;
51 }
52
53 //______________________________________________________________________________________
54 void SetupTrackCutsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
55 {
56   //
57   // Setup the track cuts
58   //
59   cout<<" SetupTrackCutsDieleData "<<endl;
60   //ESD quality cuts DielectronTrackCuts
61   if (!isAOD) {
62     diele->GetTrackFilter().AddCuts(SetupESDtrackCutsDieleData(cutDefinition));
63   } else {
64     AliDielectronTrackCuts *trackCuts=new AliDielectronTrackCuts("trackCuts","trackCuts");
65     if (cutDefinition==0)
66       trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
67     else if (cutDefinition==1)
68       trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
69     trackCuts->SetRequireTPCRefit(kTRUE);
70     trackCuts->SetRequireITSRefit(kTRUE);
71     diele->GetTrackFilter().AddCuts(trackCuts);
72   }
73
74    //Pt cut ----------------------------------------------------------
75
76   AliDielectronVarCuts *pt = new AliDielectronVarCuts("ptCut","pt cut");
77   pt->AddCut(AliDielectronVarManager::kPt,0.2,10.);
78   pt->AddCut(AliDielectronVarManager::kKinkIndex0,0.);
79   
80   //AOD additions since there are no AliESDtrackCuts -----------------
81   //
82   if (isAOD){
83     // TPC #clusteres cut
84     pt->AddCut(AliDielectronVarManager::kNclsTPC,70.,160.);
85     pt->AddCut(AliDielectronVarManager::kEta,-0.9,0.9);
86     //TODO: DCA cuts to be investigated!!!
87 //       pt->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.);
88 //       pt->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.);
89   }
90   diele->GetTrackFilter().AddCuts(pt);
91
92   // PID cuts --------------------------------------------------------
93   
94   AliDielectronPID *pid = new AliDielectronPID("PID10","TPC nSigma |e|<3 + |Pi|>3 + |P|>3 + TOF nSigma |e|<3");
95   pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-2.5,3.);
96   pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3,3.);
97
98   //  pid->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-1.8.,1.8.,0.,0.,kTRUE);
99   //  pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-2.,2.0.,0.,0.,kTRUE);
100
101   //pid->AddCut(AliDielectronPID::kTOF,AliPID::kKaon,-4.,4.,0.,0.,kTRUE);
102   //pid->AddCut(AliDielectronPID::kTOF,AliPID::kProton,-4.,4.,0.,0.,kTRUE);
103   
104   //pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,0.,kTRUE);
105   //  pid->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-1.75.,1.8.,0.,0.,kTRUE);
106   //pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-1.3.,2.0.,0.,0.,kTRUE);
107
108
109
110   //pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.);
111   //pid->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.);
112   //pid->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.);
113
114   //pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.,3.);
115
116   //pid->AddCut(AliDielectronPID::kTOF,AliPID::kPion,-3.,3.);
117   //pid->AddCut(AliDielectronPID::kTOF,AliPID::kKaon,-3.,3.);
118   //pid->AddCut(AliDielectronPID::kTOF,AliPID::kProton,-3.,3.);
119
120   diele->GetTrackFilter().AddCuts(pid);
121
122 }
123
124 //______________________________________________________________________________________
125 void SetupPairCutsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
126 {
127   //
128   // Setup the pair cuts
129   //
130   
131   //Invariant mass and rapidity selection
132   AliDielectronVarCuts *pairCut=new AliDielectronVarCuts("2<M<4+|Y|<.9","2<M<4 + |Y|<.9");
133   //   pairCut->AddCut(AliDielectronVarManager::kM,2.,4.);
134   pairCut->AddCut(AliDielectronVarManager::kY,-0.9,0.9);
135   //pairCut->AddCut(AliDielectronVarManager::kOpeningAngle, 0, 0.1);
136   //diele->GetPairFilter().AddCuts(pairCut);
137   diele->GetPairPreFilter().AddCuts(pairCut);
138 }
139
140 //______________________________________________________________________________________
141 AliESDtrackCuts *SetupESDtrackCutsDieleData(Int_t cutDefinition)
142 {
143   cout<<" SetupESDtrackCutsDieleData "<<endl;
144   //
145   // Setup default AliESDtrackCuts
146   //
147   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;
148
149   // basic track quality cuts  (basicQ)
150   esdTrackCuts->SetMaxDCAToVertexZ(3.0);
151   esdTrackCuts->SetMaxDCAToVertexXY(1.0);
152
153   esdTrackCuts->SetEtaRange( -0.9 , 0.9 );
154
155   esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
156   esdTrackCuts->SetRequireITSRefit(kTRUE);
157   esdTrackCuts->SetRequireTPCRefit(kTRUE);
158
159   //esdTrackCuts->SetPtRange(.8,1e30);
160   esdTrackCuts->SetPtRange(0.2,10);
161   esdTrackCuts->SetPtRange(0.2,10);
162
163   //esdTrackCuts->SetMinNClustersTPC(120);
164   esdTrackCuts->SetMinNCrossedRowsTPC(120);
165   esdTrackCuts->SetMaxChi2PerClusterTPC(4);
166   esdTrackCuts->SetRequireTPCRefit(kTRUE);
167   esdTrackCuts->SetRequireITSRefit(kTRUE);
168
169   // default SPD any
170   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
171
172   if (cutDefinition==0)
173     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
174
175   return esdTrackCuts;
176 }
177
178
179 //______________________________________________________________________________________
180 void InitHistogramsDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
181 {
182   //
183   // Initialise the histograms
184   //
185   
186   //Setup histogram Manager
187   AliDielectronHistosTaku *histos=new AliDielectronHistosTaku(diele->GetName(),diele->GetTitle());
188   
189   //Initialise histogram classes
190   histos->SetReservedWords("Track;Pair");
191   
192   //Track classes
193   //to fill also track info from 2nd event loop until 2
194   for (Int_t i=0; i<2; ++i){
195     histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
196   }
197   
198   //Pair classes
199   // to fill also mixed event histograms loop until 10
200   for (Int_t i=0; i<3; ++i){
201     histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
202   }
203   
204   //legs from pair
205   for (Int_t i=0; i<3; ++i){
206     histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(i)));
207   }
208   //track rotation
209 //   histos->AddClass(Form("Pair_%s",PairClassName(AliDielectron::kEv1PMRot)));
210 //   histos->AddClass(Form("Track_Legs_%s",PairClassName(AliDielectron::kEv1PMRot)));
211   
212   
213   //add histograms to event class
214   if (cutDefinition==0) {
215     histos->AddClass("Event");
216     histos->UserHistogram("Event","VtxZ","Vertex Z;Z[cm]",300,-15.,15.,AliDielectronVarManager::kZvPrim);
217   }
218   
219   //add histograms to Track classes
220   histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",400,0,20.,AliDielectronVarManager::kPt);
221   histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC);
222   
223   histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",500,-1.,1.,AliDielectronVarManager::kImpactParXY);
224   histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",600,-3.,3.,AliDielectronVarManager::kImpactParZ);
225   histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
226                         100,-1,1,144,0,6.285,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
227
228   histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
229                         200,0.2,20.,100,0.,200.,AliDielectronVarManager::kPIn,
230                         AliDielectronVarManager::kTPCsignal,kTRUE);
231   histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
232                         200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
233
234
235   histos->UserHistogram("Track","TOF_Beta_P","TOF beta;P [GeV];TOF beta;#tracks",
236                         200,0.2,20.,100,0.,1.2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta,kTRUE);
237
238
239   histos->UserHistogram("Track","TOFnSigmaPi_P","TOF nSigmaPi;P [GeV];TOF beta;#tracks",
240                         200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPio,kTRUE);
241   histos->UserHistogram("Track","TOFnSigmaK_P","TOF nSigmaK;P [GeV];TOF beta;#tracks",
242                         200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaKao,kTRUE);
243   histos->UserHistogram("Track","TOFnSigmaPr_P","TOF nSigmaPr;P [GeV];TOF beta;#tracks",
244                         200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaPro,kTRUE);
245
246
247       
248   //add histograms to Pair classes
249   histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
250                         201,-.01,4.01,AliDielectronVarManager::kM);
251   histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
252                         100,-1.,1.,AliDielectronVarManager::kY);
253   histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
254                         100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
255   
256   diele->SetHistogramManager(histos);
257 }
258
259
260 void InitCFDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
261 {
262   //
263   // Setupd the CF Manager if needed
264   //
265   
266   AliDielectronCF *cf=new AliDielectronCF(diele->GetName(),diele->GetTitle());
267   
268   //pair variables
269   cf->AddVariable(AliDielectronVarManager::kPt,"0.0, 1.0, 2.0, 3.0, 5., 7.0, 10.0, 100.0");
270   
271   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");
272   cf->AddVariable(AliDielectronVarManager::kM,125,0.,125*.04); //40Mev Steps
273   cf->AddVariable(AliDielectronVarManager::kPairType,"-0.5,0.5,1.5,2.5");
274   cf->AddVariable(AliDielectronVarManager::kThetaHE, "-2.0, -1.0, -0.75, -0.5, -0.25, 0.0, 0.25, 0.5, 0.75, 1.0, 2.0");
275   cf->AddVariable(AliDielectronVarManager::kThetaCS, "-2.0, -1.0, -0.75, -0.5, -0.25, 0.0, 0.25, 0.5, 0.75, 1.0, 2.0");
276   //leg variables
277   cf->AddVariable(AliDielectronVarManager::kPt,"0.0, 0.8, 0.9, 0.95, 1.0, 1.05, 1.1, 1.2, 100.0",kTRUE);
278   cf->AddVariable(AliDielectronVarManager::kNclsTPC,"0, 70, 75, 80, 85, 90, 100, 120, 160",kTRUE);
279   cf->AddVariable(AliDielectronVarManager::kEta,"-5,-1,-0.9,-0.85,-0.8,-0.75,0.75,0.8,0.85,0.9,1.0,5",kTRUE);
280
281 //   cf->AddVariable(AliDielectronVarManager::kTPCnSigmaEle,"-2.5,-2,-1.5,-1,-0.5,4.",kTRUE);
282   cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPio,"3.,3.5,4.,100",kTRUE);
283   cf->AddVariable(AliDielectronVarManager::kTPCnSigmaPro,"3.,3.5,4.,100",kTRUE);
284
285   //event variables
286   cf->AddVariable(AliDielectronVarManager::kNaccTrcklts,"0.0, 9.0, 17.0, 25.0, 36.0, 55.0, 500.0");
287
288   if (!isAOD){
289     Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
290     if (hasMC){
291       cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);
292       cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);
293       cf->AddVariable(AliDielectronVarManager::kPdgCodeGrandMother,10000,-5000.5,4999.5,kTRUE);
294     }
295   }
296     //only in this case write MC truth info
297   if (cutDefinition==0){
298     cf->SetStepForMCtruth();
299   }
300
301   diele->SetCFManagerPair(cf);
302   
303 }
304
305 //______________________________________________________________________________________
306 void InitTreesDieleData(AliDielectronTaku *diele, Int_t cutDefinition, Bool_t isAOD)
307 {
308
309   //Setup histogram Manager
310   AliDielectronHistosTaku *histos=new AliDielectronHistosTaku(diele->GetName(),diele->GetTitle());
311   histos->UserTree("tree","sinlge tree");
312   
313   histos->SetReserveVariableInTree(AliDielectronVarManager::kPx);
314   histos->SetReserveVariableInTree(AliDielectronVarManager::kPy);
315   histos->SetReserveVariableInTree(AliDielectronVarManager::kPz);
316   histos->SetReserveVariableInTree(AliDielectronVarManager::kPt);
317   histos->SetReserveVariableInTree(AliDielectronVarManager::kP);
318   histos->SetReserveVariableInTree(AliDielectronVarManager::kXv);
319   histos->SetReserveVariableInTree(AliDielectronVarManager::kYv);
320   histos->SetReserveVariableInTree(AliDielectronVarManager::kZv);
321   histos->SetReserveVariableInTree(AliDielectronVarManager::kOneOverPt);
322   histos->SetReserveVariableInTree(AliDielectronVarManager::kPhi);
323   histos->SetReserveVariableInTree(AliDielectronVarManager::kTheta);
324   histos->SetReserveVariableInTree(AliDielectronVarManager::kEta);
325   histos->SetReserveVariableInTree(AliDielectronVarManager::kY);
326   histos->SetReserveVariableInTree(AliDielectronVarManager::kE);
327   histos->SetReserveVariableInTree(AliDielectronVarManager::kM);
328   histos->SetReserveVariableInTree(AliDielectronVarManager::kCharge);
329   histos->SetReserveVariableInTree(AliDielectronVarManager::kNclsITS);
330   histos->SetReserveVariableInTree(AliDielectronVarManager::kNclsTPC);
331   histos->SetReserveVariableInTree(AliDielectronVarManager::kNclsTPCiter1);
332   histos->SetReserveVariableInTree(AliDielectronVarManager::kNFclsTPC);
333   histos->SetReserveVariableInTree(AliDielectronVarManager::kNFclsTPCr);
334   histos->SetReserveVariableInTree(AliDielectronVarManager::kNFclsTPCrFrac);
335   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCsignalN);
336   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCsignalNfrac);
337   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCchi2Cl);
338   histos->SetReserveVariableInTree(AliDielectronVarManager::kTrackStatus);
339   histos->SetReserveVariableInTree(AliDielectronVarManager::kNclsTRD);
340   histos->SetReserveVariableInTree(AliDielectronVarManager::kTRDntracklets);
341   histos->SetReserveVariableInTree(AliDielectronVarManager::kTRDpidQuality);
342   histos->SetReserveVariableInTree(AliDielectronVarManager::kTRDprobEle);
343   histos->SetReserveVariableInTree(AliDielectronVarManager::kTRDprobPio);
344   histos->SetReserveVariableInTree(AliDielectronVarManager::kImpactParXY);
345   histos->SetReserveVariableInTree(AliDielectronVarManager::kImpactParZ);
346   histos->SetReserveVariableInTree(AliDielectronVarManager::kTrackLength);
347   histos->SetReserveVariableInTree(AliDielectronVarManager::kPdgCode);
348   histos->SetReserveVariableInTree(AliDielectronVarManager::kPdgCodeMother);
349   histos->SetReserveVariableInTree(AliDielectronVarManager::kPdgCodeGrandMother);
350   histos->SetReserveVariableInTree(AliDielectronVarManager::kNumberOfDaughters);
351   histos->SetReserveVariableInTree(AliDielectronVarManager::kHaveSameMother);
352   histos->SetReserveVariableInTree(AliDielectronVarManager::kIsJpsiPrimary);
353   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignal);
354   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignalSSD1);
355   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignalSSD2);
356   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignalSDD1);
357   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSsignalSDD2);
358   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSclusterMap);
359   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaEle);
360   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaPio);
361   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaMuo);
362   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaKao);
363   histos->SetReserveVariableInTree(AliDielectronVarManager::kITSnSigmaPro);
364   histos->SetReserveVariableInTree(AliDielectronVarManager::kPIn);
365   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCsignal);
366   histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFsignal);
367   histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFbeta);
368   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaEle);
369   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaPio);
370   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaMuo);
371   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaKao);
372   histos->SetReserveVariableInTree(AliDielectronVarManager::kTPCnSigmaPro);
373   histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaEle);
374   histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaPio);
375   histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaMuo);
376   histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaKao);
377   histos->SetReserveVariableInTree(AliDielectronVarManager::kTOFnSigmaPro);
378   histos->SetReserveVariableInTree(AliDielectronVarManager::kKinkIndex0);
379   histos->SetReserveVariableInTree(AliDielectronVarManager::kChi2NDF);
380   histos->SetReserveVariableInTree(AliDielectronVarManager::kDecayLength);
381   histos->SetReserveVariableInTree(AliDielectronVarManager::kR);
382   histos->SetReserveVariableInTree(AliDielectronVarManager::kOpeningAngle);
383   histos->SetReserveVariableInTree(AliDielectronVarManager::kThetaHE);
384   histos->SetReserveVariableInTree(AliDielectronVarManager::kPhiHE);
385   histos->SetReserveVariableInTree(AliDielectronVarManager::kThetaCS);
386   histos->SetReserveVariableInTree(AliDielectronVarManager::kPhiCS);
387   histos->SetReserveVariableInTree(AliDielectronVarManager::kLegDist);
388   histos->SetReserveVariableInTree(AliDielectronVarManager::kLegDistXY);
389   histos->SetReserveVariableInTree(AliDielectronVarManager::kDeltaEta);
390   histos->SetReserveVariableInTree(AliDielectronVarManager::kDeltaPhi);
391   histos->SetReserveVariableInTree(AliDielectronVarManager::kMerr);
392   histos->SetReserveVariableInTree(AliDielectronVarManager::kDCA);
393   histos->SetReserveVariableInTree(AliDielectronVarManager::kPairType);
394   histos->SetReserveVariableInTree(AliDielectronVarManager::kPseudoProperTime);
395   histos->SetReserveVariableInTree(AliDielectronVarManager::kXvPrim);
396   histos->SetReserveVariableInTree(AliDielectronVarManager::kYvPrim);
397   histos->SetReserveVariableInTree(AliDielectronVarManager::kZvPrim);
398   histos->SetReserveVariableInTree(AliDielectronVarManager::kXRes);
399   histos->SetReserveVariableInTree(AliDielectronVarManager::kYRes);
400   histos->SetReserveVariableInTree(AliDielectronVarManager::kZRes);
401   histos->SetReserveVariableInTree(AliDielectronVarManager::kNTrk);
402   histos->SetReserveVariableInTree(AliDielectronVarManager::kTracks);
403   histos->SetReserveVariableInTree(AliDielectronVarManager::kNacc);
404   histos->SetReserveVariableInTree(AliDielectronVarManager::kNaccTrcklts);
405   histos->SetReserveVariableInTree(AliDielectronVarManager::kNch);
406   histos->SetReserveVariableInTree(AliDielectronVarManager::kCentrality);
407   histos->SetReserveVariableInTree(AliDielectronVarManager::kNevents);
408
409   diele->SetTreeManager(histos);
410   
411 }