]>
Commit | Line | Data |
---|---|---|
1 | AliAnalysisTaskHJetSpectra* AddTaskHJetSpectra( | |
2 | Double_t jetRadius = 0.4, //radius of analyzed jets | |
3 | Double_t jetRadiusBg = 0.3, //radius of jets to be removed when estimating cell median bg | |
4 | Int_t trigger = AliVEvent::kINT7, //trigger | |
5 | Int_t isMC = 0, //MC flag | |
6 | Double_t randomConeR = 0.4, //random cone for deltaPt + perp cone bg | |
7 | const char* containerSuffix = "", //tag to the name of container | |
8 | const char* usedTracks = "PicoTracks", //tracks | |
9 | const char* centralityType = "V0A", //centrality | |
10 | Double_t trackEtaWindow = 0.9, //pseudorapidity range for tracks | |
11 | Bool_t useVertexCut = kTRUE, // vertex cut | |
12 | Bool_t usePileUpCut = kTRUE, // discard pile up event | |
13 | Int_t numberOfCentralityBins = 1, // the number of centrality bins | |
14 | Double_t ttLow = 8.0, // trigger hardron low pT | |
15 | Double_t ttHigh = 50.0, // trigger hadron high pT | |
16 | Int_t ttType = 0, // 0= single inclusive hadron trigger, else inclusive hadron trigger | |
17 | Double_t dphi = 0.6, // |Delta phi_jet, trigger|< pi-0.6 | |
18 | Bool_t binning = 0 //binning of jet histograms 0=2GeV width 1=1GeV width | |
19 | ){ | |
20 | ||
21 | ||
22 | // #### Detect the demanded trigger with its readable name | |
23 | TString triggerName(Form("Trigger_%i", trigger)); | |
24 | if(trigger == AliVEvent::kAnyINT) | |
25 | triggerName = "kAnyINT"; | |
26 | else if(trigger == AliVEvent::kAny) | |
27 | triggerName = "kAny"; | |
28 | else if(trigger == AliVEvent::kINT7) | |
29 | triggerName = "kINT7"; | |
30 | else if(trigger == AliVEvent::kMB) | |
31 | triggerName = "kMB"; | |
32 | else if(trigger == AliVEvent::kEMC7) | |
33 | triggerName = "kEMC7"; | |
34 | else if(trigger == AliVEvent::kEMCEJE) | |
35 | triggerName = "kEMCEJE"; | |
36 | else if(trigger == AliVEvent::kEMCEGA) | |
37 | triggerName = "kEMCEGA"; | |
38 | ||
39 | // #### DEFINE MANAGER AND DATA CONTAINER NAMES | |
40 | AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager(); | |
41 | if (!manager) { | |
42 | ::Error("AddTaskHJetSpectra.C", "No analysis manager to connect to."); | |
43 | return NULL; | |
44 | } | |
45 | ||
46 | TString containerNameSuffix(""); | |
47 | if(strcmp(containerSuffix,"")) containerNameSuffix = Form("_%s", containerSuffix); | |
48 | ||
49 | TString myContName(""); | |
50 | if(isMC){ | |
51 | myContName = Form("AnalysisR0%2.0f_%s_MC%s_Dphi%02d_T%d_Ptt%d_%d", | |
52 | jetRadius*100, triggerName.Data(), containerNameSuffix.Data(), | |
53 | TMath::Nint(10*dphi), ttType, TMath::Nint(ttLow), TMath::Nint(ttHigh)); | |
54 | }else{ | |
55 | myContName = Form("AnalysisR0%2.0f_%s%s_Dphi%02d_T%d_Ptt%d_%d", | |
56 | jetRadius*100, triggerName.Data(), containerNameSuffix.Data(), | |
57 | TMath::Nint(10*dphi), ttType, TMath::Nint(ttLow), TMath::Nint(ttHigh)); | |
58 | } | |
59 | ||
60 | // #### ADD NECESSARY JET FINDER TASKS | |
61 | enum AlgoType {kKT, kANTIKT}; | |
62 | enum JetType {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS}; | |
63 | ||
64 | if(jetRadius < 0.1 || jetRadiusBg < 0.1) return NULL; | |
65 | ||
66 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C"); | |
67 | AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",kANTIKT,jetRadius, kCHARGEDJETS,0.150,0.300); //FK// | |
68 | AliEmcalJetTask* jetFinderTaskBg = AddTaskEmcalJet(usedTracks,"",kANTIKT,jetRadiusBg,kCHARGEDJETS,0.150,0.300); //FK//excl from bg | |
69 | ||
70 | // #### DEFINE EXTERN CMS RHO TASK | |
71 | TString myRhoName("ExternalRhoTask"); | |
72 | AliEmcalJetTask* jetFinderRho = AddTaskEmcalJet(usedTracks,"", kANTIKT, 0.4, kCHARGEDJETS,0.150,0.300); // anti-kt | |
73 | AliEmcalJetTask* jetFinderRhoKT = AddTaskEmcalJet(usedTracks,"", kKT, 0.4, kCHARGEDJETS,0.150,0.300); // kt | |
74 | jetFinderRhoKT->SetMinJetPt(0); | |
75 | ||
76 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C"); | |
77 | AliAnalysisTaskRhoSparse* rhotask = AddTaskRhoSparse(jetFinderRhoKT->GetName(), | |
78 | jetFinderRho->GetName(), | |
79 | usedTracks, //pico trakcs | |
80 | "", //calo clusters | |
81 | myRhoName.Data(), | |
82 | 0.4, //jet radius | |
83 | "TPC", //cut type | |
84 | 0., //jet area cut | |
85 | 15., //jet pt cut ???????? | |
86 | 0, //enareacut | |
87 | 0, //sfunc | |
88 | 1, //excl Jets //FK// ???????? | |
89 | kFALSE, //no histo | |
90 | myRhoName.Data(), //task name | |
91 | kTRUE); //claculate rho CMS | |
92 | ||
93 | // #### DEFINE ANALYSIS TASK | |
94 | AliAnalysisTaskHJetSpectra *task = new AliAnalysisTaskHJetSpectra( | |
95 | Form("HJetSpectra_%s_%s_TT", jetFinderTask->GetName(), triggerName.Data()), | |
96 | usedTracks, | |
97 | jetFinderTask->GetName(), | |
98 | jetFinderTaskBg->GetName()); | |
99 | ||
100 | // #### Task preferences | |
101 | task->SetAcceptanceWindows(trackEtaWindow, jetRadius, jetRadiusBg); | |
102 | task->SetUsePileUpCut(usePileUpCut); | |
103 | task->SetUseDefaultVertexCut(useVertexCut); | |
104 | task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi()); //To same puziva Mata | |
105 | task->SetRandConeRadius(randomConeR); | |
106 | task->SelectCollisionCandidates(trigger); | |
107 | task->SetCentralityType(centralityType); | |
108 | task->SetNumberOfCentralityBins(numberOfCentralityBins); | |
109 | task->SetExternalRhoTaskName(myRhoName.Data()); | |
110 | ||
111 | task->SetTT(ttLow, ttHigh); | |
112 | task->SetTTType(ttType); | |
113 | task->SetDphi(dphi); // |Delta phi_jet, trigger|< pi-0.6 | |
114 | task->SetDoubleBinPrecision(binning); | |
115 | task->SetMinPtOfJetsToBeRemovedInBg(15.0); | |
116 | //task->SetMC(isMC); | |
117 | task->SetNofRandomCones(1); | |
118 | ||
119 | if(isMC) task->SetAnalyzeMC(isMC); | |
120 | ||
121 | // output container | |
122 | contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChJetSpectra%s", AliAnalysisManager::GetCommonFileName(), myContName.Data())); | |
123 | ||
124 | ||
125 | // #### ADD ANALYSIS TASK | |
126 | manager->AddTask(task); | |
127 | manager->ConnectInput(task, 0, manager->GetCommonInputContainer()); | |
128 | manager->ConnectOutput(task, 1, contHistos); | |
129 | ||
130 | return task; | |
131 | } |