]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/muondep/AddTaskMuonResolution.C
New task to mesure the spectrometer resolution (Philippe P.)
[u/mrichter/AliRoot.git] / PWG3 / muondep / AddTaskMuonResolution.C
CommitLineData
7cbb1928 1AliAnalysisTaskMuonResolution *AddTaskMuonResolution(Bool_t selectPhysics = kFALSE, Bool_t matchTrig = kFALSE, Double_t minMomentum = 0.,
2 Bool_t correctForSystematics = kTRUE, Int_t extrapMode = 1)
3{
4 /// Add AliAnalysisTaskMuonResolution 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("AddTaskMuonResolution","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("AddTaskMuonResolution", "ESD input handler needed!");
18 return NULL;
19 }
20
21 // Create and configure task
22 AliAnalysisTaskMuonResolution *task = new AliAnalysisTaskMuonResolution("MuonResolution");
23 if (!task) {
24 Error("AddTaskMuonResolution", "Muon resolution task cannot be created!");
25 return NULL;
26 }
27 task->SelectPhysics(selectPhysics);
28 task->MatchTrigger(matchTrig);
29 task->SetMinMomentum(minMomentum);
30 task->CorrectForSystematics(correctForSystematics);
31 task->SetExtrapMode(extrapMode);
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("AddTaskMuonResolution", "Common output file is not defined!");
43 return NULL;
44 }
45 outputfile += ":MUON_Resolution";
46
47 // Create and connect output containers
48 AliAnalysisDataContainer *cout_histo1 = mgr->CreateContainer("Residuals", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
49 AliAnalysisDataContainer *cout_histo2 = mgr->CreateContainer("ResidualsVsP", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
50 AliAnalysisDataContainer *cout_histo3 = mgr->CreateContainer("LocalChi2", TObjArray::Class(), AliAnalysisManager::kParamContainer, outputfile);
51 AliAnalysisDataContainer *cout_histo4 = mgr->CreateContainer("ChamberRes", TObjArray::Class(), AliAnalysisManager::kParamContainer, outputfile);
52 AliAnalysisDataContainer *cout_histo5 = mgr->CreateContainer("TrackRes", TObjArray::Class(), AliAnalysisManager::kOutputContainer, outputfile);
53 mgr->ConnectOutput(task, 1, cout_histo1);
54 mgr->ConnectOutput(task, 2, cout_histo2);
55 mgr->ConnectOutput(task, 3, cout_histo3);
56 mgr->ConnectOutput(task, 4, cout_histo4);
57 mgr->ConnectOutput(task, 5, cout_histo5);
58
59 return task;
60}