]>
Commit | Line | Data |
---|---|---|
8628b70c | 1 | AliAnalysisTaskChargedJetsPA* AddTaskChargedJetsPA( |
2 | Double_t jetRadius = 0.4, | |
3 | Int_t trigger = AliVEvent::kINT7, | |
4 | Bool_t isMC = kFALSE, | |
b95d0245 | 5 | Int_t ptHardBin = -1, |
8628b70c | 6 | Double_t randomConeR = 0.4, |
7 | Double_t trackBgrdConeR = 0.6, | |
c2b0976c | 8 | const char* containerSuffix = "", |
8628b70c | 9 | const char* usedTracks = "PicoTracks", |
12eb4ac1 | 10 | const char* centralityType = "V0A", |
8628b70c | 11 | Double_t trackEtaWindow = 0.9, |
8628b70c | 12 | Double_t minJetPt = 5.0, // signal jet min pt |
c154ba90 | 13 | Double_t minBackgroundJetPt = 0.0, // background jet min pt |
8628b70c | 14 | Double_t dijetLeadingMinPt = 10.0, |
15 | Double_t dijetMaxAngleDev = 10.0, | |
12eb4ac1 | 16 | Int_t numberOfPtHardBins = 0, |
b95d0245 | 17 | const char* externalMacro = NULL, |
06b41974 | 18 | Bool_t useVertexCut = kTRUE, |
0cb49d99 | 19 | Bool_t usePileUpCut = kTRUE, |
06b41974 | 20 | Bool_t isEMCalTrain = kFALSE, |
0cb49d99 | 21 | Bool_t calculateExternalRho = kFALSE, |
bf8f2a1c | 22 | Bool_t analyzeDeprecatedBackgrounds = kTRUE |
8628b70c | 23 | ) |
24 | { | |
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) | |
30 | triggerName = "kAny"; | |
31 | else if(trigger == AliVEvent::kINT7) | |
32 | triggerName = "kINT7"; | |
efb9b161 | 33 | else if(trigger == AliVEvent::kMB) |
34 | triggerName = "kMB"; | |
8628b70c | 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"; | |
41 | ||
42 | // #### Define manager and data container names | |
8628b70c | 43 | AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager(); |
44 | if (!manager) { | |
45 | ::Error("AddTaskChargedJetsPA", "No analysis manager to connect to."); | |
46 | return NULL; | |
47 | } | |
b95d0245 | 48 | |
49 | TString stringPtHard(""); | |
c2b0976c | 50 | TString containerNameSuffix(""); |
51 | ||
b95d0245 | 52 | if (ptHardBin!=-1) |
53 | stringPtHard = Form("_PtHard_%d",ptHardBin); | |
c2b0976c | 54 | if (strcmp(containerSuffix,"")) |
55 | containerNameSuffix = Form("_%s", containerSuffix); | |
56 | ||
8628b70c | 57 | TString myContName(""); |
58 | if(isMC) | |
c2b0976c | 59 | myContName = Form("AnalysisR0%2.0f_%s_MC%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data()); |
8628b70c | 60 | else |
c2b0976c | 61 | myContName = Form("AnalysisR0%2.0f_%s%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data()); |
8628b70c | 62 | |
63 | // #### Add necessary jet finder tasks | |
64 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C"); | |
0983dd5b | 65 | AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300); // anti-kt |
8628b70c | 66 | AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,jetRadius,1,0.150,0.300); // kt |
c2b0976c | 67 | |
68 | if(jetRadius < 0.1) | |
69 | { | |
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); | |
76 | } | |
8628b70c | 77 | |
c2b0976c | 78 | if(minBackgroundJetPt == -1.0) |
0cb49d99 | 79 | { |
80 | if(analyzeDeprecatedBackgrounds) | |
81 | minBackgroundJetPt = 0.0; | |
82 | else | |
83 | minBackgroundJetPt = 0.15; | |
84 | } | |
85 | ||
b95d0245 | 86 | jetFinderTaskKT->SetMinJetPt(minBackgroundJetPt); |
06b41974 | 87 | |
88 | // #### Define extern rho task | |
89 | if(calculateExternalRho) | |
90 | { | |
91 | TString myRhoName(""); | |
92 | if(isMC) | |
93 | myRhoName = Form("RhoR0%2.0f_%s_MC%s",jetRadius*100,triggerName.Data(), stringPtHard.Data()); | |
94 | else | |
95 | myRhoName = Form("RhoR0%2.0f_%s%s",jetRadius*100,triggerName.Data(), stringPtHard.Data()); | |
96 | ||
97 | contRhoHistos = manager->CreateContainer(myRhoName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName())); | |
98 | AliAnalysisTaskRhoSparse *rhotask = new AliAnalysisTaskRhoSparse(myRhoName.Data(), kTRUE); | |
99 | rhotask->SetAnaType(AliAnalysisTaskEmcal::kTPC); | |
100 | rhotask->SetJetsName(jetFinderTaskKT->GetName()); | |
101 | rhotask->SetSigJetsName(jetFinderTask->GetName()); | |
102 | rhotask->SetTracksName(usedTracks); | |
103 | rhotask->SetRhoName(myRhoName.Data()); | |
104 | rhotask->SetJetAreaCut(0); | |
105 | rhotask->SetJetPtCut(0.150); | |
106 | rhotask->SetJetRadius(jetRadius); | |
107 | rhotask->SetRhoCMS(kTRUE); | |
108 | rhotask->SelectCollisionCandidates(trigger); | |
109 | manager->AddTask(rhotask); | |
110 | manager->ConnectInput(rhotask, 0, manager->GetCommonInputContainer()); | |
111 | manager->ConnectOutput(rhotask, 1, contRhoHistos); | |
112 | ||
113 | } | |
114 | ||
8628b70c | 115 | // #### Define analysis task |
116 | AliAnalysisTaskChargedJetsPA *task = NULL; | |
7cfa86a3 | 117 | contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName())); |
12eb4ac1 | 118 | task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, jetFinderTask->GetName(),jetFinderTaskKT->GetName()); |
8628b70c | 119 | |
120 | // #### Task preferences | |
06b41974 | 121 | task->SetAcceptanceWindows(trackEtaWindow, jetRadius, jetRadius); |
b95d0245 | 122 | task->SetAnalyzeQA(kTRUE); |
123 | task->SetAnalyzeBackground(kTRUE); | |
0cb49d99 | 124 | task->SetAnalyzeDeprecatedBackgrounds(analyzeDeprecatedBackgrounds); |
06b41974 | 125 | task->SetUsePileUpCut(usePileUpCut); |
126 | task->SetUseVertexCut(useVertexCut); | |
8628b70c | 127 | task->SetSignalJetMinPt(minJetPt); |
128 | task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi()); | |
129 | task->SetDijetLeadingMinPt(dijetLeadingMinPt); | |
130 | task->SetDijetMaxAngleDeviation(dijetMaxAngleDev); | |
131 | task->SetRandConeRadius(randomConeR); | |
b95d0245 | 132 | task->SetBackgroundJetMinPt(minBackgroundJetPt); |
12eb4ac1 | 133 | task->SetTRBackgroundConeRadius(trackBgrdConeR); |
8628b70c | 134 | task->SelectCollisionCandidates(trigger); |
12eb4ac1 | 135 | task->SetCentralityType(centralityType); |
b95d0245 | 136 | task->SetUsePtHardBin(ptHardBin); |
06b41974 | 137 | if(calculateExternalRho) |
138 | task->SetExternalRhoTaskName(myRhoName.Data()); | |
b95d0245 | 139 | |
8628b70c | 140 | if(numberOfPtHardBins) |
141 | task->SetNumberOfPtHardBins(numberOfPtHardBins); | |
142 | ||
143 | // #### Add analysis task | |
144 | manager->AddTask(task); | |
145 | manager->ConnectInput(task, 0, manager->GetCommonInputContainer()); | |
146 | manager->ConnectOutput(task, 1, contHistos); | |
12eb4ac1 | 147 | |
b95d0245 | 148 | if(isEMCalTrain) |
149 | RequestMemory(task,200*1024); | |
150 | ||
12eb4ac1 | 151 | // #### Do some nasty piggybacking on demand |
152 | if (externalMacro) | |
6bb6522e | 153 | gROOT->Macro(externalMacro); |
12eb4ac1 | 154 | |
8628b70c | 155 | return task; |
156 | } |