]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/muondep/AddTaskMuonResolution.C
New task to study fake tracks in simulation: need to access the recoParam used during...
[u/mrichter/AliRoot.git] / PWG3 / muondep / AddTaskMuonResolution.C
CommitLineData
00612ffc 1AliAnalysisTaskMuonResolution *AddTaskMuonResolution(Bool_t selectPhysics = kFALSE, Bool_t selectTrigger = kFALSE,
2 Bool_t matchTrig = kTRUE, Bool_t applyAccCut = kTRUE,
3 Double_t minMomentum = 0., Bool_t correctForSystematics = kTRUE,
4 Int_t extrapMode = 1)
7cbb1928 5{
6 /// Add AliAnalysisTaskMuonResolution to the train (Philippe Pillot)
7
8
9 // Get the pointer to the existing analysis manager via the static access method.
10 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11 if(!mgr) {
12 Error("AddTaskMuonResolution","AliAnalysisManager not set!");
13 return NULL;
14 }
15
16 // This task run on ESDs
17 TString type = mgr->GetInputEventHandler()->GetDataType();
18 if (!type.Contains("ESD")) {
19 Error("AddTaskMuonResolution", "ESD input handler needed!");
20 return NULL;
21 }
22
23 // Create and configure task
24 AliAnalysisTaskMuonResolution *task = new AliAnalysisTaskMuonResolution("MuonResolution");
25 if (!task) {
26 Error("AddTaskMuonResolution", "Muon resolution task cannot be created!");
27 return NULL;
28 }
29 task->SelectPhysics(selectPhysics);
00612ffc 30 task->SelectTrigger(selectTrigger);
7cbb1928 31 task->MatchTrigger(matchTrig);
00612ffc 32 task->ApplyAccCut(applyAccCut);
7cbb1928 33 task->SetMinMomentum(minMomentum);
34 task->CorrectForSystematics(correctForSystematics);
35 task->SetExtrapMode(extrapMode);
36
37 // Add task to analysis manager
38 mgr->AddTask(task);
39
40 // Connect input container
41 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
42
43 // Define output file directory
44 TString outputfile = AliAnalysisManager::GetCommonFileName();
45 if ( outputfile.IsNull() ) {
46 Error("AddTaskMuonResolution", "Common output file is not defined!");
47 return NULL;
48 }
49 outputfile += ":MUON_Resolution";
50
51 // Create and connect output containers
52 AliAnalysisDataContainer *cout_histo1 = mgr->CreateContainer("Residuals", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
53 AliAnalysisDataContainer *cout_histo2 = mgr->CreateContainer("ResidualsVsP", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
54 AliAnalysisDataContainer *cout_histo3 = mgr->CreateContainer("LocalChi2", TObjArray::Class(), AliAnalysisManager::kParamContainer, outputfile);
55 AliAnalysisDataContainer *cout_histo4 = mgr->CreateContainer("ChamberRes", TObjArray::Class(), AliAnalysisManager::kParamContainer, outputfile);
56 AliAnalysisDataContainer *cout_histo5 = mgr->CreateContainer("TrackRes", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
57 mgr->ConnectOutput(task, 1, cout_histo1);
58 mgr->ConnectOutput(task, 2, cout_histo2);
59 mgr->ConnectOutput(task, 3, cout_histo3);
60 mgr->ConnectOutput(task, 4, cout_histo4);
61 mgr->ConnectOutput(task, 5, cout_histo5);
62
63 return task;
64}