--- /dev/null
+
+
+AliAnalysisTask *AddTask_mkoehler_lowmass(){
+
+
+ //get the current analysis manager
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ if (!mgr) {
+ Error("AddTask_lowmass", "No analysis manager found.");
+ return 0;
+ }
+
+
+ Bool_t RunEMCtrigger = 0;
+ Bool_t RunHighMulttrigger = 0;
+ Bool_t RunMBtrigger = 1;
+
+ Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
+
+ //Get the current train configuration
+ TString trainConfig=gSystem->Getenv("CONFIG_FILE");
+
+ //set config file name
+ TString configFile("$TRAIN_ROOT/mkoehler_lowmassee/Config_lowmass.C");
+ TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
+
+ if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/Config_lowmass.C";
+
+ if(RunMBtrigger){
+ //create task and add it to the manager (MB)
+ AliAnalysisTaskMultiDielectron *taskMB = new AliAnalysisTaskMultiDielectron("MultiDieMB");
+ if (!hasMC) taskMB->UsePhysicsSelection();
+ taskMB->SelectCollisionCandidates(AliVEvent::kMB);
+ taskMB->SetRejectPileup();
+ }
+
+ if(RunHighMulttrigger){
+ //create task and add it to the manager (HighMult)
+ AliAnalysisTaskMultiDielectron *taskHighMult = new AliAnalysisTaskMultiDielectron("MultiDieHighMult");
+ if (!hasMC) taskHighMult->UsePhysicsSelection();
+ taskHighMult->SelectCollisionCandidates(AliVEvent::kHighMult);
+ taskHighMult->SetRejectPileup();
+ }
+
+ if(RunEMCtrigger){
+ //create task and add it to the manager (EMC1)
+ AliAnalysisTaskMultiDielectron *taskEMC1 = new AliAnalysisTaskMultiDielectron("MultiDieEMC1");
+ if (!hasMC) taskEMC1->UsePhysicsSelection();
+ taskEMC1->SelectCollisionCandidates(AliVEvent::kEMC1);
+ taskEMC1->SetRejectPileup();
+}
+
+ //Add event filter
+ AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
+ eventCuts->SetRequireVertex();
+ eventCuts->SetVertexZ(-10.,10.);
+ eventCuts->SetMinVtxContributors(1);
+
+ if(RunMBtrigger)taskMB->SetEventFilter(eventCuts);
+ if(RunHighMulttrigger) taskHighMult->SetEventFilter(eventCuts);
+ if(RunEMCtrigger) taskEMC1->SetEventFilter(eventCuts);
+
+ if(RunMBtrigger) mgr->AddTask(taskMB);
+ if(RunHighMulttrigger)mgr->AddTask(taskHighMult);
+ if(RunEMCtrigger)mgr->AddTask(taskEMC1);
+
+ //load dielectron configuration file
+ gROOT->LoadMacro(configFile.Data());
+
+ //add dielectron analysis with different cuts to the task
+ for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
+ if(RunMBtrigger){
+ //MB
+ AliDielectron *diel_lowMB = Config_lowmass(i);
+ if(!diel_lowMB)continue;
+ taskMB->AddDielectron(diel_lowMB);
+ }
+ if(RunHighMulttrigger){
+ //HighMult
+ AliDielectron *diel_lowHighMult = Config_lowmass(i);
+ if(!diel_lowHighMult)continue;
+ taskHighMult->AddDielectron(diel_lowHighMult);
+}
+ if(RunEMCtrigger){
+ //EMC1
+ AliDielectron *diel_lowEMC1 = Config_lowmass(i);
+ if(!diel_lowEMC1)continue;
+ taskEMC1->AddDielectron(diel_lowEMC1);
+ }
+
+ }//loop
+
+ if(RunMBtrigger){
+ //create output container
+ AliAnalysisDataContainer *coutput1 =
+ mgr->CreateContainer("tree_lowmass",
+ TTree::Class(),
+ AliAnalysisManager::kExchangeContainer,
+ "default");
+
+ AliAnalysisDataContainer *cOutputHist1 =
+ mgr->CreateContainer("Histos_diel_lowmass",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmass.root");
+
+ AliAnalysisDataContainer *cOutputHist2 =
+ mgr->CreateContainer("CF_diel_lowmass",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmass.root");
+
+ AliAnalysisDataContainer *cOutputHist3 =
+ mgr->CreateContainer("mkoehler_lowmass_EventStat",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmass.root");
+ }
+ if(RunHighMulttrigger){
+ //create output container (HighMult)
+ AliAnalysisDataContainer *coutputHighMult1 =
+ mgr->CreateContainer("tree_lowmassHighMult",
+ TTree::Class(),
+ AliAnalysisManager::kExchangeContainer,
+ "default");
+
+ AliAnalysisDataContainer *cOutputHistHighMult1 =
+ mgr->CreateContainer("Histos_diel_lowmassHighMult",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmassHighMult.root");
+
+ AliAnalysisDataContainer *cOutputHistHighMult2 =
+ mgr->CreateContainer("CF_diel_lowmassHighMult",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmassHighMult.root");
+
+ AliAnalysisDataContainer *cOutputHistHighMult3 =
+ mgr->CreateContainer("mkoehler_lowmass_EventStatHighMult",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmassHighMult.root");
+ }
+
+ if(RunEMCtrigger){
+
+ //create output container (EMC1)
+ AliAnalysisDataContainer *coutputEMC11 =
+ mgr->CreateContainer("tree_lowmassEMC1",
+ TTree::Class(),
+ AliAnalysisManager::kExchangeContainer,
+ "default");
+
+ AliAnalysisDataContainer *cOutputHistEMC11 =
+ mgr->CreateContainer("Histos_diel_lowmassEMC1",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmassEMC1.root");
+
+ AliAnalysisDataContainer *cOutputHistEMC12 =
+ mgr->CreateContainer("CF_diel_lowmassEMC1",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmassEMC1.root");
+
+ AliAnalysisDataContainer *cOutputHistEMC13 =
+ mgr->CreateContainer("mkoehler_lowmass_EventStatEMC1",
+ TList::Class(),
+ AliAnalysisManager::kOutputContainer,
+ "mkoehler_lowmassEMC1.root");
+}
+
+ if(RunMBtrigger){
+ mgr->ConnectInput(taskMB, 0, mgr->GetCommonInputContainer());
+ mgr->ConnectOutput(taskMB, 0, coutput1 );
+ mgr->ConnectOutput(taskMB, 1, cOutputHist1);
+ mgr->ConnectOutput(taskMB, 2, cOutputHist2);
+ mgr->ConnectOutput(taskMB, 3, cOutputHist3);
+}
+ if(RunHighMulttrigger){
+ mgr->ConnectInput(taskHighMult, 0, mgr->GetCommonInputContainer());
+ mgr->ConnectOutput(taskHighMult, 0, coutputHighMult1 );
+ mgr->ConnectOutput(taskHighMult, 1, cOutputHistHighMult1);
+ mgr->ConnectOutput(taskHighMult, 2, cOutputHistHighMult2);
+ mgr->ConnectOutput(taskHighMult, 3, cOutputHistHighMult3);
+}
+ if(RunEMCtrigger){
+ mgr->ConnectInput(taskEMC1, 0, mgr->GetCommonInputContainer());
+ mgr->ConnectOutput(taskEMC1, 0, coutputEMC11 );
+ mgr->ConnectOutput(taskEMC1, 1, cOutputHistEMC11);
+ mgr->ConnectOutput(taskEMC1, 2, cOutputHistEMC12);
+ mgr->ConnectOutput(taskEMC1, 3, cOutputHistEMC13);
+}
+
+
+ return taskMB;
+
+}
--- /dev/null
+
+void InitHistograms(AliDielectron *die, Int_t cutDefinition);
+void InitCF(AliDielectron* die, Int_t cutDefinition);
+
+void SetupCuts(AliDielectron *die, Int_t cutDefinition);
+
+AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);
+AliDielectronPID *SetPIDcuts(Int_t cutDefinition);
+
+
+ TString names= ("pt400");
+
+ Bool_t kRot = 1;
+ Bool_t kMix = 1;
+
+TObjArray *arrNames=names.Tokenize(";");
+const Int_t nDie=arrNames->GetEntriesFast();
+
+AliDielectron* Config_lowmass(Int_t cutDefinition=1)
+{
+ //
+ // Setup the instance of AliDielectron
+ //
+
+ // create the actual framework object
+ TString name=Form("%02d",cutDefinition);
+ if (cutDefinition<arrNames->GetEntriesFast()){
+ name=arrNames->At(cutDefinition)->GetName();
+ }
+ AliDielectron *die =
+ new AliDielectron(Form("%s",name.Data()),
+ Form("Track cuts: %s",name.Data()));
+
+
+ if(kRot){
+ AliDielectronTrackRotator *rot = new AliDielectronTrackRotator;
+ rot->SetConeAnglePhi(TMath::Pi());
+ rot->SetIterations(10);
+ die->SetTrackRotator(rot);
+ }//kRot
+
+
+ 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->SetDepth(10);
+ die->SetMixingHandler(mix);
+ }//kMix
+
+
+ // set track cuts
+ SetupCuts(die,cutDefinition);
+
+
+
+ //
+ // histogram setup
+ // only if an AliDielectronHistos object is attached to the
+ // dielectron framework histograms will be filled
+ //
+
+ InitHistograms(die,cutDefinition);
+// InitCF(die,cutDefinition);
+
+
+ return die;
+
+}
+
+//______________________________________________________________________________________
+void SetupCuts(AliDielectron *die, Int_t cutDefinition)
+{
+ //
+ // Setup the track cuts
+ //
+
+
+
+ //options
+ die->SetPreFilterAllSigns();
+
+ //tracks only
+// if(cutDefinition == 0)die->SetNoPairing();
+
+ //track cuts
+ die->GetTrackFilter().AddCuts(SetupESDtrackCuts(cutDefinition));
+ //pid cuts
+ die->GetTrackFilter().AddCuts(SetPIDcuts(cutDefinition));
+
+
+ if(cutDefinition >= 0){
+ AliDielectronVarCuts *RapidityCut=new AliDielectronVarCuts("RapidityCut","RapidityCut");
+ RapidityCut->AddCut(AliDielectronVarManager::kY, -0.9 , 0.9);
+ die->GetPairFilter().AddCuts(RapidityCut);
+ }
+
+
+
+
+
+}
+//______________________________________________________________________________________
+//-----------------------------------pid------------------------------------------------
+
+AliDielectronPID *SetPIDcuts(Int_t cutDefinition){
+
+ AliDielectronPID *pid = new AliDielectronPID();
+
+ if(cutDefinition >= 0){
+ //TPC
+ pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.4,100.,kFALSE);
+ //TOF
+ pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.5,3.5,0.4, 3., kFALSE);
+ }
+
+
+ return pid;
+
+}
+
+//______________________________________________________________________________________
+AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)
+{
+
+ //
+ // Setup default AliESDtrackCuts
+ //
+ AliESDtrackCuts *fesdTrackCuts1 = new AliESDtrackCuts;
+
+ //global
+
+ fesdTrackCuts1->SetPtRange( 0.4 , 100. );
+ fesdTrackCuts1->SetAcceptKinkDaughters(kFALSE);
+ fesdTrackCuts1->SetDCAToVertex2D(kTRUE);
+ fesdTrackCuts1->SetMaxDCAToVertexZ(2.5);
+ fesdTrackCuts1->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
+ fesdTrackCuts1->SetEtaRange( -0.8 , 0.8 );
+
+// fesdTrackCuts1->SetMaxNsigmaToVertex( 2. );
+// fesdTrackCuts1->SetMaxCovDiagonalElements( 2 , 2, 0.5, 0.5 , 2 );
+
+ //ITS
+ fesdTrackCuts1->SetRequireITSRefit(kTRUE);
+ fesdTrackCuts1->SetMinNClustersITS(3);
+ //fesdTrackCuts1->SetMaxChi2PerClusterITS(4);
+ fesdTrackCuts1->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
+ //kAny kBoth kFirst kSecond
+
+ //TPC
+ fesdTrackCuts1->SetRequireTPCRefit(kTRUE);
+ fesdTrackCuts1->SetMinNClustersTPC(100);
+ fesdTrackCuts1->SetMinNCrossedRowsTPC(100);
+ fesdTrackCuts1->SetMinRatioCrossedRowsOverFindableClustersTPC(0.6);
+ fesdTrackCuts1->SetMaxChi2PerClusterTPC(4);
+ fesdTrackCuts1->SetMaxFractionSharedTPCClusters(0.5);
+
+ return fesdTrackCuts1;
+
+}
+
+//______________________________________________________________________________________
+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");
+
+ //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 --
+ }
+
+ if(kRot)histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10)));//Rot
+
+
+ //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","MultV0A","Multiplicity from V0A;MultV0A;Number events",100,0,200,AliDielectronVarManager::kMultV0A);
+ histos->UserHistogram("Event","MultV0C","Multiplicity from V0C;MultV0C;Number events",100,0,200,AliDielectronVarManager::kMultV0C);
+ histos->UserHistogram("Event","MultV0","Multiplicity from V0;Multiplicity;Number events",100,0,200,AliDielectronVarManager::kMultV0);
+ 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);
+
+ //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.,5.,100,0,5,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCchi2Cl);
+ histos->UserHistogram("Track","TPCclsDiff_Mom","kTPCclsDiff vs Momentum;Mom;kTPCclsDiff",500,0.,5.,100,-10,10,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCclsDiff);
+
+ histos->UserHistogram("Track","FindableTPCcls_Mom","kNFclsTPC vs Momentum;Mom;kNFclsTPC",500,0.,5.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNFclsTPC);
+
+ //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 (TRD)
+ histos->UserHistogram("Track","NclsTRD_Mom","kNclsTRD vs Momentum;Mom;NclsTRD",500,0.,5.,20,0.,20,AliDielectronVarManager::kPIn,AliDielectronVarManager::kNclsTRD);
+
+ histos->UserHistogram("Track","TRDntracklets_Mom","TRDntracklets vs Momentum;Mom;TRDnTracklets",500,0.,5.,20,0.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDntracklets);
+
+ histos->UserHistogram("Track","TRDpidProb_Electrons_Mom","kTRDpidProb_Electrons vs Momentum;Mom;TRDpidProb_Electrons",500,0.,5.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobEle);
+
+ histos->UserHistogram("Track","kTRDpidProb_Pions_Mom","kTRDpidProb_Pions vs Momentum;Mom;kTRDpidProb_Pions",500,0.,5.,100,0.,1.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTRDprobPio);
+
+ //pid checks
+ 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","LegDist_P","Leg Dist vs Pair Mom;Inv. Mass [GeV];#pairs",
+ 500,0,5,40,0.,2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kLegDist);
+ histos->UserHistogram("Pair","LegDistXY_P","LegDistXY vs Pair Mom;Inv. Mass [GeV];#pairs",
+ 500,0,5,40,0.,2.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kLegDistXY);
+
+ histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
+ 500,0,4,AliDielectronVarManager::kM);
+
+ 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_bin3","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.65 ,3.8, 4.0",AliDielectronVarManager::kM);
+
+ histos->UserHistogram("Pair","InvMass_bin4","Inv.Mass;Inv. Mass [GeV];#pairs",
+ "0. , 0.025, 0.05 , 0.075 ,0.1 ,0.15 , 0.2 , 0.25 , 0.3 ,
+ 0.5 , 0.6, 0.688 , 0.725, 0.75, 0.775, 0.8 , 0.85 ,
+ 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.65 ,3.8, 4.0",AliDielectronVarManager::kM);
+
+ histos->UserHistogram("Pair",
+ "InvMass_Pt","InvMass_Pt;InvMass;Pt",
+ 500, 0. , 4., 100 , 0., 10. ,
+ AliDielectronVarManager::kM , AliDielectronVarManager::kPt );
+
+ 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);
+
+
+
+
+ die->SetHistogramManager(histos);
+}
+
+
+
+
+void InitCF(AliDielectron* die, Int_t cutDefinition)
+{
+ //
+ // Setup the CF Manager if needed
+ //
+
+ AliDielectronCF *cf=new AliDielectronCF(die->GetName(),die->GetTitle());
+
+ //pair variables
+ cf->AddVariable(AliDielectronVarManager::kPt,50,0,5);
+ cf->AddVariable(AliDielectronVarManager::kM,80,0,4);
+ cf->AddVariable(AliDielectronVarManager::kY,40,-2,2);
+ cf->AddVariable(AliDielectronVarManager::kPhi,64,-3.2,3.2);
+
+ // cf->SetStepsForEachCut();
+// cf->SetStepsForCutsIncreasing();
+
+
+ die->SetCFManagerPair(cf);
+
+}