ATLAS Offline Software
Public Member Functions | Public Attributes | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
CheckFlow Class Reference

#include <CheckFlow.h>

Inheritance diagram for CheckFlow:
Collaboration diagram for CheckFlow:

Public Member Functions

 CheckFlow (const std::string &name, ISvcLocator *pSvcLocator)
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Public Attributes

 InputCollections
 
 job = AlgSequence()
 
 EvtMax
 
 OutputLevel
 
 Output
 
 CheckFlow = job.CheckFlow
 
 McEventKey
 
 RapidityCutMax
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

StringProperty m_key {this, "McEventKey", "FLOW_EVENT"}
 
BooleanProperty m_produceHistogram {this, "HistogramFlag", true}
 
DoubleProperty m_bcut_min {this, "ImpactCutMin", 0.}
 
DoubleProperty m_bcut_max {this, "ImpactCutMax", 99.}
 
DoubleProperty m_ptcut_min {this, "PtCutMin", 0.}
 
DoubleProperty m_ptcut_max {this, "PtCutMax", 999999.}
 
DoubleProperty m_rapcut_min {this, "RapidityCutMin", 0.}
 
DoubleProperty m_rapcut_max {this, "RapidityCutMax", 5.5}
 
TH1F * m_hgenerated {}
 
TH1F * m_b {}
 
TH1F * m_phi {}
 
TH1F * m_phiR {}
 
TH1F * m_phi_vs_phiR {}
 
TH2F * m_phiv1reco_vs_phiR {}
 
TH2F * m_phiv2reco_vs_phiR {}
 
TH1F * m_phi_vs_phiR_etap {}
 
TH1F * m_phi_vs_phiR_etan {}
 
TH3F * m_v2betapth {}
 
TH3F * m_ebetapth {}
 
SG::ReadHandleKey< HijingEventParamsm_hijingKey {this, "HijingEventParmsKey","Hijing_event_params"}
 
TruthHelper::GenAccessIOm_tesIO {}
 
DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 30 of file CheckFlow.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ CheckFlow()

CheckFlow::CheckFlow ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode CheckFlow::execute ( )

Definition at line 132 of file CheckFlow.cxx.

