]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGJE/EMCALJetTasks/macros/AddTaskDeltaPt.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskDeltaPt.C
... / ...
CommitLineData
1// $Id$
2
3AliAnalysisTaskDeltaPt* AddTaskDeltaPt(
4 const char *ntracks = "Tracks",
5 const char *nclusters = "CaloClusters",
6 const char *njets = "Jets",
7 const char *nembtracks = "TracksEmbedded",
8 const char *nembclusters = "CaloClustersEmbedded",
9 const char *nembjets = "EmbJets",
10 const char *nrandtracks = "TracksRandomized",
11 const char *nrandclusters = "CaloClustersRandomized",
12 const char *nrho = "Rho",
13 Double_t jetradius = 0.2,
14 Double_t jetareacut = 0.557,
15 Double_t trackptcut = 0.15,
16 Double_t clusptcut = 0.30,
17 const char *type = "TPC",
18 const char *taskname = "AliAnalysisTaskDeltaPt"
19)
20{
21 // Get the pointer to the existing analysis manager via the static access method.
22 //==============================================================================
23 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
24 if (!mgr)
25 {
26 ::Error("AddTaskDeltaPt", "No analysis manager to connect to.");
27 return NULL;
28 }
29
30 // Check the analysis type using the event handlers connected to the analysis manager.
31 //==============================================================================
32 if (!mgr->GetInputEventHandler())
33 {
34 ::Error("AddTaskDeltaPt", "This task requires an input event handler");
35 return NULL;
36 }
37
38 //-------------------------------------------------------
39 // Init the task and do settings
40 //-------------------------------------------------------
41 TString name;
42 if (strcmp(ntracks, "") == 0 && strcmp(nclusters, "") == 0)
43 name = Form("%s_%s_R0%d_%s",taskname,nrho,(Int_t)floor(jetradius*100+0.5),type);
44 else if (strcmp(ntracks, "") == 0)
45 name = Form("%s_%s_%s_R0%d_%s",taskname,nclusters,nrho,(Int_t)floor(jetradius*100+0.5),type);
46 else if (strcmp(nclusters, "") == 0)
47 name = Form("%s_%s_%s_R0%d_%s",taskname,ntracks,nrho,(Int_t)floor(jetradius*100+0.5),type);
48 else
49 name = Form("%s_%s_%s_%s_R0%d_%s",taskname,ntracks,nclusters,nrho,(Int_t)floor(jetradius*100+0.5),type);
50
51 AliAnalysisTaskDeltaPt* jetTask = new AliAnalysisTaskDeltaPt(name);
52 jetTask->SetConeRadius(jetradius);
53 jetTask->SetRhoName(nrho,-1);
54 if (strcmp(type,"TPC")==0)
55 jetTask->SetConeEtaPhiTPC();
56 else if (strcmp(type,"EMCAL")==0)
57 jetTask->SetConeEtaPhiEMCAL();
58
59 AliParticleContainer *partCont = jetTask->AddParticleContainer(ntracks);
60 if (partCont) {
61 partCont->SetName("Tracks");
62 partCont->SetParticlePtCut(trackptcut);
63 }
64
65 AliClusterContainer *clusCont = jetTask->AddClusterContainer(nclusters);
66 if (clusCont) {
67 clusCont->SetName("CaloClusters");
68 clusCont->SetClusPtCut(clusptcut);
69 }
70
71 AliJetContainer *jetCont = jetTask->AddJetContainer(njets,type,jetradius);
72 if (jetCont) {
73 jetCont->SetName("Jets");
74 jetCont->SetPercAreaCut(jetareacut);
75 jetCont->SetRhoName(nrho);
76 jetCont->ConnectParticleContainer(partCont);
77 jetCont->ConnectClusterContainer(clusCont);
78 }
79
80 AliParticleContainer *embPartCont = jetTask->AddParticleContainer(nembtracks);
81 if (embPartCont) {
82 embPartCont->SetName("EmbTracks");
83 embPartCont->SetParticlePtCut(trackptcut);
84 }
85
86 AliClusterContainer *embClusCont = jetTask->AddClusterContainer(nembclusters);
87 if (embClusCont) {
88 embClusCont->SetName("EmbClusters");
89 embClusCont->SetClusPtCut(clusptcut);
90 }
91
92 AliJetContainer *embJetCont = jetTask->AddJetContainer(nembjets,type,jetradius);
93 if (embJetCont) {
94 embJetCont->SetName("EmbJets");
95 embJetCont->SetPercAreaCut(jetareacut);
96 embJetCont->SetRhoName(nrho);
97 embJetCont->ConnectParticleContainer(embPartCont);
98 embJetCont->ConnectClusterContainer(embClusCont);
99 }
100
101 AliParticleContainer *randPartCont = jetTask->AddParticleContainer(nrandtracks);
102 if (randPartCont) {
103 randPartCont->SetName("RandTracks");
104 randPartCont->SetParticlePtCut(trackptcut);
105 }
106
107 AliClusterContainer *randClusCont = jetTask->AddClusterContainer(nrandclusters);
108 if (randClusCont) {
109 randClusCont->SetName("RandClusters");
110 randClusCont->SetClusPtCut(clusptcut);
111 }
112
113 //-------------------------------------------------------
114 // Final settings, pass to manager and set the containers
115 //-------------------------------------------------------
116
117 mgr->AddTask(jetTask);
118
119 // Create containers for input/output
120 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
121 TString contname(name);
122 contname += "_histos";
123 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
124 TList::Class(),AliAnalysisManager::kOutputContainer,
125 Form("%s", AliAnalysisManager::GetCommonFileName()));
126 mgr->ConnectInput(jetTask, 0, cinput1);
127 mgr->ConnectOutput(jetTask, 1, coutput1);
128
129 return jetTask;
130}