1 AliAnalysisTaskChargedJetsPA* AddTaskChargedJetsPA(
2 Double_t jetRadius = 0.4,
3 Int_t trigger = AliVEvent::kINT7,
6 Double_t randomConeR = 0.4,
7 Double_t trackBgrdConeR = 0.6,
8 const char* containerSuffix = "",
9 const char* usedTracks = "PicoTracks",
10 const char* centralityType = "V0A",
11 Double_t trackEtaWindow = 0.9,
12 Double_t minJetPt = 5.0, // signal jet min pt
13 Double_t minBackgroundJetPt = 0.15, // background jet min pt
14 Double_t dijetLeadingMinPt = 10.0,
15 Double_t dijetMaxAngleDev = 10.0,
16 Int_t numberOfPtHardBins = 0,
17 const char* externalMacro = NULL,
18 Bool_t useVertexCut = kTRUE,
19 Bool_t usePileUpCut = kTRUE,
20 Bool_t isEMCalTrain = kFALSE,
21 Bool_t calculateExternalRho = kFALSE,
22 Bool_t analyzeDeprecatedBackgrounds = kTRUE
25 // #### Detect the demanded trigger with its readable name
26 TString triggerName(Form("Trigger_%i", trigger));
27 if (trigger == AliVEvent::kAnyINT)
28 triggerName = "kAnyINT";
29 else if (trigger == AliVEvent::kAny)
31 else if(trigger == AliVEvent::kINT7)
32 triggerName = "kINT7";
33 else if(trigger == AliVEvent::kMB)
35 else if(trigger == AliVEvent::kEMC7)
36 triggerName = "kEMC7";
37 else if(trigger == AliVEvent::kEMCEJE)
38 triggerName = "kEMCEJE";
39 else if(trigger == AliVEvent::kEMCEGA)
40 triggerName = "kEMCEGA";
42 // #### Define manager and data container names
43 AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
45 ::Error("AddTaskChargedJetsPA", "No analysis manager to connect to.");
49 TString stringPtHard("");
50 TString containerNameSuffix("");
53 stringPtHard = Form("_PtHard_%d",ptHardBin);
54 if (strcmp(containerSuffix,""))
55 containerNameSuffix = Form("_%s", containerSuffix);
57 TString myContName("");
59 myContName = Form("AnalysisR0%2.0f_%s_MC%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data());
61 myContName = Form("AnalysisR0%2.0f_%s%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data());
63 // #### Add necessary jet finder tasks
64 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
65 AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300); // anti-kt
66 AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,jetRadius,1,0.150,0.300); // kt
70 jetFinderTask->SetMinJetArea(0.0);
71 jetFinderTaskKT->SetMinJetArea(0.0);
72 jetFinderTask->SetMinJetPt(0.15);
73 jetFinderTaskKT->SetMinJetPt(0.15);
74 jetFinderTask->SetGhostArea(0.001);
75 jetFinderTaskKT->SetGhostArea(0.001);
78 if(minBackgroundJetPt == -1.0)
80 if(analyzeDeprecatedBackgrounds)
81 minBackgroundJetPt = 0.0;
83 minBackgroundJetPt = 0.15;
87 jetFinderTaskKT->SetMinJetPt(minBackgroundJetPt);
89 // #### Define extern rho task
90 if(calculateExternalRho)
92 TString myRhoName("");
94 myRhoName = Form("RhoR0%2.0f_%s_MC%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
96 myRhoName = Form("RhoR0%2.0f_%s%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
98 contRhoHistos = manager->CreateContainer(myRhoName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
99 AliAnalysisTaskRhoSparse *rhotask = new AliAnalysisTaskRhoSparse(myRhoName.Data(), kTRUE);
100 rhotask->SetAnaType(AliAnalysisTaskEmcal::kTPC);
101 rhotask->SetJetsName(jetFinderTaskKT->GetName());
102 rhotask->SetSigJetsName(jetFinderTask->GetName());
103 rhotask->SetTracksName(usedTracks);
104 rhotask->SetRhoName(myRhoName.Data());
105 rhotask->SetJetAreaCut(0);
106 rhotask->SetJetPtCut(0.150);
107 rhotask->SetJetRadius(jetRadius);
108 rhotask->SetRhoCMS(kTRUE);
109 rhotask->SelectCollisionCandidates(trigger);
110 manager->AddTask(rhotask);
111 manager->ConnectInput(rhotask, 0, manager->GetCommonInputContainer());
112 manager->ConnectOutput(rhotask, 1, contRhoHistos);
116 // #### Define analysis task
117 AliAnalysisTaskChargedJetsPA *task = NULL;
118 contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
119 task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, jetFinderTask->GetName(),jetFinderTaskKT->GetName());
121 // #### Task preferences
122 task->SetAcceptanceWindows(trackEtaWindow, jetRadius, jetRadius);
123 task->SetAnalyzeQA(kTRUE);
124 task->SetAnalyzeBackground(kTRUE);
125 task->SetAnalyzeDeprecatedBackgrounds(analyzeDeprecatedBackgrounds);
126 task->SetUsePileUpCut(usePileUpCut);
127 task->SetUseVertexCut(useVertexCut);
128 task->SetSignalJetMinPt(minJetPt);
129 task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi());
130 task->SetDijetLeadingMinPt(dijetLeadingMinPt);
131 task->SetDijetMaxAngleDeviation(dijetMaxAngleDev);
132 task->SetRandConeRadius(randomConeR);
133 task->SetBackgroundJetMinPt(minBackgroundJetPt);
134 task->SetTRBackgroundConeRadius(trackBgrdConeR);
135 task->SelectCollisionCandidates(trigger);
136 task->SetCentralityType(centralityType);
137 task->SetUsePtHardBin(ptHardBin);
138 if(calculateExternalRho)
139 task->SetExternalRhoTaskName(myRhoName.Data());
141 if(numberOfPtHardBins)
142 task->SetNumberOfPtHardBins(numberOfPtHardBins);
144 // #### Add analysis task
145 manager->AddTask(task);
146 manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
147 manager->ConnectOutput(task, 1, contHistos);
150 RequestMemory(task,200*1024);
152 // #### Do some nasty piggybacking on demand
154 gROOT->Macro(externalMacro);