]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/Config_shin_pPb.C
e81f51808e763c9d00883bd04518bf313d88c49a
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / Config_shin_pPb.C
1 void InitHistograms(AliDielectron *die, Int_t cutDefinition);\r
2 void InitCF(AliDielectron* die, Int_t cutDefinition);\r
3 \r
4 void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);\r
5 \r
6 AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);\r
7 AliDielectronPID *SetPIDcuts(Int_t cutDefinition);\r
8 \r
9 \r
10 //start systematics\r
11 TString names= ("nopid;SPDBoth+ITSNcls2+TPCTOF;SPDFisrt+ITSNcls2+TPCTOF;SPDBoth+ITSNcls3+TPCTOF;SPDFirst+ITSNcls3+TPCTOF;SPDFirst+ITSNcls3+TPCTOF+phiv;SPDFirst+ITSNcls3+TPCTOFloose+phiv");\r
12 \r
13 \r
14         Bool_t kRot = 0;\r
15         Bool_t kMix = 1;\r
16 \r
17 TObjArray *arrNames=names.Tokenize(";");\r
18 const Int_t nDie=arrNames->GetEntriesFast();\r
19 \r
20 AliDielectron* Config_shin_pPb(Int_t cutDefinition=1)\r
21 {\r
22   //\r
23   // Setup the instance of AliDielectron\r
24   //\r
25   \r
26   // create the actual framework object\r
27   TString name=Form("%02d",cutDefinition);\r
28   if (cutDefinition<arrNames->GetEntriesFast()){\r
29     name=arrNames->At(cutDefinition)->GetName();\r
30   }\r
31   AliDielectron *die =\r
32     new AliDielectron(Form("%s",name.Data()),\r
33                       Form("Track cuts: %s",name.Data()));\r
34   \r
35   \r
36   if(kRot){\r
37     AliDielectronTrackRotator *rot = new AliDielectronTrackRotator;\r
38     rot->SetConeAnglePhi(TMath::Pi());\r
39     rot->SetIterations(10);\r
40     die->SetTrackRotator(rot);\r
41   }//kRot\r
42   \r
43   \r
44   if(kMix){\r
45     AliDielectronMixingHandler *mix = new AliDielectronMixingHandler;\r
46     mix->SetMixType(AliDielectronMixingHandler::kAll);\r
47     mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10.");\r
48     mix->SetDepth(10);\r
49     die->SetMixingHandler(mix);\r
50   }//kMix\r
51   \r
52   \r
53 \r
54   SetupTrackCuts(die,cutDefinition);\r
55   SetupPairCuts(die,cutDefinition);\r
56   \r
57   // histogram setup\r
58   // only if an AliDielectronHistos object is attached to the\r
59   // dielectron framework histograms will be filled\r
60   InitHistograms(die,cutDefinition);\r
61   //  InitCF(die,cutDefinition);\r
62   \r
63 \r
64   return die;\r
65 \r
66 }\r
67 \r
68 //______________________________________________________________________________________\r
69 void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)\r
70 {\r
71   //\r
72   // Setup the track cuts\r
73   //\r
74         //options\r
75         die->SetPreFilterAllSigns();\r
76         //pairing with TLorentzVector\r
77         die->SetUseKF(kFALSE);\r
78 \r
79         AliDielectronTrackCuts *TrackCuts = new AliDielectronTrackCuts("StandardCuts","StandardCut");\r
80         //refit\r
81         TrackCuts->SetRequireTPCRefit(kTRUE);\r
82         TrackCuts->SetRequireITSRefit(kTRUE);\r
83         //SPD require\r
84         if(cutDefinition == 1|cutDefinition ==3) TrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth);\r
85         if(cutDefinition == 0|cutDefinition ==2) TrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);\r
86         if(cutDefinition > 3) TrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth); \r
87         die->GetTrackFilter().AddCuts(TrackCuts);\r
88                 \r
89         AliDielectronVarCuts *varCuts = new AliDielectronVarCuts("varCuts","varCuts");\r
90         varCuts->AddCut(AliDielectronVarManager::kPt,0.2,100.);\r
91         varCuts->AddCut(AliDielectronVarManager::kEta,-0.8,0.8);\r
92         varCuts->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.);\r
93         varCuts->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.);\r
94         varCuts->AddCut(AliDielectronVarManager::kKinkIndex0,0.);\r
95 \r
96 \r
97         varCuts->AddCut(AliDielectronVarManager::kNclsTPC,80.,500.);\r
98         varCuts->AddCut(AliDielectronVarManager::kNFclsTPC,100.,500.); // or NFclsTPCr?\r
99         varCuts->AddCut(AliDielectronVarManager::kTPCchi2Cl,0.,4.);\r
100         varCuts->AddCut(AliDielectronVarManager::kNFclsTPCfCross,0.5,500.);\r
101 \r
102         if( cutDefinition==1 | cutDefinition ==2 ){\r
103           varCuts->AddCut(AliDielectronVarManager::kNclsITS,2.,7.);\r
104         }\r
105         else{varCuts->AddCut(AliDielectronVarManager::kNclsITS,3.,7.);}\r
106         \r
107         die->GetTrackFilter().AddCuts(varCuts);\r
108         \r
109 // PID  \r
110         if(cutDefinition > 0){\r
111           AliDielectronPID *pid = new AliDielectronPID("pid","pid");    \r
112           pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE);\r
113           pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE);\r
114           if(cutDefinition < 6)\r
115           pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.,3.,0.4, 5., kFALSE);   \r
116           if(cutDefinition==6 )\r
117             pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.,3.,0.4, 2., kFALSE);\r
118           die->GetTrackFilter().AddCuts(pid);\r
119         }\r
120         \r
121 }\r
122 //----------------------------------Pair Cut-------------------------------------------\r
123 void SetupPairCuts(AliDielectron *die, Int_t cutDefinition)\r
124 {\r
125   if(cutDefinition > 4){\r
126     AliDielectronVarCuts *PhiV = new AliDielectronVarCuts("PhiV","PhiV");//mass and Phiv together\r
127     PhiV->AddCut(AliDielectronVarManager::kM, 0. , 0.05);\r
128     PhiV->AddCut(AliDielectronVarManager::kPhivPair, 2.5 , 3.2);\r
129     die->GetPairPreFilter().AddCuts(PhiV);\r
130     \r
131     //  AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","conversion tagging");\r
132     //  noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE);\r
133     //  die->GetTrackFilter().AddCuts(noconv);\r
134   }\r
135 }\r
136 /*\r
137 //______________________________________________________________________________________\r
138 AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)\r
139 {\r
140 \r
141   AliESDtrackCuts *fesdTrackCuts = new AliESDtrackCuts;\r
142 \r
143 \r
144   //global\r
145   \r
146   fesdTrackCuts->SetPtRange( 0.2 , 100. );\r
147   //if(cutDefinition > 1 ) fesdTrackCuts->SetPtRange( 3. , 4. );\r
148   fesdTrackCuts->SetAcceptKinkDaughters(kFALSE);\r
149   fesdTrackCuts->SetRequireSigmaToVertex(kFALSE);\r
150   fesdTrackCuts->SetDCAToVertex2D(kFALSE);\r
151   fesdTrackCuts->SetMaxDCAToVertexZ(3.);\r
152   fesdTrackCuts->SetMaxDCAToVertexXY(1.);\r
153   fesdTrackCuts->SetEtaRange( -0.8 , 0.8 );\r
154 \r
155   //ITS\r
156   fesdTrackCuts->SetRequireITSRefit(kTRUE);\r
157   fesdTrackCuts->SetMinNClustersITS(3);\r
158   if(cutDefinition == 6)fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth); \r
159   else fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);\r
160 \r
161 \r
162   //TPC\r
163   fesdTrackCuts->SetRequireTPCRefit(kTRUE);\r
164   fesdTrackCuts->SetMinNClustersTPC(80);\r
165   fesdTrackCuts->SetMinNCrossedRowsTPC(100);\r
166   fesdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.5);\r
167   fesdTrackCuts->SetMaxChi2PerClusterTPC(4);\r
168   return fesdTrackCuts;\r
169 \r
170 \r
171 }\r
172 */\r
173 //______________________________________________________________________________________\r
174 void InitHistograms(AliDielectron *die, Int_t cutDefinition)\r
175 {\r
176   //\r
177   // Initialise the histograms\r
178   //\r
179   \r
180   //Setup histogram classes\r
181   AliDielectronHistos *histos=\r
182     new AliDielectronHistos(die->GetName(),\r
183                             die->GetTitle());\r
184   \r
185 \r
186 \r
187   //Initialise histogram classes\r
188   histos->SetReservedWords("Track;Pair");\r
189   \r
190   //Event class\r
191   histos->AddClass("Event");\r
192   \r
193 \r
194   //Track classes\r
195   //to fill also track info from 2nd event loop until 2\r
196   for (Int_t i=0; i<2; ++i){\r
197     histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));\r
198   }\r
199   \r
200   //Pair classes\r
201   // to fill also mixed event histograms loop until 10\r
202 \r
203   for (Int_t i=0; i<3; ++i){\r
204     histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));\r
205 \r
206   }\r
207 \r
208   if(kMix){\r
209   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); //ME ++\r
210   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));//ME -+\r
211   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));//ME +-\r
212   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); // ME --\r
213   }\r
214 \r
215   if(kRot)histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10)));//Rot\r
216 \r
217 \r
218   //add histograms to event class\r
219   histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",1,0,1,AliDielectronVarManager::kNevents);\r
220   histos->UserHistogram("Event","ZVertex","ZVertex;ZVertex/cm",480,-12.,12.,AliDielectronVarManager::kZvPrim);\r
221   histos->UserHistogram("Event","nESDTracks","ESD tracks;ESD tracks;Number events",100,0,200,AliDielectronVarManager::kTracks);\r
222   histos->UserHistogram("Event","Nacc","Number of accepted tracks;Number events",100,0,200,AliDielectronVarManager::kNacc);\r
223   histos->UserHistogram("Event","NVtxContrib","Number of Vertex Contributor;NVtx;Number events",100,0,100,AliDielectronVarManager::kNVtxContrib);\r
224 \r
225 \r
226   //add histograms to Track classes\r
227   histos->UserHistogram("Track","P","P;P [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPIn);\r
228   histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPt);\r
229   histos->UserHistogram("Track","Eta","Eta; Eta ;#tracks",100,-1.,1.,AliDielectronVarManager::kEta);\r
230   histos->UserHistogram("Track","Phi","Phi; Phi ;#tracks",640,0.,6.4,AliDielectronVarManager::kPhi);\r
231 \r
232 \r
233   histos->UserHistogram("Track","Eta_phi","Eta vs Phi;Eta;Phi",500,-1.,1.,320,0.,6.4,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);\r
234   histos->UserHistogram("Track","Eta_pt","Eta vs Pt;Eta;Pt",100,-1.,1.,500,0.,10.,AliDielectronVarManager::kEta,AliDielectronVarManager::kPt);\r
235   histos->UserHistogram("Track","Phi_pt","Phi vs Pt;Phi;Pt",640,0,6.4.,500,0.,10.,AliDielectronVarManager::kPhi,AliDielectronVarManager::kPt);\r
236 \r
237   //  histos->UserHistogram("Track","ImpParXY_Pt","ImpParXY_Pt; Pt; ÍmpParXY",500,0.,10.,500,-5.,5.,AliDielectronVarManager::kPt,AliDielectronVarManager::kImpactParXY);\r
238   // histos->UserHistogram("Track","ImpParZ_Pt","ImpParZ_Pt; Pt; ÍmpParZ",500,0.,10.,500,-5.,5.,AliDielectronVarManager::kPt,AliDielectronVarManager::kImpactParZ);\r
239  \r
240 \r
241   //track checks (ITS)\r
242 //  histos->UserHistogram("Track","ITSchi2Cl_Mom","ITS Chi2 vs Momentum;Mom;ITS chi2",500,0.,5.,50,0.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSchi2Cl);\r
243 //  histos->UserHistogram("Track","NclsITS_Mom",";Mom;kNclsITS",500,0.,5.,7,0,7,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsITS);\r
244 \r
245   //track checks (TPC)\r
246   histos->UserHistogram("Track","TPCsignalNfrac_Mom",";fraction TPCSignalN/TPCncls vs Momentum;Mom;TPCSignalN/TPCncls",500,0.,5.,60,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignalNfrac);\r
247 //  histos->UserHistogram("Track","TPCchi2Cl_Mom","TPC Chi2 vs Momentum;Mom;TPC Chi2",500,0.,10.,100,0,5,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCchi2Cl);\r
248 //  histos->UserHistogram("Track","TPCclsDiff_Mom","kTPCclsDiff vs Momentum;Mom;kTPCclsDiff",500,0.,10.,100,-10,10,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCclsDiff);\r
249   histos->UserHistogram("Track","FindableTPCcls_Mom","kNFclsTPC vs Momentum;Mom;kNFclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPC);\r
250 //  histos->UserHistogram("Track","TPCcls_Mom","kNclsTPC vs Momentum;Mom;kNclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsTPC);\r
251 //  histos->UserHistogram("Track","kNclsSFracTPC_Mom","kNclsSFracTPC vs Momentum;Mom;kTPCclsSFrac",500,0.,10.,1000,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsSFracTPC);\r
252   histos->UserHistogram("Track","kNFclsTPCrFrac_Mom","kNFclsTPCrFrac vs Momentum;Mom;kNFclsTPCrFrac",500,0.,10.,60,0.,1.2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPCrFrac);\r
253 \r
254   //track checks (TOF)\r
255   histos->UserHistogram("Track","TOFbeta_Mom","kTOFbeta vs Momentum;Mom;TOFbeta",500,0.,5.,120,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta);\r
256 //  histos->UserHistogram("Track","TOFPIDBit_Mom","kTOFPIDBit vs Momentum;Mom;TOFPIDbit",500,0.,5.,2,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFPIDBit);\r
257 \r
258   //track checks (PID)\r
259 //  histos->UserHistogram("Track","ITSnSigma_MomPio","ITS number of sigmas Pion vs Momentum;Mom;ITSsigmaPion",500,0.,5.,1000,-20,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSnSigmaPio);\r
260 //  histos->UserHistogram("Track","TPCnSigma_MomPio","TPC number of sigmas Pions vs Momentum;Mom;TPCsigmaPion",500,0.,5.,1000,-20,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio);\r
261 \r
262 //  histos->UserHistogram("Track","ITSnSigma_MomEle","ITS number of sigmas Electrons vs Momentum;Mom;ITSsigmaEle",500,0.,5.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSnSigmaEle);\r
263   histos->UserHistogram("Track","TPCnSigma_MomEle","TPC number of sigmas Electrons vs Momentum;Mom;TPCsigmaEle",1000,0.,10.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle);\r
264   histos->UserHistogram("Track","TPCnSigma_TOFnSigma","TPC number of sigmas Electrons vs TOF sigma;TOFsigma;TPCsigmaEle",800,-40.,40.,800,-40,40,AliDielectronVarManager::kTOFnSigmaEle,AliDielectronVarManager::kTPCnSigmaEle);\r
265   histos->UserHistogram("Track","TPCnSigma_Eta","TPC number of sigmas Electrons vs Eta;Eta;TPCsigmaEle",800,-0.8.,0.8.,800,-40,40,AliDielectronVarManager::kEta,AliDielectronVarManager::kTPCnSigmaEle);\r
266   histos->UserHistogram("Track","TPCdEdx_Eta","TPC dEdx vs Eta;Eta;TPCsigmaEle",800,-0.8,0.8,800,0,200,AliDielectronVarManager::kEta,AliDielectronVarManager::kTPCsignal);\r
267   histos->UserHistogram("Track","TPCnSigma_Phi","TPC number of sigmas Electrons vs Phi;Phi;TPCsigmaEle",640,0.,6.4,800,-40,40,AliDielectronVarManager::kPhi,AliDielectronVarManager::kTPCnSigmaEle);\r
268   histos->UserHistogram("Track","TPCdEdx_Phi","TPC dEdx vs Phi;Phi;TPCsigmaEle",640,0.,6.4,800,0,200,AliDielectronVarManager::kPhi,AliDielectronVarManager::kTPCsignal);\r
269 \r
270 \r
271 \r
272 //  histos->UserHistogram("Track","TOFnSigma_MomEle","TOF number of sigmas Electrons vs Momentum;Mom;TOFsigmaEle",500,0.,5.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaEle);\r
273 \r
274 //  histos->UserHistogram("Track","ITSdEdx_P","dEdx;P [GeV];ITS signal (arb units) vs Momentum;Mom;ITSsignal", 500,0,5,800,0,200,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSsignal);\r
275   histos->UserHistogram("Track","TPCdEdx_P","dEdx;P [GeV];TPC signal (arb units) vs Momentum;Mom;TPCsignal", 500,0,10.,800,0,200,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal);\r
276 \r
277   //\r
278   //add histograms to Pair classes\r
279   //\r
280 \r
281   histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",\r
282                         500,0,4,AliDielectronVarManager::kM);\r
283 \r
284   histos->UserHistogram("Pair","InvMass_low","Inv.Mass;Inv. Mass [GeV];#pairs",\r
285                         500,0,0.5,AliDielectronVarManager::kM);\r
286 \r
287 //  histos->UserHistogram("Pair","InvMass10","Inv.Mass;Inv. Mass [GeV];#pairs",\r
288 //                        500,0.,5.,AliDielectronVarManager::kM);\r
289 \r
290   histos->UserHistogram("Pair","kDeltaEta","kDeltaEta;kDeltaEta;#pairs",\r
291                         160,0.,1.6,AliDielectronVarManager::kDeltaEta);\r
292 \r
293   histos->UserHistogram("Pair","kDeltaEta_low","kDeltaEta;kDeltaEta;#pairs",\r
294                         500,0.,0.5,AliDielectronVarManager::kDeltaEta);\r
295 \r
296   histos->UserHistogram("Pair","kDeltaPhi","kDeltaPhi;kDeltaPhi;#pairs",\r
297                         320,0.,6.4,AliDielectronVarManager::kDeltaPhi);\r
298 \r
299   histos->UserHistogram("Pair",\r
300                         "kDeltaEta_kDeltaPhi","kDeltaEta_kDeltaPhi;kDeltaEta;kDeltaPhi",\r
301                         160, 0. , 1.6, 320 , 0., 6.4 ,\r
302                         AliDielectronVarManager::kDeltaEta , AliDielectronVarManager::kDeltaPhi );\r
303 \r
304   histos->UserHistogram("Pair",\r
305                         "Phi","Phi;counts;Phi",\r
306                         320, 0. , 6.4, AliDielectronVarManager::kPhi);\r
307 \r
308   histos->UserHistogram("Pair",\r
309                         "Y","Y;counts;Y",\r
310                         120, -1.2 , 1.2, AliDielectronVarManager::kY);\r
311 \r
312 \r
313   histos->UserHistogram("Pair","PhiV",";PhiV;#pairs",\r
314                         320,0.,6.4,AliDielectronVarManager::kPhivPair);\r
315 \r
316   histos->UserHistogram("Pair",\r
317                         "OpAngle","Opening angle;Opening angle;#pairs",\r
318                         320, 0. , 3.2, \r
319                          AliDielectronVarManager::kOpeningAngle);\r
320 \r
321 \r
322 //   histos->UserHistogram("Pair","PhiV_Pt",";Pt;PhiV",\r
323 //                       100,0.,10.,320,0.,6.4,AliDielectronVarManager::kPt,AliDielectronVarManager::kPhivPair);\r
324 \r
325    histos->UserHistogram("Pair","InvMass_bin2","Inv.Mass;Inv. Mass [GeV];#pairs",\r
326         "0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , \r
327         0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,\r
328          0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , \r
329         2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , \r
330         3.3 , 3.5, 3.75 , 4.0",AliDielectronVarManager::kM);\r
331 \r
332   histos->UserHistogram("Pair",\r
333                         "Eta_Phi","Eta_Phi;Eta;Phi",\r
334                         360, -0.8 , 0.8., 320 , 0., 3.2. ,\r
335                         AliDielectronVarManager::kEta , AliDielectronVarManager::kPhi );\r
336 \r
337   histos->UserHistogram("Pair",\r
338                         "InvMass_Pt","InvMass_Pt;InvMass;Pt",\r
339                         500, 0. , 4., 100 , 0., 5. ,\r
340                         AliDielectronVarManager::kM , AliDielectronVarManager::kPt );\r
341 \r
342   histos->UserHistogram("Pair",\r
343                         "InvMass_PhivPair","InvMass_PhivPair;InvMass;PhivPair",\r
344                         500, 0. , 4., 320 , 0., 3.2 ,\r
345                          AliDielectronVarManager::kM , AliDielectronVarManager::kPhivPair );\r
346 \r
347 \r
348   histos->UserHistogram("Pair",\r
349                         "OpAngle_InvMass","OpAngle_InvMass;Opening angle;Invariant Mass",\r
350                         320, 0. , 3.2, 500 , 0. , 4. ,\r
351                          AliDielectronVarManager::kOpeningAngle,AliDielectronVarManager::kM);\r
352 \r
353   histos->UserHistogram("Pair",\r
354                         "Phi_InvMass","Phi_InvMass;Phi;Invariant Mass",\r
355                         320, 0. , 6.4, 500 , 0. , 4. ,\r
356                          AliDielectronVarManager::kPhi,AliDielectronVarManager::kM);\r
357 \r
358 \r
359 \r
360   die->SetHistogramManager(histos);\r
361 }\r
362 \r
363 \r
364 \r
365 \r
366 void InitCF(AliDielectron* die, Int_t cutDefinition)\r
367 {\r
368   //\r
369   // Setup the CF Manager if needed\r
370   //\r
371   \r
372   AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());\r
373 \r
374     \r
375    //pair variables\r
376 //  cf->AddVariable(AliDielectronVarManager::kM,500,0.,4.);\r
377   cf->AddVariable(AliDielectronVarManager::kM,"0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , \r
378         0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,\r
379          0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , \r
380         2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , \r
381         3.3 , 3.5, 3.75 , 4.0");//data\r
382   cf->AddVariable(AliDielectronVarManager::kY,20,-1.,1.);\r
383   cf->AddVariable(AliDielectronVarManager::kPhi,32, 0., 3.2);\r
384   cf->AddVariable(AliDielectronVarManager::kPt,100,0.,5.);\r
385 \r
386 \r
387   cf->AddVariable(AliDielectronVarManager::kOpeningAngle,62,0.,6.2);\r
388   cf->AddVariable(AliDielectronVarManager::kPhivPair,64, 0., 6.4);\r
389   cf->AddVariable(AliDielectronVarManager::kPairType,4,-0.5,3.5);\r
390   \r
391   \r
392   \r
393   //leg \r
394   cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.,kTRUE);\r
395   cf->AddVariable(AliDielectronVarManager::kPhi,36,0.,360.,kTRUE);\r
396   cf->AddVariable(AliDielectronVarManager::kEta,100,-1.,1.,kTRUE);\r
397 \r
398   \r
399 /*  \r
400   cf->AddVariable(AliDielectronVarManager::kTPCsignal,200,0.,200.,kTRUE);\r
401   cf->AddVariable(AliDielectronVarManager::kImpactParXY,40,-2.,2.,kTRUE);\r
402   cf->AddVariable(AliDielectronVarManager::kImpactParZ,40,-2.,2.,kTRUE);\r
403   cf->AddVariable(AliDielectronVarManager::kNclsITS,10,0.,10.,kTRUE);\r
404   cf->AddVariable(AliDielectronVarManager::kNFclsTPCrFrac,10,0.,1.,kTRUE);\r
405 */\r
406 \r
407 \r
408   die->SetCFManagerPair(cf);\r
409   \r
410 }\r
411 \r
412 \r
413 \r
414 \r
415 \r
416 void SetEtaCorrection()\r
417 {\r
418   if (AliDielectronPID::GetEtaCorrFunction()) return;\r
419 \r
420   TString list=gSystem->Getenv("LIST");\r
421   \r
422   TFile f("$TRAIN_ROOT/jpsi_JPSI/EtaCorrMaps.root");\r
423   if (!f.IsOpen()) return;\r
424   TList *keys=f.GetListOfKeys();\r
425 \r
426   for (Int_t i=0; i<keys->GetEntries(); ++i){\r
427     TString kName=keys->At(i)->GetName();\r
428     TPRegexp reg(kName);\r
429     if (reg.MatchB(list)){\r
430       printf("Using Eta Correction Function: %s\n",kName.Data());\r
431       AliDielectronPID::SetEtaCorrFunction((TF1*)f.Get(kName.Data()));\r
432     }\r
433   }\r
434 }\r
435 \r
436 \r
437 \r