]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/PilotTrain/AddTaskQAsym.C
update to AliTRDpwg1Helper class by Markus
[u/mrichter/AliRoot.git] / PWG1 / PilotTrain / AddTaskQAsym.C
CommitLineData
98a5f582 1AliAnalysisTaskQASym * AddTaskQAsym(Int_t runNumber)
2
3{
4 // Creates a QA task exploiting simple symmetries phi, eta +/-, charge ...
5
6 // Get the pointer to the existing analysis manager via the static access method.
7 //==============================================================================
8 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
9 if (!mgr) {
10 ::Error("AddTaskQAsym", "No analysis manager to connect to.");
11 return NULL;
12 }
13
14 // Check the analysis type using the event handlers connected to the analysis manager.
15 //==============================================================================
16 if (!mgr->GetInputEventHandler()) {
17 ::Error("AddTasQAsym", "This task requires an input event handler");
18 return NULL;
19 }
20 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
21
22 // Configure analysis
23 //===========================================================================
24
25
26 //Task for global tracks
27 AliAnalysisTaskQASym *task0 = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_Global");
28 task0->SetTrackType(0);
1c91c6a4 29 task0->SelectCollisionCandidates(); // default setting: kMB = min bias trigger
da6b678b 30 task0->SetNChargedRange(30,50); // comparison of different trigger settings
1c91c6a4 31 //Task for global tracks (high multiplicity)
32 AliAnalysisTaskQASym *task0HM = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_Global_HighMult");
33 task0HM->SetTrackType(0);
34 task0HM->SelectCollisionCandidates(AliVEvent::kHighMult);
da6b678b 35 task0HM->SetNChargedRange(30,50);
98a5f582 36 //Task for ITS tracks
37 AliAnalysisTaskQASym *task1 = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_ITS");
38 task1->SetTrackType(1);
b676e981 39 task1->SetStandAloneTrack(kFALSE);
98a5f582 40 task1->SelectCollisionCandidates();
da6b678b 41 task1->SetNChargedRange(30,50);
b676e981 42 //Task for ITS tracks SA
43 AliAnalysisTaskQASym *task1sa = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_ITS_SA");
44 task1sa->SetTrackType(1);
45 task1sa->SetStandAloneTrack(kTRUE);
46 task1sa->SelectCollisionCandidates();
da6b678b 47 task1sa->SetNChargedRange(30,50);
98a5f582 48 //Task for TPC tracks
49 AliAnalysisTaskQASym *task2 = new AliAnalysisTaskQASym("AliAnalysisTaskQASym_TPC");
50 task2->SetTrackType(2);
51 task2->SelectCollisionCandidates();
da6b678b 52 task2->SetNChargedRange(30,50);
98a5f582 53
54 //cuts for global tracks
55 AliESDtrackCuts* esdTrackCutsL0 = new AliESDtrackCuts("AliESDtrackCuts0","Global");
56 esdTrackCutsL0->SetMinNClustersTPC(70);
57 esdTrackCutsL0->SetRequireTPCRefit(kTRUE);
1c91c6a4 58 esdTrackCutsL0->SetRequireITSRefit(kTRUE);
98a5f582 59 esdTrackCutsL0->SetMaxDCAToVertexXY(3.);
60 esdTrackCutsL0->SetMaxDCAToVertexZ(3.);
61 esdTrackCutsL0->SetAcceptKinkDaughters(kFALSE);
b676e981 62
63 //cuts for ITS tracks
98a5f582 64 AliESDtrackCuts* esdTrackCutsL1 = new AliESDtrackCuts("AliESDtrackCuts1","ITS");
65 esdTrackCutsL1->SetMaxDCAToVertexXY(3.);
66 esdTrackCutsL1->SetMaxDCAToVertexZ(3.);
67 esdTrackCutsL1->SetAcceptKinkDaughters(kFALSE);
68 esdTrackCutsL1->SetRequireITSRefit(kTRUE);
14d0a855 69 esdTrackCutsL1->SetRequireITSStandAlone(kTRUE, kTRUE); //2nd option: reject pure SA tracks
b676e981 70
71 //cuts for ITS tracks SA
72 AliESDtrackCuts* esdTrackCutsL1sa = new AliESDtrackCuts("AliESDtrackCuts1","ITS_SA");
73 esdTrackCutsL1sa->SetMaxDCAToVertexXY(3.);
74 esdTrackCutsL1sa->SetMaxDCAToVertexZ(3.);
75 esdTrackCutsL1sa->SetAcceptKinkDaughters(kFALSE);
76 esdTrackCutsL1sa->SetRequireITSRefit(kTRUE);
77 // esdTrackCutsL1sa->SetRequireITSStandAlone(kTRUE, kTRUE); //cut on SA tracks in AliAnalysisTaskQASym
98a5f582 78
79 //cuts for TPC tracks
80 AliESDtrackCuts* esdTrackCutsL2 = new AliESDtrackCuts("AliESDtrackCuts2","TPC");
81 esdTrackCutsL2->SetRequireTPCRefit(kFALSE);
82 esdTrackCutsL2->SetAcceptKinkDaughters(kFALSE);
83 //jacek's cuts:
84 esdTrackCutsL2->SetMinNClustersTPC(70);
85 // cut on max ncl=160 in Task
86 esdTrackCutsL2->SetMaxDCAToVertexXY(3.);
87 esdTrackCutsL2->SetMaxDCAToVertexZ(3.);
88 esdTrackCutsL2->SetMaxChi2PerClusterTPC(3.999);
89 //cut minChi=0 in task
90 //esdTrackCutsL2->SetPRange(0.15,16); // not needed for QA
91 //esdTrackCutsL2->SetEtaRange(-0.8, 0.7999); // not needed for QA
92
93
94 task0->SetCuts(esdTrackCutsL0);
1c91c6a4 95 task0HM->SetCuts(esdTrackCutsL0);
98a5f582 96 task1->SetCuts(esdTrackCutsL1);
b676e981 97 task1sa->SetCuts(esdTrackCutsL1sa);
98a5f582 98 task2->SetCuts(esdTrackCutsL2);
99
100 mgr->AddTask(task0);
1c91c6a4 101 mgr->AddTask(task0HM);
98a5f582 102 mgr->AddTask(task1);
b676e981 103 mgr->AddTask(task1sa);
98a5f582 104 mgr->AddTask(task2);
105
1c91c6a4 106 AliAnalysisDataContainer *cout0 = 0;
107 AliAnalysisDataContainer *cout0HM = 0;
108 AliAnalysisDataContainer *cout1 = 0;
b676e981 109 AliAnalysisDataContainer *cout1sa = 0;
1c91c6a4 110 AliAnalysisDataContainer *cout2 = 0;
98a5f582 111
112 if(runNumber>0){
113 cout0 = mgr->CreateContainer("QAsymHists_Global",TList::Class(),
114 AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
1c91c6a4 115 cout0HM = mgr->CreateContainer("QAsymHists_Global_HighMult",TList::Class(),
116 AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
98a5f582 117 cout1 = mgr->CreateContainer("QAsymHists_ITS",TList::Class(),
118 AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
b676e981 119 cout1sa = mgr->CreateContainer("QAsymHists_ITS_SA",TList::Class(),
120 AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
98a5f582 121 cout2 = mgr->CreateContainer("QAsymHists_TPC",TList::Class(),
122 AliAnalysisManager::kOutputContainer, Form("run%d.root",runNumber));
123 }
124
125 else{
126 cout0 = mgr->CreateContainer("QAsymHists_Global",TList::Class(),
127 AliAnalysisManager::kOutputContainer,
128 Form("%s:PWG1_QAsymHists",AliAnalysisManager::GetCommonFileName()));
1c91c6a4 129 cout0HM = mgr->CreateContainer("QAsymHists_Global_HighMult",TList::Class(),
130 AliAnalysisManager::kOutputContainer,
131 Form("%s:PWG1_QAsymHists",AliAnalysisManager::GetCommonFileName()));
98a5f582 132 cout1 = mgr->CreateContainer("QAsymHists_ITS",TList::Class(),
133 AliAnalysisManager::kOutputContainer,
134 Form("%s:PWG1_QAsymHists",AliAnalysisManager::GetCommonFileName()));
b676e981 135 cout1sa = mgr->CreateContainer("QAsymHists_ITS_SA",TList::Class(),
136 AliAnalysisManager::kOutputContainer,
137 Form("%s:PWG1_QAsymHists",AliAnalysisManager::GetCommonFileName()));
98a5f582 138 cout2 = mgr->CreateContainer("QAsymHists_TPC",TList::Class(),
139 AliAnalysisManager::kOutputContainer,
140 Form("%s:PWG1_QAsymHists",AliAnalysisManager::GetCommonFileName()));
141 }
142
143
1c91c6a4 144 mgr->ConnectInput (task0, 0, mgr->GetCommonInputContainer());
145 mgr->ConnectInput (task0HM, 0, mgr->GetCommonInputContainer());
146 mgr->ConnectInput (task1, 0, mgr->GetCommonInputContainer());
b676e981 147 mgr->ConnectInput (task1sa, 0, mgr->GetCommonInputContainer());
1c91c6a4 148 mgr->ConnectInput (task2, 0, mgr->GetCommonInputContainer());
98a5f582 149
1c91c6a4 150 mgr->ConnectOutput (task0, 1, cout0);
151 mgr->ConnectOutput (task0HM, 1, cout0HM);
152 mgr->ConnectOutput (task1, 1, cout1);
b676e981 153 mgr->ConnectOutput (task1sa, 1, cout1sa);
1c91c6a4 154 mgr->ConnectOutput (task2, 1, cout2);
98a5f582 155
156 return task0;
157
158}
159
160