]>
Commit | Line | Data |
---|---|---|
a65a7e70 | 1 | Bool_t ConfigWithFlagsJetSpectrum2(); |
2 | AliAnalysisTaskJetSpectrum2 *jetspec = 0; | |
3 | ||
4 | AliAnalysisTaskJetSpectrum2 *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 | ||
7 | AliAnalysisTaskJetSpectrum2 *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 | ||
51 | AliAnalysisTaskJetSpectrum2 *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 | ||
168 | void SetAODInput(AliAnalysisTaskJetSpectrum2 *taskJetSpectrum){ | |
169 | taskJetSpectrum->SetAODJetInput(kTRUE); | |
170 | taskJetSpectrum->SetAODTrackInput(kTRUE); | |
171 | // taskJetSpectrum->SetUseGlobalSelection(kFALSE); | |
172 | } | |
173 | ||
174 | Bool_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 | } |