]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskChargedJetsPA.C
update from Ruediger
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskChargedJetsPA.C
CommitLineData
8628b70c 1AliAnalysisTaskChargedJetsPA* 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}