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