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 = 0.15, // signal jet min pt
13 Double_t minBackgroundJetPt = 0.0, // 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 = kTRUE,
22 Bool_t analyzeDeprecatedBackgrounds = kTRUE,
23 Int_t numberOfCentralityBins = 20,
24 const char* externalRhoName = "ExternalRhoTask",
25 Double_t ktJetRadius = 0.4,
26 Double_t areaPercentage = 0.6,
29 // #### Detect the demanded trigger with its readable name
30 TString triggerName(Form("Trigger_%i", trigger));
31 if (trigger == AliVEvent::kAnyINT)
32 triggerName = "kAnyINT";
33 else if (trigger == AliVEvent::kAny)
35 else if(trigger == AliVEvent::kINT7)
36 triggerName = "kINT7";
37 else if(trigger == AliVEvent::kMB)
39 else if(trigger == AliVEvent::kEMC7)
40 triggerName = "kEMC7";
41 else if(trigger == AliVEvent::kEMCEJE)
42 triggerName = "kEMCEJE";
43 else if(trigger == AliVEvent::kEMCEGA)
44 triggerName = "kEMCEGA";
46 // #### Define manager and data container names
47 AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
49 ::Error("AddTaskChargedJetsPA", "No analysis manager to connect to.");
53 TString stringPtHard("");
54 TString containerNameSuffix("");
57 stringPtHard = Form("_PtHard_%d",ptHardBin);
58 if (strcmp(containerSuffix,""))
59 containerNameSuffix = Form("_%s", containerSuffix);
61 TString myContName("");
63 myContName = Form("AnalysisR0%2.0f_%s_MC%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data());
65 myContName = Form("AnalysisR0%2.0f_%s%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data());
67 // #### Add necessary jet finder tasks
68 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
69 AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300); // anti-kt
70 AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,ktJetRadius,1,0.150,0.300); // kt
74 jetFinderTask->SetMinJetArea(0.0);
75 jetFinderTaskKT->SetMinJetArea(0.0);
76 jetFinderTask->SetMinJetPt(0.15);
77 jetFinderTaskKT->SetMinJetPt(0.15);
78 jetFinderTask->SetGhostArea(0.001);
79 jetFinderTaskKT->SetGhostArea(0.001);
82 if(minBackgroundJetPt == -1.0)
84 if(analyzeDeprecatedBackgrounds)
85 minBackgroundJetPt = 0.0;
87 minBackgroundJetPt = 0.15;
91 jetFinderTaskKT->SetMinJetPt(minBackgroundJetPt);
93 // #### Define extern rho task
94 if(calculateExternalRho)
96 TString myRhoName(externalRhoName);
98 AliEmcalJetTask* jetFinderRho = AddTaskEmcalJet(usedTracks,"",1,0.4,1,0.150,0.300); // anti-kt
99 AliEmcalJetTask* jetFinderRhoKT = AddTaskEmcalJet(usedTracks,"",0,0.4,1,0.150,0.300); // kt
100 jetFinderRhoKT->SetMinJetPt(0);
102 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
103 AliAnalysisTaskRhoSparse* rhotask = AddTaskRhoSparse(jetFinderRhoKT->GetName(), NULL, usedTracks, "", myRhoName.Data(), 0.4,"TPC", 0., 5., 0, 0,2,kFALSE,myRhoName.Data(),kTRUE);
106 // #### Define analysis task
107 AliAnalysisTaskChargedJetsPA *task = NULL;
108 contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
109 task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, jetFinderTask->GetName(),jetFinderTaskKT->GetName());
111 // #### Task preferences
112 task->SetAcceptanceEta(-trackEtaWindow,+trackEtaWindow);
113 task->SetAcceptanceJetEta(-trackEtaWindow+jetRadius,+trackEtaWindow-jetRadius);
114 task->SetSignalJetRadius(jetRadius);
115 task->SetBackgroundJetRadius(jetRadius);
116 task->SetAnalyzeQA(kTRUE);
117 task->SetAnalyzeBackground(kTRUE);
118 task->SetAnalyzeDeprecatedBackgrounds(analyzeDeprecatedBackgrounds);
119 task->SetUsePileUpCut(usePileUpCut);
120 task->SetUseDefaultVertexCut(useVertexCut);
121 task->SetSignalJetMinPt(minJetPt);
122 task->SetSignalJetMinArea(areaPercentage*jetRadius*jetRadius*TMath::Pi());
123 task->SetDijetLeadingMinPt(dijetLeadingMinPt);
124 task->SetDijetMaxAngleDeviation(dijetMaxAngleDev);
125 task->SetRandConeRadius(randomConeR);
126 task->SetBackgroundJetMinPt(minBackgroundJetPt);
127 task->SetTRBackgroundConeRadius(trackBgrdConeR);
128 task->SelectCollisionCandidates(trigger);
129 task->SetCentralityType(centralityType);
130 task->SetNumberOfCentralityBins(numberOfCentralityBins);
131 task->SetUsePtHardBin(ptHardBin);
132 if(calculateExternalRho)
133 task->SetExternalRhoTaskName(myRhoName.Data());
135 if(numberOfPtHardBins)
136 task->SetNumberOfPtHardBins(numberOfPtHardBins);
138 // #### Add analysis task
139 manager->AddTask(task);
140 manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
141 manager->ConnectOutput(task, 1, contHistos);
144 RequestMemory(task,200*1024);
146 // #### Do some nasty piggybacking on demand
148 gROOT->Macro(externalMacro);