]>
Commit | Line | Data |
---|---|---|
8628b70c | 1 | AliAnalysisTaskChargedJetsPA* AddTaskChargedJetsPA( |
2 | Double_t jetRadius = 0.4, | |
3 | Int_t trigger = AliVEvent::kINT7, | |
4 | Bool_t isMC = kFALSE, | |
5 | Double_t randomConeR = 0.4, | |
6 | Double_t trackBgrdConeR = 0.6, | |
7 | const char* usedTracks = "PicoTracks", | |
12eb4ac1 | 8 | const char* centralityType = "V0A", |
8628b70c | 9 | Double_t trackEtaWindow = 0.9, |
10 | Double_t vertexWindow = 10.0, | |
11 | Double_t vertexMaxR = 1.0, | |
8628b70c | 12 | Double_t minJetPt = 5.0, // signal jet min pt |
13 | Double_t dijetLeadingMinPt = 10.0, | |
14 | Double_t dijetMaxAngleDev = 10.0, | |
12eb4ac1 | 15 | Int_t numberOfPtHardBins = 0, |
16 | const char* fileEtaCorrectionFactors= "alien:///alice/cern.ch/user/r/rhaake/pA/EtaCorrectionFactors.root", | |
17 | const char* externalMacro = NULL | |
8628b70c | 18 | ) |
19 | { | |
20 | // #### Detect the demanded trigger with its readable name | |
21 | TString triggerName(Form("Trigger_%i", trigger)); | |
22 | if (trigger == AliVEvent::kAnyINT) | |
23 | triggerName = "kAnyINT"; | |
24 | else if (trigger == AliVEvent::kAny) | |
25 | triggerName = "kAny"; | |
26 | else if(trigger == AliVEvent::kINT7) | |
27 | triggerName = "kINT7"; | |
efb9b161 | 28 | else if(trigger == AliVEvent::kMB) |
29 | triggerName = "kMB"; | |
8628b70c | 30 | else if(trigger == AliVEvent::kEMC7) |
31 | triggerName = "kEMC7"; | |
32 | else if(trigger == AliVEvent::kEMCEJE) | |
33 | triggerName = "kEMCEJE"; | |
34 | else if(trigger == AliVEvent::kEMCEGA) | |
35 | triggerName = "kEMCEGA"; | |
36 | ||
37 | // #### Define manager and data container names | |
8628b70c | 38 | AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager(); |
39 | if (!manager) { | |
40 | ::Error("AddTaskChargedJetsPA", "No analysis manager to connect to."); | |
41 | return NULL; | |
42 | } | |
43 | TString myContName(""); | |
44 | if(isMC) | |
7cfa86a3 | 45 | myContName = Form("AnalysisR0%2.0f_%s_MC",jetRadius*100,triggerName.Data()); |
8628b70c | 46 | else |
7cfa86a3 | 47 | myContName = Form("AnalysisR0%2.0f_%s",jetRadius*100,triggerName.Data()); |
8628b70c | 48 | |
49 | // #### Add necessary jet finder tasks | |
50 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C"); | |
51 | AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300);// anti-kt | |
52 | AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,jetRadius,1,0.150,0.300); // kt | |
53 | ||
12eb4ac1 | 54 | // #### Load correction factors from alien |
55 | TH2D* corrFactorsKT = NULL; | |
56 | TH2D* corrFactorsRC = NULL; | |
57 | TH2D* corrFactorsTR = NULL; | |
58 | if (fileEtaCorrectionFactors) | |
59 | { | |
60 | // trying to connect to alien | |
61 | if (!TGrid::Connect("alien://")) | |
62 | ::Warning("AddTaskChargedJetsPA", "AliEn connection failed!"); | |
63 | else | |
64 | { | |
65 | ::Info("AddTaskChargedJetsPA", "AliEn connection successful!"); | |
66 | // Copy eta correction file | |
67 | Bool_t copied = TFile::Cp(fileEtaCorrectionFactors,"file:EtaCorrectionFactors.root"); | |
68 | if(copied) | |
69 | { | |
70 | TFile* tmpFile= new TFile("EtaCorrectionFactors.root","READ"); | |
71 | corrFactorsKT = static_cast<TH2D*>(tmpFile->Get("EtaCorrectionFactorsKT")); | |
72 | corrFactorsRC = static_cast<TH2D*>(tmpFile->Get("EtaCorrectionFactorsRC")); | |
73 | corrFactorsTR = static_cast<TH2D*>(tmpFile->Get("EtaCorrectionFactorsTR")); | |
74 | } | |
75 | else | |
76 | ::Warning("AddTaskChargedJetsPA", "AliEn copying failed!"); | |
77 | } | |
78 | } | |
8628b70c | 79 | // #### Define analysis task |
80 | AliAnalysisTaskChargedJetsPA *task = NULL; | |
7cfa86a3 | 81 | contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName())); |
12eb4ac1 | 82 | task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, jetFinderTask->GetName(),jetFinderTaskKT->GetName()); |
8628b70c | 83 | |
84 | // #### Task preferences | |
efb9b161 | 85 | task->SetAcceptanceWindows(trackEtaWindow, vertexWindow, vertexMaxR, jetRadius, jetRadius); |
8628b70c | 86 | task->SetSignalJetMinPt(minJetPt); |
87 | task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi()); | |
88 | task->SetDijetLeadingMinPt(dijetLeadingMinPt); | |
89 | task->SetDijetMaxAngleDeviation(dijetMaxAngleDev); | |
90 | task->SetRandConeRadius(randomConeR); | |
12eb4ac1 | 91 | task->SetTRBackgroundConeRadius(trackBgrdConeR); |
8628b70c | 92 | task->SelectCollisionCandidates(trigger); |
12eb4ac1 | 93 | task->SetCentralityType(centralityType); |
8628b70c | 94 | if(numberOfPtHardBins) |
95 | task->SetNumberOfPtHardBins(numberOfPtHardBins); | |
96 | ||
12eb4ac1 | 97 | if(corrFactorsKT) |
98 | task->SetKTEtaCorrectionFactors(corrFactorsKT); | |
99 | if(corrFactorsRC) | |
100 | task->SetRCEtaCorrectionFactors(corrFactorsRC); | |
101 | if(corrFactorsTR) | |
102 | task->SetTREtaCorrectionFactors(corrFactorsTR); | |
103 | ||
8628b70c | 104 | // #### Add analysis task |
105 | manager->AddTask(task); | |
106 | manager->ConnectInput(task, 0, manager->GetCommonInputContainer()); | |
107 | manager->ConnectOutput(task, 1, contHistos); | |
12eb4ac1 | 108 | |
109 | // #### Do some nasty piggybacking on demand | |
110 | if (externalMacro) | |
111 | gROOT->LoadMacro(externalMacro); | |
112 | ||
113 | ||
8628b70c | 114 | return task; |
115 | } |