]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/dielectron/macros/ConfigJpsi2eeData.C
Major update of the framework
[u/mrichter/AliRoot.git] / PWG3 / dielectron / macros / ConfigJpsi2eeData.C
index c4a1021b7ce292ec10330c8b0677a87d699ef7cf..aa4b4a448aa6ec638e52c46ffbbb363608658934 100644 (file)
@@ -6,14 +6,9 @@ void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition);
 void SetupPairCuts(AliDielectron *die, Int_t cutDefinition);
 
 AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);
-/*
-trackQ+Pt>1GeV+|TPCnSigE|<3
-trackQ+PID1
-trackQ+PID6
-trackQ+PID7
-trackQ+Pt>.5GeV
-*/
-TString names=("trackQ+Pt>1GeV+|TPCnSigE|<3;trackQ+PID1;trackQ+PID6;trackQ+PID7;trackQ+Pt>.5GeV");
+
+TString names=("basicQ+SPDfirst+pt>.6+PID");
+
 TObjArray *arrNames=names.Tokenize(";");
 
 const Int_t nDie=arrNames->GetEntries();
@@ -32,6 +27,7 @@ AliDielectron* ConfigJpsi2ee(Int_t cutDefinition)
   AliDielectron *die =
     new AliDielectron(Form("%s",name.Data()),
                       Form("Track cuts: %s",name.Data()));
+
   
   // cut setup
   SetupTrackCuts(die,cutDefinition);
@@ -40,13 +36,14 @@ AliDielectron* ConfigJpsi2ee(Int_t cutDefinition)
   //
   // histogram setup
   // only if an AliDielectronHistos object is attached to the
-  //  dielectron framework the QA histograms will be filled
+  // dielectron framework histograms will be filled
   //
   InitHistograms(die,cutDefinition);
 
   // the last definition uses no cuts and only the QA histograms should be filled!
-//   if (cutDefinition<nDie-1) InitCF(die,cutDefinition);
-  
+//   if (cutDefinition<nDie-1)
+  InitCF(die,cutDefinition);
+
   return die;
 }
 
@@ -59,47 +56,18 @@ void SetupTrackCuts(AliDielectron *die, Int_t cutDefinition)
   
   //ESD quality cuts
   die->GetTrackFilter().AddCuts(SetupESDtrackCuts(cutDefinition));
-  
 
-  //QA no CF
-  if (cutDefinition==nDie-1) {
-    //Pt cut
-    AliDielectronVarCuts *pt = new AliDielectronVarCuts("Pt>.5","Pt>.5");
-    pt->AddCut(AliDielectronVarManager::kPt,.5,1e30);
+  if(cutDefinition==0) {
+    //Pt cut ----------------------------------------------------------
+    AliDielectronVarCuts *pt = new AliDielectronVarCuts("ptCut","pt cut");
+    pt->AddCut(AliDielectronVarManager::kPt,0.6,1e30);
     die->GetTrackFilter().AddCuts(pt);
     
-    return;
-  }
-
-  // pt + 3 sigma ele TPC
-  if (cutDefinition==0){
-    AliDielectronVarCuts *pt = new AliDielectronVarCuts("Pt>1+|TPCnSigE|<3","Pt>1+|TPCnSigE|<3");
-    pt->AddCut(AliDielectronVarManager::kPt,1.,1e30);
-    pt->AddCut(AliDielectronVarManager::kTPCnSigmaEle, -3., 3.);
-    die->GetTrackFilter().AddCuts(pt);
-  }
-  
-  //PID 1
-  if (cutDefinition==1){
-    AliDielectronPID *pid=new AliDielectronPID("pid1","pid1");
-    pid->SetDefaults(1);
+    // PID cuts --------------------------------------------------------
+    AliDielectronPID *pid = new AliDielectronPID("PID10","TPC nSigma |e|<3 + |Pi|>3 + |P|>3 + TOF nSigma |e|<3");
+    pid->SetDefaults(10);
     die->GetTrackFilter().AddCuts(pid);
   }
-
-  //PID 6
-  if (cutDefinition==2){
-    AliDielectronPID *pid=new AliDielectronPID("pid6","pid6");
-    pid->SetDefaults(6);
-    die->GetTrackFilter().AddCuts(pid);
-  }
-  
-  //PID 7
-  if (cutDefinition==3){
-    AliDielectronPID *pid=new AliDielectronPID("pid7","pid7");
-    pid->SetDefaults(7);
-    die->GetTrackFilter().AddCuts(pid);
-  }
-  
 }
 
 //______________________________________________________________________________________
@@ -109,13 +77,11 @@ void SetupPairCuts(AliDielectron *die, Int_t cutDefinition)
   // Setup the pair cuts
   //
   
-  
-  // reject conversions
-  // and select mass region
-  AliDielectronVarCuts *openingAngleCut=new AliDielectronVarCuts("OpeningAngle","Opening angle > 35mrad");
-  openingAngleCut->AddCut(AliDielectronVarManager::kOpeningAngle,.035,4.);
-  openingAngleCut->AddCut(AliDielectronVarManager::kM,2.,4.);
-  die->GetPairFilter().AddCuts(openingAngleCut);
+  //Invariant mass selection
+  AliDielectronVarCuts *invMassCut=new AliDielectronVarCuts("2<M<4+|Y|<.8","2<M<4 + |Y|<.8");
+  invMassCut->AddCut(AliDielectronVarManager::kM,2.,4.);
+  invMassCut->AddCut(AliDielectronVarManager::kY,-0.8,0.8);
+  die->GetPairFilter().AddCuts(invMassCut);
 }
 
 //______________________________________________________________________________________
