]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGDQ/dielectron/macrosJPSI/AddTask_ReducedTree.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_ReducedTree.C
index dc503a9f9ece23fbf95deb73856ae0c91a541995..5c7109627ff2753c86e3667ace2e828836aae096 100644 (file)
@@ -1,28 +1,31 @@
+
 //__________________________________________________________________________________________
 AliAnalysisTask *AddTask_ReducedTree(){
   //get the current analysis manager
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
-    Error("AddTask_iarsene_dst", "No analysis manager found.");
+    Error("AddTask_ReducedTree", "No analysis manager found.");
     return 0;
   }
 
   //Do we have an MC handler?
   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
   
-  //gROOT->LoadMacro("AliReducedEvent.cxx+g");
-  //gROOT->LoadMacro("AliAnalysisTaskReducedTree.cxx+g");
-  
   //create task and add it to the manager
   AliAnalysisTaskReducedTree *task=new AliAnalysisTaskReducedTree("DSTTreeMaker");
   task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
   //if(trainConfig=="pp") task->SetRejectPileup();
-  if(!hasMC) task->UsePhysicsSelection(kFALSE);
+  if(!hasMC) task->UsePhysicsSelection(kTRUE);
   mgr->AddTask(task);
   
-  task->SetFillV0Info(kFALSE);
+  //  task->SetFillV0Info(kFALSE);
+  //task->SetFillGammaConversions(kFALSE);
+  task->SetFillK0s(kFALSE);
+  task->SetFillLambda(kFALSE);
+  task->SetFillALambda(kFALSE);
   task->SetFillCaloClusterInfo(kFALSE);
-  //task->SetFillFriendInfo(kFALSE);
+  //task->SetFillDielectronInfo(kFALSE);
+  task->SetFillFriendInfo(kFALSE);
   
   task->SetEventFilter(CreateEventFilter());
   task->SetTrackFilter(CreateGlobalTrackFilter());
