ATLAS Offline Software
CheckFlow_New.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // File: Generators/FlowAfterburnber/CheckFlow_New.h
6 // Description:
7 // This is a simple algorithm to histogram particle properties
8 // for diagnosing of flow generation
9 //
10 //************************** THIS PROGRAM ANALYZES FILES WITH FIXED b_imp*********************
11 //
12 // AuthorList:
13 // Andrzej Olszewski: Initial Code February 2006
14 // Andrzej Olszewski: Converted to ROOT histograms July 2007
15 // Soumya Mohapatra : Re-written to check the new Flow implementations (JUNE 2011)
16 
19 //
21 
22 #include "GaudiKernel/SmartDataPtr.h"
23 #include "GaudiKernel/DataSvc.h"
24 
25 #include "GaudiKernel/ITHistSvc.h"
26 
27 #include "TH1.h"
28 #include "TProfile.h"
29 
30 #include "AtlasHepMC/GenEvent.h"
31 #include "AtlasHepMC/GenParticle.h"
32 #include "AtlasHepMC/GenVertex.h"
33 
35 #include <cmath>
36 
38 CheckFlow_New::CheckFlow_New(const std::string& name, ISvcLocator* pSvcLocator) :
39  AthAlgorithm(name, pSvcLocator)
40 {
41 }
42 
43 
46 
47  ATH_MSG_INFO(">>> CheckFlow_New from Initialize");
48 
49  float pt_binvals[n_ptbin+1]={0.0,0.25,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,6.0,8.0,12.0,16.0,20.0,30.0,40.0};
50  float eta_bin_max = 4.0;
51 
52 
53  SmartIF<ITHistSvc> rootHistSvc{Gaudi::svcLocator()->service("THistSvc")};
54  if (!rootHistSvc) {
55  ATH_MSG_ERROR( "Unable to locate THistSvc" );
56  return StatusCode::FAILURE;
57  }
58 
59  std::string histPath = "/FlowOutPut/";
60  char name[100],name1[100];
61  for (int ihar=0;ihar<6;ihar++){
62 
63 // /*
64  sprintf(name,"hist_Psi_%d_true",ihar+1);
65  sprintf(name1,"Truth Psi_{%d} distribution;%dPsi_{%d} Truth;events",ihar+1,ihar+1,ihar+1);
66  m_hist_Psi_n_true [ihar]=new TH1D (name,name1,1000,-M_PI,M_PI);
67  if ( rootHistSvc->regHist(histPath+m_hist_Psi_n_true[ihar]->GetName(),m_hist_Psi_n_true[ihar]).isFailure() ){
68  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_Psi_n_true[ihar]->GetName() << endmsg;
69  }
70  m_hist_Psi_n_true[ihar]->GetXaxis()->CenterTitle();
71  m_hist_Psi_n_true[ihar]->GetYaxis()->CenterTitle();
72 
73  sprintf(name,"hist_Psi_%d_reco",ihar+1);
74  sprintf(name1,"Reconstructed Psi_{%d} distribution;%dPsi_{%d} Reco;events",ihar+1,ihar+1,ihar+1);
75  m_hist_Psi_n_reco [ihar]=new TH1D (name,name1,1000,-M_PI,M_PI);
76  if ( rootHistSvc->regHist(histPath+m_hist_Psi_n_reco[ihar]->GetName(),m_hist_Psi_n_reco[ihar]).isFailure() ){
77  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_Psi_n_reco[ihar]->GetName() << endmsg;
78  }
79  m_hist_Psi_n_reco[ihar]->GetXaxis()->CenterTitle();
80  m_hist_Psi_n_reco[ihar]->GetYaxis()->CenterTitle();
81 
82 
83  for (int ihar2=0;ihar2<6;ihar2++)
84  {
85  int ihar_i=ihar*6+ihar2;
86 
87  sprintf(name,"hist_Psi_corr_true_%d_%d",ihar+1,ihar2+1);
88  sprintf(name1,"true Psi_{%d} -Psi_{%d};%dPsi_{%d} -%dPsi_{%d} ;events",ihar+1,ihar2+1,ihar+1,ihar+1,ihar2+1,ihar2+1);
89  m_hist_psi_corr_true [ihar_i]=new TH1D (name,name1,1000,-2*M_PI,2*M_PI);
90  if ( rootHistSvc->regHist(histPath+m_hist_psi_corr_true[ihar_i]->GetName(),m_hist_psi_corr_true[ihar_i]).isFailure() ){
91  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_psi_corr_true[ihar_i]->GetName() << endmsg;
92  }
93  m_hist_psi_corr_true[ihar_i]->GetXaxis()->CenterTitle();
94  m_hist_psi_corr_true[ihar_i]->GetYaxis()->CenterTitle();
95 
96 
97  sprintf(name,"hist_Psi_corr_reco_%d_%d",ihar+1,ihar2+1);
98  sprintf(name1,"reco Psi_{%d} -Psi_{%d};%dPsi_{%d} -%dPsi_{%d} ;events",ihar+1,ihar2+1,ihar+1,ihar+1,ihar2+1,ihar2+1);
99  m_hist_psi_corr_reco [ihar_i]=new TH1D (name,name1,1000,-2*M_PI,2*M_PI);
100  if ( rootHistSvc->regHist(histPath+m_hist_psi_corr_reco[ihar_i]->GetName(),m_hist_psi_corr_reco[ihar_i]).isFailure() ){
101  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_psi_corr_reco[ihar_i]->GetName() << endmsg;
102  }
103  m_hist_psi_corr_reco[ihar_i]->GetXaxis()->CenterTitle();
104  m_hist_psi_corr_reco[ihar_i]->GetYaxis()->CenterTitle();
105  }
106 
107 
108 
109  //integrated vn event by event
110  sprintf(name,"hist_v%d_ebe",ihar+1);
111  sprintf(name1,"v%d;v%d;events",ihar+1,ihar+1);
112  m_hist_vn_ebe [ihar]=new TH1D (name,name1,1000,-0.5,0.5);
113  if ( rootHistSvc->regHist(histPath+m_hist_vn_ebe[ihar]->GetName(),m_hist_vn_ebe[ihar]).isFailure() ){
114  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_vn_ebe[ihar]->GetName() << endmsg;
115  }
116  m_hist_vn_ebe[ihar]->GetXaxis()->CenterTitle();
117  m_hist_vn_ebe[ihar]->GetYaxis()->CenterTitle();
118 
119  sprintf(name ,"hist_Psi%d_ebe",ihar+1);
120  sprintf(name1,"%d#Delta#Psi;%d(#Psi_{reco}-#Psi_{Truth});events",ihar+1,ihar+1);
121  m_hist_Psi_n_ebe [ihar]=new TH1D (name,name1,1000,-M_PI,M_PI);
122  if ( rootHistSvc->regHist(histPath+m_hist_Psi_n_ebe[ihar]->GetName(),m_hist_Psi_n_ebe[ihar]).isFailure() ){
123  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_Psi_n_ebe[ihar]->GetName() << endmsg;
124  }
125  m_hist_Psi_n_ebe[ihar]->GetXaxis()->CenterTitle();
126  m_hist_Psi_n_ebe[ihar]->GetYaxis()->CenterTitle();
127 
128  sprintf(name ,"hist_Psi%d_ebe_pt",ihar+1);
129  sprintf(name1,"%d#Delta#Psi (pT weighted);%d(#Psi_{reco}-#Psi_{Truth});events",ihar+1,ihar+1);
130  m_hist_Psi_n_ebe_pt [ihar]=new TH1D (name,name1,1000,-M_PI,M_PI);
131  if ( rootHistSvc->regHist(histPath+m_hist_Psi_n_ebe_pt[ihar]->GetName(),m_hist_Psi_n_ebe_pt[ihar]).isFailure() ){
132  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_Psi_n_ebe_pt[ihar]->GetName() << endmsg;
133  }
134  m_hist_Psi_n_ebe_pt[ihar]->GetXaxis()->CenterTitle();
135  m_hist_Psi_n_ebe_pt[ihar]->GetYaxis()->CenterTitle();
136 
137 
138 
139 
140 
141 
142  for(int ieta=0;ieta<n_etabin;ieta++){
143  sprintf(name ,"profile_pt_dep_%d_eta%d" ,ihar+1,ieta);
144  sprintf(name1,"v%d vs pT (eta%d);pT;v%d",ihar+1,ieta,ihar+1);
145  m_profile_pt_dep [ihar][ieta]=new TProfile (name,name1,n_ptbin,pt_binvals);
146  if ( rootHistSvc->regHist(histPath+m_profile_pt_dep[ihar][ieta]->GetName(),m_profile_pt_dep[ihar][ieta]).isFailure() ){
147  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_pt_dep[ihar][ieta]->GetName() << endmsg;
148  }
149  m_profile_pt_dep [ihar][ieta]->GetXaxis()->CenterTitle();
150  m_profile_pt_dep [ihar][ieta]->GetYaxis()->CenterTitle();
151  }
152 
153  for(int ipt=0;ipt<n_ptbin;ipt++){
154  sprintf(name ,"profile_eta_dep_%d_pt%d",ihar+1,ipt);
155  sprintf(name1,"v%d vs #eta; (ipt%d)#eta;v%d",ihar+1,ipt,ihar+1);
156  m_profile_eta_dep [ihar][ipt]=new TProfile (name,name1,2*n_etabin, -eta_bin_max,eta_bin_max);
157  if ( rootHistSvc->regHist(histPath+m_profile_eta_dep[ihar][ipt]->GetName(),m_profile_eta_dep[ihar][ipt]).isFailure() ){
158  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_eta_dep[ihar][ipt]->GetName() << endmsg;
159  }
160  m_profile_eta_dep [ihar][ipt]->GetXaxis()->CenterTitle();
161  m_profile_eta_dep [ihar][ipt]->GetYaxis()->CenterTitle();
162  }
163 
164 
165  for(int ieta=0;ieta<n_etabin;ieta++){
166  sprintf(name ,"profile_pt_dep_reco_%d_eta%d",ihar+1,ieta);
167  sprintf(name1,"v%d vs pT (eta%d);pT;v%d",ihar+1,ieta,ihar+1);
168  m_profile_pt_dep_reco [ihar][ieta]=new TProfile (name,name1,n_ptbin,pt_binvals);
169  if ( rootHistSvc->regHist(histPath+m_profile_pt_dep_reco[ihar][ieta]->GetName(),m_profile_pt_dep_reco[ihar][ieta]).isFailure() ){
170  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_pt_dep_reco[ihar][ieta]->GetName() << endmsg;
171  }
172  m_profile_pt_dep_reco [ihar][ieta]->GetXaxis()->CenterTitle();
173  m_profile_pt_dep_reco [ihar][ieta]->GetYaxis()->CenterTitle();
174  }
175 
176 
177  for(int ipt=0;ipt<n_ptbin;ipt++){
178  sprintf(name ,"profile_eta_dep_reco_%d_pt%d",ihar+1,ipt);
179  sprintf(name1,"v%d vs #eta (pt%d);#eta;v%d",ihar+1,ipt,ihar+1);
180  m_profile_eta_dep_reco [ihar][ipt]=new TProfile (name,name1,2*n_etabin, -eta_bin_max,eta_bin_max);
181  if ( rootHistSvc->regHist(histPath+m_profile_eta_dep_reco[ihar][ipt]->GetName(),m_profile_eta_dep_reco[ihar][ipt]).isFailure() ){
182  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_eta_dep_reco[ihar][ipt]->GetName() << endmsg;
183  }
184  m_profile_eta_dep_reco [ihar][ipt]->GetXaxis()->CenterTitle();
185  m_profile_eta_dep_reco [ihar][ipt]->GetYaxis()->CenterTitle();
186  }
187 
188 
189  }
190  m_profile_resolution=new TProfile("profile_resolution","vn resolution;n;resolution",6, 0.5,6.5);
191  if(rootHistSvc->regHist(histPath+m_profile_resolution->GetName(),m_profile_resolution).isFailure() ){
192  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_resolution->GetName() << endmsg;
193  }
194 
195  msg(MSG::DEBUG) << "Histograms have been booked " << endmsg;
197  return StatusCode::SUCCESS;
198 }
199 
200 
201 
203  msg(MSG::INFO) << ">>> CheckFlow_New from execute" << endmsg;
204 
205  float pt_binvals[n_ptbin+1]={0.0,0.25,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,6.0,8.0,12.0,16.0,20.0,30.0,40.0};
206  float eta_bin_max = 4.0;
207 
209  float b = hijing_pars->get_b();
210  float Psi_n[6],Psi_n_reco[6];
211  float Psi_n_reco_pos[6],Psi_n_reco_neg[6];
212  for(int ihar=0;ihar<6;ihar++){Psi_n[ihar]=hijing_pars->get_psi(ihar+1);}
213  msg(MSG::INFO)<<"SOUMYA "<<hijing_pars->get_psi(1)<<" "<<hijing_pars->get_psi(2)<<" "<<hijing_pars->get_psi(3)
214  <<hijing_pars->get_psi(4)<<" "<<hijing_pars->get_psi(5)<<" "<<hijing_pars->get_psi(6)<<" "<<b << endmsg;
215 
216 
217  // Check cut on impact parameter b
218  if(b<m_bcut_min || b>m_bcut_max) return StatusCode::SUCCESS;
219 
220 
221  double ngenerated_pos = 0,ngenerated_pt_pos=0;
222  double cos_n_pos[6],sin_n_pos[6],cos_n_pt_pos[6],sin_n_pt_pos[6];
223  double ngenerated_neg = 0,ngenerated_pt_neg=0;
224  double cos_n_neg[6],sin_n_neg[6],cos_n_pt_neg[6],sin_n_pt_neg[6];
225  for(int ihar=0;ihar<6;ihar++){cos_n_pos[ihar]=0;sin_n_pos[ihar]=0; cos_n_pt_pos[ihar]=0;sin_n_pt_pos[ihar]=0;
226  cos_n_neg[ihar]=0;sin_n_neg[ihar]=0; cos_n_pt_neg[ihar]=0;sin_n_pt_neg[ihar]=0;}
227 
228  // Iterate over all MC particles
229  std::vector<HepMC::ConstGenParticlePtr> particles;
231  if (stat.isFailure()) {
232  msg(MSG::ERROR) << "Could not find " << m_key << endmsg;
233  return stat;
234  }
235  for (auto pitr: particles) {
236  int pid = pitr->pdg_id();
237  double pt = pitr->momentum().perp();
238  double rapid = pitr->momentum().pseudoRapidity();
239  double phi = pitr->momentum().phi();
240  msg(MSG::DEBUG)
241  << " PID = " << pid << " Status = " << pitr->status()
242  << " Eta = " << rapid << " Phi = " << phi<< endmsg;
243 
244  if( (std::abs(rapid) >= m_rapcut_min) && (std::abs(rapid) <= m_rapcut_max) &&
245  (std::abs(pt) >= m_ptcut_min) && (std::abs(pt) <= m_ptcut_max) ) {
246 
247  for(int ihar=0;ihar<6;ihar++){
248  float temp=(ihar+1)*(phi-Psi_n[ihar]);
249 
250  int ieta= (int)(std::abs(rapid)*n_etabin/eta_bin_max);
251  if(ieta>=0 && ieta<n_etabin) m_profile_pt_dep [ihar][ieta]->Fill(pt/1000,cos(temp));
252 
253 
254  float temp_pt=pt/1000;
255  for(int ipt=0;ipt<n_ptbin;ipt++){
256  if(temp_pt<pt_binvals[ipt+1]){
257  m_profile_eta_dep[ihar][ipt]->Fill(rapid ,cos(temp));
258  break;
259  }
260  }
261 
262  if( rapid >3.2 && rapid< 4.9){
263  cos_n_pos[ihar]+=std::cos( (ihar+1)*phi);
264  sin_n_pos[ihar]+=std::sin( (ihar+1)*phi);
265  ngenerated_pos++;
266 
267  cos_n_pt_pos[ihar]+=pt*std::cos( (ihar+1)*phi);
268  sin_n_pt_pos[ihar]+=pt*std::sin( (ihar+1)*phi);
269  ngenerated_pt_pos +=pt;
270  }
271  if( rapid <-3.2 && rapid >-4.9){
272  cos_n_neg[ihar]+=std::cos( (ihar+1)*phi);
273  sin_n_neg[ihar]+=std::sin( (ihar+1)*phi);
274  ngenerated_neg++;
275 
276  cos_n_pt_neg[ihar]+=pt*std::cos( (ihar+1)*phi);
277  sin_n_pt_neg[ihar]+=pt*std::sin( (ihar+1)*phi);
278  ngenerated_pt_neg +=pt;
279  }
280 
281  }
282  }
283  }
284 
285 
286 // Calculate the event by event vn and also the reconstructed Psi_n angles
287 // Also make correlation histos between Psi_n_truth and Psi_n_reco
288  float cos_n[6],sin_n[6],cos_n_pt[6],sin_n_pt[6];
289  for(int ihar=0;ihar<6;ihar++){
290  cos_n[ihar] = ( cos_n_pos[ihar]+ cos_n_neg[ihar] ) / (ngenerated_pos+ngenerated_neg);
291  sin_n[ihar] = ( sin_n_pos[ihar]+ sin_n_neg[ihar] ) / (ngenerated_pos+ngenerated_neg);
292 
293  float psi_reco=std::atan2(sin_n[ihar],cos_n[ihar])/(ihar+1);
294  m_hist_Psi_n_ebe[ihar]->Fill( (ihar+1)*(psi_reco-Psi_n[ihar]) );
295  m_hist_vn_ebe [ihar]->Fill(std::sqrt(cos_n[ihar]*cos_n[ihar] +sin_n[ihar]*sin_n[ihar] ));
296 
297  Psi_n_reco_pos[ihar]=std::atan2(sin_n_pos[ihar],cos_n_pos[ihar])/ (ihar+1);
298  Psi_n_reco_neg[ihar]=std::atan2(sin_n_neg[ihar],cos_n_neg[ihar])/ (ihar+1);
299  Psi_n_reco [ihar]=psi_reco;
300 
301 
302  cos_n_pt[ihar] = ( cos_n_pt_pos[ihar]+ cos_n_pt_neg[ihar] ) / (ngenerated_pt_pos+ngenerated_pt_neg);
303  sin_n_pt[ihar] = ( sin_n_pt_pos[ihar]+ sin_n_pt_neg[ihar] ) / (ngenerated_pt_pos+ngenerated_pt_neg);
304 
305  psi_reco=std::atan2(sin_n_pt[ihar],cos_n_pt[ihar])/(ihar+1);
306  m_hist_Psi_n_ebe_pt[ihar]->Fill( (ihar+1)*(psi_reco-Psi_n[ihar]) );
307  }
308 
309 
310 // Make the plots for the correlation between Psi_n truth (for different n) (same for Psi_n reco)
311  for(int ihar=0;ihar<6;ihar++){
312  m_hist_Psi_n_true[ihar]->Fill((ihar+1)*Psi_n[ihar]);
313  m_hist_Psi_n_reco[ihar]->Fill((ihar+1)*Psi_n_reco[ihar]);
314 
315  float psi1,psi2;
316  for(int ihar2=0;ihar2<6;ihar2++){
317  psi1=(ihar+1)*Psi_n[ihar];psi2=(ihar2+1)*Psi_n[ihar2];
318  m_hist_psi_corr_true[ihar*6+ihar2]->Fill( std::atan2( std::sin(psi1-psi2),std::cos(psi1-psi2) ) );
319 
320  psi1=(ihar+1)*Psi_n_reco[ihar];psi2=(ihar2+1)*Psi_n_reco[ihar2];
321  m_hist_psi_corr_reco[ihar*6+ihar2]->Fill( std::atan2( std::sin(psi1-psi2),std::cos(psi1-psi2) ) );
322  }
323  }
324 
325 
326 
327 
328 
329 // calculate the pt and eta dependence using the Psi_reco angles also fill the resolution TProfile
330  for(int ihar=0;ihar<6;ihar++){
331  m_profile_resolution->Fill( ihar+1, cos( (ihar+1) * (Psi_n_reco_pos[ihar] - Psi_n_reco_neg[ihar]) ) );
332  }
333  for (auto pitr: particles) {
334  double pt = pitr->momentum().perp();
335  double rapid = pitr->momentum().pseudoRapidity();
336  double phi = pitr->momentum().phi();
337  if( (std::abs(rapid) >= m_rapcut_min) && (std::abs(rapid) <= m_rapcut_max) &&
338  (std::abs(pt) >= m_ptcut_min) && (std::abs(pt) <= m_ptcut_max) ) {
339 
340  for(int ihar=0;ihar<6;ihar++){
341  float temp=(ihar+1)*(phi-Psi_n_reco_pos[ihar]);
342  if(rapid>0) temp=(ihar+1)*(phi-Psi_n_reco_neg[ihar]);
343 
344 
345  int ieta= (int)(std::abs(rapid)*n_etabin/eta_bin_max);
346  if(ieta>=0 && ieta<n_etabin) m_profile_pt_dep_reco [ihar][ieta]->Fill(pt/1000,std::cos(temp));
347 
348  float temp_pt=pt/1000;
349  for(int ipt=0;ipt<n_ptbin;ipt++){
350  if(temp_pt<pt_binvals[ipt+1]){
351  m_profile_eta_dep_reco[ihar][ipt]->Fill(rapid ,cos(temp));
352  break;
353  }
354  }
355  }
356  }
357  }
358 
359 
360 
361 
362 
363  return StatusCode::SUCCESS;
364 }
365 
367  msg(MSG::INFO) << ">>> CheckFlow_New from finalize" << endmsg;
368 
369  return StatusCode::SUCCESS;
370 }
371 
GenAccessIO.h
CheckFlow_New::m_profile_eta_dep_reco
TProfile * m_profile_eta_dep_reco[6][n_ptbin]
Definition: CheckFlow_New.h:66
CheckFlow_New::m_tesIO
TruthHelper::GenAccessIO * m_tesIO
Definition: CheckFlow_New.h:71
GenEvent.h
ReadCellNoiseFromCool.name1
name1
Definition: ReadCellNoiseFromCool.py:233
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
CheckFlow_New.h
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
HijingEventParams.h
CheckFlow_New::m_hist_psi_corr_reco
TH1D * m_hist_psi_corr_reco[36]
Definition: CheckFlow_New.h:57
CheckFlow_New::m_ptcut_max
DoubleProperty m_ptcut_max
Definition: CheckFlow_New.h:44
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
CheckFlow_New::m_ptcut_min
DoubleProperty m_ptcut_min
Definition: CheckFlow_New.h:43
GenVertex.h
test_pyathena.pt
pt
Definition: test_pyathena.py:11
M_PI
#define M_PI
Definition: ActiveFraction.h:11
CheckFlow_New::m_hijingKey
SG::ReadHandleKey< HijingEventParams > m_hijingKey
Definition: CheckFlow_New.h:70
CheckFlow_New::m_profile_resolution
TProfile * m_profile_resolution
Definition: CheckFlow_New.h:68
CheckFlow_New::execute
virtual StatusCode execute() override
Definition: CheckFlow_New.cxx:202
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
GenParticle.h
CheckFlow_New::m_hist_Psi_n_ebe
TH1D * m_hist_Psi_n_ebe[6]
Definition: CheckFlow_New.h:59
CheckFlow_New::m_hist_Psi_n_true
TH1D * m_hist_Psi_n_true[6]
Definition: CheckFlow_New.h:54
CheckFlow_New::m_profile_pt_dep_reco
TProfile * m_profile_pt_dep_reco[6][n_etabin]
Definition: CheckFlow_New.h:65
CheckFlow_New::m_hist_Psi_n_ebe_pt
TH1D * m_hist_Psi_n_ebe_pt[6]
Definition: CheckFlow_New.h:60
CheckFlow_New::m_profile_pt_dep
TProfile * m_profile_pt_dep[6][n_etabin]
Definition: CheckFlow_New.h:63
CheckFlow_New::finalize
virtual StatusCode finalize() override
Definition: CheckFlow_New.cxx:366
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
McEventCollection.h
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CheckFlow_New::n_ptbin
@ n_ptbin
Definition: CheckFlow_New.h:49
ParticleGun_EoverP_Config.pid
pid
Definition: ParticleGun_EoverP_Config.py:62
CheckFlow_New::initialize
virtual StatusCode initialize() override
Definition: CheckFlow_New.cxx:44
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TruthHelper::GenAccessIO::getMC
StatusCode getMC(MCParticleCollection &mcParticles, const bool ifgen=false, const std::string &key="GEN_EVENT") const
Definition: Generators/FlowAfterburner/FlowAfterburner/GenAccessIO.h:29
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
beamspotman.stat
stat
Definition: beamspotman.py:262
AthAlgorithm
Definition: AthAlgorithm.h:47
CheckFlow_New::m_key
StringProperty m_key
Definition: CheckFlow_New.h:38
CheckFlow_New::m_profile_eta_dep
TProfile * m_profile_eta_dep[6][n_ptbin]
Definition: CheckFlow_New.h:64
CheckFlow_New::m_hist_vn_ebe
TH1D * m_hist_vn_ebe[6]
Definition: CheckFlow_New.h:61
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
CheckFlow_New::m_hist_psi_corr_true
TH1D * m_hist_psi_corr_true[36]
Definition: CheckFlow_New.h:56
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:76
TruthHelper::GenAccessIO
Definition: Generators/FlowAfterburner/FlowAfterburner/GenAccessIO.h:21
CheckFlow_New::m_hist_Psi_n_reco
TH1D * m_hist_Psi_n_reco[6]
Definition: CheckFlow_New.h:55
CheckFlow_New::m_bcut_max
DoubleProperty m_bcut_max
Definition: CheckFlow_New.h:42
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:15
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
CheckFlow_New::n_etabin
@ n_etabin
Definition: CheckFlow_New.h:50
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
CheckFlow_New.CheckFlow_New
CheckFlow_New
Definition: CheckFlow_New.py:54
CheckFlow_New::m_rapcut_min
DoubleProperty m_rapcut_min
Definition: CheckFlow_New.h:45
CheckFlow_New::m_rapcut_max
DoubleProperty m_rapcut_max
Definition: CheckFlow_New.h:46