]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/macros/AddTaskJetSpectrum2.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / macros / AddTaskJetSpectrum2.C
CommitLineData
a65a7e70 1Bool_t ConfigWithFlagsJetSpectrum2();
2AliAnalysisTaskJetSpectrum2 *jetspec = 0;
3
4AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec = "jets",const char* bGen = "jetsAODMC_UA104",const char* nonStdFile="",UInt_t filterMask = 32, Int_t iPhysicsSelectionFlag = AliVEvent::kMB,Int_t hjet=0, UInt_t iEventSelectionMask = 0,Int_t iCl = 0, Bool_t bRCSparseDimensions = kFALSE);
5
6
7AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2Delta(UInt_t filterMask = 32,Bool_t kUseAODMC = kFALSE,Int_t iPhysicsSelectionFlag = AliVEvent::kMB,Int_t hjet=0,UInt_t iFlag = 0xfffffff, UInt_t iEventSelectionMask = 0,char* back = ""){
8
9 TString cBack = back;
10
11 AliAnalysisTaskJetSpectrum2 *js = 0;
12 if(kUseAODMC){
13 if(iFlag&(1<<0)){ // UA104
14 js = AddTaskJetSpectrum2("jets","jetsAODMC_UA104",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
15 js = AddTaskJetSpectrum2("jets","jetsAODMC2_UA104",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
16 }
17 if(iFlag&(1<<1)){ // ANTIKT 04
18 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
19 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","jetsAODMC2_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
20 // cross check MC only background subtration
21 js = AddTaskJetSpectrum2("jetsAODMC2_FASTJET04","jetsAODMC_FASTJET04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
22 }
23 if(iFlag&(1<<2)){ // KT 04
24 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC_FASTKT04",cBack.Data(),filterMask,iPhysicsSelectionFlag,iEventSelectionMask);
25 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","jetsAODMC2_FASTKT04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
26 }
27 if(iFlag&(1<<3)){ // SISCONE 04
28 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC_SISCONE04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
29 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","jetsAODMC2_SISCONE04",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
30 }
31 // here can go other radii
32 }
33 else { // only the data ... no MC
34 if(iFlag&(1<<0)){ // UA104
35 js = AddTaskJetSpectrum2("jets","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask,1);
36 }
37 if(iFlag&(1<<1)){ // ANTIKT 04
38 js = AddTaskJetSpectrum2("jetsAOD_FASTJET04","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
39 }
40 if(iFlag&(1<<2)){ // KT 04
41 js = AddTaskJetSpectrum2("jetsAOD_FASTKT04","",cBack.Data(),filterMask,iPhysicsSelectionFlag,iEventSelectionMask);
42 }
43 if(iFlag&(1<<3)){ // SISCONE 04
44 js = AddTaskJetSpectrum2("jetsAOD_SISCONE04","",cBack.Data(),filterMask,iPhysicsSelectionFlag, iEventSelectionMask);
45 }
46 }
47 return js;
48}
49
50
51AliAnalysisTaskJetSpectrum2 *AddTaskJetSpectrum2(const char* bRec,const char* bGen ,const char* nonStdFile,UInt_t filterMask,Int_t iPhysicsSelectionFlag,Int_t hjet, UInt_t iEventSelectionMask,Int_t iCl, Bool_t bRCSparseDimensions)
52{
53 // Creates a jet fider task, configures it and adds it to the analysis manager.
54 // Get the pointer to the existing analysis manager via the static access method.
55 //==============================================================================
56 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
57 if (!mgr) {
58 ::Error("AddTaskJetSpectrum2", "No analysis manager to connect to.");
59 return NULL;
60 }
61
62 // Check the analysis type using the event handlers connected to the analysis manager.
63 //==============================================================================
64 if (!mgr->GetInputEventHandler()) {
65 ::Error("AddTaskJetSpectrum2", "This task requires an input event handler");
66 return NULL;
67 }
68
69 TString type = mgr->GetInputEventHandler()->GetDataType();
70 TString typeRec(bRec);
71 TString typeGen(bGen);
72 typeGen.ToUpper();
73 typeRec.ToUpper();
74
75
76 // Create the task and configure it.
77 //===========================================================================
78
79 jetspec = new AliAnalysisTaskJetSpectrum2(Form("JetSpectrum2%s-%s_%010d_Class%02d",bRec,bGen,iEventSelectionMask,iCl));
80 if(iCl)jetspec->SetEventClass(iCl);
81
82 // add the filter mask for non default jets branches
83 TString cAdd("");
84 cAdd += Form("_Filter%05d",filterMask);
85
86
87 jetspec->SetTRP(hjet);
88 jetspec->SetBranchGen(bGen);
89 // if(typeGen.Contains("JETSAOD")&&!typeGen.Contains("MC"))jetspec->SetBranchGen(Form("%s%s",bGen,cAdd.Data()));
90
91 jetspec->SetBranchRec(bRec);
92 // if(typeRec.Contains("JETSAOD")&&!typeRec.Contains("MC")) jetspec->SetBranchRec(Form("%s%s",bRec,cAdd.Data()));
93
94
95
96 if(type == "AOD"){
97 // Assume all jets are not yet produced
98 // jetspec->SetAODJetInput(kTRUE);
99 jetspec->SetAODTrackInput(kTRUE);
100 jetspec->SetAODMCInput(kTRUE);
101 }
102 else{
103 if(mgr->GetMCtruthEventHandler()){
104 jetspec-> SetAnalysisType(AliAnalysisTaskJetSpectrum2::kAnaMCESD);
105 }
106 }
107
108 if(typeRec.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD
109 jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);
110 }
111 else if (typeRec.Contains("AODMC2")){
112 jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);
113 }
114 else if (typeRec.Contains("AODMC")){
115 jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);
116 }
117 else { // catch akk use AOD
118 jetspec->SetTrackTypeRec(AliAnalysisTaskJetSpectrum2::kTrackAOD);
119 }
120
121 if(typeGen.Contains("AODMC2b")){// work down from the top AODMC2b -> AODMC2 -> AODMC -> AOD
122 jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCChargedAcceptance);
123 }
124 else if (typeGen.Contains("AODMC2")){
125 jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCCharged);
126 }
127 else if (typeGen.Contains("AODMC")){
128 jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAODMCAll);
129 }
130 else if (typeGen.Length()>0){ // catch all use AOD
131 jetspec->SetTrackTypeGen(AliAnalysisTaskJetSpectrum2::kTrackAOD);
132 }
133
134 if(iEventSelectionMask)jetspec->SetEventSelectionMask(iEventSelectionMask);
135
136 // jetspec->SetDebugLevel(10);
137 if(!ConfigWithFlagsJetSpectrum2())return 0;
138
139 jetspec->SetUseGlobalSelection(kTRUE);
140 jetspec->SetMinJetPt(-1.);//keep all jets
141
142 if(bRCSparseDimensions) {
143 jetspec->SetNRPBins(100);
144 jetspec->SetNMultBins(1);
145 jetspec->SetNPtLeadingBins(1);
146 }
147
148 // to fetch the AOD from the AOD extension ouput
149 if(strlen(nonStdFile))jetspec->SetNonStdFile(nonStdFile);
150 mgr->AddTask(jetspec);
151
152 // Create ONLY the output containers for the data produced by the task.
153 // Get and connect other common input/output containers via the manager as below
154 //==============================================================================
155 AliAnalysisDataContainer *coutput1_Spec = ;
156 if(hjet>0)
157 coutput1_Spec = mgr->CreateContainer(Form("pwgje_spec2_%s_%s_%010d_Class%02d_HJ%d",bRec,bGen,iEventSelectionMask,iCl,hjet),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWGJE_spec2_%s_%s_%010d_Class%02d_HJ%d",AliAnalysisManager::GetCommonFileName(),bRec,bGen,iEventSelectionMask,iCl,hjet));
158 else
159 coutput1_Spec = mgr->CreateContainer(Form("pwgje_spec2_%s_%s_%010d_Class%02d",bRec,bGen,iEventSelectionMask,iCl),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:PWGJE_spec2_%s_%s_%010d_Class%02d",AliAnalysisManager::GetCommonFileName(),bRec,bGen,iEventSelectionMask,iCl));
160
161 mgr->ConnectInput (jetspec, 0, mgr->GetCommonInputContainer());
162 mgr->ConnectOutput (jetspec, 0, mgr->GetCommonOutputContainer());
163 mgr->ConnectOutput (jetspec, 1, coutput1_Spec );
164
165 return jetspec;
166}
167
168void SetAODInput(AliAnalysisTaskJetSpectrum2 *taskJetSpectrum){
169 taskJetSpectrum->SetAODJetInput(kTRUE);
170 taskJetSpectrum->SetAODTrackInput(kTRUE);
171 // taskJetSpectrum->SetUseGlobalSelection(kFALSE);
172}
173
174Bool_t ConfigWithFlagsJetSpectrum2(){
175
176 Bool_t bGood1 = kFALSE;
177 Bool_t bGood2 = kFALSE;
178
179
180 Int_t nTrigger = AliAnalysisManager::GetGlobalInt("kNTrigger",bGood1);
181
182 if(bGood1){
183 jetspec->SetNTrigger(nTrigger);
184 for(int it = 0;it < nTrigger;it++){
185 jetspec->SetTrigger(it,
186 AliAnalysisManager::GetGlobalInt(Form("kTriggerBit%d",it),bGood1),
187 AliAnalysisManager::GetGlobalStr(Form("kTriggerName%d",it),bGood2));
188 }
189 }
190 else {
191 Printf("%s%d: kNTrigger not defined",(char*)__FILE__,__LINE__); return kFALSE;
192 }
193
194
195 Int_t nAcceptance = AliAnalysisManager::GetGlobalInt("kNAcceptanceSpec",bGood1);
196
197 if(bGood1){
198 jetspec->SetNAcceptance(nAcceptance);
199 for(int ia = 0;ia < nAcceptance;ia++){
200 jetspec->SetAcceptance(ia,
201 AliAnalysisManager::GetGlobalDbl(Form("kAcceptancePhiMinSpec%d",ia),bGood1),
202 AliAnalysisManager::GetGlobalDbl(Form("kAcceptancePhiMaxSpec%d",ia),bGood1),
203 AliAnalysisManager::GetGlobalDbl(Form("kAcceptanceEtaMinSpec%d",ia),bGood1),
204 AliAnalysisManager::GetGlobalDbl(Form("kAcceptanceEtaMaxSpec%d",ia),bGood1));
205 }
206 }
207 else {
208 Printf("%s%d: kNAcceptance not defined",(char*)__FILE__,__LINE__);
209 }
210
211
212 AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag",bGood1);if(bGood1){
213 jetspec->SelectCollisionCandidates(AliAnalysisManager::GetGlobalInt("kPhysicsSelectionFlag",bGood1));
214 }
215 else {Printf("%s%d: kPhysicsSelectionFlag not defined",(char*)__FILE__,__LINE__); return kFALSE; }
216
217
218 AliAnalysisManager::GetGlobalStr("kDeltaAODJetName",bGood1);if(bGood1)jetspec->SetNonStdFile(AliAnalysisManager::GetGlobalStr("kDeltaAODJetName",bGood1));
219 else {Printf("%s%d: kDeltaAODJetName not defined",(char*)__FILE__,__LINE__); return kFALSE; }
220
221 AliAnalysisManager::GetGlobalDbl("kTrackEtaWindow",bGood1);if(bGood1)jetspec->SetTrackEtaWindow(AliAnalysisManager::GetGlobalDbl("kTrackEtaWindow",bGood1));
222 else {Printf("%s%d: kTrackEtaWindow not defined",(char*)__FILE__,__LINE__); return kFALSE; }
223
224 AliAnalysisManager::GetGlobalDbl("kJetEtaWindow",bGood1);if(bGood1)jetspec->SetJetEtaWindow(AliAnalysisManager::GetGlobalDbl("kJetEtaWindow",bGood1));
225 else {Printf("%s%d: kJetEtaWindow not defined",(char*)__FILE__,__LINE__); return kFALSE; }
226
227
228 AliAnalysisManager::GetGlobalInt("kHighPtFilterMask",bGood1);if(bGood1)jetspec->SetFilterMask(AliAnalysisManager::GetGlobalInt("kHighPtFilterMask",bGood1));
229 else {Printf("%s%d: kHighPtFilterMask not defined",(char*)__FILE__,__LINE__); return kFALSE; }
230
231 return kTRUE;
232
233
234}