@@ -126,73 +92,76 @@ AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)
   //
   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;
   
+  // basic track quality cuts  (basicQ)
   esdTrackCuts->SetMaxDCAToVertexZ(3.0);
-  esdTrackCuts->SetMaxDCAToVertexXY(.07); 
-  esdTrackCuts->SetRequireTPCRefit(kTRUE);
-  esdTrackCuts->SetRequireITSRefit(kTRUE);
+  esdTrackCuts->SetMaxDCAToVertexXY(1.0);
+  
+  esdTrackCuts->SetEtaRange( -0.8 , 0.8 );
+  
   esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
-  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
+  esdTrackCuts->SetRequireITSRefit(kTRUE);
+  esdTrackCuts->SetRequireTPCRefit(kTRUE);
   
-  esdTrackCuts->SetMinNClustersTPC(110);
+  esdTrackCuts->SetMinNClustersTPC(90);
   esdTrackCuts->SetMaxChi2PerClusterTPC(4);
   
+  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
+  
   return esdTrackCuts;
 }
 
+
 //______________________________________________________________________________________
 void InitHistograms(AliDielectron *die, Int_t cutDefinition)
 {
   //
-  // Initialise the QA histograms
+  // Initialise the histograms
   //
-
-  //Setup QA histograms
-  AliDielectronHistos *histos=
-    new AliDielectronHistos(die->GetName(),
-                            die->GetTitle());
+  
+  //Setup histogram Manager
+  AliDielectronHistos *histos=new AliDielectronHistos(die->GetName(),die->GetTitle());
   
   //Initialise histogram classes
   histos->SetReservedWords("Track;Pair");
   
-  //Event class (only for last QA)
-  if (cutDefinition==nDie-1) histos->AddClass("Event");
-  
-  //Track classes, only first 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, only first event
+  //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)));
   }
-
-  //Event histograms
-  if (cutDefinition==nDie-1){
-    //add histograms to event class
-    histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",
-                          1,0.,1.,AliDielectronVarManager::kNevents);
+  
+  //legs from pair
+  for (Int_t i=0; i<3; ++i){
+    histos->AddClass(Form("Track_Legs_%s",AliDielectron::PairClassName(i)));
   }
   
   //add histograms to Track classes
-  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",200,0,20.,AliDielectronVarManager::kPt);
+  histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",400,0,20.,AliDielectronVarManager::kPt);
+  histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC);
+  
+  histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",500,-1.,1.,AliDielectronVarManager::kImpactParXY);
+  histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",600,-3.,3.,AliDielectronVarManager::kImpactParZ);
+  histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
+                        200,-1,1,200,0,6.285,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
+
   histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
                         400,0.2,20.,200,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
   histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
-                        400,0.2,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
-  histos->UserHistogram("Track","TPCnSigmaPio_P","TPC number of sigmas Pions;P [GeV];TPC number of sigmas Pions;#tracks",
-                        400,0.2,20.,100,-5.,5.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaPio,kTRUE);
-  histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",200,-2.,2.,AliDielectronVarManager::kImpactParXY);
-  
+                        400,0.2,20.,200,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
+      
   //add histograms to Pair classes
   histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
-                        500,0.,4.,AliDielectronVarManager::kM);
+                        201,-.01,4.01,AliDielectronVarManager::kM);
   histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
-                        100,-2.,2.,AliDielectronVarManager::kY);
+                        100,-1.,1.,AliDielectronVarManager::kY);
   histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
                         100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
-  histos->UserHistogram("Pair","Chi2/NDF","#Chi^{2}/NDF;#Chi^{2}/NDF",
-                        100, 0., 20., AliDielectronVarManager::kChi2NDF);
   
   die->SetHistogramManager(histos);
 }
@@ -203,21 +172,21 @@ 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,20,0,10);
+  TVectorD *binLimPt=new TVectorD(6);
+  (*binLimPt)[0]=0.0; (*binLimPt)[1]=0.8; (*binLimPt)[2]=1.4; (*binLimPt)[3]=2.8; (*binLimPt)[4]=4.2; (*binLimPt)[5]=9.9;
+  cf->AddVariable(AliDielectronVarManager::kPt,binLimPt);
   cf->AddVariable(AliDielectronVarManager::kY,40,-2,2);
-  cf->AddVariable(AliDielectronVarManager::kM,200,-0.01,3.99);
+  cf->AddVariable(AliDielectronVarManager::kM,150,0.,150*.027); //27Mev Steps
   cf->AddVariable(AliDielectronVarManager::kPairType,10,0,10);
   //leg variables
-  cf->AddVariable(AliDielectronVarManager::kPt,20,0,10,kTRUE);
-  
-  //only in this case write MC truth info
-  cf->SetStepsForCutsIncreasing();
-  if (cutDefinition==0){
-    cf->SetStepForMCtruth();
-  }
+  cf->AddVariable(AliDielectronVarManager::kPt,2,0.8,1.2,kTRUE);
+  cf->AddVariable(AliDielectronVarManager::kNclsTPC,3,90,120,kTRUE);
   
   die->SetCFManagerPair(cf);
+  
 }
+