132  {
133  msg(MSG::INFO) << ">>> CheckFlow from execute" << endmsg;
134 
135  //
136  // Event parameters
137  //
139  float b = hijing_pars->get_b();
140  float phiR = hijing_pars->get_bphi();
141 
142 
143  // Check cut on impact parameter b
144  if(b<m_bcut_min || b>m_bcut_max)
145  return StatusCode::SUCCESS;
146 
147  m_b->Fill(b, 1.);
148  m_phiR->Fill(phiR, 1.);
149 
150  float ngenerated = 0;
151  double phiv1_recon, phiv1_recop;
152  double phiv1_reco = 0, phiv2_reco = 0;
153  double phi_reco_sin1phip = 0, phi_reco_cos1phip = 0;
154  double phi_reco_sin1phin = 0, phi_reco_cos1phin = 0;
155  double phi_reco_sin2phi = 0, phi_reco_cos2phi = 0;
156 
157  std::vector<HepMC::ConstGenParticlePtr> particles;
159  if (stat.isFailure()) {
160  msg(MSG::ERROR) << "Could not find " << m_key << endmsg;
161  return stat;
162  }
163 
164  for (auto pitr: particles) {
165  int pid = pitr->pdg_id();
166  int p_stat = pitr->status();
167  double pt = pitr->momentum().perp();
168  double rapid = pitr->momentum().pseudoRapidity();
169  double phi = pitr->momentum().phi();
170  msg(MSG::DEBUG)
171  << " PID = " << pid << " Status = " << p_stat
172  << " Eta = " << rapid << " Phi = " << phi
173  << " PhiR = " << phiR << endmsg;
174 
175  if( (std::abs(rapid) >= m_rapcut_min) && (std::abs(rapid) <= m_rapcut_max) &&
176  (std::abs(pt) >= m_ptcut_min) && (std::abs(pt) <= m_ptcut_max) ) {
177  ngenerated++;
178  m_phi->Fill(phi, 1.);
179  double phi_corr = phi - phiR;
180  // v2 vs b,eta,pt histograms
181  m_v2betapth->Fill(b,rapid,pt,cos(2*phi_corr));
182  m_ebetapth->Fill(b,rapid,pt,1);
183  // -----------------
184  // convert to (-pi,pi) range
185  int kpi = (int)(phi_corr/(2*M_PI));
186  phi_corr -= kpi * 2*M_PI;
187  if (phi_corr < -M_PI) phi_corr += 2*M_PI;
188  if (phi_corr > M_PI) phi_corr -= 2*M_PI;
189  // --------------------------------------
190  m_phi_vs_phiR->Fill(phi_corr, 1.);
191  if(rapid>=0) m_phi_vs_phiR_etap->Fill(phi_corr, 1.);
192  else m_phi_vs_phiR_etan->Fill(phi_corr, 1.);
193  // -------------------------------------------------
194  if( rapid >= 0 ) {
195  phi_reco_sin1phip += std::sin(1*phi);
196  phi_reco_cos1phip += std::cos(1*phi);
197  } else {
198  phi_reco_sin1phin += std::sin(1*phi);
199  phi_reco_cos1phin += std::cos(1*phi);
200  }
201  phi_reco_sin2phi += std::sin(2*phi);
202  phi_reco_cos2phi += std::cos(2*phi);
203  }
204  }
205  m_hgenerated->Fill(ngenerated, 1.);
206 
207  // calculate event plane position
208  phiv1_recop = std::atan2( phi_reco_sin1phip,phi_reco_cos1phip );
209  phiv1_recon = std::atan2( phi_reco_sin1phin,phi_reco_cos1phin ) + M_PI;
210  if( phiv1_recon > M_PI ) phiv1_recon -= 2*M_PI;
211  // averaged v1 plane position (in pos and neg eta ranges)
212  phiv1_reco = (phiv1_recop + phiv1_recon)/2;
213  phiv2_reco = 0.5 * std::atan2( phi_reco_sin2phi,phi_reco_cos2phi );
214  msg(MSG::INFO)
215  << " PhiR = " << phiR
216  << " PhiV1Reco = " << phiv1_reco
217  << " PhiV2Reco = " << phiv2_reco << endmsg;
218 
219  // convert phiR (0, 2*pi) to (-pi,pi) range
220  double phiR_v1corr = phiR;
221  if( phiR > M_PI ) phiR_v1corr = phiR_v1corr - 2*M_PI;
222  // convert phiR (0, 2*pi) to (-pi/2,pi/2) range
223  double phiR_v2corr = phiR;
224  if (phiR > M_PI/2) phiR_v2corr -= M_PI;
225  if (phiR > 3*M_PI/2) phiR_v2corr -= 2*M_PI;
226  m_phiv1reco_vs_phiR->Fill(phiR_v1corr, phiv1_reco);
227  m_phiv2reco_vs_phiR->Fill(phiR_v2corr, phiv2_reco);
228 
229  // End of execution for each event
230  return StatusCode::SUCCESS;
231 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

StatusCode CheckFlow::finalize ( )

Definition at line 233 of file CheckFlow.cxx.

233  {
234  msg(MSG::INFO) << ">>> CheckFlow from finalize" << endmsg;
235 
236  return StatusCode::SUCCESS;
237 }

◆ initialize()

StatusCode CheckFlow::initialize ( )

Definition at line 34 of file CheckFlow.cxx.

34  {
35 
37 
38  ATH_MSG_INFO(">>> CheckFlow from Initialize");
39 
40  m_hgenerated = new TH1F("ngen","Generated",100,0,100000);
41  m_b = new TH1F("b","Impact parameter",35,0.,35.0);
42  m_phi = new TH1F("phi","Phi",100,-M_PI,M_PI);
43  m_phiR = new TH1F("phiR","PhiR",100,0,2*M_PI);
44  m_phi_vs_phiR = new TH1F("phi_vs_phiR","Phi - PhiR",100,-M_PI,M_PI);
45  m_phiv1reco_vs_phiR = new TH2F("phiv1reco_vs_phiR",
46  "PhiV1Reco vs PhiR", 30,-M_PI,M_PI,30,-M_PI,M_PI);
47  m_phiv2reco_vs_phiR = new TH2F("phiv2reco_vs_phiR",
48  "PhiV2Reco vs PhiR", 30,-M_PI/2,M_PI/2,30,-M_PI/2,M_PI/2);
49  m_phi_vs_phiR_etap = new TH1F("phi_vs_phiR_etap",
50  "Phi - PhiR positive eta",
51  100,-M_PI,M_PI);
52  m_phi_vs_phiR_etan = new TH1F("phi_vs_phiR_etan",
53  "Phi - PhiR negative eta",
54  100,-M_PI,M_PI);
55  m_v2betapth = new TH3F("v2betapth",
56  "V2 vs b, eta, pt",
57  20,0,20, 30,-7.5,7.5, 25,0,5000);
58  m_ebetapth = new TH3F("ebetapth",
59  "Tracks vs b, eta, pt",
60  20,0,20, 30,-7.5,7.5, 25,0,5000);
61 
62  SmartIF<ITHistSvc> rootHistSvc{Gaudi::svcLocator()->service("THistSvc")};
63  if (!rootHistSvc) {
64  ATH_MSG_ERROR( "Unable to locate THistSvc" );
65  return StatusCode::FAILURE;
66  }
67 
68  std::string StreamAndPath="/FlowOutPut/";
69  std::string histPath = StreamAndPath;
70  if ( rootHistSvc->regHist(histPath+m_hgenerated->GetName(),
71  m_hgenerated).isFailure() )
72  msg(MSG::WARNING) << "Can't book "
73  << histPath+m_hgenerated->GetName() << endmsg;
74 
75  if ( rootHistSvc->regHist(histPath+m_b->GetName(),
76  m_b).isFailure() )
77  msg(MSG::WARNING) << "Can't book "
78  << histPath+m_b->GetName() << endmsg;
79 
80  if ( rootHistSvc->regHist(histPath+m_phi->GetName(),
81  m_phi).isFailure() )
82  msg(MSG::WARNING) << "Can't book "
83  << histPath+m_phi->GetName() << endmsg;
84 
85  if ( rootHistSvc->regHist(histPath+m_phiR->GetName(),
86  m_phiR).isFailure() )
87  msg(MSG::WARNING) << "Can't book "
88  << histPath+m_phiR->GetName() << endmsg;
89 
90  if ( rootHistSvc->regHist(histPath+m_phi_vs_phiR->GetName(),
91  m_phi_vs_phiR).isFailure() )
92  msg(MSG::WARNING) << "Can't book "
93  << histPath+m_phi_vs_phiR->GetName() << endmsg;
94 
95  if ( rootHistSvc->regHist(histPath+m_phiv1reco_vs_phiR->GetName(),
96  m_phiv1reco_vs_phiR).isFailure() )
97  msg(MSG::WARNING) << "Can't book "
98  << histPath+m_phiv1reco_vs_phiR->GetName() << endmsg;
99 
100  if ( rootHistSvc->regHist(histPath+m_phiv2reco_vs_phiR->GetName(),
101  m_phiv2reco_vs_phiR).isFailure() )
102  msg(MSG::WARNING) << "Can't book "
103  << histPath+m_phiv2reco_vs_phiR->GetName() << endmsg;
104 
105  if ( rootHistSvc->regHist(histPath+m_phi_vs_phiR_etap->GetName(),
106  m_phi_vs_phiR_etap).isFailure() )
107  msg(MSG::WARNING) << "Can't book "
108  << histPath+m_phi_vs_phiR_etap->GetName() << endmsg;
109 
110  if ( rootHistSvc->regHist(histPath+m_phi_vs_phiR_etan->GetName(),
111  m_phi_vs_phiR_etan).isFailure() )
112  msg(MSG::WARNING) << "Can't book "
113  << histPath+m_phi_vs_phiR_etan->GetName() << endmsg;
114 
115  if ( rootHistSvc->regHist(histPath+m_v2betapth->GetName(),
116  m_v2betapth).isFailure() )
117  msg(MSG::WARNING) << "Can't book "
118  << histPath+m_v2betapth->GetName() << endmsg;
119 
120  if ( rootHistSvc->regHist(histPath+m_ebetapth->GetName(),
121  m_ebetapth).isFailure() )
122  msg(MSG::WARNING) << "Can't book "
123  << histPath+m_ebetapth->GetName() << endmsg;
124 
125  msg(MSG::DEBUG) << "Histograms have been booked " << endmsg;
126 
128 
129  return StatusCode::SUCCESS;
130 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg() [1/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ CheckFlow

CheckFlow.CheckFlow = job.CheckFlow

Definition at line 50 of file CheckFlow.py.

◆ EvtMax

CheckFlow.EvtMax

Definition at line 34 of file CheckFlow.py.

◆ InputCollections

CheckFlow.InputCollections

Definition at line 13 of file CheckFlow.py.

◆ job

CheckFlow.job = AlgSequence()

Definition at line 26 of file CheckFlow.py.

◆ m_b

TH1F* CheckFlow::m_b {}
private

Definition at line 51 of file CheckFlow.h.

◆ m_bcut_max

DoubleProperty CheckFlow::m_bcut_max {this, "ImpactCutMax", 99.}
private

Definition at line 43 of file CheckFlow.h.

◆ m_bcut_min

DoubleProperty CheckFlow::m_bcut_min {this, "ImpactCutMin", 0.}
private

Definition at line 42 of file CheckFlow.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_ebetapth

TH3F* CheckFlow::m_ebetapth {}
private

Definition at line 60 of file CheckFlow.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_hgenerated

TH1F* CheckFlow::m_hgenerated {}
private

Definition at line 50 of file CheckFlow.h.

◆ m_hijingKey

SG::ReadHandleKey<HijingEventParams> CheckFlow::m_hijingKey {this, "HijingEventParmsKey","Hijing_event_params"}
private

Definition at line 62 of file CheckFlow.h.

◆ m_key

StringProperty CheckFlow::m_key {this, "McEventKey", "FLOW_EVENT"}
private

Definition at line 39 of file CheckFlow.h.

◆ m_phi

TH1F* CheckFlow::m_phi {}
private

Definition at line 52 of file CheckFlow.h.

◆ m_phi_vs_phiR

TH1F* CheckFlow::m_phi_vs_phiR {}
private

Definition at line 54 of file CheckFlow.h.

◆ m_phi_vs_phiR_etan

TH1F* CheckFlow::m_phi_vs_phiR_etan {}
private

Definition at line 58 of file CheckFlow.h.

◆ m_phi_vs_phiR_etap

TH1F* CheckFlow::m_phi_vs_phiR_etap {}
private

Definition at line 57 of file CheckFlow.h.

◆ m_phiR

TH1F* CheckFlow::m_phiR {}
private

Definition at line 53 of file CheckFlow.h.

◆ m_phiv1reco_vs_phiR

TH2F* CheckFlow::m_phiv1reco_vs_phiR {}
private

Definition at line 55 of file CheckFlow.h.

◆ m_phiv2reco_vs_phiR

TH2F* CheckFlow::m_phiv2reco_vs_phiR {}
private

Definition at line 56 of file CheckFlow.h.

◆ m_produceHistogram

BooleanProperty CheckFlow::m_produceHistogram {this, "HistogramFlag", true}
private

Definition at line 40 of file CheckFlow.h.

◆ m_ptcut_max

DoubleProperty CheckFlow::m_ptcut_max {this, "PtCutMax", 999999.}
private

Definition at line 45 of file CheckFlow.h.

◆ m_ptcut_min

DoubleProperty CheckFlow::m_ptcut_min {this, "PtCutMin", 0.}
private

Definition at line 44 of file CheckFlow.h.

◆ m_rapcut_max

DoubleProperty CheckFlow::m_rapcut_max {this, "RapidityCutMax", 5.5}
private

Definition at line 47 of file CheckFlow.h.

◆ m_rapcut_min

DoubleProperty CheckFlow::m_rapcut_min {this, "RapidityCutMin", 0.}
private

Definition at line 46 of file CheckFlow.h.

◆ m_tesIO

TruthHelper::GenAccessIO* CheckFlow::m_tesIO {}
private

Definition at line 63 of file CheckFlow.h.

◆ m_v2betapth

TH3F* CheckFlow::m_v2betapth {}
private

Definition at line 59 of file CheckFlow.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ McEventKey

CheckFlow.McEventKey

Definition at line 51 of file CheckFlow.py.

◆ Output

CheckFlow.Output

Definition at line 43 of file CheckFlow.py.

◆ OutputLevel

CheckFlow.OutputLevel

Definition at line 35 of file CheckFlow.py.

◆ RapidityCutMax

CheckFlow.RapidityCutMax

Definition at line 52 of file CheckFlow.py.


The documentation for this class was generated from the following files:
CheckFlow::m_ptcut_min
DoubleProperty m_ptcut_min
Definition: CheckFlow.h:44
CheckFlow::m_phi
TH1F * m_phi
Definition: CheckFlow.h:52
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
test_pyathena.pt
pt
Definition: test_pyathena.py:11
M_PI
#define M_PI
Definition: ActiveFraction.h:11
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
CheckFlow::m_v2betapth
TH3F * m_v2betapth
Definition: CheckFlow.h:59
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
CheckFlow::m_phi_vs_phiR_etap
TH1F * m_phi_vs_phiR_etap
Definition: CheckFlow.h:57
CheckFlow::m_phiv1reco_vs_phiR
TH2F * m_phiv1reco_vs_phiR
Definition: CheckFlow.h:55
CheckFlow::m_ebetapth
TH3F * m_ebetapth
Definition: CheckFlow.h:60
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
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::m_phi_vs_phiR
TH1F * m_phi_vs_phiR
Definition: CheckFlow.h:54
ParticleGun_EoverP_Config.pid
pid
Definition: ParticleGun_EoverP_Config.py:62
CheckFlow::m_phiR
TH1F * m_phiR
Definition: CheckFlow.h:53
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CheckFlow::m_hgenerated
TH1F * m_hgenerated
Definition: CheckFlow.h:50
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
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
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
CheckFlow::m_phi_vs_phiR_etan
TH1F * m_phi_vs_phiR_etan
Definition: CheckFlow.h:58
CheckFlow::m_key
StringProperty m_key
Definition: CheckFlow.h:39
beamspotman.stat
stat
Definition: beamspotman.py:266
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
CheckFlow::m_rapcut_max
DoubleProperty m_rapcut_max
Definition: CheckFlow.h:47
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
CheckFlow::m_tesIO
TruthHelper::GenAccessIO * m_tesIO
Definition: CheckFlow.h:63
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
CheckFlow::m_phiv2reco_vs_phiR
TH2F * m_phiv2reco_vs_phiR
Definition: CheckFlow.h:56
CheckFlow::m_bcut_max
DoubleProperty m_bcut_max
Definition: CheckFlow.h:43
TruthHelper::GenAccessIO
Definition: Generators/FlowAfterburner/FlowAfterburner/GenAccessIO.h:21
CheckFlow::m_rapcut_min
DoubleProperty m_rapcut_min
Definition: CheckFlow.h:46
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
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
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
CheckFlow::m_b
TH1F * m_b
Definition: CheckFlow.h:51
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
CheckFlow::m_ptcut_max
DoubleProperty m_ptcut_max
Definition: CheckFlow.h:45
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
CheckFlow::m_hijingKey
SG::ReadHandleKey< HijingEventParams > m_hijingKey
Definition: CheckFlow.h:62
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >