Added possibility to do cut on TPCnSigma and rapidity in the task.
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TPCTOF / AddTaskCombinedHadronSpectra.C
index 286b3c9bab6b1f09fcb71bc49bb4ee0d0d38a92d..a04d6b40d1cadd1da6a326bfaeaa205f861973c6 100644 (file)
@@ -1,55 +1,86 @@
-AliAnalysisTask *AddTaskCombinedHadronSpectra(Bool_t isMC=kFALSE, Bool_t tpcOnly = kFALSE){
-  //get the current analysis manager
-  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
-  if (!mgr) {
-    Error("AddTask_akalweit_CombinedHadron", "No analysis manager found.");
-    return 0;
-  }
-  //============= Set Task Name ===================
-  TString taskName=("AliAnalysisCombinedHadronSpectra.cxx+g");
-  //===============================================
-  //            Load the task
-  //gROOT->LoadMacro(taskName.Data());
-
-
-  
-  //========= Add task to the ANALYSIS manager =====
-  AliAnalysisCombinedHadronSpectra *task = new AliAnalysisCombinedHadronSpectra("akalweitTaskCombinedHadron");
-  task->SelectCollisionCandidates(AliVEvent::kMB);
-
-  
-  if (isMC)  task->SetIsMCtrue();
-  if (tpcOnly) {
-    task->SetUseTPConlyTracks(kTRUE);
-    task->Initialize();
-  }
-
-  mgr->AddTask(task);
-
-
-  //================================================
-  //              data containers
-  //================================================
-  //            find input container
-  //below the trunk version
-  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
-
-  //dumm output container
-  AliAnalysisDataContainer *coutput0 =
-      mgr->CreateContainer("akalweit_tree",
-                           TTree::Class(),
-                           AliAnalysisManager::kExchangeContainer,
-                           "akalweit_default");
-
-  //define output containers, please use 'username'_'somename'
-  AliAnalysisDataContainer *coutput1 = 
-      mgr->CreateContainer("akalweit_CombinedHadron", TList::Class(),
-                           AliAnalysisManager::kOutputContainer,"akalweit_CombinedHadron.root");
-
-  //connect containers
-  mgr->ConnectInput  (task,  0, cinput );
-  mgr->ConnectOutput (task,  0, coutput0);
-  mgr->ConnectOutput (task,  1, coutput1);
-
-  return task;
-}
+\r
+\r
+AliAnalysisTask *AddTaskCombinedHadronSpectra(Int_t identifier = 0, Bool_t isMC = kFALSE, Bool_t isTPConly = kFALSE, Bool_t writeOwnFile = kFALSE, Bool_t saveMotherPDG = kFALSE, Bool_t smallTHnSparse = kFALSE, Double_t nSigmaTPCLow= -3., Double_t nSigmaTPCHigh = 3., Double_t rapidityLow = -0.2, Double_t rapidityHigh = 0.2, Bool_t setTrackCuts = kFALSE, AliESDtrackCuts *ESDtrackCuts = 0){\r
+\r
+\r
+  //get the current analysis manager\r
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
+  if (!mgr) {\r
+    Error("AddTask_janielsk_CombinedHadron", "No analysis manager found.");\r
+    return 0;\r
+  }\r
+  //============= Set Task Name ===================\r
+  TString taskName=("AliAnalysisCombinedHadronSpectra.cxx+g");\r
+  //===============================================\r
+  //            Load the task\r
+  gROOT->LoadMacro(taskName.Data());\r
+\r
+\r
+  \r
+  //========= Add task to the ANALYSIS manager =====\r
+\r
+  //normal tracks\r
+  AliAnalysisCombinedHadronSpectra *task = new AliAnalysisCombinedHadronSpectra("janielskTaskCombinedHadron");\r
+  task->SelectCollisionCandidates(AliVEvent::kMB);\r
+\r
+  //switches\r
+  if (isMC) task->SetIsMCtrue(isMC);\r
+  if (isTPConly)task->SetUseTPConlyTracks(isTPConly);\r
+  if (saveMotherPDG) task->SetSaveMotherPDG(saveMotherPDG);\r
+  if (smallTHnSparse){\r
+    task->SetSmallTHnSparse(kTRUE);\r
+    task->SetTPCnSigmaCuts(-3.,3.);\r
+    task->SetRapidityCuts(-0.2,0.2);\r
+  }\r
+\r
+  //initialize task\r
+  task->Initialize();\r
+\r
+  //esd cuts need to be set after initialize or cuts will be replaced by standard cuts in initialize\r
+  if (setTrackCuts) task->SetESDtrackCuts(ESDtrackCuts);\r
+\r
+  //add task to manager\r
+  mgr->AddTask(task);\r
+\r
+\r
+  \r
+\r
+  //================================================\r
+  //              data containers\r
+  //================================================\r
+  //            find input container\r
+  //below the trunk version\r
+  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();\r
+\r
+/*\r
+  //dumm output container\r
+  AliAnalysisDataContainer *coutput0 =\r
+      mgr->CreateContainer(Form("akalweit_tree%i",identifier),\r
+                           TTree::Class(),\r
+                           AliAnalysisManager::kExchangeContainer,\r
+                           Form("akalweit_default%i",identifier));\r
+\r
+\r
+  //define output containers, please use 'username'_'somename'\r
+  AliAnalysisDataContainer *coutput1 = \r
+      mgr->CreateContainer(Form("akalweit_CombinedHadron%i",identifier), TList::Class(),\r
+                           AliAnalysisManager::kOutputContainer,Form("akalweit_CombinedHadron%i.root",identifier));\r
+*/\r
+  if (!writeOwnFile) {\r
+       AliAnalysisDataContainer *coutput1 =  mgr->CreateContainer(Form("janielsk_CombinedHadron%i",identifier), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:janielsk_CombinedHadron", AliAnalysisManager::GetCommonFileName())); \r
+       }\r
+  else {\r
+       AliAnalysisDataContainer *coutput1 =  mgr->CreateContainer(Form("janielsk_CombinedHadron%i",identifier), TList::Class(), AliAnalysisManager::kOutputContainer, Form("janielsk_CombinedHadron.root"));\r
+       }\r
+\r
+\r
+\r
+  //connect containers\r
+\r
+  //\r
+  mgr->ConnectInput  (task,  0, cinput );\r
+  //mgr->ConnectOutput (task,  0, coutput0);\r
+  mgr->ConnectOutput (task,  1, coutput1);\r
+\r
+  return task;\r
+}\r