]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/Configpp2012Oezdemir.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / Configpp2012Oezdemir.C
1    void InitHistograms(AliDielectron *die, Int_t cutDefinition);
2    void InitCF(AliDielectron* die, Int_t cutDefinition);
3
4    void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);
5    void SetupPairCuts(AliDielectron *die, Int_t cutDefinition);
6
7    void EnableMC();
8    AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);
9
10    TString names=("MixEvt");
11    TObjArray *arrNames=names.Tokenize(";");
12    const Int_t nDie=arrNames->GetEntries();
13    Bool_t MCenabled=kFALSE;
14
15    Bool_t kMix = 1; 
16
17    AliDielectron* Configpp2012Oezdemir(Int_t cutDefinition,Bool_t hasMC=kFALSE)
18    {
19          //
20          // Setup the instance of AliDielectron
21          //
22          
23          MCenabled=hasMC;
24          
25          // create the actual framework object
26         
27         TString name=Form("%02d",cutDefinition);
28          if ((cutDefinition)<arrNames->GetEntriesFast()){
29            name=arrNames->At((cutDefinition))->GetName();
30          }
31
32          //thisCut only relevant for MC:
33          AliDielectron *die =
34            new AliDielectron(Form
35            ("%s",name.Data()),
36                    Form("Track cuts: %s",name.Data()));
37         
38         if(kMix){
39         AliDielectronMixingHandler *mix = new AliDielectronMixingHandler;
40         mix->SetMixType(AliDielectronMixingHandler::kAll);
41         mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10.");
42         mix->AddVariable(AliDielectronVarManager::kNacc,"0,10000");
43         mix->SetDepth(10);
44         die->SetMixingHandler(mix);
45         }
46          
47          // cut setup
48          SetupTrackCuts(die,cutDefinition);
49          SetupPairCuts(die,cutDefinition);
50          
51          // histogram setup
52          // only if an AliDielectronHistos object is attached to the
53          // dielectron framework histograms will be filled
54          //
55          InitHistograms(die,cutDefinition);
56
57          // the last definition uses no cuts and only the QA histograms should be filled!
58          //InitCF(die,cutDefinition);
59
60          return die;
61    }
62
63    //______________________________________________________________________________________
64    void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
65    {
66          //
67          // Setup the track cuts
68          //
69          //
70          //___________________________________________
71          AliDielectronPID *pidTT = new AliDielectronPID("TPC-TOF","TPC-TOF");
72          pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE);
73          pidTT->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 5., kFALSE );
74          pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE);
75
76          //___________________________________________
77          AliDielectronPID *pidTOF = new AliDielectronPID("TOF","TOF");
78          pidTOF->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 5., kFALSE );
79          // 
80          // =============CREATE GROUPS FOR ==============
81          //
82
83          //Config 0: TPC-TOF 
84          AliDielectronCutGroup* cgTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
85          cgTrackFilterPIDTPC->AddCut(SetupESDtrackCuts(cutDefinition));
86          cgTrackFilterPIDTPC->AddCut(pidTT);
87
88         //Config 1: TOF
89          AliDielectronCutGroup* cgTrackFilterPIDTOF = new AliDielectronCutGroup("cgPIDTOF","cgPIDTOF",AliDielectronCutGroup::kCompAND);
90          cgTrackFilterPIDTOF->AddCut(SetupESDtrackCuts(cutDefinition));
91          cgTrackFilterPIDTOF->AddCut(pidTOF);
92
93         //Config 2: no PID
94          AliDielectronCutGroup* cgTrackFilternoPID = new AliDielectronCutGroup("cgnoPID","cgnoPID",AliDielectronCutGroup::kCompAND);
95          cgTrackFilternoPID->AddCut(SetupESDtrackCuts(cutDefinition));
96
97          //Correct BG scheme for Combinatorial BG 
98          //die->SetPreFilterUnlikeOnly();
99          die->SetPreFilterAllSigns();
100          die->SetUseKF(kFALSE);
101
102         if ( cutDefinition ==0 ) {
103            die->GetTrackFilter().AddCuts(cgTrackFilterPIDTPC);  
104         }
105
106    }
107    //______________________________________________________________________________________
108
109    void SetupPairCuts(AliDielectron *die, Int_t cutDefinition)
110    {
111          //
112          // Setup the pair cuts
113          //
114          
115         
116         if(cutDefinition == 0){
117
118         AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","conversion tagging");
119         noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE);
120         die->GetTrackFilter().AddCuts(noconv);
121                     
122         //pair rapidity
123 //         AliDielectronVarCuts *RapidityCut=new AliDielectronVarCuts("RapidityCut","RapidityCut");
124 //      RapidityCut->AddCut(AliDielectronVarManager::kY, -0.8 , 0.8);
125 //         die->GetPairFilter().AddCuts(RapidityCut);   
126
127         AliDielectronVarCuts *PhiV = new AliDielectronVarCuts("PhiV","PhiV");//mass and Phiv together
128         PhiV->AddCut(AliDielectronVarManager::kM, 0.0 , 0.05);
129         PhiV->AddCut(AliDielectronVarManager::kPhivPair, 2.5 , 3.2 );
130         die->GetPairPreFilter().AddCuts(PhiV);
131         /*
132         AliDielectronVarCuts *PhiV2 = new AliDielectronVarCuts("PhiV2","PhiV2");//mass and Phiv together
133         PhiV2->AddCut(AliDielectronVarManager::kM, 0.05 , 1000.);
134
135         AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR);
136         pairCutsCG2->AddCut(PhiV);
137         pairCutsCG2->AddCut(PhiV2);
138         die->GetPairFilter().AddCuts(pairCutsCG2);
139         */
140         /*
141         if (MCenabled) {
142         AliDielectronVarCuts *mcpid =new AliDielectronVarCuts("mcpid","mcpid");
143         mcpid->SetCutType(AliDielectronVarCuts::kAny);
144         mcpid->AddCut(AliDielectronVarManager::kPdgCode, 11);
145         mcpid->AddCut(AliDielectronVarManager::kPdgCode, -11);
146         die->GetTrackFilter().AddCuts(mcpid);
147
148         AliDielectronVarCuts *MCnoConv =new AliDielectronVarCuts("MCnoConv","MCnoConv");
149         MCnoConv->AddCut(AliDielectronVarManager::kPdgCodeMother, 22,kTRUE);
150         die->GetTrackFilter().AddCuts(MCnoConv);
151                 }
152         */      
153         }
154
155    }
156
157    //______________________________________________________________________________________
158    AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)
159    {
160          //
161          // Setup default AliESDtrackCuts
162          //
163          AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;
164          
165          esdTrackCuts->SetMaxDCAToVertexZ(3.0);
166          esdTrackCuts->SetMaxDCAToVertexXY(1.0); 
167
168          esdTrackCuts->SetPtRange(  0.2 , 100.0);
169          esdTrackCuts->SetEtaRange( -0.8 , 0.8 );
170          esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
171          esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
172          esdTrackCuts->SetDCAToVertex2D(kFALSE);
173
174          esdTrackCuts->SetRequireITSRefit(kTRUE);
175          esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); //Base
176          esdTrackCuts->SetMinNClustersITS(3);  //Base
177
178          esdTrackCuts->SetRequireTPCRefit(kTRUE);
179          esdTrackCuts->SetMinNClustersTPC(80);     //Base
180
181          esdTrackCuts->SetMinNCrossedRowsTPC(100);   //Base
182
183          esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.5);
184          esdTrackCuts->SetMaxChi2PerClusterTPC(4);
185
186          return esdTrackCuts;
187    }
188
189    //______________________________________________________________________________________
190
191 void InitHistograms(AliDielectron *die, Int_t cutDefinition)
192    {
193  //
194   // Initialise the histograms
195   //
196   
197   //Setup histogram classes
198   AliDielectronHistos *histos=
199     new AliDielectronHistos(die->GetName(),
200                             die->GetTitle());
201   
202
203
204   //Initialise histogram classes
205   histos->SetReservedWords("Track;Pair");
206   //histos->SetReservedWords("Track");  
207
208   //Event class
209   histos->AddClass("Event");
210   
211
212   //Track classes
213   //to fill also track info from 2nd event loop until 2
214   for (Int_t i=0; i<2; ++i){
215     histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
216   }
217   
218   //Pair classes
219   // to fill also mixed event histograms loop until 10
220
221   for (Int_t i=0; i<3; ++i){
222     histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
223
224   }
225
226   if(kMix){
227   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); //ME ++
228   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));//ME -+
229   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));//ME +-
230   histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); // ME --
231   }
232
233
234   //add histograms to event class
235   histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",1,0,1,AliDielectronVarManager::kNevents);
236   histos->UserHistogram("Event","ZVertex","ZVertex;ZVertex/cm",480,-12.,12.,AliDielectronVarManager::kZvPrim);
237   histos->UserHistogram("Event","nESDTracks","ESD tracks;ESD tracks;Number events",100,0,200,AliDielectronVarManager::kTracks);
238   histos->UserHistogram("Event","Nacc","Number of accepted tracks;Number events",100,0,200,AliDielectronVarManager::kNacc);
239   histos->UserHistogram("Event","NVtxContrib","Number of Vertex Contributor;NVtx;Number events",100,0,100,AliDielectronVarManager::kNVtxContrib);
240
241
242   //add histograms to Track classes
243   histos->UserHistogram("Track","P","P;P [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPIn);
244   histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPt);
245   histos->UserHistogram("Track","Eta","Eta; Eta ;#tracks",100,-1.,1.,AliDielectronVarManager::kEta);
246   histos->UserHistogram("Track","Phi","Phi; Phi ;#tracks",640,0.,6.4,AliDielectronVarManager::kPhi);
247
248
249   histos->UserHistogram("Track","Eta_phi","Eta vs Phi;Eta;Phi",100,-1.,1.,320,0.,6.4,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
250   histos->UserHistogram("Track","Eta_pt","Eta vs Pt;Eta;Pt",100,-1.,1.,500,0.,10.,AliDielectronVarManager::kEta,AliDielectronVarManager::kPt);
251   histos->UserHistogram("Track","ImpParXY_Pt","ImpParXY_Pt; Pt; ÍmpParXY",500,0.,10.,500,-5.,5.,AliDielectronVarManager::kPt,AliDielectronVarManager::kImpactParXY);
252   histos->UserHistogram("Track","ImpParZ_Pt","ImpParZ_Pt; Pt; ÍmpParZ",500,0.,10.,500,-5.,5.,AliDielectronVarManager::kPt,AliDielectronVarManager::kImpactParZ);
253  
254
255   //track checks (ITS)
256   histos->UserHistogram("Track","ITSchi2Cl_Mom","ITS Chi2 vs Momentum;Mom;ITS chi2",500,0.,5.,50,0.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSchi2Cl);
257   histos->UserHistogram("Track","NclsITS_Mom",";Mom;kNclsITS",500,0.,5.,7,0,7,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsITS);
258
259   //track checks (TPC)
260   histos->UserHistogram("Track","TPCsignalNfrac_Mom",";fraction TPCSignalN/TPCncls vs Momentum;Mom;TPCSignalN/TPCncls",500,0.,5.,60,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignalNfrac);
261   histos->UserHistogram("Track","TPCchi2Cl_Mom","TPC Chi2 vs Momentum;Mom;TPC Chi2",500,0.,10.,100,0,5,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCchi2Cl);
262   histos->UserHistogram("Track","TPCclsDiff_Mom","kTPCclsDiff vs Momentum;Mom;kTPCclsDiff",500,0.,10.,100,-10,10,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCclsDiff);
263   histos->UserHistogram("Track","FindableTPCcls_Mom","kNFclsTPC vs Momentum;Mom;kNFclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPC);
264   histos->UserHistogram("Track","TPCcls_Mom","kNclsTPC vs Momentum;Mom;kNclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsTPC);
265   histos->UserHistogram("Track","kNclsSFracTPC_Mom","kNclsSFracTPC vs Momentum;Mom;kTPCclsSFrac",500,0.,10.,1000,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsSFracTPC);
266   histos->UserHistogram("Track","kNFclsTPCrFrac_Mom","kNFclsTPCrFrac vs Momentum;Mom;kNFclsTPCrFrac",500,0.,10.,60,0.,1.2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPCrFrac);
267
268   //track checks (TOF)
269   histos->UserHistogram("Track","TOFbeta_Mom","kTOFbeta vs Momentum;Mom;TOFbeta",500,0.,5.,120,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta);
270   histos->UserHistogram("Track","TOFPIDBit_Mom","kTOFPIDBit vs Momentum;Mom;TOFPIDbit",500,0.,5.,2,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFPIDBit);
271
272   //track checks (PID)
273   histos->UserHistogram("Track","ITSnSigma_MomPio","ITS number of sigmas Pion vs Momentum;Mom;ITSsigmaPion",500,0.,5.,1000,-20,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSnSigmaPio);
274   histos->UserHistogram("Track","TPCnSigma_MomPio","TPC number of sigmas Pions vs Momentum;Mom;TPCsigmaPion",500,0.,5.,1000,-20,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio);
275
276   histos->UserHistogram("Track","ITSnSigma_MomEle","ITS number of sigmas Electrons vs Momentum;Mom;ITSsigmaEle",500,0.,5.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSnSigmaEle);
277   histos->UserHistogram("Track","TPCnSigma_MomEle","TPC number of sigmas Electrons vs Momentum;Mom;TPCsigmaEle",1000,0.,10.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle);
278   histos->UserHistogram("Track","TOFnSigma_MomEle","TOF number of sigmas Electrons vs Momentum;Mom;TOFsigmaEle",500,0.,5.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaEle);
279
280   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);
281   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);
282
283   //
284   //add histograms to Pair classes
285   //
286
287   histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
288                         500,0,4,AliDielectronVarManager::kM);
289
290   histos->UserHistogram("Pair","InvMass_low","Inv.Mass;Inv. Mass [GeV];#pairs",
291                         500,0,0.5,AliDielectronVarManager::kM);
292
293   histos->UserHistogram("Pair","InvMass10","Inv.Mass;Inv. Mass [GeV];#pairs",
294                         500,0.,5.,AliDielectronVarManager::kM);
295
296   histos->UserHistogram("Pair","kDeltaEta","kDeltaEta;kDeltaEta;#pairs",
297                         160,0.,1.6,AliDielectronVarManager::kDeltaEta);
298
299   histos->UserHistogram("Pair","kDeltaEta_low","kDeltaEta;kDeltaEta;#pairs",
300                         500,0.,0.5,AliDielectronVarManager::kDeltaEta);
301
302   histos->UserHistogram("Pair","kDeltaPhi","kDeltaPhi;kDeltaPhi;#pairs",
303                         320,0.,6.4,AliDielectronVarManager::kDeltaPhi);
304
305   histos->UserHistogram("Pair",
306                         "kDeltaEta_kDeltaPhi","kDeltaEta_kDeltaPhi;kDeltaEta;kDeltaPhi",
307                         160, 0. , 1.6, 320 , 0., 6.4 ,
308                          AliDielectronVarManager::kDeltaEta , AliDielectronVarManager::kDeltaPhi );
309
310   histos->UserHistogram("Pair","PhiV",";PhiV;#pairs",
311                         320,0.,6.4,AliDielectronVarManager::kPhivPair);
312
313
314    histos->UserHistogram("Pair","PhiV_Pt",";Pt;PhiV",
315                          100,0.,10.,320,0.,6.4,AliDielectronVarManager::kPt,AliDielectronVarManager::kPhivPair);
316
317    histos->UserHistogram("Pair","InvMass_bin2","Inv.Mass;Inv. Mass [GeV];#pairs",
318         "0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , 
319         0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,
320          0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , 
321         2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , 
322         3.3 , 3.5, 3.75 , 4.0",AliDielectronVarManager::kM);
323
324
325   histos->UserHistogram("Pair",
326                         "InvMass_Pt","InvMass_Pt;InvMass;Pt",
327                         500, 0. , 4., 100 , 0., 5. ,
328                          AliDielectronVarManager::kM , AliDielectronVarManager::kPt );
329
330   histos->UserHistogram("Pair",
331                         "InvMass_PhivPair","InvMass_PhivPair;InvMass;PhivPair",
332                         500, 0. , 4., 320 , 0., 3.2 ,
333                          AliDielectronVarManager::kM , AliDielectronVarManager::kPhivPair );
334
335   histos->UserHistogram("Pair",
336                         "OpAngle","Opening angle;Opening angle;#pairs",
337                         320, 0. , 3.2, 
338                          AliDielectronVarManager::kOpeningAngle);
339
340   histos->UserHistogram("Pair",
341                         "OpAngle_InvMass","OpAngle_InvMass;Opening angle;Invariant Mass",
342                         320, 0. , 3.2, 500 , 0. , 4. ,
343                          AliDielectronVarManager::kOpeningAngle,AliDielectronVarManager::kM);
344
345
346   histos->UserHistogram("Pair",
347                         "Phi","Phi;counts;Phi",
348                         320, 0. , 6.4, AliDielectronVarManager::kPhi);
349
350   histos->UserHistogram("Pair",
351                         "Y","Y;counts;Y",
352                         120, -1.2 , 1.2, AliDielectronVarManager::kY);
353
354   die->SetHistogramManager(histos);
355
356 }
357
358
359 void InitCF(AliDielectron* die, Int_t cutDefinition)
360 {
361   //
362   // Setupd the CF Manager if needed
363   //
364   AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());
365  
366   //pair variables
367   cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.);
368   //cf->AddVariable(AliDielectronVarManager::kP,200,0,20);
369   //cf->AddVariable(AliDielectronVarManager::kPhi,64, -3.2, 3.2);
370   cf->AddVariable(AliDielectronVarManager::kY,40,-2.,2.);
371   cf->AddVariable(AliDielectronVarManager::kM,500,0.,4.); 
372   //cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10);
373   //cf->AddVariable(AliDielectronVarManager::kOpeningAngle,315,0,3.15);
374   //cf->AddVariable(AliDielectronVarManager::kDeltaEta,200,-2,2);
375   //cf->AddVariable(AliDielectronVarManager::kDeltaPhi,100,0,3.15);
376   //cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10);
377   cf->AddVariable(AliDielectronVarManager::kNumberOfDaughters,5,0,5);
378   //leg variables
379   cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.,kTRUE);
380   //cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE);
381   //cf->AddVariable(AliDielectronVarManager::kY,40,-2.,2.,kTRUE);
382   cf->AddVariable(AliDielectronVarManager::kEta,20,-1.,1.,kTRUE);
383   cf->AddVariable(AliDielectronVarManager::kPhi,100,0.,3.15,kTRUE);
384 //  cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE);
385 //  cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10,kTRUE);
386 //  cf->AddVariable(AliDielectronVarManager::kNumberOfDaughters,11,0,10,kTRUE);
387  
388   //only in this case write MC truth info
389  
390   if (MCenabled) {
391         cf->SetStepForMCtruth();
392         //cf->SetStepsForMCtruthOnly();
393         //cf->SetStepForNoCutsMCmotherPid();
394         cout << "MC ENABLED ------------------------------------------------------" << endl;
395     //cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);
396     //cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);
397   }
398
399   //cf->SetStepsForEachCut();
400   //cf->SetStepForPreFilter();
401   cf->SetStepForAfterAllCuts();
402   //cf->SetStepsForBackground();
403   cf->SetStepsForSignal();
404   
405   die->SetCFManagerPair(cf);
406
407 /*
408
409   AliDielectronSignalMC* lowMassDiele=new
410         AliDielectronSignalMC("lowMassDiele","low mass dielectron pairs");
411   lowMassDiele->SetLegPDGs(11,-11);
412   lowMassDiele->SetCheckBothChargesLegs(kTRUE,kTRUE);
413   lowMassDiele->SetLegSources(AliDielectronSignalMC::kPrimary,
414           AliDielectronSignalMC::kPrimary);
415   lowMassDiele->SetFillPureMCStep(kTRUE);
416   die->AddSignalMC(lowMassDiele);
417
418   AliDielectronSignalMC* secondary=new
419         AliDielectronSignalMC("secondary","secondary electrons pairs");
420   secondary->SetLegPDGs(11,-11);
421   secondary->SetCheckBothChargesLegs(kTRUE,kTRUE);
422   secondary->SetLegSources(AliDielectronSignalMC::kSecondary,
423           AliDielectronSignalMC::kSecondary);
424   die->AddSignalMC(secondary);
425
426   AliDielectronSignalMC* eleFromConversions=new
427         AliDielectronSignalMC("eleFromConversions","conversion electrons");
428   eleFromConversions->SetLegPDGs(11,-11);
429   eleFromConversions->SetCheckBothChargesLegs(kTRUE,kTRUE);
430   eleFromConversions->SetLegSources(AliDielectronSignalMC::kSecondary,
431           AliDielectronSignalMC::kSecondary);
432   eleFromConversions->SetMotherPDGs(22,22);    // 22- photon
433   die->AddSignalMC(eleFromConversions);
434
435   AliDielectronSignalMC* misIdPions=new
436         AliDielectronSignalMC("misIdPions","mis id. pion pairs");
437   misIdPions->SetLegPDGs(211,-211);
438   misIdPions->SetCheckBothChargesLegs(kTRUE,kTRUE);
439   die->AddSignalMC(misIdPions);
440
441   AliDielectronSignalMC* dalitzDecays=new
442         AliDielectronSignalMC("dalitzDecays","dalitz Pairs");
443   dalitzDecays->SetLegPDGs(11,-11);
444   dalitzDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
445   dalitzDecays->SetLegSources(AliDielectronSignalMC::kSecondary,
446                 AliDielectronSignalMC::kSecondary);
447   dalitzDecays->SetMotherPDGs(111,111);
448   dalitzDecays->SetFillPureMCStep(kTRUE);
449   die->AddSignalMC(dalitzDecays);
450 */
451
452 AliDielectronSignalMC* PhiDecays= new AliDielectronSignalMC("PhiDecays","Phi Pairs");
453 PhiDecays->SetLegPDGs(11,-11);
454 PhiDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
455 PhiDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
456 PhiDecays->SetMotherPDGs(333,333);
457 PhiDecays->SetMothersRelation(AliDielectronSignalMC::kSame); 
458 PhiDecays->SetFillPureMCStep(kTRUE);
459 die->AddSignalMC(PhiDecays);
460
461 AliDielectronSignalMC* OmegaDecays= new AliDielectronSignalMC("OmegaDecays","Omega Pairs");
462 OmegaDecays->SetLegPDGs(11,-11);
463 OmegaDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
464 OmegaDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
465 OmegaDecays->SetMotherPDGs(223,223);
466 OmegaDecays->SetMothersRelation(AliDielectronSignalMC::kSame);
467 OmegaDecays->SetDalitz(AliDielectronSignalMC::kIsNotDalitz); 
468 OmegaDecays->SetFillPureMCStep(kTRUE);
469 die->AddSignalMC(OmegaDecays);
470
471 /*
472 AliDielectronSignalMC* RhoDecays= new AliDielectronSignalMC("RhoDecays","Rho Pairs");
473 RhoDecays->SetLegPDGs(11,-11);
474 RhoDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
475 RhoDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
476 RhoDecays->SetMotherPDGs(113,113);
477 RhoDecays->SetMothersRelation(AliDielectronSignalMC::kSame); 
478 RhoDecays->SetFillPureMCStep(kTRUE);
479 die->AddSignalMC(RhoDecays);
480
481 AliDielectronSignalMC* DieleConti= new AliDielectronSignalMC("DieleConti","low mass ee pairs");
482 DieleConti->SetLegPDGs(11,-11);
483 DieleConti->SetMotherPDGs(0,0,22,22);
484 DieleConti->SetCheckBothChargesLegs(kTRUE,kTRUE);
485 DieleConti->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
486 DieleConti->SetMothersRelation(AliDielectronSignalMC::kSame);
487 DieleConti->SetFillPureMCStep(kTRUE);
488 die->AddSignalMC(DieleConti);*/
489
490
491 }
492
493 //--------------------------------------
494    void EnableMC() {
495         MCenabled=kTRUE;
496    }