Adding updated add task macro for thain analysis
authorlgraczyk <lgraczyk@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 10 May 2013 09:37:23 +0000 (09:37 +0000)
committerlgraczyk <lgraczyk@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 10 May 2013 09:37:23 +0000 (09:37 +0000)
PWGCF/FEMTOSCOPY/macros/Train/ProtonLambdaFemto/AddTaskFemto.C [new file with mode: 0644]

diff --git a/PWGCF/FEMTOSCOPY/macros/Train/ProtonLambdaFemto/AddTaskFemto.C b/PWGCF/FEMTOSCOPY/macros/Train/ProtonLambdaFemto/AddTaskFemto.C
new file mode 100644 (file)
index 0000000..ddc9900
--- /dev/null
@@ -0,0 +1,67 @@
+//=============================================================================
+//
+// *** AddTaskFemto.C ***
+//
+// This macro initialize a complete AnalysisTask object for femtoscopy.
+//
+//=============================================================================
+
+AliAnalysisTaskFemto *AddTaskFemto(const char *configMacroName="ConfigFemtoAnalysis.C", const char *configMacroParameters="" )
+{
+// Creates a proton 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("AddTaskFemto", "No analysis manager to connect to.");
+    return NULL;
+  }  
+
+  // B. Check the analysis type using the event handlers connected to the analysis
+  //    manager. The availability of MC handler cann also be checked here.
+  //==============================================================================
+  if (!mgr->GetInputEventHandler()) {
+    ::Error("AddTaskFemto", "This task requires an input event handler");
+    return NULL;
+  }  
+  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
+  cout << "Found " <<type << " event handler" << endl;
+
+  // C. Create the task, add it to manager.
+  //===========================================================================
+//  gSystem->SetIncludePath("-I$ROOTSYS/include  -I./PWG2AOD/AOD -I./PWG2femtoscopy/FEMTOSCOPY/AliFemto -I./PWG2femtoscopyUser/FEMTOSCOPY/AliFemtoUser -I$ALICE_ROOT/include");
+
+  if (TProofMgr::GetListOfManagers()->GetEntries()) {
+//     if (dynamic_cast<TProofLite *> gProof) {
+//       char *macrocommand[10000];
+//       sprintf(macrocommand, ".L %s", configMacroName);
+//       gProof->Exec(macrocommand);
+//     }
+//     else
+    gProof->Load(configMacroName);
+  }  
+  //  gROOT->LoadMacro("ConfigFemtoAnalysis.C++");
+
+  AliAnalysisTaskFemto *taskfemto = new AliAnalysisTaskFemto("TaskFemto",configMacroName,configMacroParameters);
+  mgr->AddTask(taskfemto);
+
+  // D. Configure the analysis task. Extra parameters can be used via optional
+  // arguments of the AddTaskXXX() function.
+  //===========================================================================
+  
+  // 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
+  //==============================================================================
+  TString outputfile = AliAnalysisManager::GetCommonFileName();  
+  outputfile += ":PWGCFEMTO_PLam";
+  AliAnalysisDataContainer *cout_femto  = mgr->CreateContainer("femtolist_PLam",  TList::Class(),
+                                                              AliAnalysisManager::kOutputContainer,outputfile);
+
+
+   mgr->ConnectInput(taskfemto, 0, mgr->GetCommonInputContainer());
+   mgr->ConnectOutput(taskfemto, 0, cout_femto);
+
+   // Return task pointer at the end
+   return taskfemto;
+}