]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/macros/AddTaskPWG4HighPtQATPConly.C
Add the connected pad info to the simulation (Raphaelle)
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtQATPConly.C
index 420c57d92935118b96e867a34bfee572954a2837..75540c23231588e5e8c23727a10b1c7c0df11016 100644 (file)
@@ -1,14 +1,14 @@
 //DEFINITION OF A FEW CONSTANTS
 
-AliPWG4HighPtQATPConly* AddTaskPWG4HighPtQATPConly()//<some_parameters>)
+AliPWG4HighPtQATPConly* AddTaskPWG4HighPtQATPConly(int cuts=1)//1: Standard Cuts 2009 2: GetStandardITSTPCTrackCuts2009
 {
-  // Creates a proton analysis task and adds it to the analysis manager.
+  // Creates HighPtQATPConly analysis task and adds it to the analysis manager.
   
   // A. Get the pointer to the existing analysis manager via the static access method.
   //==============================================================================
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
-    Error("AddTaskPWG4HighPtSpectra", "No analysis manager to connect to.");
+    Error("AddTaskPWG4HighPtQATPConly", "No analysis manager to connect to.");
     return NULL;
   }  
 
@@ -16,7 +16,7 @@ AliPWG4HighPtQATPConly* AddTaskPWG4HighPtQATPConly()//<some_parameters>)
   //    manager. The availability of MC handler can also be checked here.
   //==============================================================================
   if (!mgr->GetInputEventHandler()) {
-    ::Error("AddTaskPWG4HighPtTPConly", "This task requires an input event handler");
+    ::Error("AddTaskPWG4HighPtQATPConly", "This task requires an input event handler");
     return NULL;
   }  
   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
@@ -28,58 +28,90 @@ AliPWG4HighPtQATPConly* AddTaskPWG4HighPtQATPConly()//<some_parameters>)
   //CREATE THE  CUTS -----------------------------------------------
   //Use AliESDtrackCuts
   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
-  //Standard Cuts
-  trackCuts->SetAcceptKinkDaughters(kFALSE);//
-  trackCuts->SetRequireTPCRefit(kTRUE);
-  trackCuts->SetEtaRange(-0.9,0.9);//-0.5,0.5);//
-  trackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);//
-  trackCuts->SetPtRange(0.15, 1e10);//
-  trackCuts->SetMinNClustersTPC(50);//
-  trackCuts->SetMaxChi2PerClusterTPC(3.5);//
-  //trackCuts->SetRequireITSRefit(kTRUE);
-  trackCuts->SetMaxDCAToVertexXY(2.4);
-  trackCuts->SetMaxDCAToVertexZ(3.2);
-  trackCuts->SetDCAToVertex2D(kTRUE);
-  
+  if(cuts==1) {
+    //Standard Cuts
+    trackCuts->SetAcceptKinkDaughters(kFALSE);
+    trackCuts->SetRequireTPCStandAlone(kTRUE); 
+    trackCuts->SetRequireTPCRefit(kTRUE);
+    trackCuts->SetMinNClustersTPC(70);
+    trackCuts->SetEtaRange(-0.9,0.9);
+    trackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
+    trackCuts->SetPtRange(0.15, 1e10);
+    trackCuts->SetMaxChi2PerClusterTPC(3.5);
+    trackCuts->SetMaxDCAToVertexXY(2.4);
+    trackCuts->SetMaxDCAToVertexZ(3.2);
+    trackCuts->SetDCAToVertex2D(kTRUE);
+  }
+  else if(cuts==2) {
+    trackCuts=trackCuts->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
+    trackCuts->SetEtaRange(-0.9,0.9);
+    trackCuts->SetPtRange(0.15, 1e10);
+    trackCuts->SetRequireITSRefit(kFALSE);
+  }
+
   AliESDtrackCuts *trackCutsITS = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts with ITSrefit");
