1 Bool_t kSimulation = kFALSE;
2 TString fDataType = "AOD";
4 TString kCollisions = "PbPb";
5 TString fTrigger = "EMCGA";
6 Bool_t kEventTriggerAtTaskSE = kFALSE;
9 TString fAnaMesonType = "Pi0";
10 Bool_t kAnaPhotonCorr = kTRUE;
11 Bool_t kAnaMesonCorr = kFALSE;
12 Bool_t kTimeCut = kFALSE;
13 Bool_t kDistBC = kTRUE;
14 Bool_t kRecalClus = kTRUE;
15 Bool_t kRecalClusE = kTRUE;
16 Bool_t kRecalClusPos = kTRUE;
17 Bool_t kRecalClusSSA = kTRUE;
18 Bool_t kNonLin = kTRUE;
20 Float_t fDPhiCut = 0.03;
21 Float_t fDEtaCut = 0.025;
22 Bool_t kExotic = kTRUE;
23 Float_t fExoticFraction = 0.95;///for pp:0.97, for PbPb:0.95
24 Bool_t kFidul = kFALSE;
25 Bool_t kReClusterier = kFALSE;
27 Float_t fMinCell = 0.1;
28 Float_t fMinSeed = 0.3;
30 AliAnalysisTaskEMCALCaloTrackCorr *AddTaskEmcalCaloTrackCorr(
31 const TString data = "AOD",
32 const TString coll = "pp",
33 const Bool_t simulation = kFALSE,
34 const TString trigger = "MB",
35 const Bool_t triggerSE = kFALSE,
36 const Float_t minCen = -1,
37 const Float_t maxCen = -1,
38 const Bool_t anaPhotonCorr = kTRUE,
39 const Bool_t anaMesonCorr = kFALSE,
40 const TString anaMesonType = "Pi0",
41 const Bool_t timecut = kFALSE,
42 const Bool_t tm = kFALSE,
43 const Float_t dphicut = 0.03,
44 const Float_t detacut = 0.025,
45 const Bool_t exotic = kTRUE,
46 const Float_t exoticFraction = 0.95,
47 const Bool_t reClusterizer = kFALSE,
48 const TString name = "V2",
49 const Float_t minCell = 0.1,
50 const Float_t minSeed = 0.3)
54 kSimulation = simulation;
56 kEventTriggerAtTaskSE = triggerSE;
59 fAnaMesonType = anaMesonType;
60 kAnaPhotonCorr = anaPhotonCorr;
61 kAnaMesonCorr = anaMesonCorr;
67 fExoticFraction = exoticFraction;
68 kReClusterier = reClusterizer;
73 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
76 ::Error("AddTask", "No analysis manager to connect to.");
80 if (!mgr->GetInputEventHandler())
82 ::Error("AddTaskHadCorr", "This task requires an input event handler");
86 if(fDataType == "ESD"){
87 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
88 AliESDtrackCuts * esdTrackCuts = CreateTrackCutsPWGJE(10041004);
89 esdTrackCuts->SetEtaRange(-0.8,0.8);
92 AliAnalysisTaskEMCALCaloTrackCorr *task = new AliAnalysisTaskEMCALCaloTrackCorr("NeutralCorr");
93 task->SetMC(kSimulation);
94 task->SetDataType(fDataType);
95 if(fDataType == "ESD")task->SetTrackCuts(esdTrackCuts);
96 if(fDataType == "AOD") task->SwitchOnAODHybridTrackSelection();
97 task->SetTrackMatchedDPhiCut(fDPhiCut);
98 task->SetTrackMatchedDEtaCut(fDEtaCut);
99 task->SetLargeCorrTrigger(5, 50);
101 if(kAnaPhotonCorr && !kAnaMesonCorr){
102 task->SwitchOnAnaPhotonCorr();
103 task->SwitchOffAnaMesonCorr();
104 task->SwitchOffFillMesonAOD();
106 else if(!kAnaPhotonCorr && kAnaMesonCorr){
107 task->SwitchOffAnaPhotonCorr();
108 task->SwitchOnAnaMesonCorr();
109 task->SetAnaMesonType(fAnaMesonType);
110 task->SwitchOnFillMesonAOD();
113 task->SwitchOffAnaPhotonCorr();
114 task->SwitchOffAnaMesonCorr();
117 task->SetCentralityClass("V0M");
118 task->SetCentralityBin(fMinCen,fMaxCen);
119 task->SetEventPlaneMethod("V0");
120 task->SetEMCALGeometryName("EMCAL_COMPLETEV1");
123 if(kCollisions =="pp") task->SwitchOnTrackMultBins();
124 if(kCollisions =="PbPb") task->SwitchOffTrackMultBins();
126 task->SetDeltaPhiCutRange(TMath::Pi()/2., 3*TMath::Pi()/2.);
127 task->SetNTriggPtBins(2);
128 Float_t fTriggerPtBins[3]={8,15,25};
129 task->SetTriggerBins(fTriggerPtBins);
130 task->SetNAssocPtBins(5);
131 Float_t fAssociatedPtBins[6]={0.5, 1, 2, 4, 6, 15};
132 task->SetAssociatedBins(fAssociatedPtBins);
134 ConfigureTrigger(task);
136 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
138 if(kAnaPhotonCorr && !kAnaMesonCorr) {
139 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("InclusivePhotonCen%.1f_%.1f",fMinCen, fMaxCen), TList::Class(),
140 AliAnalysisManager::kOutputContainer, "AnalysisResults.root");
142 else if (!kAnaPhotonCorr && kAnaMesonCorr){
143 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("Inclusive%sCen%.1f_%.1f", fAnaMesonType.Data(),fMinCen, fMaxCen), TList::Class(),
144 AliAnalysisManager::kOutputContainer, "AnalysisResults.root");
147 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("InclusiveNoCorrCen%.1f_%.1f", fMinCen, fMaxCen), TList::Class(),
148 AliAnalysisManager::kOutputContainer, "AnalysisResults.root");
150 mgr->ConnectInput(task, 0, cinput);
151 mgr->ConnectOutput(task, 1, coutputpt1);
156 void ConfigureTrigger(AliAnalysisTaskEMCALCaloTrackCorr *task1)
158 if(!kEventTriggerAtTaskSE){
159 task1->SwitchOffEventTriggerAtSE();
160 if(fTrigger=="EMC7"){
161 printf("CaloTrackCorr trigger EMC7\n");
162 task1->SetEventTriggerMask(AliVEvent::kEMC7);
164 else if (fTrigger=="INT7"){
165 printf("CaloTrackCorr trigger INT7\n");
166 task1->SetEventTriggerMask(AliVEvent::kINT7);
168 else if(fTrigger=="EMC1"){
169 printf("CaloTrackCorr trigger EMC1\n");
170 task1->SetEventTriggerMask(AliVEvent::kEMC1);
172 else if(fTrigger=="MB"){
173 printf("CaloTrackCorr trigger MB\n");
174 task1->SetEventTriggerMask(AliVEvent::kMB);
176 else if(fTrigger=="AnyINT"){
177 printf("CaloTrackCorr trigger AnyINT\n");
178 task1->SetEventTriggerMask(AliVEvent::kAnyINT);
180 else if(fTrigger=="EMCEGA"){
181 printf("CaloTrackCorr trigger EMC Gamma\n");
182 task1->SetEventTriggerMask(AliVEvent::kEMCEGA);
184 else if(fTrigger=="EMCEJE"){
185 printf("CaloTrackCorr trigger EMC Jet\n");
186 task1->SetEventTriggerMask(AliVEvent::kEMCEJE);
188 else if(fTrigger=="Central"){
189 printf("CaloTrackCorr trigger Central\n");
190 task1->SetEventTriggerMask(AliVEvent::kCentral);
192 else if(fTrigger=="SemiCentral"){
193 printf("CaloTrackCorr trigger SemiCentral\n");
194 task1->SetEventTriggerMask(AliVEvent::kSemiCentral);
196 else if(fTrigger=="SemiOrCentral"){
197 printf("CaloTrackCorr trigger SemiCentral Or Central\n");
198 task->SetEventTriggerMask(AliVEvent::kSemiCentral | AliVEvent::kCentral);
201 task1->SetEventTriggerMask(AliVEvent::kAny);
206 task1->SwitchOnEventTriggerAtSE();
207 if(fTrigger=="EMC7"){
208 printf("CaloTrackCorr trigger EMC7\n");
209 task1->SelectCollisionCandidates(AliVEvent::kEMC7);
211 else if (fTrigger=="INT7"){
212 printf("CaloTrackCorr trigger INT7\n");
213 task1->SelectCollisionCandidates(AliVEvent::kINT7);
215 else if(fTrigger=="EMC1"){
216 printf("CaloTrackCorr trigger EMC1\n");
217 task1->SelectCollisionCandidates(AliVEvent::kEMC1);
219 else if(fTrigger=="MB"){
220 printf("CaloTrackCorr trigger MB\n");
221 task1->SelectCollisionCandidates(AliVEvent::kMB);
223 else if(fTrigger=="AnyINT"){
224 printf("CaloTrackCorr trigger AnyINT\n");
225 task1->SelectCollisionCandidates(AliVEvent::kAnyINT);
227 else if(fTrigger=="EMCEGA"){
228 printf("CaloTrackCorr trigger EMC Gamma\n");
229 task1->SelectCollisionCandidates(AliVEvent::kEMCEGA);
231 else if(fTrigger=="EMCEJE"){
232 printf("CaloTrackCorr trigger EMC Jet\n");
233 task1->SelectCollisionCandidates(AliVEvent::kEMCEJE);
235 else if(fTrigger=="Central"){
236 printf("CaloTrackCorr trigger Central\n");
237 task1->SelectCollisionCandidates(AliVEvent::kCentral);
239 else if(fTrigger=="SemiCentral"){
240 printf("CaloTrackCorr trigger SemiCentral\n");
241 task1->SelectCollisionCandidates(AliVEvent::kSemiCentral);
243 else if(fTrigger=="SemiOrCentral"){
244 printf("CaloTrackCorr trigger SemiCentral Or Central\n");
245 task->SelectCollisionCandidates(AliVEvent::kSemiCentral | AliVEvent::kCentral);
248 task1->SelectCollisionCandidates(AliVEvent::kAny);