]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/test/AliCFRsnTask.C
Add FASTJET package definition/finding macro for general use; use FASTJET_FOUND varia...
[u/mrichter/AliRoot.git] / CORRFW / test / AliCFRsnTask.C
index c385641ba8bfc5898be1eed13deb03a06ebdacaa..983326c969e67d7d313b0f664519f796611877ec 100644 (file)
@@ -13,6 +13,7 @@ const Double32_t nsigmavtx = 3. ;       //max track sigma to PVertex
 
 Bool_t AliCFRsnTask(
                    const Bool_t useGrid = 1,
+                   const Bool_t readAOD = 0,
                    const char * kTagXMLFile="wn.xml", // XML file containing tags
                    )
 {
@@ -44,9 +45,17 @@ Bool_t AliCFRsnTask(
     analysisChain = tagAna->QueryTags(runCuts,lhcCuts,detCuts,eventCuts); 
   }
   else {// local data
-    analysisChain = new TChain("esdTree");
     //here put your input data path
-    analysisChain->Add("AliESDs.root");
+    if (readAOD) {
+      analysisChain = new TChain("aodTree");
+      analysisChain->Add("your_data_path/001/AliAOD.root");
+      analysisChain->Add("your_data_path/002/AliAOD.root");
+    }
+    else {
+      analysisChain = new TChain("esdTree");
+      analysisChain->Add("your_data_path/001/AliESDs.root");
+      analysisChain->Add("your_data_path/002/AliESDs.root");
+    }
   }
   
   
@@ -92,8 +101,10 @@ Bool_t AliCFRsnTask(
 
   //Acceptance Cuts
   AliCFPairAcceptanceCuts *mcAccCuts = new AliCFPairAcceptanceCuts("mcAccCuts","MC acceptance cuts");
-  mcAccCuts->SetMinNHitITS(mintrackrefsITS,mintrackrefsITS);
-  mcAccCuts->SetMinNHitTPC(mintrackrefsTPC,mintrackrefsTPC);
+  mcAccCuts->GetNegCut()->SetMinNHitITS(mintrackrefsITS);
+  mcAccCuts->GetPosCut()->SetMinNHitITS(mintrackrefsITS);
+  mcAccCuts->GetNegCut()->SetMinNHitTPC(mintrackrefsTPC);
+  mcAccCuts->GetPosCut()->SetMinNHitTPC(mintrackrefsTPC);
 
   // Rec-Level kinematic cuts
   AliCFTrackKineCuts *recKineCuts = new AliCFTrackKineCuts("recKineCuts","rec-level kine cuts");
@@ -102,11 +113,23 @@ Bool_t AliCFRsnTask(
   recKineCuts->SetChargeRec(charge);
 
   AliCFPairQualityCuts *recQualityCuts = new AliCFPairQualityCuts("recQualityCuts","rec-level quality cuts");
-  recQualityCuts->SetMinNClusterTPC(minclustersTPC,minclustersTPC);
-  recQualityCuts->SetRequireITSRefit(kTRUE,kTRUE);
+  if (!readAOD) {
+    recQualityCuts->GetNegCut()->SetMinNClusterTPC(minclustersTPC);
+    recQualityCuts->GetPosCut()->SetMinNClusterTPC(minclustersTPC);
+  }
+  recQualityCuts->GetNegCut()->SetStatus(AliESDtrack::kTPCrefit & AliESDtrack::kITSrefit);
+  recQualityCuts->GetPosCut()->SetStatus(AliESDtrack::kTPCrefit & AliESDtrack::kITSrefit);
+
 
   AliCFPairIsPrimaryCuts *recIsPrimaryCuts = new AliCFPairIsPrimaryCuts("recIsPrimaryCuts","rec-level isPrimary cuts");
-  recIsPrimaryCuts->SetMaxNSigmaToVertex(nsigmavtx,nsigmavtx);
+  if (readAOD) {
+    recIsPrimaryCuts->GetNegCut()->SetAODType(AliAODTrack::kPrimary);
+    recIsPrimaryCuts->GetPosCut()->SetAODType(AliAODTrack::kPrimary);
+  }
+  else {
+    recIsPrimaryCuts->GetNegCut()->SetMaxNSigmaToVertex(nsigmavtx);
+    recIsPrimaryCuts->GetPosCut()->SetMaxNSigmaToVertex(nsigmavtx);
+  }
 
   AliCFPairPidCut* cutPID = new AliCFPairPidCut("cutPID","ESD_PID") ;
   Double_t prior_pp[AliPID::kSPECIES] = {0.0244519,
@@ -122,15 +145,42 @@ Bool_t AliCFRsnTask(
                                           0.0733 };
 
 
-  cutPID->SetPriors(prior_pbpb);
-  cutPID->SetProbabilityCut(0.,0.);
-  cutPID->SetDetectors("TPC ITS TOF TRD","TPC ITS TOF TRD");
+  cutPID->GetNegCut()->SetPriors(prior_pbpb);
+  cutPID->GetPosCut()->SetPriors(prior_pbpb);
+  cutPID->GetNegCut()->SetProbabilityCut(0);
+  cutPID->GetPosCut()->SetProbabilityCut(0);
+  cutPID->GetNegCut()->SetDetectors("ITS TPC TRD");
+  cutPID->GetPosCut()->SetDetectors("ITS TPC TRD");
+  if (readAOD) {
+    cutPID->GetNegCut()->SetAODmode(kTRUE);
+    cutPID->GetPosCut()->SetAODmode(kTRUE);
+  }
+  else {
+    cutPID->GetNegCut()->SetAODmode(kFALSE);
+    cutPID->GetPosCut()->SetAODmode(kFALSE);
+  }
+  
   switch(PDG) {
-  case  -313  : cutPID->SetParticleType(AliPID::kKaon  ,kTRUE,AliPID::kPion  ,kTRUE); break;
-  case   313  : cutPID->SetParticleType(AliPID::kPion  ,kTRUE,AliPID::kKaon  ,kTRUE); break;
-  case   333  : cutPID->SetParticleType(AliPID::kKaon  ,kTRUE,AliPID::kKaon  ,kTRUE); break;
-  case  3124  : cutPID->SetParticleType(AliPID::kKaon  ,kTRUE,AliPID::kProton,kTRUE); break;
-  case -3124  : cutPID->SetParticleType(AliPID::kProton,kTRUE,AliPID::kKaon  ,kTRUE); break;
+  case  -313  : 
+    cutPID->GetNegCut()->SetParticleType(AliPID::kKaon  ,kTRUE);
+    cutPID->GetPosCut()->SetParticleType(AliPID::kPion  ,kTRUE);
+    break;
+  case   313  : 
+    cutPID->GetNegCut()->SetParticleType(AliPID::kPion  ,kTRUE);
+    cutPID->GetPosCut()->SetParticleType(AliPID::kKaon  ,kTRUE); 
+    break;
+  case   333  : 
+    cutPID->GetNegCut()->SetParticleType(AliPID::kKaon  ,kTRUE);
+    cutPID->GetPosCut()->SetParticleType(AliPID::kKaon  ,kTRUE); 
+    break;
+  case  3124  : 
+    cutPID->GetNegCut()->SetParticleType(AliPID::kKaon  ,kTRUE);
+    cutPID->GetPosCut()->SetParticleType(AliPID::kProton,kTRUE); 
+    break;
+  case -3124  : 
+    cutPID->GetNegCut()->SetParticleType(AliPID::kProton,kTRUE);
+    cutPID->GetPosCut()->SetParticleType(AliPID::kKaon  ,kTRUE); 
+    break;
   default     : printf("UNDEFINED PID\n"); break;
   }
   //cutPID->SetQAOn(kTRUE);
@@ -170,6 +220,7 @@ Bool_t AliCFRsnTask(
   // create the task
   AliCFRsnTask *task = new AliCFRsnTask("AliRsnTask");
   task->SetCFManager(man); //here is set the CF manager
+  task->SetRsnPDG(PDG);
 
 
   //SETUP THE ANALYSIS MANAGER TO READ INPUT CHAIN AND WRITE DESIRED OUTPUTS
@@ -181,9 +232,13 @@ Bool_t AliCFRsnTask(
   else mgr->SetAnalysisType(AliAnalysisManager::kLocalAnalysis);
 
   AliMCEventHandler* mcHandler = new AliMCEventHandler();
-  AliESDInputHandler* esdHandler = new AliESDInputHandler();
   mgr->SetMCtruthEventHandler(mcHandler);
-  mgr->SetInputEventHandler(esdHandler);
+
+  AliInputEventHandler* dataHandler ;
+  if (readAOD) dataHandler = new AliAODInputHandler();
+  else         dataHandler = new AliESDInputHandler();
+  mgr->SetInputEventHandler(dataHandler);
+  
 
 
   // Create and connect containers for input/output
@@ -202,7 +257,7 @@ Bool_t AliCFRsnTask(
   cinput0->SetData(analysisChain);
 
   mgr->AddTask(task);
-  mgr->ConnectInput (task,0,cinput0);
+  mgr->ConnectInput (task,0,mgr->GetCommonInputContainer());
   mgr->ConnectOutput(task,0,coutput0);
   mgr->ConnectOutput(task,1,coutput1);
   mgr->ConnectOutput(task,2,coutput2);
@@ -222,46 +277,12 @@ Bool_t AliCFRsnTask(
 }
 
 void Load(Bool_t useGrid) {
-  //remove this file which can cause problems
-  if (!useGrid) 
-    gSystem->Exec("rm $ALICE_ROOT/ANALYSIS/AliAnalysisSelector_cxx.so");
-  
   //load the required aliroot libraries
   gSystem->Load("libANALYSIS") ;
   gSystem->Load("libANALYSISalice") ;
-  
-  gSystem->SetIncludePath("-I. -I$ALICE_ROOT/include -I$ROOTSYS/include -I$ALICE_ROOT/PWG2/RESONANCES -I$ALICE_ROOT/CORRFW");
+  gSystem->Load("libPWG2resonances");
+  gSystem->Load("libCORRFW");
 
-  if (!useGrid) {
-    //load local CF library
-    gSystem->Load("libCORRFW");
-    //load PWG2 library
-    gSystem->Load("libPWG2resonances");
-  }
-  else {
-    //compile online the task class
-    gSystem->Exec("cp $ALICE_ROOT/PWG2/RESONANCES/AliRsnDaughter.cxx .");
-    gROOT->LoadMacro("./AliRsnDaughter.cxx+");
-    gSystem->Exec("tar zxvf cf_classes.tgz");
-    gROOT->LoadMacro("./AliCFFrame.cxx+");
-    gROOT->LoadMacro("./AliCFVGrid.cxx+");
-    gROOT->LoadMacro("./AliCFGrid.cxx+");
-    gROOT->LoadMacro("./AliCFGridSparse.cxx+");
-    gROOT->LoadMacro("./AliCFContainer.cxx+");
-    gROOT->LoadMacro("./AliCFCutBase.cxx+");
-    gROOT->LoadMacro("./AliCFTrackKineCuts.cxx+");
-    gROOT->LoadMacro("./AliCFTrackIsPrimaryCuts.cxx+");
-    gROOT->LoadMacro("./AliCFTrackQualityCuts.cxx+");
-    gROOT->LoadMacro("./AliCFParticleGenCuts.cxx+");
-    gROOT->LoadMacro("./AliCFAcceptanceCuts.cxx+");
-    gROOT->LoadMacro("./AliCFTrackCutPid.cxx+");
-    gROOT->LoadMacro("./AliCFManager.cxx+");
-    gSystem->Exec("tar zxvf cf_rsn.tgz");
-    gROOT->LoadMacro("./AliCFPair.cxx+");
-    gROOT->LoadMacro("./AliCFPairAcceptanceCuts.cxx+");
-    gROOT->LoadMacro("./AliCFPairQualityCuts.cxx+");
-    gROOT->LoadMacro("./AliCFPairIsPrimaryCuts.cxx+");
-    gROOT->LoadMacro("./AliCFPairPidCut.cxx+");
-  }
+  gSystem->AddIncludePath("-I$ALICE_ROOT/PWG2/RESONANCES");
   gROOT->LoadMacro("./AliCFRsnTask.cxx+");
 }