-  trackCutsITS->SetAcceptKinkDaughters(kFALSE);//
-  trackCutsITS->SetRequireTPCRefit(kTRUE);//
-  trackCutsITS->SetEtaRange(-0.9,0.9);//-0.5,0.5);//
-  trackCutsITS->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);//
-  trackCutsITS->SetPtRange(0.15, 1e10);//
-  trackCutsITS->SetMinNClustersTPC(50);//
-  trackCutsITS->SetMaxChi2PerClusterTPC(3.5);//
-  trackCutsITS->SetRequireITSRefit(kTRUE);
-  trackCutsITS->SetMaxDCAToVertexXY(2.4);
-  trackCutsITS->SetMaxDCAToVertexZ(3.2);
-  trackCutsITS->SetDCAToVertex2D(kTRUE); 
+  if(cuts==1) {
+    trackCutsITS->SetAcceptKinkDaughters(kFALSE);
+    trackCutsITS->SetRequireTPCRefit(kTRUE);
+    trackCutsITS->SetEtaRange(-0.9,0.9);
+    trackCutsITS->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
+    trackCutsITS->SetPtRange(0.15, 1e10);
+    trackCutsITS->SetMinNClustersTPC(70);
+    trackCutsITS->SetMaxChi2PerClusterTPC(3.5);
+    trackCutsITS->SetRequireITSRefit(kTRUE);
+    trackCutsITS->SetMaxDCAToVertexXY(2.4);
+    trackCutsITS->SetMaxDCAToVertexZ(3.2);
+    trackCutsITS->SetDCAToVertex2D(kTRUE); 
+  }
+ else if(cuts==2) {
+   trackCutsITS=trackCutsITS->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
+   trackCutsITS->SetEtaRange(-0.9,0.9);
+   trackCutsITS->SetPtRange(0.15, 1e10);
+ }
 
-  //Create the task
-  AliPWG4HighPtQATPConly *taskPWG4QA = new AliPWG4HighPtQATPConly("AliPWG4HighPtQATPConly");
+//Create the task
+  AliPWG4HighPtQATPConly *taskPWG4QA = new AliPWG4HighPtQATPConly(Form("AliPWG4HighPtQATPConly%d",cuts));
   taskPWG4QA->SetCuts(trackCuts);
   taskPWG4QA->SetCutsITS(trackCutsITS);
-  taskPWG4QA->SelectTrigger(AliAnalysisHelperJetTasks::kMB1); 
-  
+  taskPWG4QA->SetMaxCosmicAngle(1.);//0.008);
+  taskPWG4QA->SetCutType(cuts);
   // E. Create ONLY the output containers for the data produced by the task.
   // Get and connect other common input/output containers via the manager as below
   //==============================================================================
 
   //------ input data ------
-  //  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
-  TString outputfile = AliAnalysisManager::GetCommonFileName();
-  outputfile += ":PWG4_HighPtQATPConly"; 
-  //char *outputfile = "outputAliPWG4HighPtQATPConlyTestTrain.root";
-  AliAnalysisDataContainer *cout_hist0 = mgr->CreateContainer("qa_hists", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
-  AliAnalysisDataContainer *cout_hist1 = mgr->CreateContainer("qa_histsTPC", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
-  AliAnalysisDataContainer *cout_hist2 = mgr->CreateContainer("qa_histsITS", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
+  TString outputfile = "";
+  outputfile = AliAnalysisManager::GetCommonFileName();
+  outputfile += Form(":PWG4_HighPtQATPConly%d",cuts);
+  
+  AliAnalysisDataContainer *cout_hist0;
+  AliAnalysisDataContainer *cout_hist1;
+  AliAnalysisDataContainer *cout_hist2;
+  AliAnalysisDataContainer *cout_hist3;
+  AliAnalysisDataContainer *cout_cuts0;
+  AliAnalysisDataContainer *cout_cuts1;
 
+  cout_hist0 = mgr->CreateContainer(Form("qa_histsCuts%d",cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
+  cout_hist1 = mgr->CreateContainer(Form("qa_histsTPCCuts%d",cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
+  cout_hist2 = mgr->CreateContainer(Form("qa_histsITSCuts%d",cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
+  cout_hist3 = mgr->CreateContainer(Form("qa_histsCosmicsCuts%d",cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
+  cout_cuts0 = mgr->CreateContainer(Form("qa_trackCuts%d",cuts), AliESDtrackCuts::Class(), AliAnalysisManager::kParamContainer,outputfile);
+  cout_cuts1 = mgr->CreateContainer(Form("qa_trackCutsITS%d",cuts), AliESDtrackCuts::Class(), AliAnalysisManager::kParamContainer,outputfile);
 
+  //Add task to manager
   mgr->AddTask(taskPWG4QA);
 
+  //Connect input containter to manager
   mgr->ConnectInput(taskPWG4QA,0,mgr->GetCommonInputContainer());
+
+  //Connect output containers to manager
   mgr->ConnectOutput(taskPWG4QA,0,cout_hist0);
   mgr->ConnectOutput(taskPWG4QA,1,cout_hist1);
   mgr->ConnectOutput(taskPWG4QA,2,cout_hist2);
+  mgr->ConnectOutput(taskPWG4QA,3,cout_hist3);
+  mgr->ConnectOutput(taskPWG4QA,4,cout_cuts0);
+  mgr->ConnectOutput(taskPWG4QA,5,cout_cuts1);
 
   // Return task pointer at the end
   return taskPWG4QA;