add mc track sel
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 29 May 2012 08:45:03 +0000 (08:45 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 29 May 2012 08:45:03 +0000 (08:45 +0000)
PWGGA/EMCALTasks/macros/AddTaskMCTrackSelector.C [new file with mode: 0644]

diff --git a/PWGGA/EMCALTasks/macros/AddTaskMCTrackSelector.C b/PWGGA/EMCALTasks/macros/AddTaskMCTrackSelector.C
new file mode 100644 (file)
index 0000000..e10a0b3
--- /dev/null
@@ -0,0 +1,46 @@
+// $Id$
+
+AliEmcalMCTrackSelector* AddTaskMCTrackSelector(
+  const char *outname    = "MCParticles",
+  Bool_t      nk         = kFALSE,
+  Bool_t      ch         = kFALSE
+)
+{  
+  // Get the pointer to the existing analysis manager via the static access method.
+  //==============================================================================
+  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+  if (!mgr)
+  {
+    ::Error("AddTaskMCTrackSelector", "No analysis manager to connect to.");
+    return NULL;
+  }  
+  
+  // Check the analysis type using the event handlers connected to the analysis manager.
+  //==============================================================================
+  if (!mgr->GetInputEventHandler())
+  {
+    ::Error("AddTaskMCTrackSelector", "This task requires an input event handler");
+    return NULL;
+  }
+  
+  //-------------------------------------------------------
+  // Init the task and do settings
+  //-------------------------------------------------------
+  TString name("AliEmcalMCTrackSelector");
+  name += outname;
+  AliEmcalMCTrackSelector *eTask = new AliEmcalMCTrackSelector(name);
+  eTask->SetTracksOutName(outname);
+  eTask->SetRejectNK(nk);
+  eTask->SetChargedMC(ch);
+
+  //-------------------------------------------------------
+  // Final settings, pass to manager and set the containers
+  //-------------------------------------------------------
+  mgr->AddTask(eTask);
+  
+  // Create containers for input/output
+  AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
+  mgr->ConnectInput  (eTask, 0,  cinput1 );
+  
+  return eTask;
+}