]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AddTaskMuonQA.C
Add the possibility to select events with CINT1B/CMUS1B triggers when filling histogr...
[u/mrichter/AliRoot.git] / PWG3 / muon / AddTaskMuonQA.C
1 AliAnalysisTaskMuonQA *AddTaskMuonQA(Bool_t selectPhysics = kFALSE, Bool_t selectTrigger = kTRUE, Short_t selectCharge = 0)
2 {
3   /// Add AliAnalysisTaskMuonQA to the train (Philippe Pillot)
4   
5   
6   // Get the pointer to the existing analysis manager via the static access method.
7   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8   if(!mgr) { 
9     Error("AddTaskMuonQA","AliAnalysisManager not set!");
10     return NULL;
11   }
12   
13   // This task run on ESDs
14   TString type = mgr->GetInputEventHandler()->GetDataType();
15   if (!type.Contains("ESD")) {
16     Error("AddTaskMuonQA", "ESD input handler needed!");
17     return NULL;
18   }
19   
20   // Create and configure task
21   AliAnalysisTaskMuonQA *task = new AliAnalysisTaskMuonQA("MuonQA");
22   if (!task) {
23     Error("AddTaskMuonQA", "Muon QA task cannot be created!");
24     return NULL;
25   }
26   task->SelectPhysics(selectPhysics);
27   task->SelectTrigger(selectTrigger);
28   task->SelectCharge(selectCharge);
29   
30   // Add task to analysis manager
31   mgr->AddTask(task);
32   
33   // Connect input container
34   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
35   
36   // Define output file directory
37   TString outputfile = AliAnalysisManager::GetCommonFileName();
38   if ( outputfile.IsNull() ) {
39     Error("AddTaskMuonQA", "Common output file is not defined!");
40     return NULL;
41   }
42   outputfile += ":MUON_QA";
43   
44   // Create and connect output containers
45   AliAnalysisDataContainer *cout_histo1 = mgr->CreateContainer("general1", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
46   AliAnalysisDataContainer *cout_histo2 = mgr->CreateContainer("expert", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
47   AliAnalysisDataContainer *cout_trackStat = mgr->CreateContainer("trackCounters", AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile);
48   AliAnalysisDataContainer *cout_eventStat = mgr->CreateContainer("eventCounters", AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, outputfile);
49   AliAnalysisDataContainer *cout_normalized = mgr->CreateContainer("general2", TObjArray::Class(), AliAnalysisManager::kParamContainer, outputfile);
50   mgr->ConnectOutput(task, 1, cout_histo1);
51   mgr->ConnectOutput(task, 2, cout_histo2);
52   mgr->ConnectOutput(task, 3, cout_trackStat);
53   mgr->ConnectOutput(task, 4, cout_eventStat);
54   mgr->ConnectOutput(task, 5, cout_normalized);
55   
56   return task;
57 }