]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGDQ/dielectron/macrosLMEE/Configpp2012Oezdemir.C
Corrected end-of-line behavior
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / Configpp2012Oezdemir.C
index 4a8195a0a416e2c130a6a95924c8dff5d96c3c8e..671d4127f0288cfe3432a63c4d8bb45fac7d03c4 100644 (file)
-   void InitHistograms(AliDielectron *die, Int_t cutDefinition);\r
-   void InitCF(AliDielectron* die, Int_t cutDefinition);\r
-\r
-   void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);\r
-   void SetupPairCuts(AliDielectron *die, Int_t cutDefinition);\r
-\r
-   void EnableMC();\r
-   AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);\r
-\r
-   TString names=("MixEvt");\r
-   TObjArray *arrNames=names.Tokenize(";");\r
-   const Int_t nDie=arrNames->GetEntries();\r
-   Bool_t MCenabled=kFALSE;\r
-\r
-   Bool_t kMix = 1; \r
-\r
-   AliDielectron* Configpp2012Oezdemir(Int_t cutDefinition,Bool_t hasMC=kFALSE)\r
-   {\r
-        //\r
-        // Setup the instance of AliDielectron\r
-        //\r
-        \r
-        MCenabled=hasMC;\r
-        \r
-        // create the actual framework object\r
-       \r
-       TString name=Form("%02d",cutDefinition);\r
-        if ((cutDefinition)<arrNames->GetEntriesFast()){\r
-          name=arrNames->At((cutDefinition))->GetName();\r
-        }\r
-\r
-        //thisCut only relevant for MC:\r
-        AliDielectron *die =\r
-          new AliDielectron(Form\r
-          ("%s",name.Data()),\r
-                  Form("Track cuts: %s",name.Data()));\r
-       \r
-       if(kMix){\r
-       AliDielectronMixingHandler *mix = new AliDielectronMixingHandler;\r
-       mix->SetMixType(AliDielectronMixingHandler::kAll);\r
-       mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10.");\r
-       mix->AddVariable(AliDielectronVarManager::kNacc,"0,10000");\r
-       mix->SetDepth(10);\r
-       die->SetMixingHandler(mix);\r
-       }\r
-        \r
-        // cut setup\r
-        SetupTrackCuts(die,cutDefinition);\r
-        SetupPairCuts(die,cutDefinition);\r
-        \r
-        // histogram setup\r
-        // only if an AliDielectronHistos object is attached to the\r
-        // dielectron framework histograms will be filled\r
-        //\r
-        InitHistograms(die,cutDefinition);\r
-\r
-        // the last definition uses no cuts and only the QA histograms should be filled!\r
-        //InitCF(die,cutDefinition);\r
-\r
-        return die;\r
-   }\r
-\r
-   //______________________________________________________________________________________\r
-   void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)\r
-   {\r
-        //\r
-        // Setup the track cuts\r
-        //\r
-        //\r
-        //___________________________________________\r
-        AliDielectronPID *pidTT = new AliDielectronPID("TPC-TOF","TPC-TOF");\r
-        pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE);\r
-        pidTT->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 5., kFALSE );\r
-        pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE);\r
-\r
-         //___________________________________________\r
-        AliDielectronPID *pidTOF = new AliDielectronPID("TOF","TOF");\r
-        pidTOF->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 5., kFALSE );\r
-        // \r
-        // =============CREATE GROUPS FOR ==============\r
-        //\r
-\r
-        //Config 0: TPC-TOF \r
-        AliDielectronCutGroup* cgTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);\r
-        cgTrackFilterPIDTPC->AddCut(SetupESDtrackCuts(cutDefinition));\r
-        cgTrackFilterPIDTPC->AddCut(pidTT);\r
-\r
-       //Config 1: TOF\r
-        AliDielectronCutGroup* cgTrackFilterPIDTOF = new AliDielectronCutGroup("cgPIDTOF","cgPIDTOF",AliDielectronCutGroup::kCompAND);\r
-        cgTrackFilterPIDTOF->AddCut(SetupESDtrackCuts(cutDefinition));\r
-        cgTrackFilterPIDTOF->AddCut(pidTOF);\r
-\r
-       //Config 2: no PID\r
-        AliDielectronCutGroup* cgTrackFilternoPID = new AliDielectronCutGroup("cgnoPID","cgnoPID",AliDielectronCutGroup::kCompAND);\r
-        cgTrackFilternoPID->AddCut(SetupESDtrackCuts(cutDefinition));\r
-\r
-        //Correct BG scheme for Combinatorial BG \r
-        //die->SetPreFilterUnlikeOnly();\r
-        die->SetPreFilterAllSigns();\r
-        die->SetUseKF(kFALSE);\r
-\r
-       if ( cutDefinition ==0 ) {\r
-          die->GetTrackFilter().AddCuts(cgTrackFilterPIDTPC);  \r
-       }\r
-\r
-   }\r
-   //______________________________________________________________________________________\r
-\r
-   void SetupPairCuts(AliDielectron *die, Int_t cutDefinition)\r
-   {\r
-        //\r
-        // Setup the pair cuts\r
-        //\r
-        \r
-       \r
-       if(cutDefinition == 0){\r
-\r
-       AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","conversion tagging");\r
-       noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE);\r
-       die->GetTrackFilter().AddCuts(noconv);\r
-                   \r
-       //pair rapidity\r
-//         AliDielectronVarCuts *RapidityCut=new AliDielectronVarCuts("RapidityCut","RapidityCut");\r
-//     RapidityCut->AddCut(AliDielectronVarManager::kY, -0.8 , 0.8);\r
-//         die->GetPairFilter().AddCuts(RapidityCut);  \r
-\r
-        AliDielectronVarCuts *PhiV = new AliDielectronVarCuts("PhiV","PhiV");//mass and Phiv together\r
-        PhiV->AddCut(AliDielectronVarManager::kM, 0.0 , 0.05);\r
-        PhiV->AddCut(AliDielectronVarManager::kPhivPair, 2.5 , 3.2 );\r
-       die->GetPairPreFilter().AddCuts(PhiV);\r
-       /*\r
-        AliDielectronVarCuts *PhiV2 = new AliDielectronVarCuts("PhiV2","PhiV2");//mass and Phiv together\r
-        PhiV2->AddCut(AliDielectronVarManager::kM, 0.05 , 1000.);\r
-\r
-        AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR);\r
-        pairCutsCG2->AddCut(PhiV);\r
-        pairCutsCG2->AddCut(PhiV2);\r
-        die->GetPairFilter().AddCuts(pairCutsCG2);\r
-       */\r
-       /*\r
-       if (MCenabled) {\r
-       AliDielectronVarCuts *mcpid =new AliDielectronVarCuts("mcpid","mcpid");\r
-       mcpid->SetCutType(AliDielectronVarCuts::kAny);\r
-       mcpid->AddCut(AliDielectronVarManager::kPdgCode, 11);\r
-        mcpid->AddCut(AliDielectronVarManager::kPdgCode, -11);\r
-        die->GetTrackFilter().AddCuts(mcpid);\r
-\r
-       AliDielectronVarCuts *MCnoConv =new AliDielectronVarCuts("MCnoConv","MCnoConv");\r
-       MCnoConv->AddCut(AliDielectronVarManager::kPdgCodeMother, 22,kTRUE);\r
-       die->GetTrackFilter().AddCuts(MCnoConv);\r
-               }\r
-       */      \r
-       }\r
-\r
-   }\r
-\r
-   //______________________________________________________________________________________\r
-   AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)\r
-   {\r
-        //\r
-        // Setup default AliESDtrackCuts\r
-        //\r
-        AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;\r
-        \r
-        esdTrackCuts->SetMaxDCAToVertexZ(3.0);\r
-        esdTrackCuts->SetMaxDCAToVertexXY(1.0); \r
-\r
-        esdTrackCuts->SetPtRange(  0.2 , 100.0);\r
-        esdTrackCuts->SetEtaRange( -0.8 , 0.8 );\r
-        esdTrackCuts->SetRequireSigmaToVertex(kFALSE);\r
-        esdTrackCuts->SetAcceptKinkDaughters(kFALSE);\r
-        esdTrackCuts->SetDCAToVertex2D(kFALSE);\r
-\r
-        esdTrackCuts->SetRequireITSRefit(kTRUE);\r
-        esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); //Base\r
-        esdTrackCuts->SetMinNClustersITS(3);  //Base\r
-\r
-        esdTrackCuts->SetRequireTPCRefit(kTRUE);\r
-        esdTrackCuts->SetMinNClustersTPC(80);     //Base\r
-\r
-        esdTrackCuts->SetMinNCrossedRowsTPC(100);   //Base\r
-\r
-        esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.5);\r
-        esdTrackCuts->SetMaxChi2PerClusterTPC(4);\r
-\r
-        return esdTrackCuts;\r
-   }\r
-\r
-   //______________________________________________________________________________________\r
-\r
-void InitHistograms(AliDielectron *die, Int_t cutDefinition)\r
-   {\r
- //\r
-  // Initialise the histograms\r
-  //\r
-  \r
-  //Setup histogram classes\r
-  AliDielectronHistos *histos=\r
-    new AliDielectronHistos(die->GetName(),\r
-                            die->GetTitle());\r
-  \r
-\r
-\r
-  //Initialise histogram classes\r
-  histos->SetReservedWords("Track;Pair");\r
-  //histos->SetReservedWords("Track");  \r
-\r
-  //Event class\r
-  histos->AddClass("Event");\r
-  \r
-\r
-  //Track classes\r
-  //to fill also track info from 2nd event loop until 2\r
-  for (Int_t i=0; i<2; ++i){\r
-    histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));\r
-  }\r
-  \r
-  //Pair classes\r
-  // to fill also mixed event histograms loop until 10\r
-\r
-  for (Int_t i=0; i<3; ++i){\r
-    histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));\r
-\r
-  }\r
-\r
-  if(kMix){\r
-  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); //ME ++\r
-  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));//ME -+\r
-  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));//ME +-\r
-  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); // ME --\r
-  }\r
-\r
-\r
-  //add histograms to event class\r
-  histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",1,0,1,AliDielectronVarManager::kNevents);\r
-  histos->UserHistogram("Event","ZVertex","ZVertex;ZVertex/cm",480,-12.,12.,AliDielectronVarManager::kZvPrim);\r
-  histos->UserHistogram("Event","nESDTracks","ESD tracks;ESD tracks;Number events",100,0,200,AliDielectronVarManager::kTracks);\r
-  histos->UserHistogram("Event","Nacc","Number of accepted tracks;Number events",100,0,200,AliDielectronVarManager::kNacc);\r
-  histos->UserHistogram("Event","NVtxContrib","Number of Vertex Contributor;NVtx;Number events",100,0,100,AliDielectronVarManager::kNVtxContrib);\r
-\r
-\r
-  //add histograms to Track classes\r
-  histos->UserHistogram("Track","P","P;P [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPIn);\r
-  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPt);\r
-  histos->UserHistogram("Track","Eta","Eta; Eta ;#tracks",100,-1.,1.,AliDielectronVarManager::kEta);\r
-  histos->UserHistogram("Track","Phi","Phi; Phi ;#tracks",640,0.,6.4,AliDielectronVarManager::kPhi);\r
-\r
-\r
-  histos->UserHistogram("Track","Eta_phi","Eta vs Phi;Eta;Phi",100,-1.,1.,320,0.,6.4,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);\r
-  histos->UserHistogram("Track","Eta_pt","Eta vs Pt;Eta;Pt",100,-1.,1.,500,0.,10.,AliDielectronVarManager::kEta,AliDielectronVarManager::kPt);\r
-  histos->UserHistogram("Track","ImpParXY_Pt","ImpParXY_Pt; Pt; ÍmpParXY",500,0.,10.,500,-5.,5.,AliDielectronVarManager::kPt,AliDielectronVarManager::kImpactParXY);\r
-  histos->UserHistogram("Track","ImpParZ_Pt","ImpParZ_Pt; Pt; ÍmpParZ",500,0.,10.,500,-5.,5.,AliDielectronVarManager::kPt,AliDielectronVarManager::kImpactParZ);\r
\r
-\r
-  //track checks (ITS)\r
-  histos->UserHistogram("Track","ITSchi2Cl_Mom","ITS Chi2 vs Momentum;Mom;ITS chi2",500,0.,5.,50,0.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSchi2Cl);\r
-  histos->UserHistogram("Track","NclsITS_Mom",";Mom;kNclsITS",500,0.,5.,7,0,7,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsITS);\r
-\r
-  //track checks (TPC)\r
-  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
-  histos->UserHistogram("Track","TPCchi2Cl_Mom","TPC Chi2 vs Momentum;Mom;TPC Chi2",500,0.,10.,100,0,5,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCchi2Cl);\r
-  histos->UserHistogram("Track","TPCclsDiff_Mom","kTPCclsDiff vs Momentum;Mom;kTPCclsDiff",500,0.,10.,100,-10,10,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCclsDiff);\r
-  histos->UserHistogram("Track","FindableTPCcls_Mom","kNFclsTPC vs Momentum;Mom;kNFclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPC);\r
-  histos->UserHistogram("Track","TPCcls_Mom","kNclsTPC vs Momentum;Mom;kNclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsTPC);\r
-  histos->UserHistogram("Track","kNclsSFracTPC_Mom","kNclsSFracTPC vs Momentum;Mom;kTPCclsSFrac",500,0.,10.,1000,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsSFracTPC);\r
-  histos->UserHistogram("Track","kNFclsTPCrFrac_Mom","kNFclsTPCrFrac vs Momentum;Mom;kNFclsTPCrFrac",500,0.,10.,60,0.,1.2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPCrFrac);\r
-\r
-  //track checks (TOF)\r
-  histos->UserHistogram("Track","TOFbeta_Mom","kTOFbeta vs Momentum;Mom;TOFbeta",500,0.,5.,120,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta);\r
-  histos->UserHistogram("Track","TOFPIDBit_Mom","kTOFPIDBit vs Momentum;Mom;TOFPIDbit",500,0.,5.,2,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFPIDBit);\r
-\r
-  //track checks (PID)\r
-  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
-  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
-\r
-  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
-  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
-  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
-\r
-  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
-  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
-\r
-  //\r
-  //add histograms to Pair classes\r
-  //\r
-\r
-  histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",\r
-                        500,0,4,AliDielectronVarManager::kM);\r
-\r
-  histos->UserHistogram("Pair","InvMass_low","Inv.Mass;Inv. Mass [GeV];#pairs",\r
-                        500,0,0.5,AliDielectronVarManager::kM);\r
-\r
-  histos->UserHistogram("Pair","InvMass10","Inv.Mass;Inv. Mass [GeV];#pairs",\r
-                        500,0.,5.,AliDielectronVarManager::kM);\r
-\r
-  histos->UserHistogram("Pair","kDeltaEta","kDeltaEta;kDeltaEta;#pairs",\r
-                        160,0.,1.6,AliDielectronVarManager::kDeltaEta);\r
-\r
-  histos->UserHistogram("Pair","kDeltaEta_low","kDeltaEta;kDeltaEta;#pairs",\r
-                        500,0.,0.5,AliDielectronVarManager::kDeltaEta);\r
-\r
-  histos->UserHistogram("Pair","kDeltaPhi","kDeltaPhi;kDeltaPhi;#pairs",\r
-                        320,0.,6.4,AliDielectronVarManager::kDeltaPhi);\r
-\r
-  histos->UserHistogram("Pair",\r
-                        "kDeltaEta_kDeltaPhi","kDeltaEta_kDeltaPhi;kDeltaEta;kDeltaPhi",\r
-                        160, 0. , 1.6, 320 , 0., 6.4 ,\r
-                         AliDielectronVarManager::kDeltaEta , AliDielectronVarManager::kDeltaPhi );\r
-\r
-  histos->UserHistogram("Pair","PhiV",";PhiV;#pairs",\r
-                        320,0.,6.4,AliDielectronVarManager::kPhivPair);\r
-\r
-\r
-   histos->UserHistogram("Pair","PhiV_Pt",";Pt;PhiV",\r
-                        100,0.,10.,320,0.,6.4,AliDielectronVarManager::kPt,AliDielectronVarManager::kPhivPair);\r
-\r
-   histos->UserHistogram("Pair","InvMass_bin2","Inv.Mass;Inv. Mass [GeV];#pairs",\r
-       "0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , \r
-       0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,\r
-        0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , \r
-       2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , \r
-       3.3 , 3.5, 3.75 , 4.0",AliDielectronVarManager::kM);\r
-\r
-\r
-  histos->UserHistogram("Pair",\r
-                        "InvMass_Pt","InvMass_Pt;InvMass;Pt",\r
-                        500, 0. , 4., 100 , 0., 5. ,\r
-                         AliDielectronVarManager::kM , AliDielectronVarManager::kPt );\r
-\r
-  histos->UserHistogram("Pair",\r
-                        "InvMass_PhivPair","InvMass_PhivPair;InvMass;PhivPair",\r
-                        500, 0. , 4., 320 , 0., 3.2 ,\r
-                         AliDielectronVarManager::kM , AliDielectronVarManager::kPhivPair );\r
-\r
-  histos->UserHistogram("Pair",\r
-                        "OpAngle","Opening angle;Opening angle;#pairs",\r
-                        320, 0. , 3.2, \r
-                         AliDielectronVarManager::kOpeningAngle);\r
-\r
-  histos->UserHistogram("Pair",\r
-                        "OpAngle_InvMass","OpAngle_InvMass;Opening angle;Invariant Mass",\r
-                        320, 0. , 3.2, 500 , 0. , 4. ,\r
-                         AliDielectronVarManager::kOpeningAngle,AliDielectronVarManager::kM);\r
-\r
-\r
-  histos->UserHistogram("Pair",\r
-                        "Phi","Phi;counts;Phi",\r
-                        320, 0. , 6.4, AliDielectronVarManager::kPhi);\r
-\r
-  histos->UserHistogram("Pair",\r
-                        "Y","Y;counts;Y",\r
-                        120, -1.2 , 1.2, AliDielectronVarManager::kY);\r
-\r
-  die->SetHistogramManager(histos);\r
-\r
-}\r
-\r
-\r
-void InitCF(AliDielectron* die, Int_t cutDefinition)\r
-{\r
-  //\r
-  // Setupd the CF Manager if needed\r
-  //\r
-  AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());\r
\r
-  //pair variables\r
-  cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.);\r
-  //cf->AddVariable(AliDielectronVarManager::kP,200,0,20);\r
-  //cf->AddVariable(AliDielectronVarManager::kPhi,64, -3.2, 3.2);\r
-  cf->AddVariable(AliDielectronVarManager::kY,40,-2.,2.);\r
-  cf->AddVariable(AliDielectronVarManager::kM,500,0.,4.); \r
-  //cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10);\r
-  //cf->AddVariable(AliDielectronVarManager::kOpeningAngle,315,0,3.15);\r
-  //cf->AddVariable(AliDielectronVarManager::kDeltaEta,200,-2,2);\r
-  //cf->AddVariable(AliDielectronVarManager::kDeltaPhi,100,0,3.15);\r
-  //cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10);\r
-  cf->AddVariable(AliDielectronVarManager::kNumberOfDaughters,5,0,5);\r
-  //leg variables\r
-  cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.,kTRUE);\r
-  //cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE);\r
-  //cf->AddVariable(AliDielectronVarManager::kY,40,-2.,2.,kTRUE);\r
-  cf->AddVariable(AliDielectronVarManager::kEta,20,-1.,1.,kTRUE);\r
-  cf->AddVariable(AliDielectronVarManager::kPhi,100,0.,3.15,kTRUE);\r
-//  cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE);\r
-//  cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10,kTRUE);\r
-//  cf->AddVariable(AliDielectronVarManager::kNumberOfDaughters,11,0,10,kTRUE);\r
\r
-  //only in this case write MC truth info\r
\r
-  if (MCenabled) {\r
-       cf->SetStepForMCtruth();\r
-       //cf->SetStepsForMCtruthOnly();\r
-       //cf->SetStepForNoCutsMCmotherPid();\r
-       cout << "MC ENABLED ------------------------------------------------------" << endl;\r
-    //cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);\r
-    //cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);\r
-  }\r
-\r
-  //cf->SetStepsForEachCut();\r
-  //cf->SetStepForPreFilter();\r
-  cf->SetStepForAfterAllCuts();\r
-  //cf->SetStepsForBackground();\r
-  cf->SetStepsForSignal();\r
-  \r
-  die->SetCFManagerPair(cf);\r
-\r
-/*\r
-\r
-  AliDielectronSignalMC* lowMassDiele=new\r
-       AliDielectronSignalMC("lowMassDiele","low mass dielectron pairs");\r
-  lowMassDiele->SetLegPDGs(11,-11);\r
-  lowMassDiele->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-  lowMassDiele->SetLegSources(AliDielectronSignalMC::kPrimary,\r
-         AliDielectronSignalMC::kPrimary);\r
-  lowMassDiele->SetFillPureMCStep(kTRUE);\r
-  die->AddSignalMC(lowMassDiele);\r
-\r
-  AliDielectronSignalMC* secondary=new\r
-       AliDielectronSignalMC("secondary","secondary electrons pairs");\r
-  secondary->SetLegPDGs(11,-11);\r
-  secondary->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-  secondary->SetLegSources(AliDielectronSignalMC::kSecondary,\r
-         AliDielectronSignalMC::kSecondary);\r
-  die->AddSignalMC(secondary);\r
-\r
-  AliDielectronSignalMC* eleFromConversions=new\r
-       AliDielectronSignalMC("eleFromConversions","conversion electrons");\r
-  eleFromConversions->SetLegPDGs(11,-11);\r
-  eleFromConversions->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-  eleFromConversions->SetLegSources(AliDielectronSignalMC::kSecondary,\r
-         AliDielectronSignalMC::kSecondary);\r
-  eleFromConversions->SetMotherPDGs(22,22);    // 22- photon\r
-  die->AddSignalMC(eleFromConversions);\r
-\r
-  AliDielectronSignalMC* misIdPions=new\r
-       AliDielectronSignalMC("misIdPions","mis id. pion pairs");\r
-  misIdPions->SetLegPDGs(211,-211);\r
-  misIdPions->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-  die->AddSignalMC(misIdPions);\r
-\r
-  AliDielectronSignalMC* dalitzDecays=new\r
-       AliDielectronSignalMC("dalitzDecays","dalitz Pairs");\r
-  dalitzDecays->SetLegPDGs(11,-11);\r
-  dalitzDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-  dalitzDecays->SetLegSources(AliDielectronSignalMC::kSecondary,\r
-               AliDielectronSignalMC::kSecondary);\r
-  dalitzDecays->SetMotherPDGs(111,111);\r
-  dalitzDecays->SetFillPureMCStep(kTRUE);\r
-  die->AddSignalMC(dalitzDecays);\r
-*/\r
-\r
-AliDielectronSignalMC* PhiDecays= new AliDielectronSignalMC("PhiDecays","Phi Pairs");\r
-PhiDecays->SetLegPDGs(11,-11);\r
-PhiDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-PhiDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);\r
-PhiDecays->SetMotherPDGs(333,333);\r
-PhiDecays->SetMothersRelation(AliDielectronSignalMC::kSame); \r
-PhiDecays->SetFillPureMCStep(kTRUE);\r
-die->AddSignalMC(PhiDecays);\r
-\r
-AliDielectronSignalMC* OmegaDecays= new AliDielectronSignalMC("OmegaDecays","Omega Pairs");\r
-OmegaDecays->SetLegPDGs(11,-11);\r
-OmegaDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-OmegaDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);\r
-OmegaDecays->SetMotherPDGs(223,223);\r
-OmegaDecays->SetMothersRelation(AliDielectronSignalMC::kSame);\r
-OmegaDecays->SetDalitz(AliDielectronSignalMC::kIsNotDalitz); \r
-OmegaDecays->SetFillPureMCStep(kTRUE);\r
-die->AddSignalMC(OmegaDecays);\r
-\r
-/*\r
-AliDielectronSignalMC* RhoDecays= new AliDielectronSignalMC("RhoDecays","Rho Pairs");\r
-RhoDecays->SetLegPDGs(11,-11);\r
-RhoDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-RhoDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);\r
-RhoDecays->SetMotherPDGs(113,113);\r
-RhoDecays->SetMothersRelation(AliDielectronSignalMC::kSame); \r
-RhoDecays->SetFillPureMCStep(kTRUE);\r
-die->AddSignalMC(RhoDecays);\r
-\r
-AliDielectronSignalMC* DieleConti= new AliDielectronSignalMC("DieleConti","low mass ee pairs");\r
-DieleConti->SetLegPDGs(11,-11);\r
-DieleConti->SetMotherPDGs(0,0,22,22);\r
-DieleConti->SetCheckBothChargesLegs(kTRUE,kTRUE);\r
-DieleConti->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);\r
-DieleConti->SetMothersRelation(AliDielectronSignalMC::kSame);\r
-DieleConti->SetFillPureMCStep(kTRUE);\r
-die->AddSignalMC(DieleConti);*/\r
-\r
-\r
-}\r
-\r
-//--------------------------------------\r
-   void EnableMC() {\r
-       MCenabled=kTRUE;\r
-   }\r
+   void InitHistograms(AliDielectron *die, Int_t cutDefinition);
+   void InitCF(AliDielectron* die, Int_t cutDefinition);
+
+   void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);
+   void SetupPairCuts(AliDielectron *die, Int_t cutDefinition);
+
+   void EnableMC();
+   AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);
+
+   TString names=("MixEvt");
+   TObjArray *arrNames=names.Tokenize(";");
+   const Int_t nDie=arrNames->GetEntries();
+   Bool_t MCenabled=kFALSE;
+
+   Bool_t kMix = 1; 
+
+   AliDielectron* Configpp2012Oezdemir(Int_t cutDefinition,Bool_t hasMC=kFALSE)
+   {
+        //
+        // Setup the instance of AliDielectron
+        //
+        
+        MCenabled=hasMC;
+        
+        // create the actual framework object
+       
+       TString name=Form("%02d",cutDefinition);
+        if ((cutDefinition)<arrNames->GetEntriesFast()){
+          name=arrNames->At((cutDefinition))->GetName();
+        }
+
+        //thisCut only relevant for MC:
+        AliDielectron *die =
+          new AliDielectron(Form
+          ("%s",name.Data()),
+                  Form("Track cuts: %s",name.Data()));
+       
+       if(kMix){
+       AliDielectronMixingHandler *mix = new AliDielectronMixingHandler;
+       mix->SetMixType(AliDielectronMixingHandler::kAll);
+       mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10.");
+       mix->AddVariable(AliDielectronVarManager::kNacc,"0,10000");
+       mix->SetDepth(10);
+       die->SetMixingHandler(mix);
+       }
+        
+        // cut setup
+        SetupTrackCuts(die,cutDefinition);
+        SetupPairCuts(die,cutDefinition);
+        
+        // histogram setup
+        // only if an AliDielectronHistos object is attached to the
+        // dielectron framework histograms will be filled
+        //
+        InitHistograms(die,cutDefinition);
+
+        // the last definition uses no cuts and only the QA histograms should be filled!
+        //InitCF(die,cutDefinition);
+
+        return die;
+   }
+
+   //______________________________________________________________________________________
+   void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
+   {
+        //
+        // Setup the track cuts
+        //
+        //
+        //___________________________________________
+        AliDielectronPID *pidTT = new AliDielectronPID("TPC-TOF","TPC-TOF");
+        pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE);
+        pidTT->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 5., kFALSE );
+        pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE);
+
+         //___________________________________________
+        AliDielectronPID *pidTOF = new AliDielectronPID("TOF","TOF");
+        pidTOF->AddCut( AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.4 , 5., kFALSE );
+        // 
+        // =============CREATE GROUPS FOR ==============
+        //
+
+        //Config 0: TPC-TOF 
+        AliDielectronCutGroup* cgTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
+        cgTrackFilterPIDTPC->AddCut(SetupESDtrackCuts(cutDefinition));
+        cgTrackFilterPIDTPC->AddCut(pidTT);
+
+       //Config 1: TOF
+        AliDielectronCutGroup* cgTrackFilterPIDTOF = new AliDielectronCutGroup("cgPIDTOF","cgPIDTOF",AliDielectronCutGroup::kCompAND);
+        cgTrackFilterPIDTOF->AddCut(SetupESDtrackCuts(cutDefinition));
+        cgTrackFilterPIDTOF->AddCut(pidTOF);
+
+       //Config 2: no PID
+        AliDielectronCutGroup* cgTrackFilternoPID = new AliDielectronCutGroup("cgnoPID","cgnoPID",AliDielectronCutGroup::kCompAND);
+        cgTrackFilternoPID->AddCut(SetupESDtrackCuts(cutDefinition));
+
+        //Correct BG scheme for Combinatorial BG 
+        //die->SetPreFilterUnlikeOnly();
+        die->SetPreFilterAllSigns();
+        die->SetUseKF(kFALSE);
+
+       if ( cutDefinition ==0 ) {
+          die->GetTrackFilter().AddCuts(cgTrackFilterPIDTPC);  
+       }
+
+   }
+   //______________________________________________________________________________________
+
+   void SetupPairCuts(AliDielectron *die, Int_t cutDefinition)
+   {
+        //
+        // Setup the pair cuts
+        //
+        
+       
+       if(cutDefinition == 0){
+
+       AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","conversion tagging");
+       noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE);
+       die->GetTrackFilter().AddCuts(noconv);
+                   
+       //pair rapidity
+//         AliDielectronVarCuts *RapidityCut=new AliDielectronVarCuts("RapidityCut","RapidityCut");
+//     RapidityCut->AddCut(AliDielectronVarManager::kY, -0.8 , 0.8);
+//         die->GetPairFilter().AddCuts(RapidityCut);  
+
+        AliDielectronVarCuts *PhiV = new AliDielectronVarCuts("PhiV","PhiV");//mass and Phiv together
+        PhiV->AddCut(AliDielectronVarManager::kM, 0.0 , 0.05);
+        PhiV->AddCut(AliDielectronVarManager::kPhivPair, 2.5 , 3.2 );
+       die->GetPairPreFilter().AddCuts(PhiV);
+       /*
+        AliDielectronVarCuts *PhiV2 = new AliDielectronVarCuts("PhiV2","PhiV2");//mass and Phiv together
+        PhiV2->AddCut(AliDielectronVarManager::kM, 0.05 , 1000.);
+
+        AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR);
+        pairCutsCG2->AddCut(PhiV);
+        pairCutsCG2->AddCut(PhiV2);
+        die->GetPairFilter().AddCuts(pairCutsCG2);
+       */
+       /*
+       if (MCenabled) {
+       AliDielectronVarCuts *mcpid =new AliDielectronVarCuts("mcpid","mcpid");
+       mcpid->SetCutType(AliDielectronVarCuts::kAny);
+       mcpid->AddCut(AliDielectronVarManager::kPdgCode, 11);
+        mcpid->AddCut(AliDielectronVarManager::kPdgCode, -11);
+        die->GetTrackFilter().AddCuts(mcpid);
+
+       AliDielectronVarCuts *MCnoConv =new AliDielectronVarCuts("MCnoConv","MCnoConv");
+       MCnoConv->AddCut(AliDielectronVarManager::kPdgCodeMother, 22,kTRUE);
+       die->GetTrackFilter().AddCuts(MCnoConv);
+               }
+       */      
+       }
+
+   }
+
+   //______________________________________________________________________________________
+   AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)
+   {
+        //
+        // Setup default AliESDtrackCuts
+        //
+        AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;
+        
+        esdTrackCuts->SetMaxDCAToVertexZ(3.0);
+        esdTrackCuts->SetMaxDCAToVertexXY(1.0); 
+
+        esdTrackCuts->SetPtRange(  0.2 , 100.0);
+        esdTrackCuts->SetEtaRange( -0.8 , 0.8 );
+        esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+        esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
+        esdTrackCuts->SetDCAToVertex2D(kFALSE);
+
+        esdTrackCuts->SetRequireITSRefit(kTRUE);
+        esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); //Base
+        esdTrackCuts->SetMinNClustersITS(3);  //Base
+
+        esdTrackCuts->SetRequireTPCRefit(kTRUE);
+        esdTrackCuts->SetMinNClustersTPC(80);     //Base
+
+        esdTrackCuts->SetMinNCrossedRowsTPC(100);   //Base
+
+        esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.5);
+        esdTrackCuts->SetMaxChi2PerClusterTPC(4);
+
+        return esdTrackCuts;
+   }
+
+   //______________________________________________________________________________________
+
+void InitHistograms(AliDielectron *die, Int_t cutDefinition)
+   {
+ //
+  // Initialise the histograms
+  //
+  
+  //Setup histogram classes
+  AliDielectronHistos *histos=
+    new AliDielectronHistos(die->GetName(),
+                            die->GetTitle());
+  
+
+
+  //Initialise histogram classes
+  histos->SetReservedWords("Track;Pair");
+  //histos->SetReservedWords("Track");  
+
+  //Event class
+  histos->AddClass("Event");
+  
+
+  //Track classes
+  //to fill also track info from 2nd event loop until 2
+  for (Int_t i=0; i<2; ++i){
+    histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
+  }
+  
+  //Pair classes
+  // to fill also mixed event histograms loop until 10
+
+  for (Int_t i=0; i<3; ++i){
+    histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
+
+  }
+
+  if(kMix){
+  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); //ME ++
+  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));//ME -+
+  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));//ME +-
+  histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); // ME --
+  }
+
+
+  //add histograms to event class
+  histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",1,0,1,AliDielectronVarManager::kNevents);
+  histos->UserHistogram("Event","ZVertex","ZVertex;ZVertex/cm",480,-12.,12.,AliDielectronVarManager::kZvPrim);
+  histos->UserHistogram("Event","nESDTracks","ESD tracks;ESD tracks;Number events",100,0,200,AliDielectronVarManager::kTracks);
+  histos->UserHistogram("Event","Nacc","Number of accepted tracks;Number events",100,0,200,AliDielectronVarManager::kNacc);
+  histos->UserHistogram("Event","NVtxContrib","Number of Vertex Contributor;NVtx;Number events",100,0,100,AliDielectronVarManager::kNVtxContrib);
+
+
+  //add histograms to Track classes
+  histos->UserHistogram("Track","P","P;P [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPIn);
+  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPt);
+  histos->UserHistogram("Track","Eta","Eta; Eta ;#tracks",100,-1.,1.,AliDielectronVarManager::kEta);
+  histos->UserHistogram("Track","Phi","Phi; Phi ;#tracks",640,0.,6.4,AliDielectronVarManager::kPhi);
+
+
+  histos->UserHistogram("Track","Eta_phi","Eta vs Phi;Eta;Phi",100,-1.,1.,320,0.,6.4,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
+  histos->UserHistogram("Track","Eta_pt","Eta vs Pt;Eta;Pt",100,-1.,1.,500,0.,10.,AliDielectronVarManager::kEta,AliDielectronVarManager::kPt);
+  histos->UserHistogram("Track","ImpParXY_Pt","ImpParXY_Pt; Pt; ÍmpParXY",500,0.,10.,500,-5.,5.,AliDielectronVarManager::kPt,AliDielectronVarManager::kImpactParXY);
+  histos->UserHistogram("Track","ImpParZ_Pt","ImpParZ_Pt; Pt; ÍmpParZ",500,0.,10.,500,-5.,5.,AliDielectronVarManager::kPt,AliDielectronVarManager::kImpactParZ);
+
+  //track checks (ITS)
+  histos->UserHistogram("Track","ITSchi2Cl_Mom","ITS Chi2 vs Momentum;Mom;ITS chi2",500,0.,5.,50,0.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSchi2Cl);
+  histos->UserHistogram("Track","NclsITS_Mom",";Mom;kNclsITS",500,0.,5.,7,0,7,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsITS);
+
+  //track checks (TPC)
+  histos->UserHistogram("Track","TPCsignalNfrac_Mom",";fraction TPCSignalN/TPCncls vs Momentum;Mom;TPCSignalN/TPCncls",500,0.,5.,60,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignalNfrac);
+  histos->UserHistogram("Track","TPCchi2Cl_Mom","TPC Chi2 vs Momentum;Mom;TPC Chi2",500,0.,10.,100,0,5,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCchi2Cl);
+  histos->UserHistogram("Track","TPCclsDiff_Mom","kTPCclsDiff vs Momentum;Mom;kTPCclsDiff",500,0.,10.,100,-10,10,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCclsDiff);
+  histos->UserHistogram("Track","FindableTPCcls_Mom","kNFclsTPC vs Momentum;Mom;kNFclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPC);
+  histos->UserHistogram("Track","TPCcls_Mom","kNclsTPC vs Momentum;Mom;kNclsTPC",500,0.,10.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsTPC);
+  histos->UserHistogram("Track","kNclsSFracTPC_Mom","kNclsSFracTPC vs Momentum;Mom;kTPCclsSFrac",500,0.,10.,1000,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsSFracTPC);
+  histos->UserHistogram("Track","kNFclsTPCrFrac_Mom","kNFclsTPCrFrac vs Momentum;Mom;kNFclsTPCrFrac",500,0.,10.,60,0.,1.2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPCrFrac);
+
+  //track checks (TOF)
+  histos->UserHistogram("Track","TOFbeta_Mom","kTOFbeta vs Momentum;Mom;TOFbeta",500,0.,5.,120,0.,1.2,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFbeta);
+  histos->UserHistogram("Track","TOFPIDBit_Mom","kTOFPIDBit vs Momentum;Mom;TOFPIDbit",500,0.,5.,2,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFPIDBit);
+
+  //track checks (PID)
+  histos->UserHistogram("Track","ITSnSigma_MomPio","ITS number of sigmas Pion vs Momentum;Mom;ITSsigmaPion",500,0.,5.,1000,-20,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSnSigmaPio);
+  histos->UserHistogram("Track","TPCnSigma_MomPio","TPC number of sigmas Pions vs Momentum;Mom;TPCsigmaPion",500,0.,5.,1000,-20,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio);
+
+  histos->UserHistogram("Track","ITSnSigma_MomEle","ITS number of sigmas Electrons vs Momentum;Mom;ITSsigmaEle",500,0.,5.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kITSnSigmaEle);
+  histos->UserHistogram("Track","TPCnSigma_MomEle","TPC number of sigmas Electrons vs Momentum;Mom;TPCsigmaEle",1000,0.,10.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle);
+  histos->UserHistogram("Track","TOFnSigma_MomEle","TOF number of sigmas Electrons vs Momentum;Mom;TOFsigmaEle",500,0.,5.,800,-40,40,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTOFnSigmaEle);
+
+  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);
+  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);
+
+  //
+  //add histograms to Pair classes
+  //
+
+  histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
+                        500,0,4,AliDielectronVarManager::kM);
+
+  histos->UserHistogram("Pair","InvMass_low","Inv.Mass;Inv. Mass [GeV];#pairs",
+                        500,0,0.5,AliDielectronVarManager::kM);
+
+  histos->UserHistogram("Pair","InvMass10","Inv.Mass;Inv. Mass [GeV];#pairs",
+                        500,0.,5.,AliDielectronVarManager::kM);
+
+  histos->UserHistogram("Pair","kDeltaEta","kDeltaEta;kDeltaEta;#pairs",
+                        160,0.,1.6,AliDielectronVarManager::kDeltaEta);
+
+  histos->UserHistogram("Pair","kDeltaEta_low","kDeltaEta;kDeltaEta;#pairs",
+                        500,0.,0.5,AliDielectronVarManager::kDeltaEta);
+
+  histos->UserHistogram("Pair","kDeltaPhi","kDeltaPhi;kDeltaPhi;#pairs",
+                        320,0.,6.4,AliDielectronVarManager::kDeltaPhi);
+
+  histos->UserHistogram("Pair",
+                        "kDeltaEta_kDeltaPhi","kDeltaEta_kDeltaPhi;kDeltaEta;kDeltaPhi",
+                        160, 0. , 1.6, 320 , 0., 6.4 ,
+                         AliDielectronVarManager::kDeltaEta , AliDielectronVarManager::kDeltaPhi );
+
+  histos->UserHistogram("Pair","PhiV",";PhiV;#pairs",
+                        320,0.,6.4,AliDielectronVarManager::kPhivPair);
+
+
+   histos->UserHistogram("Pair","PhiV_Pt",";Pt;PhiV",
+                        100,0.,10.,320,0.,6.4,AliDielectronVarManager::kPt,AliDielectronVarManager::kPhivPair);
+
+   histos->UserHistogram("Pair","InvMass_bin2","Inv.Mass;Inv. Mass [GeV];#pairs",
+       "0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 , 
+       0.4 ,  0.5 , 0.6, 0.65 , 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,
+        0.95,  0.975 , 1.0 , 1.025 , 1.05, 1.125 , 1.25 , 1.5 , 1.75 , 2.0 , 
+       2.25, 2.5 , 2.75 , 2.85, 2.95,3.05, 3.1 , 3.15 , 
+       3.3 , 3.5, 3.75 , 4.0",AliDielectronVarManager::kM);
+
+
+  histos->UserHistogram("Pair",
+                        "InvMass_Pt","InvMass_Pt;InvMass;Pt",
+                        500, 0. , 4., 100 , 0., 5. ,
+                         AliDielectronVarManager::kM , AliDielectronVarManager::kPt );
+
+  histos->UserHistogram("Pair",
+                        "InvMass_PhivPair","InvMass_PhivPair;InvMass;PhivPair",
+                        500, 0. , 4., 320 , 0., 3.2 ,
+                         AliDielectronVarManager::kM , AliDielectronVarManager::kPhivPair );
+
+  histos->UserHistogram("Pair",
+                        "OpAngle","Opening angle;Opening angle;#pairs",
+                        320, 0. , 3.2, 
+                         AliDielectronVarManager::kOpeningAngle);
+
+  histos->UserHistogram("Pair",
+                        "OpAngle_InvMass","OpAngle_InvMass;Opening angle;Invariant Mass",
+                        320, 0. , 3.2, 500 , 0. , 4. ,
+                         AliDielectronVarManager::kOpeningAngle,AliDielectronVarManager::kM);
+
+
+  histos->UserHistogram("Pair",
+                        "Phi","Phi;counts;Phi",
+                        320, 0. , 6.4, AliDielectronVarManager::kPhi);
+
+  histos->UserHistogram("Pair",
+                        "Y","Y;counts;Y",
+                        120, -1.2 , 1.2, AliDielectronVarManager::kY);
+
+  die->SetHistogramManager(histos);
+
+}
+
+
+void InitCF(AliDielectron* die, Int_t cutDefinition)
+{
+  //
+  // Setupd the CF Manager if needed
+  //
+  AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());
+  //pair variables
+  cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.);
+  //cf->AddVariable(AliDielectronVarManager::kP,200,0,20);
+  //cf->AddVariable(AliDielectronVarManager::kPhi,64, -3.2, 3.2);
+  cf->AddVariable(AliDielectronVarManager::kY,40,-2.,2.);
+  cf->AddVariable(AliDielectronVarManager::kM,500,0.,4.); 
+  //cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10);
+  //cf->AddVariable(AliDielectronVarManager::kOpeningAngle,315,0,3.15);
+  //cf->AddVariable(AliDielectronVarManager::kDeltaEta,200,-2,2);
+  //cf->AddVariable(AliDielectronVarManager::kDeltaPhi,100,0,3.15);
+  //cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10);
+  cf->AddVariable(AliDielectronVarManager::kNumberOfDaughters,5,0,5);
+  //leg variables
+  cf->AddVariable(AliDielectronVarManager::kPt,100,0.,10.,kTRUE);
+  //cf->AddVariable(AliDielectronVarManager::kP,200,0.,20.,kTRUE);
+  //cf->AddVariable(AliDielectronVarManager::kY,40,-2.,2.,kTRUE);
+  cf->AddVariable(AliDielectronVarManager::kEta,20,-1.,1.,kTRUE);
+  cf->AddVariable(AliDielectronVarManager::kPhi,100,0.,3.15,kTRUE);
+//  cf->AddVariable(AliDielectronVarManager::kITSsignal,1000,0.0.,1000.,kTRUE);
+//  cf->AddVariable(AliDielectronVarManager::kHaveSameMother,21,-10,10,kTRUE);
+//  cf->AddVariable(AliDielectronVarManager::kNumberOfDaughters,11,0,10,kTRUE);
+  //only in this case write MC truth info
+  if (MCenabled) {
+       cf->SetStepForMCtruth();
+       //cf->SetStepsForMCtruthOnly();
+       //cf->SetStepForNoCutsMCmotherPid();
+       cout << "MC ENABLED ------------------------------------------------------" << endl;
+    //cf->AddVariable(AliDielectronVarManager::kPdgCode,10000,-5000.5,4999.5,kTRUE);
+    //cf->AddVariable(AliDielectronVarManager::kPdgCodeMother,10000,-5000.5,4999.5,kTRUE);
+  }
+
+  //cf->SetStepsForEachCut();
+  //cf->SetStepForPreFilter();
+  cf->SetStepForAfterAllCuts();
+  //cf->SetStepsForBackground();
+  cf->SetStepsForSignal();
+  
+  die->SetCFManagerPair(cf);
+
+/*
+
+  AliDielectronSignalMC* lowMassDiele=new
+       AliDielectronSignalMC("lowMassDiele","low mass dielectron pairs");
+  lowMassDiele->SetLegPDGs(11,-11);
+  lowMassDiele->SetCheckBothChargesLegs(kTRUE,kTRUE);
+  lowMassDiele->SetLegSources(AliDielectronSignalMC::kPrimary,
+         AliDielectronSignalMC::kPrimary);
+  lowMassDiele->SetFillPureMCStep(kTRUE);
+  die->AddSignalMC(lowMassDiele);
+
+  AliDielectronSignalMC* secondary=new
+       AliDielectronSignalMC("secondary","secondary electrons pairs");
+  secondary->SetLegPDGs(11,-11);
+  secondary->SetCheckBothChargesLegs(kTRUE,kTRUE);
+  secondary->SetLegSources(AliDielectronSignalMC::kSecondary,
+         AliDielectronSignalMC::kSecondary);
+  die->AddSignalMC(secondary);
+
+  AliDielectronSignalMC* eleFromConversions=new
+       AliDielectronSignalMC("eleFromConversions","conversion electrons");
+  eleFromConversions->SetLegPDGs(11,-11);
+  eleFromConversions->SetCheckBothChargesLegs(kTRUE,kTRUE);
+  eleFromConversions->SetLegSources(AliDielectronSignalMC::kSecondary,
+         AliDielectronSignalMC::kSecondary);
+  eleFromConversions->SetMotherPDGs(22,22);    // 22- photon
+  die->AddSignalMC(eleFromConversions);
+
+  AliDielectronSignalMC* misIdPions=new
+       AliDielectronSignalMC("misIdPions","mis id. pion pairs");
+  misIdPions->SetLegPDGs(211,-211);
+  misIdPions->SetCheckBothChargesLegs(kTRUE,kTRUE);
+  die->AddSignalMC(misIdPions);
+
+  AliDielectronSignalMC* dalitzDecays=new
+       AliDielectronSignalMC("dalitzDecays","dalitz Pairs");
+  dalitzDecays->SetLegPDGs(11,-11);
+  dalitzDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
+  dalitzDecays->SetLegSources(AliDielectronSignalMC::kSecondary,
+               AliDielectronSignalMC::kSecondary);
+  dalitzDecays->SetMotherPDGs(111,111);
+  dalitzDecays->SetFillPureMCStep(kTRUE);
+  die->AddSignalMC(dalitzDecays);
+*/
+
+AliDielectronSignalMC* PhiDecays= new AliDielectronSignalMC("PhiDecays","Phi Pairs");
+PhiDecays->SetLegPDGs(11,-11);
+PhiDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
+PhiDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
+PhiDecays->SetMotherPDGs(333,333);
+PhiDecays->SetMothersRelation(AliDielectronSignalMC::kSame); 
+PhiDecays->SetFillPureMCStep(kTRUE);
+die->AddSignalMC(PhiDecays);
+
+AliDielectronSignalMC* OmegaDecays= new AliDielectronSignalMC("OmegaDecays","Omega Pairs");
+OmegaDecays->SetLegPDGs(11,-11);
+OmegaDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
+OmegaDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
+OmegaDecays->SetMotherPDGs(223,223);
+OmegaDecays->SetMothersRelation(AliDielectronSignalMC::kSame);
+OmegaDecays->SetDalitz(AliDielectronSignalMC::kIsNotDalitz); 
+OmegaDecays->SetFillPureMCStep(kTRUE);
+die->AddSignalMC(OmegaDecays);
+
+/*
+AliDielectronSignalMC* RhoDecays= new AliDielectronSignalMC("RhoDecays","Rho Pairs");
+RhoDecays->SetLegPDGs(11,-11);
+RhoDecays->SetCheckBothChargesLegs(kTRUE,kTRUE);
+RhoDecays->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
+RhoDecays->SetMotherPDGs(113,113);
+RhoDecays->SetMothersRelation(AliDielectronSignalMC::kSame); 
+RhoDecays->SetFillPureMCStep(kTRUE);
+die->AddSignalMC(RhoDecays);
+
+AliDielectronSignalMC* DieleConti= new AliDielectronSignalMC("DieleConti","low mass ee pairs");
+DieleConti->SetLegPDGs(11,-11);
+DieleConti->SetMotherPDGs(0,0,22,22);
+DieleConti->SetCheckBothChargesLegs(kTRUE,kTRUE);
+DieleConti->SetLegSources(AliDielectronSignalMC::kFinalState, AliDielectronSignalMC::kFinalState);
+DieleConti->SetMothersRelation(AliDielectronSignalMC::kSame);
+DieleConti->SetFillPureMCStep(kTRUE);
+die->AddSignalMC(DieleConti);*/
+
+
+}
+
+//--------------------------------------
+   void EnableMC() {
+       MCenabled=kTRUE;
+   }