ATLAS Offline Software
CheckFlow_New.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 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 
20 #include "GaudiKernel/SmartDataPtr.h"
21 #include "GaudiKernel/DataSvc.h"
22 
23 #include "GaudiKernel/ITHistSvc.h"
24 
25 #include "TH1D.h"
26 #include "TProfile.h"
27 
28 #include "AtlasHepMC/GenEvent.h"
29 #include "AtlasHepMC/GenParticle.h"
30 #include "AtlasHepMC/GenVertex.h"
31 
33 
35 CheckFlow_New::CheckFlow_New(const std::string& name, ISvcLocator* pSvcLocator) :
36  AthAlgorithm(name, pSvcLocator)
37 {
38  //Declare the algorithm's properties
39  declareProperty("McEventKey", m_key="FLOW_EVENT");
40  declareProperty("HistogramFlag", m_produceHistogram = true );
41  declareProperty("ImpactCutMin", m_bcut_min = 0 );
42  declareProperty("ImpactCutMax", m_bcut_max = 99 );
43  declareProperty("PtCutMin", m_ptcut_min = 0 );
44  declareProperty("PtCutMax", m_ptcut_max = 999999 );
45  declareProperty("RapidityCutMin", m_rapcut_min = 0 );
46  declareProperty("RapidityCutMax", m_rapcut_max = 5.5 );
47 
48  m_profile_resolution=0;
49 
50  m_sgSvc = 0;
51  m_tesIO = 0;
52  m_thistSvc = 0;
53 
54  for ( int i = 0; i< 6; i++ ){
55  m_hist_Psi_n_true[i] = 0;
56  m_hist_Psi_n_reco[i] = 0;
57  m_hist_Psi_n_ebe[i] = 0;
58  m_hist_Psi_n_ebe_pt[i] = 0;
59  m_hist_vn_ebe[i] = 0;
60  }
61 
62  for ( int i = 0; i< 36; i++ ){
63  m_hist_psi_corr_true[i] = 0;
64  m_hist_psi_corr_reco[i] = 0;
65  }
66 
67 
68 }
69 
70 
71 
72 
73 
75  StatusCode result = StatusCode::SUCCESS;
76 
77  msg(MSG::INFO) << ">>> CheckFlow_New from Initialize" << endmsg;
78 
79  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};
80  float eta_bin_max = 4.0;
81 
82 
83  StatusCode sc = service("StoreGateSvc", m_sgSvc);
84  if (sc.isFailure()) {
85  msg(MSG::ERROR) << "Could not find StoreGateSvc" << endmsg;
86  return sc;
87  }
88 
89 
90  ITHistSvc *rootHistSvc;
91  if (!service("THistSvc", rootHistSvc, true).isSuccess()) {
92  msg(MSG::ERROR) << "Unable to locate THistSvc" << endmsg;
93  return StatusCode::FAILURE;
94  }
95 
96  std::string StreamAndPath="/FlowOutPut/";
97  std::string histPath = StreamAndPath;
98  char name[100],name1[100];
99  for (int ihar=0;ihar<6;ihar++){
100 
101 // /*
102  sprintf(name,"hist_Psi_%d_true",ihar+1);
103  sprintf(name1,"Truth Psi_{%d} distribution;%dPsi_{%d} Truth;events",ihar+1,ihar+1,ihar+1);
104  m_hist_Psi_n_true [ihar]=new TH1D (name,name1,1000,-M_PI,M_PI);
105  if ( rootHistSvc->regHist(histPath+m_hist_Psi_n_true[ihar]->GetName(),m_hist_Psi_n_true[ihar]).isFailure() ){
106  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_Psi_n_true[ihar]->GetName() << endmsg;
107  }
108  m_hist_Psi_n_true[ihar]->GetXaxis()->CenterTitle();
109  m_hist_Psi_n_true[ihar]->GetYaxis()->CenterTitle();
110 
111  sprintf(name,"hist_Psi_%d_reco",ihar+1);
112  sprintf(name1,"Reconstructed Psi_{%d} distribution;%dPsi_{%d} Reco;events",ihar+1,ihar+1,ihar+1);
113  m_hist_Psi_n_reco [ihar]=new TH1D (name,name1,1000,-M_PI,M_PI);
114  if ( rootHistSvc->regHist(histPath+m_hist_Psi_n_reco[ihar]->GetName(),m_hist_Psi_n_reco[ihar]).isFailure() ){
115  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_Psi_n_reco[ihar]->GetName() << endmsg;
116  }
117  m_hist_Psi_n_reco[ihar]->GetXaxis()->CenterTitle();
118  m_hist_Psi_n_reco[ihar]->GetYaxis()->CenterTitle();
119 
120 
121  for (int ihar2=0;ihar2<6;ihar2++)
122  {
123  int ihar_i=ihar*6+ihar2;
124 
125  sprintf(name,"hist_Psi_corr_true_%d_%d",ihar+1,ihar2+1);
126  sprintf(name1,"true Psi_{%d} -Psi_{%d};%dPsi_{%d} -%dPsi_{%d} ;events",ihar+1,ihar2+1,ihar+1,ihar+1,ihar2+1,ihar2+1);
127  m_hist_psi_corr_true [ihar_i]=new TH1D (name,name1,1000,-2*M_PI,2*M_PI);
128  if ( rootHistSvc->regHist(histPath+m_hist_psi_corr_true[ihar_i]->GetName(),m_hist_psi_corr_true[ihar_i]).isFailure() ){
129  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_psi_corr_true[ihar_i]->GetName() << endmsg;
130  }
131  m_hist_psi_corr_true[ihar_i]->GetXaxis()->CenterTitle();
132  m_hist_psi_corr_true[ihar_i]->GetYaxis()->CenterTitle();
133 
134 
135  sprintf(name,"hist_Psi_corr_reco_%d_%d",ihar+1,ihar2+1);
136  sprintf(name1,"reco Psi_{%d} -Psi_{%d};%dPsi_{%d} -%dPsi_{%d} ;events",ihar+1,ihar2+1,ihar+1,ihar+1,ihar2+1,ihar2+1);
137  m_hist_psi_corr_reco [ihar_i]=new TH1D (name,name1,1000,-2*M_PI,2*M_PI);
138  if ( rootHistSvc->regHist(histPath+m_hist_psi_corr_reco[ihar_i]->GetName(),m_hist_psi_corr_reco[ihar_i]).isFailure() ){
139  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_psi_corr_reco[ihar_i]->GetName() << endmsg;
140  }
141  m_hist_psi_corr_reco[ihar_i]->GetXaxis()->CenterTitle();
142  m_hist_psi_corr_reco[ihar_i]->GetYaxis()->CenterTitle();
143  }
144 
145 
146 
147  //integrated vn event by event
148  sprintf(name,"hist_v%d_ebe",ihar+1);
149  sprintf(name1,"v%d;v%d;events",ihar+1,ihar+1);
150  m_hist_vn_ebe [ihar]=new TH1D (name,name1,1000,-0.5,0.5);
151  if ( rootHistSvc->regHist(histPath+m_hist_vn_ebe[ihar]->GetName(),m_hist_vn_ebe[ihar]).isFailure() ){
152  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_vn_ebe[ihar]->GetName() << endmsg;
153  }
154  m_hist_vn_ebe[ihar]->GetXaxis()->CenterTitle();
155  m_hist_vn_ebe[ihar]->GetYaxis()->CenterTitle();
156 
157  sprintf(name ,"hist_Psi%d_ebe",ihar+1);
158  sprintf(name1,"%d#Delta#Psi;%d(#Psi_{reco}-#Psi_{Truth});events",ihar+1,ihar+1);
159  m_hist_Psi_n_ebe [ihar]=new TH1D (name,name1,1000,-M_PI,M_PI);
160  if ( rootHistSvc->regHist(histPath+m_hist_Psi_n_ebe[ihar]->GetName(),m_hist_Psi_n_ebe[ihar]).isFailure() ){
161  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_Psi_n_ebe[ihar]->GetName() << endmsg;
162  }
163  m_hist_Psi_n_ebe[ihar]->GetXaxis()->CenterTitle();
164  m_hist_Psi_n_ebe[ihar]->GetYaxis()->CenterTitle();
165 
166  sprintf(name ,"hist_Psi%d_ebe_pt",ihar+1);
167  sprintf(name1,"%d#Delta#Psi (pT weighted);%d(#Psi_{reco}-#Psi_{Truth});events",ihar+1,ihar+1);
168  m_hist_Psi_n_ebe_pt [ihar]=new TH1D (name,name1,1000,-M_PI,M_PI);
169  if ( rootHistSvc->regHist(histPath+m_hist_Psi_n_ebe_pt[ihar]->GetName(),m_hist_Psi_n_ebe_pt[ihar]).isFailure() ){
170  msg(MSG::WARNING) << "Can't book "<< histPath+m_hist_Psi_n_ebe_pt[ihar]->GetName() << endmsg;
171  }
172  m_hist_Psi_n_ebe_pt[ihar]->GetXaxis()->CenterTitle();
173  m_hist_Psi_n_ebe_pt[ihar]->GetYaxis()->CenterTitle();
174 
175 
176 
177 
178 
179 
180  for(int ieta=0;ieta<n_etabin;ieta++){
181  sprintf(name ,"profile_pt_dep_%d_eta%d" ,ihar+1,ieta);
182  sprintf(name1,"v%d vs pT (eta%d);pT;v%d",ihar+1,ieta,ihar+1);
183  m_profile_pt_dep [ihar][ieta]=new TProfile (name,name1,n_ptbin,pt_binvals);
184  if ( rootHistSvc->regHist(histPath+m_profile_pt_dep[ihar][ieta]->GetName(),m_profile_pt_dep[ihar][ieta]).isFailure() ){
185  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_pt_dep[ihar][ieta]->GetName() << endmsg;
186  }
187  m_profile_pt_dep [ihar][ieta]->GetXaxis()->CenterTitle();
188  m_profile_pt_dep [ihar][ieta]->GetYaxis()->CenterTitle();
189  }
190 
191  for(int ipt=0;ipt<n_ptbin;ipt++){
192  sprintf(name ,"profile_eta_dep_%d_pt%d",ihar+1,ipt);
193  sprintf(name1,"v%d vs #eta; (ipt%d)#eta;v%d",ihar+1,ipt,ihar+1);
194  m_profile_eta_dep [ihar][ipt]=new TProfile (name,name1,2*n_etabin, -eta_bin_max,eta_bin_max);
195  if ( rootHistSvc->regHist(histPath+m_profile_eta_dep[ihar][ipt]->GetName(),m_profile_eta_dep[ihar][ipt]).isFailure() ){
196  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_eta_dep[ihar][ipt]->GetName() << endmsg;
197  }
198  m_profile_eta_dep [ihar][ipt]->GetXaxis()->CenterTitle();
199  m_profile_eta_dep [ihar][ipt]->GetYaxis()->CenterTitle();
200  }
201 
202 
203  for(int ieta=0;ieta<n_etabin;ieta++){
204  sprintf(name ,"profile_pt_dep_reco_%d_eta%d",ihar+1,ieta);
205  sprintf(name1,"v%d vs pT (eta%d);pT;v%d",ihar+1,ieta,ihar+1);
206  m_profile_pt_dep_reco [ihar][ieta]=new TProfile (name,name1,n_ptbin,pt_binvals);
207  if ( rootHistSvc->regHist(histPath+m_profile_pt_dep_reco[ihar][ieta]->GetName(),m_profile_pt_dep_reco[ihar][ieta]).isFailure() ){
208  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_pt_dep_reco[ihar][ieta]->GetName() << endmsg;
209  }
210  m_profile_pt_dep_reco [ihar][ieta]->GetXaxis()->CenterTitle();
211  m_profile_pt_dep_reco [ihar][ieta]->GetYaxis()->CenterTitle();
212  }
213 
214 
215  for(int ipt=0;ipt<n_ptbin;ipt++){
216  sprintf(name ,"profile_eta_dep_reco_%d_pt%d",ihar+1,ipt);
217  sprintf(name1,"v%d vs #eta (pt%d);#eta;v%d",ihar+1,ipt,ihar+1);
218  m_profile_eta_dep_reco [ihar][ipt]=new TProfile (name,name1,2*n_etabin, -eta_bin_max,eta_bin_max);
219  if ( rootHistSvc->regHist(histPath+m_profile_eta_dep_reco[ihar][ipt]->GetName(),m_profile_eta_dep_reco[ihar][ipt]).isFailure() ){
220  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_eta_dep_reco[ihar][ipt]->GetName() << endmsg;
221  }
222  m_profile_eta_dep_reco [ihar][ipt]->GetXaxis()->CenterTitle();
223  m_profile_eta_dep_reco [ihar][ipt]->GetYaxis()->CenterTitle();
224  }
225 
226 
227  }
228  m_profile_resolution=new TProfile("profile_resolution","vn resolution;n;resolution",6, 0.5,6.5);
229  if(rootHistSvc->regHist(histPath+m_profile_resolution->GetName(),m_profile_resolution).isFailure() ){
230  msg(MSG::WARNING) << "Can't book "<< histPath+m_profile_resolution->GetName() << endmsg;
231  }
232 
233  msg(MSG::DEBUG) << "Histograms have been booked " << endmsg;
235  return result;
236 }
237 
238 
239 
241  msg(MSG::INFO) << ">>> CheckFlow_New from execute" << endmsg;
242 
243  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};
244  float eta_bin_max = 4.0;
245 
246  const HijingEventParams *hijing_pars;
247 
248 
249  if ( m_sgSvc->retrieve(hijing_pars, "Hijing_event_params").isFailure() ) {
250  msg(MSG::ERROR) << "Could not retrieve Hijing_event_params"<< endmsg;
251  return StatusCode::FAILURE;
252  }
253 
254  float b = hijing_pars->get_b();
255  float Psi_n[6],Psi_n_reco[6];
256  float Psi_n_reco_pos[6],Psi_n_reco_neg[6];
257  for(int ihar=0;ihar<6;ihar++){Psi_n[ihar]=hijing_pars->get_psi(ihar+1);}
258  msg(MSG::INFO)<<"SOUMYA "<<hijing_pars->get_psi(1)<<" "<<hijing_pars->get_psi(2)<<" "<<hijing_pars->get_psi(3)
259  <<hijing_pars->get_psi(4)<<" "<<hijing_pars->get_psi(5)<<" "<<hijing_pars->get_psi(6)<<" "<<b << endmsg;
260 
261 
262  // Check cut on impact parameter b
263  if(b<m_bcut_min || b>m_bcut_max) return StatusCode::SUCCESS;
264 
265 
266  double ngenerated_pos = 0,ngenerated_pt_pos=0;
267  double cos_n_pos[6],sin_n_pos[6],cos_n_pt_pos[6],sin_n_pt_pos[6];
268  double ngenerated_neg = 0,ngenerated_pt_neg=0;
269  double cos_n_neg[6],sin_n_neg[6],cos_n_pt_neg[6],sin_n_pt_neg[6];
270  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;
271  cos_n_neg[ihar]=0;sin_n_neg[ihar]=0; cos_n_pt_neg[ihar]=0;sin_n_pt_neg[ihar]=0;}
272 
273  // Iterate over all MC particles
274  std::vector<HepMC::ConstGenParticlePtr> particles;
276  if (stat.isFailure()) {
277  msg(MSG::ERROR) << "Could not find " << m_key << endmsg;
278  return stat;
279  }
280  for (auto pitr: particles) {
281  int pid = pitr->pdg_id();
282  double pt = pitr->momentum().perp();
283  double rapid = pitr->momentum().pseudoRapidity();
284  double phi = pitr->momentum().phi();
285  msg(MSG::DEBUG)
286  << " PID = " << pid << " Status = " << pitr->status()
287  << " Eta = " << rapid << " Phi = " << phi<< endmsg;
288 
289  if( (std::abs(rapid) >= m_rapcut_min) && (std::abs(rapid) <= m_rapcut_max) &&
290  (std::abs(pt) >= m_ptcut_min) && (std::abs(pt) <= m_ptcut_max) ) {
291 
292  for(int ihar=0;ihar<6;ihar++){
293  float temp=(ihar+1)*(phi-Psi_n[ihar]);
294 
295  int ieta= (int)(std::abs(rapid)*n_etabin/eta_bin_max);
296  if(ieta>=0 && ieta<n_etabin) m_profile_pt_dep [ihar][ieta]->Fill(pt/1000,cos(temp));
297 
298 
299  float temp_pt=pt/1000;
300  for(int ipt=0;ipt<n_ptbin;ipt++){
301  if(temp_pt<pt_binvals[ipt+1]){
302  m_profile_eta_dep[ihar][ipt]->Fill(rapid ,cos(temp));
303  break;
304  }
305  }
306 
307  if( rapid >3.2 && rapid< 4.9){
308  cos_n_pos[ihar]+=std::cos( (ihar+1)*phi);
309  sin_n_pos[ihar]+=std::sin( (ihar+1)*phi);
310  ngenerated_pos++;
311 
312  cos_n_pt_pos[ihar]+=pt*std::cos( (ihar+1)*phi);
313  sin_n_pt_pos[ihar]+=pt*std::sin( (ihar+1)*phi);
314  ngenerated_pt_pos +=pt;
315  }
316  if( rapid <-3.2 && rapid >-4.9){
317  cos_n_neg[ihar]+=std::cos( (ihar+1)*phi);
318  sin_n_neg[ihar]+=std::sin( (ihar+1)*phi);
319  ngenerated_neg++;
320 
321  cos_n_pt_neg[ihar]+=pt*std::cos( (ihar+1)*phi);
322  sin_n_pt_neg[ihar]+=pt*std::sin( (ihar+1)*phi);
323  ngenerated_pt_neg +=pt;
324  }
325 
326  }
327  }
328  }
329 
330 
331 // Calculate the event by event vn and also the reconstructed Psi_n angles
332 // Also make correlation histos between Psi_n_truth and Psi_n_reco
333  float cos_n[6],sin_n[6],cos_n_pt[6],sin_n_pt[6];
334  for(int ihar=0;ihar<6;ihar++){
335  cos_n[ihar] = ( cos_n_pos[ihar]+ cos_n_neg[ihar] ) / (ngenerated_pos+ngenerated_neg);
336  sin_n[ihar] = ( sin_n_pos[ihar]+ sin_n_neg[ihar] ) / (ngenerated_pos+ngenerated_neg);
337 
338  float psi_reco=std::atan2(sin_n[ihar],cos_n[ihar])/(ihar+1);
339  m_hist_Psi_n_ebe[ihar]->Fill( (ihar+1)*(psi_reco-Psi_n[ihar]) );
340  m_hist_vn_ebe [ihar]->Fill(std::sqrt(cos_n[ihar]*cos_n[ihar] +sin_n[ihar]*sin_n[ihar] ));
341 
342  Psi_n_reco_pos[ihar]=std::atan2(sin_n_pos[ihar],cos_n_pos[ihar])/ (ihar+1);
343  Psi_n_reco_neg[ihar]=std::atan2(sin_n_neg[ihar],cos_n_neg[ihar])/ (ihar+1);
344  Psi_n_reco [ihar]=psi_reco;
345 
346 
347  cos_n_pt[ihar] = ( cos_n_pt_pos[ihar]+ cos_n_pt_neg[ihar] ) / (ngenerated_pt_pos+ngenerated_pt_neg);
348  sin_n_pt[ihar] = ( sin_n_pt_pos[ihar]+ sin_n_pt_neg[ihar] ) / (ngenerated_pt_pos+ngenerated_pt_neg);
349 
350  psi_reco=std::atan2(sin_n_pt[ihar],cos_n_pt[ihar])/(ihar+1);
351  m_hist_Psi_n_ebe_pt[ihar]->Fill( (ihar+1)*(psi_reco-Psi_n[ihar]) );
352  }
353 
354 
355 // Make the plots for the correlation between Psi_n truth (for different n) (same for Psi_n reco)
356  for(int ihar=0;ihar<6;ihar++){
357  m_hist_Psi_n_true[ihar]->Fill((ihar+1)*Psi_n[ihar]);
358  m_hist_Psi_n_reco[ihar]->Fill((ihar+1)*Psi_n_reco[ihar]);
359 
360  float psi1,psi2;
361  for(int ihar2=0;ihar2<6;ihar2++){
362  psi1=(ihar+1)*Psi_n[ihar];psi2=(ihar2+1)*Psi_n[ihar2];
363  m_hist_psi_corr_true[ihar*6+ihar2]->Fill( std::atan2( std::sin(psi1-psi2),std::cos(psi1-psi2) ) );
364 
365  psi1=(ihar+1)*Psi_n_reco[ihar];psi2=(ihar2+1)*Psi_n_reco[ihar2];
366  m_hist_psi_corr_reco[ihar*6+ihar2]->Fill( std::atan2( std::sin(psi1-psi2),std::cos(psi1-psi2) ) );
367  }
368  }
369 
370 
371 
372 
373 
374 // calculate the pt and eta dependence using the Psi_reco angles also fill the resolution TProfile
375  for(int ihar=0;ihar<6;ihar++){
376  m_profile_resolution->Fill( ihar+1, cos( (ihar+1) * (Psi_n_reco_pos[ihar] - Psi_n_reco_neg[ihar]) ) );
377  }
378  for (auto pitr: particles) {
379  double pt = pitr->momentum().perp();
380  double rapid = pitr->momentum().pseudoRapidity();
381  double phi = pitr->momentum().phi();
382  if( (std::abs(rapid) >= m_rapcut_min) && (std::abs(rapid) <= m_rapcut_max) &&
383  (std::abs(pt) >= m_ptcut_min) && (std::abs(pt) <= m_ptcut_max) ) {
384 
385  for(int ihar=0;ihar<6;ihar++){
386  float temp=(ihar+1)*(phi-Psi_n_reco_pos[ihar]);
387  if(rapid>0) temp=(ihar+1)*(phi-Psi_n_reco_neg[ihar]);
388 
389 
390  int ieta= (int)(std::abs(rapid)*n_etabin/eta_bin_max);
391  if(ieta>=0 && ieta<n_etabin) m_profile_pt_dep_reco [ihar][ieta]->Fill(pt/1000,std::cos(temp));
392 
393  float temp_pt=pt/1000;
394  for(int ipt=0;ipt<n_ptbin;ipt++){
395  if(temp_pt<pt_binvals[ipt+1]){
396  m_profile_eta_dep_reco[ihar][ipt]->Fill(rapid ,cos(temp));
397  break;
398  }
399  }
400  }
401  }
402  }
403 
404 
405 
406 
407 
408  return StatusCode::SUCCESS;
409 }
410 
412  msg(MSG::INFO) << ">>> CheckFlow_New from finalize" << endmsg;
413 
414  return StatusCode::SUCCESS;
415 }
416 
CheckFlow_New::m_profile_eta_dep_reco
TProfile * m_profile_eta_dep_reco[6][n_ptbin]
Definition: CheckFlow_New.h:65
CheckFlow_New::m_tesIO
TruthHelper::GenAccessIO * m_tesIO
Definition: CheckFlow_New.h:71
CheckFlow_New::m_key
std::string m_key
Definition: CheckFlow_New.h:37
GenEvent.h
ReadCellNoiseFromCool.name1
name1
Definition: ReadCellNoiseFromCool.py:233
get_generator_info.result
result
Definition: get_generator_info.py:21
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
CheckFlow_New.h
HijingEventParams.h
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
CheckFlow_New::m_hist_psi_corr_reco
TH1D * m_hist_psi_corr_reco[36]
Definition: CheckFlow_New.h:56
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CheckFlow::m_bcut_max
double m_bcut_max
Definition: CheckFlow.h:41
GenVertex.h
TH1D
Definition: rootspy.cxx:342
test_pyathena.pt
pt
Definition: test_pyathena.py:11
M_PI
#define M_PI
Definition: ActiveFraction.h:11
CheckFlow_New::m_profile_resolution
TProfile * m_profile_resolution
Definition: CheckFlow_New.h:67
CheckFlow::m_produceHistogram
bool m_produceHistogram
Definition: CheckFlow.h:38
HijingEventParams::get_psi
float get_psi(int n) const
Definition: HijingEventParams.h:95
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:58
CheckFlow_New::m_rapcut_min
double m_rapcut_min
Definition: CheckFlow_New.h:44
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
CheckFlow_New::m_rapcut_max
double m_rapcut_max
Definition: CheckFlow_New.h:45
CheckFlow_New::m_hist_Psi_n_true
TH1D * m_hist_Psi_n_true[6]
Definition: CheckFlow_New.h:53
StoreGateSvc::retrieve
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
CheckFlow_New::m_ptcut_max
double m_ptcut_max
Definition: CheckFlow_New.h:43
CheckFlow_New::m_profile_pt_dep_reco
TProfile * m_profile_pt_dep_reco[6][n_etabin]
Definition: CheckFlow_New.h:64
CheckFlow_New::m_hist_Psi_n_ebe_pt
TH1D * m_hist_Psi_n_ebe_pt[6]
Definition: CheckFlow_New.h:59
CheckFlow::m_ptcut_max
double m_ptcut_max
Definition: CheckFlow.h:43
CheckFlow_New::m_profile_pt_dep
TProfile * m_profile_pt_dep[6][n_etabin]
Definition: CheckFlow_New.h:62
CheckFlow::m_rapcut_max
double m_rapcut_max
Definition: CheckFlow.h:45
McEventCollection.h
CheckFlow::m_rapcut_min
double m_rapcut_min
Definition: CheckFlow.h:44
CheckFlow::m_ptcut_min
double m_ptcut_min
Definition: CheckFlow.h:42
lumiFormat.i
int i
Definition: lumiFormat.py:92
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
CheckFlow_New::initialize
StatusCode initialize()
Definition: CheckFlow_New.cxx:74
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::m_bcut_max
double m_bcut_max
Definition: CheckFlow_New.h:41
HijingEventParams
Definition: HijingEventParams.h:23
CheckFlow_New::n_ptbin
@ n_ptbin
Definition: CheckFlow_New.h:48
ParticleGun_EoverP_Config.pid
pid
Definition: ParticleGun_EoverP_Config.py:62
TruthHelper::GenAccessIO::getMC
StatusCode getMC(MCParticleCollection &mcParticles, const bool ifgen=false, const std::string &key="GEN_EVENT") const
Definition: Generators/FlowAfterburner/FlowAfterburner/GenAccessIO.h:32
CheckFlow_New::m_ptcut_min
double m_ptcut_min
Definition: CheckFlow_New.h:42
beamspotman.stat
stat
Definition: beamspotman.py:266
AthAlgorithm
Definition: AthAlgorithm.h:47
CheckFlow_New::execute
StatusCode execute()
Definition: CheckFlow_New.cxx:240
CheckFlow_New::m_profile_eta_dep
TProfile * m_profile_eta_dep[6][n_ptbin]
Definition: CheckFlow_New.h:63
CheckFlow_New::m_hist_vn_ebe
TH1D * m_hist_vn_ebe[6]
Definition: CheckFlow_New.h:60
CheckFlow::m_tesIO
TruthHelper::GenAccessIO * m_tesIO
Definition: CheckFlow.h:61
CheckFlow::m_key
std::string m_key
Definition: CheckFlow.h:37
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CheckFlow_New::m_hist_psi_corr_true
TH1D * m_hist_psi_corr_true[36]
Definition: CheckFlow_New.h:55
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
TruthHelper::GenAccessIO
Definition: Generators/FlowAfterburner/FlowAfterburner/GenAccessIO.h:24
CheckFlow_New::m_hist_Psi_n_reco
TH1D * m_hist_Psi_n_reco[6]
Definition: CheckFlow_New.h:54
CheckFlow_New::m_sgSvc
StoreGateSvc * m_sgSvc
Definition: CheckFlow_New.h:69
HijingEventParams::get_b
float get_b() const
Definition: HijingEventParams.h:91
TProfile::Fill
int Fill(double, double)
Definition: rootspy.cxx:523
CheckFlow::m_bcut_min
double m_bcut_min
Definition: CheckFlow.h:40
CheckFlow::m_sgSvc
StoreGateSvc * m_sgSvc
Definition: CheckFlow.h:60
CheckFlow_New::finalize
StatusCode finalize()
Definition: CheckFlow_New.cxx:411
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:49
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
CheckFlow_New.CheckFlow_New
CheckFlow_New
Definition: CheckFlow_New.py:54