]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
add markus, bugfix
authorcbaumann <cbaumann@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Jun 2012 15:07:19 +0000 (15:07 +0000)
committercbaumann <cbaumann@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Jun 2012 15:07:19 +0000 (15:07 +0000)
PWGDQ/dielectron/macrosLMEE/AddTask_cbaumann_LMEEPbPb2011.C
PWGDQ/dielectron/macrosLMEE/AddTask_mkoehler_lowmass.C [new file with mode: 0644]
PWGDQ/dielectron/macrosLMEE/Config_lowmass.C [new file with mode: 0644]

index 289b4df689a2cdde90d5459170cd7fa575a88f8f..ee56fb1de0da4b9c1201dcabceefb748b0e8668a 100644 (file)
@@ -55,13 +55,13 @@ AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011(Bool_t runRejection=kFALSE, Bool_
 
     AliDielectron *lowmass3=ConfigLMEEPbPb2011(3,hasMC,enableCF);
     task->AddDielectron(lowmass3);
-    printf("add: %s\n",lowmass3->GetName())
+    printf("add: %s\n",lowmass3->GetName());
       AliDielectron *lowmass1=ConfigLMEEPbPb2011(1,hasMC,enableCF);
     task->AddDielectron(lowmass1);
-    printf("add: %s\n",lowmass1->GetName())
+    printf("add: %s\n",lowmass1->GetName());
       AliDielectron *lowmass7=ConfigLMEEPbPb2011(7,hasMC,enableCF);
     task->AddDielectron(lowmass7);
-    printf("add: %s\n",lowmass7->GetName())
+    printf("add: %s\n",lowmass7->GetName());
   }
 
   mgr->AddTask(task);
diff --git a/PWGDQ/dielectron/macrosLMEE/AddTask_mkoehler_lowmass.C b/PWGDQ/dielectron/macrosLMEE/AddTask_mkoehler_lowmass.C
new file mode 100644 (file)
index 0000000..6b006b3
--- /dev/null
@@ -0,0 +1,199 @@
+
+
+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;
+
+}
diff --git a/PWGDQ/dielectron/macrosLMEE/Config_lowmass.C b/PWGDQ/dielectron/macrosLMEE/Config_lowmass.C
new file mode 100644 (file)
index 0000000..2c3cbc2
--- /dev/null
@@ -0,0 +1,340 @@
+
+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);
+  
+}