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* usedTracks = "PicoTracks",
9 const char* centralityType = "V0A",
10 Double_t trackEtaWindow = 0.9,
11 Double_t minJetPt = 5.0, // signal jet min pt
12 Double_t minBackgroundJetPt = 0.0, // background jet min pt
13 Double_t dijetLeadingMinPt = 10.0,
14 Double_t dijetMaxAngleDev = 10.0,
15 Int_t numberOfPtHardBins = 0,
16 const char* externalMacro = NULL,
17 Bool_t useVertexCut = kTRUE,
18 Bool_t usePileUpCut = kFALSE,
19 Bool_t isEMCalTrain = kFALSE,
20 Bool_t calculateExternalRho = kFALSE
23 // #### Detect the demanded trigger with its readable name
24 TString triggerName(Form("Trigger_%i", trigger));
25 if (trigger == AliVEvent::kAnyINT)
26 triggerName = "kAnyINT";
27 else if (trigger == AliVEvent::kAny)
29 else if(trigger == AliVEvent::kINT7)
30 triggerName = "kINT7";
31 else if(trigger == AliVEvent::kMB)
33 else if(trigger == AliVEvent::kEMC7)
34 triggerName = "kEMC7";
35 else if(trigger == AliVEvent::kEMCEJE)
36 triggerName = "kEMCEJE";
37 else if(trigger == AliVEvent::kEMCEGA)
38 triggerName = "kEMCEGA";
40 // #### Define manager and data container names
41 AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
43 ::Error("AddTaskChargedJetsPA", "No analysis manager to connect to.");
47 TString stringPtHard("");
49 stringPtHard = Form("_PtHard_%d",ptHardBin);
50 TString myContName("");
52 myContName = Form("AnalysisR0%2.0f_%s_MC%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
54 myContName = Form("AnalysisR0%2.0f_%s%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
56 // #### Add necessary jet finder tasks
57 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
58 AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300); // anti-kt
59 AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,jetRadius,1,0.150,0.300); // kt
61 jetFinderTaskKT->SetMinJetPt(minBackgroundJetPt);
63 // #### Define extern rho task
64 if(calculateExternalRho)
66 TString myRhoName("");
68 myRhoName = Form("RhoR0%2.0f_%s_MC%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
70 myRhoName = Form("RhoR0%2.0f_%s%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
72 contRhoHistos = manager->CreateContainer(myRhoName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
73 AliAnalysisTaskRhoSparse *rhotask = new AliAnalysisTaskRhoSparse(myRhoName.Data(), kTRUE);
74 rhotask->SetAnaType(AliAnalysisTaskEmcal::kTPC);
75 rhotask->SetJetsName(jetFinderTaskKT->GetName());
76 rhotask->SetSigJetsName(jetFinderTask->GetName());
77 rhotask->SetTracksName(usedTracks);
78 rhotask->SetRhoName(myRhoName.Data());
79 rhotask->SetJetAreaCut(0);
80 rhotask->SetJetPtCut(0.150);
81 rhotask->SetJetRadius(jetRadius);
82 rhotask->SetRhoCMS(kTRUE);
83 rhotask->SelectCollisionCandidates(trigger);
84 manager->AddTask(rhotask);
85 manager->ConnectInput(rhotask, 0, manager->GetCommonInputContainer());
86 manager->ConnectOutput(rhotask, 1, contRhoHistos);
90 // #### Define analysis task
91 AliAnalysisTaskChargedJetsPA *task = NULL;
92 contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
93 task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, jetFinderTask->GetName(),jetFinderTaskKT->GetName());
95 // #### Task preferences
96 task->SetAcceptanceWindows(trackEtaWindow, jetRadius, jetRadius);
97 task->SetAnalyzeQA(kTRUE);
98 task->SetAnalyzeBackground(kTRUE);
99 task->SetAnalyzeDeprecatedBackgrounds(kTRUE);
100 task->SetUsePileUpCut(usePileUpCut);
101 task->SetUseVertexCut(useVertexCut);
102 task->SetSignalJetMinPt(minJetPt);
103 task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi());
104 task->SetDijetLeadingMinPt(dijetLeadingMinPt);
105 task->SetDijetMaxAngleDeviation(dijetMaxAngleDev);
106 task->SetRandConeRadius(randomConeR);
107 task->SetBackgroundJetMinPt(minBackgroundJetPt);
108 task->SetTRBackgroundConeRadius(trackBgrdConeR);
109 task->SelectCollisionCandidates(trigger);
110 task->SetCentralityType(centralityType);
111 task->SetUsePtHardBin(ptHardBin);
112 if(calculateExternalRho)
113 task->SetExternalRhoTaskName(myRhoName.Data());
115 if(numberOfPtHardBins)
116 task->SetNumberOfPtHardBins(numberOfPtHardBins);
118 // #### Add analysis task
119 manager->AddTask(task);
120 manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
121 manager->ConnectOutput(task, 1, contHistos);
124 RequestMemory(task,200*1024);
126 // #### Do some nasty piggybacking on demand
128 gROOT->Macro(externalMacro);