1 AliAnalysisTaskChargedJetsPA* AddTaskChargedJetsPA(
2 const char* containerSuffix = "",
3 Double_t jetRadius = 0.4,
4 const char* centralityType = "V0A",
5 Int_t trigger = AliVEvent::kINT7,
8 Bool_t doJetProfileAnalysis = kFALSE,
9 Bool_t doTrackcutAnalysis = kFALSE,
10 Bool_t doJetAnalysis = kTRUE,
11 const char* usedTracks = "PicoTracks",
12 Int_t numberOfCentralityBins = 20,
13 Double_t areaPercentage = 0.6,
14 Double_t ktJetRadius = 0.4,
15 Double_t trackBgrdConeR = 0.6,
16 Double_t minEta = -0.9,
17 Double_t maxEta = +0.9,
18 Double_t minJetEta = -0.5,
19 Double_t maxJetEta = +0.5,
20 Bool_t isEMCalTrain = 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 containerNameSuffix("");
49 if (strcmp(containerSuffix,""))
50 containerNameSuffix = Form("_%s", containerSuffix);
52 TString bgrdName("Background");
53 TString myContName("");
54 TString myContJPName("");
55 TString myContTCName("");
58 myContName = Form("AnalysisR0%2.0f_%s_MC%s", jetRadius*100, triggerName.Data(), containerNameSuffix.Data());
59 myContJPName = Form("JetProfileR0%2.0f_%s_MC%s", jetRadius*100, triggerName.Data(), containerNameSuffix.Data());
60 myContTCName = Form("TrackcutsR0%2.0f_%s_MC%s", jetRadius*100, triggerName.Data(), containerNameSuffix.Data());
64 myContName = Form("AnalysisR0%2.0f_%s%s", jetRadius*100, triggerName.Data(), containerNameSuffix.Data());
65 myContJPName = Form("JetProfileR0%2.0f_%s%s", jetRadius*100, triggerName.Data(), containerNameSuffix.Data());
66 myContTCName = Form("TrackcutsR0%2.0f_%s%s", jetRadius*100, triggerName.Data(), containerNameSuffix.Data());
71 // #### Add necessary jet finder tasks
72 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
73 AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300); // anti-kt
74 AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,ktJetRadius,1,0.150,0.300); // kt
76 // #### Define external rho task
77 AliEmcalJetTask* jetFinderRho = AddTaskEmcalJet(usedTracks,"",1,0.4,1,0.150,0.300); // anti-kt
78 AliEmcalJetTask* jetFinderRhoKT = AddTaskEmcalJet(usedTracks,"",0,0.4,1,0.150,0.300); // kt
79 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
80 AliAnalysisTaskRhoSparse* rhotask = AddTaskRhoSparse(jetFinderRhoKT->GetName(), NULL, usedTracks, "", bgrdName.Data(), 0.4,"TPC", 0., 5., 0, 0,2,kFALSE,bgrdName.Data(),kTRUE);
83 // #### Define analysis task
84 AliAnalysisTaskChargedJetsPA *task = NULL;
85 AliAnalysisDataContainer* contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJets", AliAnalysisManager::GetCommonFileName()));
86 if(doJetProfileAnalysis)
87 AliAnalysisDataContainer* contJetProfile = manager->CreateContainer(myContJPName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJets", AliAnalysisManager::GetCommonFileName()));
88 if(doTrackcutAnalysis)
89 AliAnalysisDataContainer* contTrackcuts = manager->CreateContainer(myContTCName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJets", AliAnalysisManager::GetCommonFileName()));
93 task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, jetFinderTask->GetName(),jetFinderTaskKT->GetName(), doJetProfileAnalysis, doTrackcutAnalysis);
94 task->SetExternalRhoTaskName(bgrdName.Data());
97 task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", "", triggerName.Data()), usedTracks, "","", doJetProfileAnalysis, doTrackcutAnalysis);
100 // #### Task preferences
102 task->SetAnalyzeJetProfile(doJetProfileAnalysis);
103 task->SetAnalyzeTrackcuts(doTrackcutAnalysis);
104 task->SetAcceptanceEta(minEta,maxEta);
105 task->SetAcceptanceJetEta(minJetEta,maxJetEta);
106 task->SetSignalJetRadius(jetRadius);
107 task->SetBackgroundJetRadius(jetRadius);
108 task->SetSignalJetMinArea(areaPercentage*jetRadius*jetRadius*TMath::Pi());
109 task->SetRandConeRadius(jetRadius);
110 task->SelectCollisionCandidates(trigger);
111 task->SetCentralityType(centralityType);
112 task->SetNumberOfCentralityBins(numberOfCentralityBins);
113 task->SetDoJetAnalysis(doJetAnalysis);
115 // #### Add analysis task
116 manager->AddTask(task);
117 manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
118 manager->ConnectOutput(task, 1, contHistos);
119 if(doJetProfileAnalysis)
121 manager->ConnectOutput(task, 2, contJetProfile);
123 if(doTrackcutAnalysis && !doJetProfileAnalysis)
125 manager->ConnectOutput(task, 2, contTrackcuts);
127 else if(doTrackcutAnalysis && doJetProfileAnalysis)
129 manager->ConnectOutput(task, 3, contTrackcuts);
133 RequestMemory(task,200*1024);