@@ -30,13 +33,16 @@ AliAnalysisTask *AddTask_ReducedTree(){
   task->SetK0sPionCuts(CreateK0sPionCuts());
   task->SetLambdaProtonCuts(CreateLambdaProtonCuts());
   task->SetLambdaPionCuts(CreateLambdaPionCuts());
+  task->SetGammaElectronCuts(CreateGammaConvElectronCuts());
   task->SetK0sCuts(CreateK0sCuts());
   task->SetK0sMassRange(0.44,0.55);
   task->SetLambdaMassRange(1.090,1.14);
   task->SetLambdaCuts(CreateLambdaCuts());
+  task->SetGammaConvCuts(CreateGammaConvCuts(AliESDv0KineCuts::kPurity, AliESDv0KineCuts::kPbPb));
+  task->SetGammaConvMassRange(0.0,0.1);
   //task->SetV0Histograms(CreateV0Histograms());
   
-  task->AddDielectron(ConfigDielectron(0));   // J/psi -> e+e-
+  //task->AddDielectron(ConfigDielectron(0));   // J/psi -> e+e-
   //task->AddDielectron(ConfigDielectron(1));   // phi -> K+K-
   
   //create output container
@@ -50,7 +56,7 @@ AliAnalysisTask *AddTask_ReducedTree(){
     mgr->CreateContainer("qaHistos",
                          TList::Class(),
                          AliAnalysisManager::kOutputContainer,
-                         "dst_qaHistos.root");
+                         "dst_Histos.root");
 
   AliAnalysisDataContainer *cOutputHist2 =
     mgr->CreateContainer("dstTree",
@@ -58,11 +64,11 @@ AliAnalysisTask *AddTask_ReducedTree(){
                          AliAnalysisManager::kOutputContainer,
                          "dstTree.root");
   
-  AliAnalysisDataContainer *cOutputHist3 =
+  /*AliAnalysisDataContainer *cOutputHist3 =
     mgr->CreateContainer("friendTree",
                          TTree::Class(),
                          AliAnalysisManager::kOutputContainer,
-                         "dstTree_friend.root");
+                         "dstTree_friend.root");*/
   /*  cout << "output containers: " << endl
        << cOutputHist1 << endl
        << cOutputHist2 << endl
@@ -72,9 +78,9 @@ AliAnalysisTask *AddTask_ReducedTree(){
   mgr->ConnectOutput(task, 0, coutput1 );
   mgr->ConnectOutput(task, 1, cOutputHist1);
   mgr->ConnectOutput(task, 2, cOutputHist2);
-  mgr->ConnectOutput(task, 3, cOutputHist3);
+  //mgr->ConnectOutput(task, 3, cOutputHist3);
   //mgr->ConnectOutput(task, 2, cOutputHist3);
-  
+  //mgr->ConnectOutput(task, 1, cOutputHist2);
   return task;
 }
 
@@ -103,17 +109,23 @@ AliAnalysisCuts* CreateGlobalTrackFilter() {
   // basic track quality cuts  (basicQ)
   esdTrackCuts->SetMaxDCAToVertexZ(10.0);
   esdTrackCuts->SetMaxDCAToVertexXY(3.0);
-  esdTrackCuts->SetEtaRange( -0.9 , 0.9 );
+  esdTrackCuts->SetEtaRange( -1.0 , 1.0 );
   //esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
-  //esdTrackCuts->SetRequireITSRefit(kTRUE);
+  esdTrackCuts->SetRequireITSRefit(kTRUE);
   esdTrackCuts->SetRequireTPCRefit(kTRUE);
-  esdTrackCuts->SetPRange(0.8,1e30);
+  esdTrackCuts->SetPRange(0.2,1e30);
+  //esdTrackCuts->SetPtRange(0.15,1e30);
   //esdTrackCuts->SetMinNClustersTPC(60);
   //esdTrackCuts->SetMaxChi2PerClusterTPC(4);
   //  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
   //  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
   cuts->AddCut(esdTrackCuts);
-  
+
+  AliDielectronPID *electronPid = new AliDielectronPID("PID","PID cut");
+  electronPid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.0, 4.0, 0.0, 0.0, kFALSE, AliDielectronPID::kRequire); // TPC 3-sigma inclusion for electron     
+  electronPid->AddCut(AliDielectronPID::kTOF,AliPID::kProton,  -3.0, 3.0, -2.0, 2.0, kTRUE, AliDielectronPID::kRequire,AliDielectronVarManager::kTPCnSigmaPro); // TPC exclusion for proton   
+  cuts->AddCut(electronPid);
   return cuts;
 }
 
@@ -138,7 +150,9 @@ AliAnalysisCuts* CreateK0sPionCuts() {
   // Cuts on the K0s pions (tracking cuts, pid cuts, ...) 
   //
   AliESDtrackCuts *pionCuts = new AliESDtrackCuts;
-  pionCuts->SetPtRange(0.15,100.0);
+  pionCuts->SetPtRange(0.1,100.0);
+  pionCuts->SetRequireTPCRefit(kTRUE);
+  pionCuts->SetMinNClustersTPC(50);
   return pionCuts;
 }
 
@@ -149,7 +163,7 @@ AliAnalysisCuts* CreateLambdaPionCuts() {
   // Cuts on the Lambda pions (tracking cuts, pid cuts, ...) 
   //
   AliESDtrackCuts *pionCuts = new AliESDtrackCuts;
-  pionCuts->SetPtRange(0.15,100.0);
+  pionCuts->SetPtRange(0.1,100.0);
   return pionCuts;
 }
 
@@ -160,11 +174,23 @@ AliAnalysisCuts* CreateLambdaProtonCuts() {
   // Cuts on the Lambda protons (tracking cuts, pid cuts, ...) 
   //
   AliESDtrackCuts *protonCuts = new AliESDtrackCuts;
-  protonCuts->SetPtRange(0.15,100.0);
+  protonCuts->SetPtRange(0.1,100.0);
   return protonCuts;
 }
 
 
+//______________________________________________________________________________________
+AliAnalysisCuts* CreateGammaConvElectronCuts() {
+  //
+  // Cuts for the selection of electrons from gamma conversions
+  //
+  AliESDtrackCuts* electronCuts = new AliESDtrackCuts;
+  electronCuts->SetRequireTPCRefit(kTRUE);
+  electronCuts->SetMinNClustersTPC(50);
+  return electronCuts;
+}
+
+
 //______________________________________________________________________________________
 AliESDv0Cuts* CreateK0sCuts() {
   //
@@ -178,7 +204,7 @@ AliESDv0Cuts* CreateK0sCuts() {
   //cuts->SetMaxDcaV0Daughters(0.3);
   //cuts->SetMinRadius(3.0);
   //cuts->SetMaxRadius(90.0);
-  //cuts->SetMinCosinePointingAngle(0.9);
+  cuts->SetMinCosinePointingAngle(0.8);
   //cuts->SetRequireOnFlyStatus(kTRUE);
   //cuts->SetMaxDcaV0ToVertex(0.5);
   //cuts->SetPRange(0.,1.0e10);
@@ -209,6 +235,35 @@ AliESDv0Cuts* CreateLambdaCuts() {
 }
 
 
+//______________________________________________________________________________________
+AliESDv0KineCuts* CreateGammaConvCuts(Int_t mode, Int_t type) {
+  //
+  // cuts for the selection of gamma conversions
+  //
+  AliESDv0KineCuts* cuts = new AliESDv0KineCuts();
+  cuts->SetMode(mode, type);
+  
+  //cuts->SetNTPCclusters(60);
+  cuts->SetTPCrefit(kTRUE);
+  //cuts->SetTPCchi2perCls(4.0);
+  //cuts->SetTPCclusterratio(0.6);
+  cuts->SetNoKinks(kTRUE);
+  // gamma cuts                                                                                                                      
+  cuts->SetGammaCutChi2NDF(10.0);
+  Float_t cosPoint[2] = {0.0, 0.2};
+  //cuts->SetGammaCutCosPoint(cosPoint);
+  Float_t cutDCA[2] = {0.0, 1.25};
+  cuts->SetGammaCutDCA(cutDCA);
+  Float_t vtxR[2] = {3.0, 90.0};
+  cuts->SetGammaCutVertexR(vtxR);
+  Float_t psiPairCut[2]={0.0,0.10};
+  cuts->SetGammaCutPsiPair(psiPairCut);
+  cuts->SetGammaCutInvMass(0.1);
+  
+  return cuts;
+}
+
+
 //______________________________________________________________________________________
 AliDielectronHistos* CreateV0Histograms()
 {
@@ -361,7 +416,7 @@ void SetupDielectronTrackCuts(AliDielectron *die, Int_t cutDefinition)
   esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
   //esdTrackCuts->SetRequireITSRefit(kTRUE);
   if(cutDefinition==0) esdTrackCuts->SetRequireTPCRefit(kTRUE);
-  if(cutDefinition==0) esdTrackCuts->SetPRange(.9,1e30);   // for J/psi
+  if(cutDefinition==0) esdTrackCuts->SetPRange(.8,1e30);   // for J/psi
   if(cutDefinition==1) esdTrackCuts->SetPRange(.1,1e30);   // for phi
   //if(cutDefinition==0) esdTrackCuts->SetMinNClustersTPC(60);
   //if(cutDefinition==0) esdTrackCuts->SetMaxChi2PerClusterTPC(4);
@@ -988,7 +1043,7 @@ void SetDielectronMCSignals(AliDielectron *die)
 }
 
 //______________________________________________________________________________________
-void SetEtaCorrection()
+/*void SetEtaCorrection()
 {
 //
 // Eta equalization for the TPC response
@@ -1009,4 +1064,4 @@ void SetEtaCorrection()
       AliDielectronPID::SetEtaCorrFunction((TF1*)f.Get(kName.Data()));
     }
   }
-}
+}*/