AliPhysics  8b695ca (8b695ca)
AliAnalysisTaskConvJet.h
Go to the documentation of this file.
1 #ifndef AliAnalysisTaskConvJet_H
2 #define AliAnalysisTaskConvJet_H
3 
11 /* Copyright(c) 1998-2016, ALICE Experiment at CERN, All rights reserved. *
12  * See cxx source for full Copyright notice */
13 
14 using namespace std;
16 #include "THistManager.h"
17 
27  public:
28 
30  AliAnalysisTaskConvJet(const char *name, Int_t IsMC) ;
32  delete fJetNameArray;
33  delete fTrueJetNameArray;
34  delete fTrainconfigArray;
35  delete fTrueTrainconfigArray;
36  }
37 
38  void UserCreateOutputObjects() ;
39  void Terminate(Option_t *option) ;
40 
41  static AliAnalysisTaskConvJet* AddTask_GammaConvJet(
42  const char *ntracks = "usedefault",
43  const char *nclusters = "usedefault",
44  const char* ncells = "usedefault",
45  const char *suffix = "",
46  Int_t IsMC = 0,
47  Int_t NContainers = 0);
48 
49  void SetNumberOfContainers(Int_t NContainers){
50  fNJetContainers = NContainers;
51  if(fIsMC == 0){
52  fTrainconfigArray = new Int_t[fNJetContainers];
53  fJetNameArray = new TString[fNJetContainers];
54  }else{
55  fTrainconfigArray = new Int_t[fNJetContainers/2];
56  fJetNameArray = new TString[fNJetContainers/2];
57  fTrueTrainconfigArray = new Int_t[fNJetContainers/2];
58  fTrueJetNameArray = new TString[fNJetContainers/2];
59  }
60  }
61 
62  Int_t GetNumberOfContainers(){return fNJetContainers;}
63 
64  void AddJetContainerwithTrainConfig(TString JetContainerName, Int_t Trainconfig, Double_t Radius){
65  TString Add = "_";
66  Add.Append(JetContainerName);
67  Add.Append("_pT1000");
68  if(fJetContainersAdded < fNJetContainers){
69  AddJetContainer(JetContainerName, AliEmcalJet::kTPCfid, Radius);
70  fJetNameArray[fJetContainersAdded] = Add;
71  fTrainconfigArray[fJetContainersAdded] = Trainconfig;
72  vector<Double_t> JetPt;
73  fListJetPt.push_back(JetPt);
74  vector<Double_t> JetPx;
75  fListJetPx.push_back(JetPx);
76  vector<Double_t> JetPy;
77  fListJetPy.push_back(JetPy);
78  vector<Double_t> JetPz;
79  fListJetPz.push_back(JetPz);
80  vector<Double_t> JetEta;
81  fListJetEta.push_back(JetEta);
82  vector<Double_t> JetPhi;
83  fListJetPhi.push_back(JetPhi);
84  vector<Double_t> JetArea;
85  fListJetArea.push_back(JetArea);
86  fListNJets.push_back(0);
87  fJetContainersAdded++;
88  }
89  }
90 
91  void AddTrueandRecJetContainerwithTrainConfig(TString RecJetContainerName, TString TrueJetContainerName, Int_t Trainconfig, Double_t Radius){
92  AliJetContainer* jetContRec;
93  AliJetContainer* jetContTrue;
94  TString AddRec = "_";
95  AddRec.Append(RecJetContainerName);
96  AddRec.Append("_pT1000");
97  TString AddTrue = "_";
98  AddTrue.Append(TrueJetContainerName);
99  AddTrue.Append("_pT1000");
100  if(fJetContainersAdded < fNJetContainers/2){
101  jetContRec = AddJetContainer(RecJetContainerName, AliEmcalJet::kTPCfid, Radius);
102  fJetNameArray[fJetContainersAdded] = AddRec;
103  fTrainconfigArray[fJetContainersAdded] = Trainconfig;
104  vector<Double_t> JetPt;
105  fListJetPt.push_back(JetPt);
106  vector<Double_t> JetPx;
107  fListJetPx.push_back(JetPx);
108  vector<Double_t> JetPy;
109  fListJetPy.push_back(JetPy);
110  vector<Double_t> JetPz;
111  fListJetPz.push_back(JetPz);
112  vector<Double_t> JetEta;
113  fListJetEta.push_back(JetEta);
114  vector<Double_t> JetPhi;
115  fListJetPhi.push_back(JetPhi);
116  vector<Double_t> JetArea;
117  fListJetArea.push_back(JetArea);
118  fListNJets.push_back(0);
119  fJetContainersAdded++;
120  }
121  if(fTrueJetContainersAdded < fNJetContainers/2){
122  AliParticleContainer *trackCont = AddParticleContainer("tracks");
123  AliClusterContainer *clusterCont = AddClusterContainer("caloClusters");
124  jetContRec->ConnectParticleContainer(trackCont);
125  jetContRec->ConnectClusterContainer(clusterCont);
126  jetContTrue = AddJetContainer(TrueJetContainerName, AliEmcalJet::kTPCfid, Radius);
127  jetContTrue->ConnectParticleContainer(trackCont);
128  jetContTrue->ConnectClusterContainer(clusterCont);
129  fTrueJetNameArray[fTrueJetContainersAdded] = AddTrue;
130  fTrueTrainconfigArray[fTrueJetContainersAdded] = Trainconfig;
131  vector<Double_t> JetPt;
132  fListTrueJetPt.push_back(JetPt);
133  vector<Double_t> JetPx;
134  fListTrueJetPx.push_back(JetPx);
135  vector<Double_t> JetPy;
136  fListTrueJetPy.push_back(JetPy);
137  vector<Double_t> JetPz;
138  fListTrueJetPz.push_back(JetPz);
139  vector<Double_t> JetEta;
140  fListTrueJetEta.push_back(JetEta);
141  vector<Double_t> JetPhi;
142  fListTrueJetPhi.push_back(JetPhi);
143  vector<Double_t> JetArea;
144  fListTrueJetArea.push_back(JetArea);
145  fListTrueNJets.push_back(0);
146  fTrueJetContainersAdded++;
147  }
148  }
149 
150  Double_t GetNJets(Int_t Trainconfig) {
151  Int_t NJets = 0;
152  for(Int_t i = 0; i < fNJetContainers; i++){
153  if(Trainconfig == fTrainconfigArray[i]){
154  NJets = fListNJets.at(i);
155  break;
156  }
157  }
158  return NJets;
159 }
160  vector<Double_t> GetVectorJetPt(Int_t Trainconfig){
161  vector<Double_t> VectorJetPt;
162  for(Int_t i = 0; i < fNJetContainers; i++){
163  if(Trainconfig == fTrainconfigArray[i]){
164  VectorJetPt = fListJetPt.at(i);
165  break;
166  }
167  }
168  return VectorJetPt;
169 }
170  vector<Double_t> GetVectorJetPx(Int_t Trainconfig){
171  vector<Double_t> VectorJetPx;
172  for(Int_t i = 0; i < fNJetContainers; i++){
173  if(Trainconfig == fTrainconfigArray[i]){
174  VectorJetPx = fListJetPx.at(i);
175  break;
176  }
177  }
178  return VectorJetPx;
179 }
180  vector<Double_t> GetVectorJetPy(Int_t Trainconfig){
181  vector<Double_t> VectorJetPy;
182  for(Int_t i = 0; i < fNJetContainers; i++){
183  if(Trainconfig == fTrainconfigArray[i]){
184  VectorJetPy = fListJetPy.at(i);
185  break;
186  }
187  }
188  return VectorJetPy;
189 }
190  vector<Double_t> GetVectorJetPz(Int_t Trainconfig){
191  vector<Double_t> VectorJetPz;
192  for(Int_t i = 0; i < fNJetContainers; i++){
193  if(Trainconfig == fTrainconfigArray[i]){
194  VectorJetPz = fListJetPz.at(i);
195  break;
196  }
197  }
198  return VectorJetPz;
199 }
200  vector<Double_t> GetVectorJetEta(Int_t Trainconfig){
201  vector<Double_t> VectorJetEta;
202  for(Int_t i = 0; i < fNJetContainers; i++){
203  if(Trainconfig == fTrainconfigArray[i]){
204  VectorJetEta = fListJetEta.at(i);
205  break;
206  }
207  }
208  return VectorJetEta;
209 }
210  vector<Double_t> GetVectorJetPhi(Int_t Trainconfig){
211  vector<Double_t> VectorJetPhi;
212  for(Int_t i = 0; i < fNJetContainers; i++){
213  if(Trainconfig == fTrainconfigArray[i]){
214  VectorJetPhi = fListJetPhi.at(i);
215  break;
216  }
217  }
218  return VectorJetPhi;
219 }
220  vector<Double_t> GetVectorJetArea(Int_t Trainconfig){
221  vector<Double_t> VectorJetArea;
222  for(Int_t i = 0; i < fNJetContainers; i++){
223  if(Trainconfig == fTrainconfigArray[i]){
224  VectorJetArea = fListJetArea.at(i);
225  break;
226  }
227  }
228  return VectorJetArea;
229 }
230 //------------------------------------------------------------------
231  Double_t GetTrueNJets(Int_t Trainconfig) {
232  Int_t NJets = 0;
233  for(Int_t i = 0; i < fNJetContainers; i++){
234  if(Trainconfig == fTrueTrainconfigArray[i]){
235  NJets = fListTrueNJets.at(i);
236  break;
237  }
238  }
239  return NJets;
240 }
241  vector<Double_t> GetTrueVectorJetPt(Int_t Trainconfig){
242  vector<Double_t> VectorJetPt;
243  for(Int_t i = 0; i < fNJetContainers; i++){
244  if(Trainconfig == fTrueTrainconfigArray[i]){
245  VectorJetPt = fListTrueJetPt.at(i);
246  break;
247  }
248  }
249  return VectorJetPt;
250 }
251  vector<Double_t> GetTrueVectorJetPx(Int_t Trainconfig){
252  vector<Double_t> VectorJetPx;
253  for(Int_t i = 0; i < fNJetContainers; i++){
254  if(Trainconfig == fTrueTrainconfigArray[i]){
255  VectorJetPx = fListTrueJetPx.at(i);
256  break;
257  }
258  }
259  return VectorJetPx;
260 }
261  vector<Double_t> GetTrueVectorJetPy(Int_t Trainconfig){
262  vector<Double_t> VectorJetPy;
263  for(Int_t i = 0; i < fNJetContainers; i++){
264  if(Trainconfig == fTrueTrainconfigArray[i]){
265  VectorJetPy = fListTrueJetPy.at(i);
266  break;
267  }
268  }
269  return VectorJetPy;
270 }
271  vector<Double_t> GetTrueVectorJetPz(Int_t Trainconfig){
272  vector<Double_t> VectorJetPz;
273  for(Int_t i = 0; i < fNJetContainers; i++){
274  if(Trainconfig == fTrueTrainconfigArray[i]){
275  VectorJetPz = fListTrueJetPz.at(i);
276  break;
277  }
278  }
279  return VectorJetPz;
280 }
281  vector<Double_t> GetTrueVectorJetEta(Int_t Trainconfig){
282  vector<Double_t> VectorJetEta;
283  for(Int_t i = 0; i < fNJetContainers; i++){
284  if(Trainconfig == fTrueTrainconfigArray[i]){
285  VectorJetEta = fListTrueJetEta.at(i);
286  break;
287  }
288  }
289  return VectorJetEta;
290 }
291  vector<Double_t> GetTrueVectorJetPhi(Int_t Trainconfig){
292  vector<Double_t> VectorJetPhi;
293  for(Int_t i = 0; i < fNJetContainers; i++){
294  if(Trainconfig == fTrueTrainconfigArray[i]){
295  VectorJetPhi = fListTrueJetPhi.at(i);
296  break;
297  }
298  }
299  return VectorJetPhi;
300 }
301  vector<Double_t> GetTrueVectorJetArea(Int_t Trainconfig){
302  vector<Double_t> VectorJetArea;
303  for(Int_t i = 0; i < fNJetContainers; i++){
304  if(Trainconfig == fTrueTrainconfigArray[i]){
305  VectorJetArea = fListTrueJetArea.at(i);
306  break;
307  }
308  }
309  return VectorJetArea;
310 }
311 //------------------------------------------------------------------
313  TString JetName;
314  for(Int_t i = 0; i < fNJetContainers; i++){
315  if(Trainconfig == fTrainconfigArray[i]){
316  JetName = fJetNameArray[i];
317  break;
318  }
319  }
320  AliJetContainer* jetCont = 0;
321  TIter next(&fJetCollArray);
322  Double_t radius = -1;
323  while ((jetCont = static_cast<AliJetContainer*>(next()))) {
324  if(JetName == jetCont->GetTitle()){
325  radius = jetCont->GetJetRadius();
326  break;
327  }
328  }
329  return radius;
330  }
331 
332  protected:
333  void ExecOnce() ;
334  Bool_t FillHistograms() ;
335  Bool_t Run() ;
336  void DoJetLoop() ;
337 
346 
347  vector<Int_t> fListNJets ;
348  vector<vector<Double_t>> fListJetPt ;
349  vector<vector<Double_t>> fListJetPx ;
350  vector<vector<Double_t>> fListJetPy ;
351  vector<vector<Double_t>> fListJetPz ;
352  vector<vector<Double_t>> fListJetEta ;
353  vector<vector<Double_t>> fListJetPhi ;
354  vector<vector<Double_t>> fListJetArea ;
355 
356  vector<Int_t> fListTrueNJets ;
357  vector<vector<Double_t>> fListTrueJetPt ;
358  vector<vector<Double_t>> fListTrueJetPx ;
359  vector<vector<Double_t>> fListTrueJetPy ;
360  vector<vector<Double_t>> fListTrueJetPz ;
361  vector<vector<Double_t>> fListTrueJetEta ;
362  vector<vector<Double_t>> fListTrueJetPhi ;
363  vector<vector<Double_t>> fListTrueJetArea ;
364 
365  private:
368 
370  ClassDef(AliAnalysisTaskConvJet, 5);
372 };
373 #endif
double Double_t
Definition: External.C:58
vector< Double_t > GetVectorJetArea(Int_t Trainconfig)
vector< vector< Double_t > > fListTrueJetPz
vector< Double_t > GetTrueVectorJetPz(Int_t Trainconfig)
vector< Double_t > GetVectorJetEta(Int_t Trainconfig)
vector< vector< Double_t > > fListTrueJetPhi
vector< Double_t > GetVectorJetPt(Int_t Trainconfig)
vector< vector< Double_t > > fListTrueJetEta
vector< Double_t > GetTrueVectorJetEta(Int_t Trainconfig)
vector< vector< Double_t > > fListJetArea
vector< Double_t > GetTrueVectorJetArea(Int_t Trainconfig)
vector< Double_t > GetTrueVectorJetPt(Int_t Trainconfig)
vector< vector< Double_t > > fListTrueJetPx
Container for particles within the EMCAL framework.
void AddTrueandRecJetContainerwithTrainConfig(TString RecJetContainerName, TString TrueJetContainerName, Int_t Trainconfig, Double_t Radius)
Double_t Get_Jet_Radius(Int_t Trainconfig)
Double_t GetTrueNJets(Int_t Trainconfig)
void AddJetContainerwithTrainConfig(TString JetContainerName, Int_t Trainconfig, Double_t Radius)
TPC fiducial acceptance (each eta edge narrowed by jet R)
Definition: AliEmcalJet.h:68
vector< vector< Double_t > > fListJetPt
int Int_t
Definition: External.C:63
vector< vector< Double_t > > fListJetPz
vector< vector< Double_t > > fListJetPy
const char * GetTitle() const
vector< vector< Double_t > > fListTrueJetPy
vector< Double_t > GetTrueVectorJetPy(Int_t Trainconfig)
void SetNumberOfContainers(Int_t NContainers)
vector< vector< Double_t > > fListJetEta
vector< Double_t > GetVectorJetPy(Int_t Trainconfig)
void ConnectParticleContainer(AliParticleContainer *c)
vector< Double_t > GetVectorJetPhi(Int_t Trainconfig)
vector< Double_t > GetTrueVectorJetPx(Int_t Trainconfig)
vector< vector< Double_t > > fListJetPhi
vector< vector< Double_t > > fListTrueJetPt
Float_t GetJetRadius() const
vector< Double_t > GetTrueVectorJetPhi(Int_t Trainconfig)
Double_t GetNJets(Int_t Trainconfig)
Base task in the EMCAL jet framework.
vector< vector< Double_t > > fListJetPx
const char Option_t
Definition: External.C:48
vector< Double_t > GetVectorJetPz(Int_t Trainconfig)
bool Bool_t
Definition: External.C:53
vector< Double_t > GetVectorJetPx(Int_t Trainconfig)
Implementation of a sample jet analysis task.
void ConnectClusterContainer(AliClusterContainer *c)
Container structure for EMCAL clusters.
vector< vector< Double_t > > fListTrueJetArea
Container for jet within the EMCAL jet framework.