]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
added addtask macro for ttree filter task
authorrbertens <rbertens@cern.ch>
Tue, 1 Jul 2014 15:17:03 +0000 (17:17 +0200)
committerrbertens <rbertens@cern.ch>
Tue, 1 Jul 2014 15:17:25 +0000 (17:17 +0200)
PWGCF/FLOW/Documentation/examples/manual/ttree/macros/AddTaskTTreeFilter.C [new file with mode: 0644]
PWGCF/FLOW/Documentation/examples/manual/ttree/macros/runTTreeFilter.C

diff --git a/PWGCF/FLOW/Documentation/examples/manual/ttree/macros/AddTaskTTreeFilter.C b/PWGCF/FLOW/Documentation/examples/manual/ttree/macros/AddTaskTTreeFilter.C
new file mode 100644 (file)
index 0000000..a19a55b
--- /dev/null
@@ -0,0 +1,46 @@
+// addtask macro for AliAnalysisTaskTTreeFilter
+// author: redmer alexander bertens (rbertens@cern.ch)
+//
+// note that this addtask macro is not necessary to run
+// the example macro in this folder, but is added for 
+// clarity
+
+AliAnalysisTaskTTreeFilter* AddTaskTTreeFilter(
+        TString outfile = "myFilteredTree.root",
+        UInt_t trigger = AliVEvent::kAnyINT
+        ) 
+{
+    // check validity of framework setup 
+    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+    if (!mgr) {
+        ::Error("AddTaskTTreeFilter", "No analysis manager to connect to.");
+        return NULL;
+    }  
+    if (!mgr->GetInputEventHandler())  {
+        ::Error("AddTaskTTreeFilter", "This task requires an input event handler");
+        return NULL;
+    }
+  
+
+    // initialize task, connect it to the manager and return it
+    AliAnalysisTaskTTreeFilter* filter = new AliAnalysisTaskTTreeFilter("filter");
+    // add the task to the manager
+    mgr->AddTask(filter);
+    // set the trigger selection
+    filter->SelectCollisionCandidates(trigger);
+
+    // get the common input container from the analysis manager
+    AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
+  
+    AliAnalysisDataContainer *coutput = mgr->CreateContainer(
+        "Tree",
+        TTree::Class(),
+        AliAnalysisManager::kOutputContainer,
+        outfile.Data());
+    // connect the input data to the flow event task
+    mgr->ConnectInput(filter, 0, cinput);
+    // and connect the output to the flow event task
+    mgr->ConnectOutput(filter, 1, coutput);
+
+    return filter;
+}
index d690facc3e591ef78bbc0ee93627ed34e5d5b4b6..72ca41a4410db2ed71fd89b252de171e18dd4a3d 100644 (file)
@@ -34,7 +34,7 @@ void runTTreeFilter() {
     chain->Add("/home/rbertens/Documents/CERN/ALICE_DATA/data/2010/LHC10h/000139510/ESDs/pass2/AOD086/0007/AliAOD.root");
     chain->Add("/home/rbertens/Documents/CERN/ALICE_DATA/data/2010/LHC10h/000139510/ESDs/pass2/AOD086/0008/AliAOD.root");
     chain->Add("/home/rbertens/Documents/CERN/ALICE_DATA/data/2010/LHC10h/000139510/ESDs/pass2/AOD086/0009/AliAOD.root");
-    chain->Add("/home/rbertens/Documents/CERN/ALICE_DATA/data/2010/LHC10h/000139510/ESDs/pass2/AOD086/0010/AliAOD.root"); 
+    chain->Add("/home/rbertens/Documents/CERN/ALICE_DATA/data/2010/LHC10h/000139510/ESDs/pass2/AOD086/0010/AliAOD.root");
     // create an input handler
     AliVEventHandler* inputH = new AliAODInputHandler();
     // and connect it to the manager
@@ -64,24 +64,11 @@ void runTTreeFilter() {
     gROOT->LoadMacro("../objects/AliFlowTTreeTrack.cxx+");
     gROOT->LoadMacro("../objects/AliAnalysisTaskTTreeFilter.cxx+");
 
-    AliAnalysisTaskTTreeFilter* filter = new AliAnalysisTaskTTreeFilter("filter");
-    // add the task to the manager
-    mgr->AddTask(filter);
-    // set the trigger selection
-    filter->SelectCollisionCandidates(AliVEvent::kAnyINT);
+    // load the addtask
+    gROOT->LoadMacro("AddTaskTTreeFilter.C");
 
-    // get the common input container from the analysis manager
-    AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
-  
-    AliAnalysisDataContainer *coutput = mgr->CreateContainer(
-        "Tree",
-        TTree::Class(),
-        AliAnalysisManager::kOutputContainer,
-        "myFilteredTree.root");
-    // connect the input data to the flow event task
-    mgr->ConnectInput(filter, 0, cinput);
-    // and connect the output to the flow event task
-    mgr->ConnectOutput(filter, 1, coutput);
+    // launch the task
+    AddTaskTTreeFilter();
 
     // check if we can initialize the manager
     if(!mgr->InitAnalysis()) return;