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

#include <ALFA_GloRec.h>

Inheritance diagram for ALFA_GloRec:
Collaboration diagram for ALFA_GloRec:

Public Member Functions

 ALFA_GloRec (const std::string &name, ISvcLocator *pSvcLocator)
 
 ~ALFA_GloRec ()
 
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, V, H > &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
 

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

StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
StatusCode Truth_info ()
 
void InitHistos ()
 
void FillTrackCandHistos (AlfaTrackCand *trkcand)
 
void WriteHistos ()
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ALFA_GloRecEvCollectionm_pGloRecEvCollection {}
 
int m_iDataType = 0
 
std::string m_strTrackPathPatterns
 
TObjArray m_TObjArrTrackPathPatterns {}
 
std::string m_strGloRecAnalysisFile
 
std::string m_strGloRecCollectionName
 
std::string m_strLocRecCorrCollectionName
 
std::string m_TruthCollectionName
 
double m_px_g_pos {}
 
double m_py_g_pos {}
 
double m_pz_g_pos {}
 
double m_x_g_pos {}
 
double m_y_g_pos {}
 
double m_z_g_pos {}
 
double m_px_g_neg {}
 
double m_py_g_neg {}
 
double m_pz_g_neg {}
 
double m_x_g_neg {}
 
double m_y_g_neg {}
 
double m_z_g_neg {}
 
TH1F * m_th1_x_g {}
 
TH1F * m_th1_y_g {}
 
TH1F * m_th1_xslope_g {}
 
TH1F * m_th1_yslope_g {}
 
TH1F * m_th1_xnearuppotresiduals {}
 
TH1F * m_th1_ynearuppotresiduals {}
 
TH1F * m_th1_xfaruppotresiduals {}
 
TH1F * m_th1_yfaruppotresiduals {}
 
TH1F * m_th1_xnearlwpotresiduals {}
 
TH1F * m_th1_ynearlwpotresiduals {}
 
TH1F * m_th1_xfarlwpotresiduals {}
 
TH1F * m_th1_yfarlwpotresiduals {}
 
TH2F * m_th2_truexvsrecx {}
 
TH2F * m_th2_trueyvsrecy {}
 
TH2F * m_th2_truexslopevsrecxslope {}
 
TH2F * m_th2_trueyslopevsrecyslope {}
 
TH1F * m_th1_recxovertruex {}
 
TH1F * m_th1_recyovertruey {}
 
TH1F * m_th1_recxslopeovertruexslope {}
 
TH1F * m_th1_recyslopeovertrueyslope {}
 
TH1F * m_th1_recxminustruex {}
 
TH1F * m_th1_recyminustruey {}
 
TH1F * m_th1_recxslopeminustruexslope {}
 
TH1F * m_th1_recyslopeminustrueyslope {}
 
TH2F * m_th2_extrapxvsrecxnearpot {}
 
TH2F * m_th2_extrapyvsrecynearpot {}
 
TH1F * m_th1_recxoverextrapxnearpot {}
 
TH1F * m_th1_recyoverextrapynearpot {}
 
TH1F * m_th1_recxminusextrapxnearpot {}
 
TH1F * m_th1_recyminusextrapynearpot {}
 
TH2F * m_th2_extrapxvsrecxfarpot {}
 
TH2F * m_th2_extrapyvsrecyfarpot {}
 
TH1F * m_th1_recxoverextrapxfarpot {}
 
TH1F * m_th1_recyoverextrapyfarpot {}
 
TH1F * m_th1_recxminusextrapxfarpot {}
 
TH1F * m_th1_recyminusextrapyfarpot {}
 
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 28 of file ALFA_GloRec.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

◆ ALFA_GloRec()

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

Definition at line 84 of file ALFA_GloRec.cxx.

84  :
85 AthAlgorithm(name, pSvcLocator)
86 {
87 
88  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::ALFA_GloRec");
89  LogStream << MSG::DEBUG << "begin ALFA_GloRec::ALFA_GloRec" << endmsg;
90 
92  // ... steerable job options
94  declareProperty("DataType", m_iDataType);
95  declareProperty("TrackPathPatterns", m_strTrackPathPatterns);
97 
98  declareProperty("OutputGloRecCollectionName",m_strGloRecCollectionName);
99  declareProperty("InputLocRecCollectionName",m_strLocRecCorrCollectionName);
100  declareProperty("TruthEventCollectionName",m_TruthCollectionName);
101 
102 }

◆ ~ALFA_GloRec()

ALFA_GloRec::~ALFA_GloRec ( )

Definition at line 109 of file ALFA_GloRec.cxx.

109  {
110  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::~ALFA_GloRec");
111  LogStream << MSG::DEBUG << "begin ALFA_GloRec::~ALFA_GloRec" << endmsg;
112  LogStream << MSG::DEBUG << "end ALFA_GloRec::~ALFA_GloRec" << endmsg;
113 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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 ALFA_GloRec::execute ( )
private

Definition at line 154 of file ALFA_GloRec.cxx.

154  {
155 
156  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::execute()");
157  LogStream << MSG::DEBUG << "begin ALFA_GloRec::execute()" << endmsg;
158  StatusCode sc = StatusCode::SUCCESS;
159 
160 
161 
162 
163 
165  // get truth information
167  if(m_iDataType == 0){
168  LogStream << MSG::DEBUG << "truth info()" << endmsg;
169  sc = Truth_info();
170  if (sc.isFailure()) {
171  LogStream << MSG::WARNING << "ALFA digi, Truth_info failed" << endmsg;
172  return StatusCode::SUCCESS;
173  }
174  }
175 
177  // ... record output collection
180  sc = evtStore()->record(m_pGloRecEvCollection, "ALFA_GloRecEvCollection");
181  if (sc.isFailure()) {
182  msg(MSG::ERROR) << "Could not create the empty LocRecEv collection in StoreGate" << endmsg;
183  }
184 
185 
187  // ... get LocRecCorr data
189  const ALFA_LocRecCorrEvCollection* pLocRecCorrCol = nullptr;
190  sc = evtStore()->retrieve(pLocRecCorrCol, m_strLocRecCorrCollectionName);
191  if(sc.isFailure() || !pLocRecCorrCol)
192  {
193  msg(MSG::ERROR) << "Container "<< m_strLocRecCorrCollectionName <<" NOT FOUND !!!!!!!" << endmsg;
194  return sc;
195  }
196 
197 
199  // ... collect the local hits and contain them in an auxiliary hit collection
201  ALFA_LocRecCorrEvCollection::const_iterator mcColBeg = pLocRecCorrCol->begin();
202  ALFA_LocRecCorrEvCollection::const_iterator mcColEnd = pLocRecCorrCol->end();
204  for(; mcColBeg!=mcColEnd; ++mcColBeg) {
205  HepGeom::Point3D<double> PointInAtlasCS;
206  const ALFA_LocRecCorrEvent* pLocRecCorr_tmp = static_cast<const ALFA_LocRecCorrEvent*> (*mcColBeg);
207  AlfaLocalHit l_hit(pLocRecCorr_tmp);
208  hits.AddHit(l_hit);
209  //PointInAtlasCS = m_pGeometryReader->GetDetPointInAtlas((eRPotName)(iRPot+1), Point3D<double>(fRecPosX, fRecPosY, 10.0));
210  }
211  //hits.Dump();
212 
213 
214 
216  // ... apply path pattern
218  for(int i = 0; i < m_TObjArrTrackPathPatterns.GetEntries(); i++){
219  TString l_pathpattern(((TObjString*) m_TObjArrTrackPathPatterns.At(i))->GetString());
220  hits.ApplyPathPattern(l_pathpattern.Data());
221  //hits.DumpPaths();
222  for(int i = 0 ; i < hits.GetNpaths() ; i++){
223  AlfaTrackCand trkcand(hits.GetPathHits(i));
224  if(trkcand.IsValidTrack()){
225  m_pGloRecEvCollection->push_back(new ALFA_GloRecEvent(trkcand.GetArmNum(),trkcand.GetX(),trkcand.GetY(),trkcand.GetXslope(),trkcand.GetXslope(),trkcand.GetNearLocRecCorr(),trkcand.GetFarLocRecCorr()));
226  FillTrackCandHistos(&trkcand);
227  }
228  }
229  hits.ResetPaths();
230  }
231 
232 
233 
234 
235  return sc;
236 }

◆ 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 }

◆ FillTrackCandHistos()

void ALFA_GloRec::FillTrackCandHistos ( AlfaTrackCand trkcand)
private

Definition at line 389 of file ALFA_GloRec.cxx.

389  {
390 
391  if(m_iDataType==0){
392  double x_g, y_g, z_g, px_g, py_g, pz_g;
393  if(trkcand->IsLeftTrack()){ // left is positive
394  x_g = m_x_g_pos;
395  y_g = m_y_g_pos;
396  z_g = m_z_g_pos;
397  px_g = m_px_g_pos;
398  py_g = m_py_g_pos;
399  pz_g = m_pz_g_pos;
400  }else if(trkcand->IsRightTrack()){ // right is negative
401  x_g = m_x_g_neg;
402  y_g = m_y_g_neg;
403  z_g = m_z_g_neg;
404  px_g = m_px_g_neg;
405  py_g = m_py_g_neg;
406  pz_g = m_pz_g_neg;
407  }else{
408  ATH_MSG_ERROR("ALFA_GloRec::FillTrackCandHistos : Track candidate neither left nor right !!!");
409  return;
410  }
411  m_th1_xnearuppotresiduals -> Fill(trkcand->GetNearImpactPoint()->x()-trkcand->GetNearLocalHit()->GetX(),1.);
412  m_th1_ynearuppotresiduals -> Fill(trkcand->GetNearImpactPoint()->y()-trkcand->GetNearLocalHit()->GetY(),1.);
413  m_th1_xfaruppotresiduals -> Fill(trkcand->GetFarImpactPoint()->x()-trkcand->GetFarLocalHit()->GetX(),1.);
414  m_th1_yfaruppotresiduals -> Fill(trkcand->GetFarImpactPoint()->y()-trkcand->GetFarLocalHit()->GetY(),1.);
415  m_th2_truexvsrecx -> Fill(x_g, trkcand->GetX(), 1.);
416  m_th2_trueyvsrecy -> Fill(y_g, trkcand->GetY(), 1.);
417  m_th1_recxovertruex -> Fill(trkcand->GetX()/x_g, 1.);
418  m_th1_recyovertruey -> Fill(trkcand->GetY()/y_g, 1.);
419  //double p_gen = TMath::Sqrt(px_g*px_g+px_g*px_g+py_g*pz_g);
420  double px_norm = px_g / pz_g;//p_gen;
421  double py_norm = py_g / pz_g;//p_gen;
422  m_th2_truexslopevsrecxslope -> Fill(px_norm, trkcand->GetXslope(), 1.);
423  m_th2_trueyslopevsrecyslope -> Fill(py_norm, trkcand->GetYslope(), 1.);
424  m_th1_recxovertruex -> Fill(trkcand->GetX()/x_g, 1.);
425  m_th1_recyovertruey -> Fill(trkcand->GetY()/y_g, 1.);
426  m_th1_recxslopeovertruexslope -> Fill(trkcand->GetXslope()/px_norm, 1.);
427  m_th1_recyslopeovertrueyslope -> Fill(trkcand->GetYslope()/py_norm, 1.);
428  m_th1_recxminustruex -> Fill(trkcand->GetX()-x_g, 1.);
429  m_th1_recyminustruey -> Fill(trkcand->GetY()-y_g, 1.);
430  m_th1_recxslopeminustruexslope -> Fill(trkcand->GetXslope()-px_norm, 1.);
431  m_th1_recyslopeminustrueyslope -> Fill(trkcand->GetYslope()-py_norm, 1.);
432  // ... extrapolate x any of gen track to near pot
433  double nearhitx = trkcand->GetNearLocalHit()->GetX();
434  double nearhity = trkcand->GetNearLocalHit()->GetY();
435  double nearhitz = trkcand->GetNearLocalHit()->GetZ();
436  double genxextrtonearpot = x_g + px_norm * (nearhitz - z_g);
437  double genyextrtonearpot = y_g + py_norm * (nearhitz - z_g);
438  //double genzextrtonearpot = nearhitz;
439  m_th2_extrapxvsrecxnearpot -> Fill(genxextrtonearpot, nearhitx,1.);
440  m_th2_extrapyvsrecynearpot -> Fill(genyextrtonearpot, nearhity,1.);
441  m_th1_recxoverextrapxnearpot -> Fill(nearhitx / genxextrtonearpot, 1.);
442  m_th1_recyoverextrapynearpot -> Fill(nearhity / genyextrtonearpot, 1.);
443  m_th1_recxminusextrapxnearpot -> Fill(nearhitx - genxextrtonearpot, 1.);
444  m_th1_recyminusextrapynearpot -> Fill(nearhity - genyextrtonearpot, 1.);
445  // ... extrapolate x any of gen track to far pot
446  double farhitx = trkcand->GetFarLocalHit()->GetX();
447  double farhity = trkcand->GetFarLocalHit()->GetY();
448  double farhitz = trkcand->GetFarLocalHit()->GetZ();
449  double genxextrtofarpot = x_g + px_norm * (farhitz - z_g);
450  double genyextrtofarpot = y_g + py_norm * (farhitz - z_g);
451  //double genzextrtofarpot = farhitz;
452  m_th2_extrapxvsrecxfarpot -> Fill(genxextrtofarpot, farhitx,1.);
453  m_th2_extrapyvsrecyfarpot -> Fill(genyextrtofarpot, farhity,1.);
454  m_th1_recxoverextrapxfarpot -> Fill(farhitx / genxextrtofarpot, 1.);
455  m_th1_recyoverextrapyfarpot -> Fill(farhity / genyextrtofarpot, 1.);
456  m_th1_recxminusextrapxfarpot -> Fill(farhitx - genxextrtofarpot, 1.);
457  m_th1_recyminusextrapyfarpot -> Fill(farhity - genyextrtofarpot, 1.);
458  }
459 }

◆ finalize()

StatusCode ALFA_GloRec::finalize ( )
private

Definition at line 246 of file ALFA_GloRec.cxx.

246  {
247 
248  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::finalize()");
249  LogStream << MSG::DEBUG << "begin ALFA_GloRec::finalize()" << endmsg;
250 
251  WriteHistos();
252 
253  return StatusCode::SUCCESS;
254 }

◆ InitHistos()

void ALFA_GloRec::InitHistos ( )
private

Definition at line 340 of file ALFA_GloRec.cxx.

340  {
341  m_th1_x_g = new TH1F("x_g","x^{vertex}_{gen}", 100, -5,5);
342  m_th1_y_g = new TH1F("y_g","y^{vertex}_{gen}", 100, -5,5);
343  m_th1_xslope_g = new TH1F("xslope_g","x'^{vertex}_{gen}", 100, -1.e-3,1.e3);
344  m_th1_yslope_g = new TH1F("yslope_g","y'^{vertex}_{gen}", 100, -1.e-3,1.e3);
345 
346  m_th1_xnearuppotresiduals = new TH1F("xnearuppotresiduals","trk x extrap. minus near IP U loc hit",100, -10., 10.);
347  m_th1_ynearuppotresiduals = new TH1F("ynearuppotresiduals","trk y extrap. minus near IP U loc hit",100, -10., 10.);
348  m_th1_xfaruppotresiduals = new TH1F("xfaruppotresiduals","trk x extrap. minus far IP U loc hit",100, -10., 10.);
349  m_th1_yfaruppotresiduals = new TH1F("yfaruppotresiduals","trk y extrap. minus far IP U loc hit",100, -10., 10.);
350  m_th1_xnearlwpotresiduals = new TH1F("xnearlwpotresiduals","trk x extrap. minus near IP L loc hit",100, -10., 10.);
351  m_th1_ynearlwpotresiduals = new TH1F("ynearlwpotresiduals","trk y extrap. minus near IP L loc hit",100, -10., 10.);
352  m_th1_xfarlwpotresiduals = new TH1F("xfarlwpotresiduals","trk x extrap. minus far IP L loc hit",100, -10., 10.);
353  m_th1_yfarlwpotresiduals = new TH1F("yfarlwpotresiduals","trk y extrap. minus far IP L loc hit",100, -10., 10.);
354 
355  m_th2_truexvsrecx = new TH2F("truexvsrecx","gen x vs rec x", 100, -50, 50, 100, -50, 50);
356  m_th2_trueyvsrecy = new TH2F("trueyvsrecy","gen y vs rec y", 100, -50, 50, 100, -50, 50);
357  m_th2_truexslopevsrecxslope = new TH2F("truexslopevsrecxslope","gen xslope vs rec xslope", 100,-0.002,0.002,100,-0.002,0.002);
358  m_th2_trueyslopevsrecyslope = new TH2F("trueyslopevsrecyslope","gen yslope vs rec yslope", 100,-0.002,0.002,100,-0.002,0.002);
359  m_th1_recxovertruex = new TH1F("recxovertruex","rec x over true x", 100, -2, 2);
360  m_th1_recyovertruey = new TH1F("recyovertruey","rec y over true y", 100, -2, 2);
361  m_th1_recxslopeovertruexslope = new TH1F("recxslopeovertruexslope","rec xslope over true xslope", 100,-2,2);
362  m_th1_recyslopeovertrueyslope = new TH1F("recyslopeovertrueyslope","rec yslope over true yslope", 100,-2,2);
363  m_th1_recxminustruex = new TH1F("recxminustruex","rec x minus true x", 100, -10, 10);
364  m_th1_recyminustruey = new TH1F("recyminustruey","rec y minus true y", 100, -10, 10);
365  m_th1_recxslopeminustruexslope = new TH1F("recxslopeminustruexslope","rec xslope minus true xslope", 100,-0.001,0.001);
366  m_th1_recyslopeminustrueyslope = new TH1F("recyslopeminustrueyslope","rec yslope minus true yslope", 100,-0.001,0.001);
367 
368  m_th2_extrapxvsrecxnearpot = new TH2F("extrapxvsrecxnearpot","extrapolated gen x vs rec x nearpot", 100, -50, 50, 100, -50, 50);
369  m_th2_extrapyvsrecynearpot = new TH2F("extrapyvsrecynearpot","extrapolated gen y vs rec y nearpot", 100, -50, 50, 100, -50, 50);
370  m_th1_recxoverextrapxnearpot = new TH1F("recxoverextrapxnearpot","rec x over extrap x nearpot", 100, 1.-0.2, 1.+0.2);
371  m_th1_recyoverextrapynearpot = new TH1F("recyoverextrapynearpot","rec y over extrap y nearpot", 100, 1.-0.2, 1.+0.2);
372  m_th1_recxminusextrapxnearpot = new TH1F("recxminusextrapxnearpot","rec x minus extrap x nearpot", 100, -0.5, 0.5);
373  m_th1_recyminusextrapynearpot = new TH1F("recyminusextrapynearpot","rec y minus extrap y nearpot", 100, -0.5, 0.5);
374 
375  m_th2_extrapxvsrecxfarpot = new TH2F("extrapxvsrecxfarpot","extrapolated gen x vs rec x farpot", 100, -50, 50, 100, -50, 50);
376  m_th2_extrapyvsrecyfarpot = new TH2F("extrapyvsrecyfarpot","extrapolated gen y vs rec y farpot", 100, -50, 50, 100, -50, 50);
377  m_th1_recxoverextrapxfarpot = new TH1F("recxoverextrapxfarpot","rec x over extrap x farpot", 100, 1.-0.2, 1.+0.2);
378  m_th1_recyoverextrapyfarpot = new TH1F("recyoverextrapyfarpot","rec y over extrap y farpot", 100, 1.-0.2, 1.+0.2);
379  m_th1_recxminusextrapxfarpot = new TH1F("recxminusextrapxfarpot","rec x minus extrap x farpot", 100, -0.5, 0.5);
380  m_th1_recyminusextrapyfarpot = new TH1F("recyminusextrapyfarpot","rec y minus extrap y farpot", 100, -0.5, 0.5);
381 }

◆ initialize()

StatusCode ALFA_GloRec::initialize ( )
private

Definition at line 120 of file ALFA_GloRec.cxx.

120  {
121  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::initialize()");
122  LogStream << MSG::DEBUG << "begin ALFA_GloRec::initialize()" << endmsg;
123 
124  msg(MSG::DEBUG) << "======================================" << endmsg;
125  msg(MSG::DEBUG) << "ALFA_GloRec::initialize - data type " << endmsg;
126  msg(MSG::DEBUG) << "======================================" << endmsg;
127  msg(MSG::DEBUG) << "DataType = " << m_iDataType << endmsg;
128 
129  TString l_strtmp(m_strTrackPathPatterns);
131  msg(MSG::DEBUG) << "==========================================================" << endmsg;
132  msg(MSG::DEBUG) << "ALFA_GloRec::initialize - Path patterns from job options " << endmsg;
133  msg(MSG::DEBUG) << "==========================================================" << endmsg;
134  m_TObjArrTrackPathPatterns = *(l_strtmp.Tokenize(","));
135  for(int i = 0; i < m_TObjArrTrackPathPatterns.GetEntries(); i++){
136  msg(MSG::DEBUG) << "pattern[" << i << "] = " << ((TObjString*) m_TObjArrTrackPathPatterns.At(i))->GetString().Data() << endmsg;
137  }
138 
139 
141  // ... declare histograms for some analysis
143  InitHistos();
144 
145 
146  return StatusCode::SUCCESS;
147 }

◆ 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.

◆ Truth_info()

StatusCode ALFA_GloRec::Truth_info ( )
private

Definition at line 269 of file ALFA_GloRec.cxx.

269  {
270 
271  const McEventCollection* mcTru = nullptr;
272  StatusCode sc = evtStore()->retrieve(mcTru,m_TruthCollectionName);
273  if(sc.isFailure() || !mcTru){
274  msg(MSG::DEBUG) << "Container "<< m_TruthCollectionName <<" NOT FOUND !!!!!!!" << endmsg;
275  return StatusCode::FAILURE;
276  }
277 
278 
279  //int VertexFoundInFrontOfALFA = 0;
280 
281 
282  McEventCollection::const_iterator mcTruBeg = mcTru->begin();
283  McEventCollection::const_iterator mcTruEnd = mcTru->end();
284 
285  //loop over collection (container) with hits (i.e. over 1 event)
286  for(;mcTruBeg!=mcTruEnd;++mcTruBeg){
287 
288  //loop over one event
289  m_z_g_pos = -1.e10;
290  m_z_g_neg = 1.e10;
291  for(const HepMC::ConstGenParticlePtr& begGen: (**mcTruBeg)){
292  if(((std::abs(begGen->pdg_id())==2212)||(std::abs(begGen->pdg_id())==211))){
293  double px, py, pz;
294  double x, y, z;
295  px = begGen->momentum().px();
296  py = begGen->momentum().py();
297  pz = begGen->momentum().pz();
298  HepMC::ConstGenVertexPtr l_prodvert = begGen->production_vertex();
299  x = l_prodvert->position().x();
300  y = l_prodvert->position().y();
301  z = l_prodvert->position().z();
302  if(z > 236000.){
303  m_px_g_pos = px;
304  m_py_g_pos = py;
305  m_pz_g_pos = pz;
306  m_x_g_pos = x;
307  m_y_g_pos = y;
308  m_z_g_pos = z;
309  continue;
310  }else if(z < -236000.){
311  m_px_g_neg = px;
312  m_py_g_neg = py;
313  m_pz_g_neg = pz;
314  m_x_g_neg = x;
315  m_y_g_neg = y;
316  m_z_g_neg = z;
317  continue;
318  }
319 
320  // ... break the loop if both suitable vertices were found
321  if (m_z_g_pos > 0. && m_z_g_neg < 0.){
322  msg(MSG::DEBUG) << "gen px, py, pz = " << m_px_g_pos << " " << m_py_g_pos << " " << m_pz_g_pos << endmsg;
323  msg(MSG::DEBUG) << "prod x, y, z = " << m_x_g_pos << " " << m_y_g_pos << " " << m_z_g_pos << endmsg;
324  msg(MSG::DEBUG) << "gen px, py, pz = " << m_px_g_neg << " " << m_py_g_neg << " " << m_pz_g_neg << endmsg;
325  msg(MSG::DEBUG) << "prod x, y, z = " << m_x_g_neg << " " << m_y_g_neg << " " << m_z_g_neg << endmsg;
326  break;
327  }
328  }
329  }
330  }
331  return StatusCode::SUCCESS;
332 }

◆ 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  }

◆ WriteHistos()

void ALFA_GloRec::WriteHistos ( )
private

Definition at line 469 of file ALFA_GloRec.cxx.

469  {
471  // ... write the histograms into a root file
473  TFile fw_glorecanalysis(m_strGloRecAnalysisFile.data(), "RECREATE", m_strGloRecAnalysisFile.data(), 0);
474  m_th1_xnearuppotresiduals -> Write();
475  m_th1_ynearuppotresiduals -> Write();
476  m_th1_xfaruppotresiduals -> Write();
477  m_th1_yfaruppotresiduals -> Write();
478  m_th1_xnearlwpotresiduals -> Write();
479  m_th1_ynearlwpotresiduals -> Write();
480  m_th1_xfarlwpotresiduals -> Write();
481  m_th1_yfarlwpotresiduals -> Write();
482  m_th2_truexvsrecx -> Write();
483  m_th2_trueyvsrecy -> Write();
484  m_th2_truexslopevsrecxslope -> Write();
485  m_th2_trueyslopevsrecyslope -> Write();
486  m_th1_recxovertruex -> Write();
487  m_th1_recyovertruey -> Write();
488  m_th1_recxslopeovertruexslope -> Write();
489  m_th1_recyslopeovertrueyslope -> Write();
490  m_th1_recxminustruex -> Write();
491  m_th1_recyminustruey -> Write();
492  m_th1_recxslopeminustruexslope -> Write();
493  m_th1_recyslopeminustrueyslope -> Write();
494  m_th2_extrapxvsrecxnearpot -> Write();
495  m_th2_extrapyvsrecynearpot -> Write();
496  m_th1_recxoverextrapxnearpot -> Write();
497  m_th1_recyoverextrapynearpot -> Write();
500  m_th2_extrapxvsrecxfarpot -> Write();
501  m_th2_extrapyvsrecyfarpot -> Write();
502  m_th1_recxoverextrapxfarpot -> Write();
503  m_th1_recyoverextrapyfarpot -> Write();
504  m_th1_recxminusextrapxfarpot -> Write();
505  m_th1_recyminusextrapyfarpot -> Write();
506 
507  fw_glorecanalysis.Write();
508  fw_glorecanalysis.Close();
509 }

Member Data Documentation

◆ 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_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_iDataType

int ALFA_GloRec::m_iDataType = 0
private

Definition at line 47 of file ALFA_GloRec.h.

◆ m_pGloRecEvCollection

ALFA_GloRecEvCollection* ALFA_GloRec::m_pGloRecEvCollection {}
private

Definition at line 41 of file ALFA_GloRec.h.

◆ m_px_g_neg

double ALFA_GloRec::m_px_g_neg {}
private

Definition at line 78 of file ALFA_GloRec.h.

◆ m_px_g_pos

double ALFA_GloRec::m_px_g_pos {}
private

Definition at line 71 of file ALFA_GloRec.h.

◆ m_py_g_neg

double ALFA_GloRec::m_py_g_neg {}
private

Definition at line 79 of file ALFA_GloRec.h.

◆ m_py_g_pos

double ALFA_GloRec::m_py_g_pos {}
private

Definition at line 72 of file ALFA_GloRec.h.

◆ m_pz_g_neg

double ALFA_GloRec::m_pz_g_neg {}
private

Definition at line 80 of file ALFA_GloRec.h.

◆ m_pz_g_pos

double ALFA_GloRec::m_pz_g_pos {}
private

Definition at line 73 of file ALFA_GloRec.h.

◆ m_strGloRecAnalysisFile

std::string ALFA_GloRec::m_strGloRecAnalysisFile
private

Definition at line 50 of file ALFA_GloRec.h.

◆ m_strGloRecCollectionName

std::string ALFA_GloRec::m_strGloRecCollectionName
private

Definition at line 51 of file ALFA_GloRec.h.

◆ m_strLocRecCorrCollectionName

std::string ALFA_GloRec::m_strLocRecCorrCollectionName
private

Definition at line 52 of file ALFA_GloRec.h.

◆ m_strTrackPathPatterns

std::string ALFA_GloRec::m_strTrackPathPatterns
private

Definition at line 48 of file ALFA_GloRec.h.

◆ m_th1_recxminusextrapxfarpot

TH1F* ALFA_GloRec::m_th1_recxminusextrapxfarpot {}
private

Definition at line 126 of file ALFA_GloRec.h.

◆ m_th1_recxminusextrapxnearpot

TH1F* ALFA_GloRec::m_th1_recxminusextrapxnearpot {}
private

Definition at line 119 of file ALFA_GloRec.h.

◆ m_th1_recxminustruex

TH1F* ALFA_GloRec::m_th1_recxminustruex {}
private

Definition at line 110 of file ALFA_GloRec.h.

◆ m_th1_recxoverextrapxfarpot

TH1F* ALFA_GloRec::m_th1_recxoverextrapxfarpot {}
private

Definition at line 124 of file ALFA_GloRec.h.

◆ m_th1_recxoverextrapxnearpot

TH1F* ALFA_GloRec::m_th1_recxoverextrapxnearpot {}
private

Definition at line 117 of file ALFA_GloRec.h.

◆ m_th1_recxovertruex

TH1F* ALFA_GloRec::m_th1_recxovertruex {}
private

Definition at line 106 of file ALFA_GloRec.h.

◆ m_th1_recxslopeminustruexslope

TH1F* ALFA_GloRec::m_th1_recxslopeminustruexslope {}
private

Definition at line 112 of file ALFA_GloRec.h.

◆ m_th1_recxslopeovertruexslope

TH1F* ALFA_GloRec::m_th1_recxslopeovertruexslope {}
private

Definition at line 108 of file ALFA_GloRec.h.

◆ m_th1_recyminusextrapyfarpot

TH1F* ALFA_GloRec::m_th1_recyminusextrapyfarpot {}
private

Definition at line 127 of file ALFA_GloRec.h.

◆ m_th1_recyminusextrapynearpot

TH1F* ALFA_GloRec::m_th1_recyminusextrapynearpot {}
private

Definition at line 120 of file ALFA_GloRec.h.

◆ m_th1_recyminustruey

TH1F* ALFA_GloRec::m_th1_recyminustruey {}
private

Definition at line 111 of file ALFA_GloRec.h.

◆ m_th1_recyoverextrapyfarpot

TH1F* ALFA_GloRec::m_th1_recyoverextrapyfarpot {}
private

Definition at line 125 of file ALFA_GloRec.h.

◆ m_th1_recyoverextrapynearpot

TH1F* ALFA_GloRec::m_th1_recyoverextrapynearpot {}
private

Definition at line 118 of file ALFA_GloRec.h.

◆ m_th1_recyovertruey

TH1F* ALFA_GloRec::m_th1_recyovertruey {}
private

Definition at line 107 of file ALFA_GloRec.h.

◆ m_th1_recyslopeminustrueyslope

TH1F* ALFA_GloRec::m_th1_recyslopeminustrueyslope {}
private

Definition at line 113 of file ALFA_GloRec.h.

◆ m_th1_recyslopeovertrueyslope

TH1F* ALFA_GloRec::m_th1_recyslopeovertrueyslope {}
private

Definition at line 109 of file ALFA_GloRec.h.

◆ m_th1_x_g

TH1F* ALFA_GloRec::m_th1_x_g {}
private

Definition at line 88 of file ALFA_GloRec.h.

◆ m_th1_xfarlwpotresiduals

TH1F* ALFA_GloRec::m_th1_xfarlwpotresiduals {}
private

Definition at line 99 of file ALFA_GloRec.h.

◆ m_th1_xfaruppotresiduals

TH1F* ALFA_GloRec::m_th1_xfaruppotresiduals {}
private

Definition at line 95 of file ALFA_GloRec.h.

◆ m_th1_xnearlwpotresiduals

TH1F* ALFA_GloRec::m_th1_xnearlwpotresiduals {}
private

Definition at line 97 of file ALFA_GloRec.h.

◆ m_th1_xnearuppotresiduals

TH1F* ALFA_GloRec::m_th1_xnearuppotresiduals {}
private

Definition at line 93 of file ALFA_GloRec.h.

◆ m_th1_xslope_g

TH1F* ALFA_GloRec::m_th1_xslope_g {}
private

Definition at line 90 of file ALFA_GloRec.h.

◆ m_th1_y_g

TH1F* ALFA_GloRec::m_th1_y_g {}
private

Definition at line 89 of file ALFA_GloRec.h.

◆ m_th1_yfarlwpotresiduals

TH1F* ALFA_GloRec::m_th1_yfarlwpotresiduals {}
private

Definition at line 100 of file ALFA_GloRec.h.

◆ m_th1_yfaruppotresiduals

TH1F* ALFA_GloRec::m_th1_yfaruppotresiduals {}
private

Definition at line 96 of file ALFA_GloRec.h.

◆ m_th1_ynearlwpotresiduals

TH1F* ALFA_GloRec::m_th1_ynearlwpotresiduals {}
private

Definition at line 98 of file ALFA_GloRec.h.

◆ m_th1_ynearuppotresiduals

TH1F* ALFA_GloRec::m_th1_ynearuppotresiduals {}
private

Definition at line 94 of file ALFA_GloRec.h.

◆ m_th1_yslope_g

TH1F* ALFA_GloRec::m_th1_yslope_g {}
private

Definition at line 91 of file ALFA_GloRec.h.

◆ m_th2_extrapxvsrecxfarpot

TH2F* ALFA_GloRec::m_th2_extrapxvsrecxfarpot {}
private

Definition at line 122 of file ALFA_GloRec.h.

◆ m_th2_extrapxvsrecxnearpot

TH2F* ALFA_GloRec::m_th2_extrapxvsrecxnearpot {}
private

Definition at line 115 of file ALFA_GloRec.h.

◆ m_th2_extrapyvsrecyfarpot

TH2F* ALFA_GloRec::m_th2_extrapyvsrecyfarpot {}
private

Definition at line 123 of file ALFA_GloRec.h.

◆ m_th2_extrapyvsrecynearpot

TH2F* ALFA_GloRec::m_th2_extrapyvsrecynearpot {}
private

Definition at line 116 of file ALFA_GloRec.h.

◆ m_th2_truexslopevsrecxslope

TH2F* ALFA_GloRec::m_th2_truexslopevsrecxslope {}
private

Definition at line 104 of file ALFA_GloRec.h.

◆ m_th2_truexvsrecx

TH2F* ALFA_GloRec::m_th2_truexvsrecx {}
private

Definition at line 102 of file ALFA_GloRec.h.

◆ m_th2_trueyslopevsrecyslope

TH2F* ALFA_GloRec::m_th2_trueyslopevsrecyslope {}
private

Definition at line 105 of file ALFA_GloRec.h.

◆ m_th2_trueyvsrecy

TH2F* ALFA_GloRec::m_th2_trueyvsrecy {}
private

Definition at line 103 of file ALFA_GloRec.h.

◆ m_TObjArrTrackPathPatterns

TObjArray ALFA_GloRec::m_TObjArrTrackPathPatterns {}
private

Definition at line 49 of file ALFA_GloRec.h.

◆ m_TruthCollectionName

std::string ALFA_GloRec::m_TruthCollectionName
private

Definition at line 53 of file ALFA_GloRec.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.

◆ m_x_g_neg

double ALFA_GloRec::m_x_g_neg {}
private

Definition at line 81 of file ALFA_GloRec.h.

◆ m_x_g_pos

double ALFA_GloRec::m_x_g_pos {}
private

Definition at line 74 of file ALFA_GloRec.h.

◆ m_y_g_neg

double ALFA_GloRec::m_y_g_neg {}
private

Definition at line 82 of file ALFA_GloRec.h.

◆ m_y_g_pos

double ALFA_GloRec::m_y_g_pos {}
private

Definition at line 75 of file ALFA_GloRec.h.

◆ m_z_g_neg

double ALFA_GloRec::m_z_g_neg {}
private

Definition at line 83 of file ALFA_GloRec.h.

◆ m_z_g_pos

double ALFA_GloRec::m_z_g_pos {}
private

Definition at line 76 of file ALFA_GloRec.h.


The documentation for this class was generated from the following files:
ALFA_GloRec::m_th1_recxslopeovertruexslope
TH1F * m_th1_recxslopeovertruexslope
Definition: ALFA_GloRec.h:108
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
ALFA_GloRec::FillTrackCandHistos
void FillTrackCandHistos(AlfaTrackCand *trkcand)
Definition: ALFA_GloRec.cxx:389
ALFA_GloRec::m_th1_recxminusextrapxfarpot
TH1F * m_th1_recxminusextrapxfarpot
Definition: ALFA_GloRec.h:126
ALFA_GloRec::m_TruthCollectionName
std::string m_TruthCollectionName
Definition: ALFA_GloRec.h:53
ALFA_GloRec::m_z_g_neg
double m_z_g_neg
Definition: ALFA_GloRec.h:83
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
ALFA_GloRec::m_TObjArrTrackPathPatterns
TObjArray m_TObjArrTrackPathPatterns
Definition: ALFA_GloRec.h:49
ALFA_GloRec::m_x_g_neg
double m_x_g_neg
Definition: ALFA_GloRec.h:81
ALFA_GloRec::m_pz_g_pos
double m_pz_g_pos
Definition: ALFA_GloRec.h:73
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
test_pyathena.px
px
Definition: test_pyathena.py:18
AlfaTrackCand::GetFarLocalHit
AlfaLocalHit * GetFarLocalHit()
Definition: AlfaLocalHits.h:117
AlfaTrackCand::GetY
float GetY()
Definition: AlfaLocalHits.h:112
ALFA_GloRec::m_py_g_neg
double m_py_g_neg
Definition: ALFA_GloRec.h:79
ALFA_GloRec::m_x_g_pos
double m_x_g_pos
Definition: ALFA_GloRec.h:74
ALFA_GloRec::m_th2_extrapyvsrecynearpot
TH2F * m_th2_extrapyvsrecynearpot
Definition: ALFA_GloRec.h:116
ALFA_GloRec::m_th1_xslope_g
TH1F * m_th1_xslope_g
Definition: ALFA_GloRec.h:90
ALFA_GloRec::Truth_info
StatusCode Truth_info()
Definition: ALFA_GloRec.cxx:269
ALFA_GloRec::m_th2_extrapxvsrecxfarpot
TH2F * m_th2_extrapxvsrecxfarpot
Definition: ALFA_GloRec.h:122
ALFA_GloRec::m_th1_xfaruppotresiduals
TH1F * m_th1_xfaruppotresiduals
Definition: ALFA_GloRec.h:95
ALFA_GloRec::m_th1_recyslopeminustrueyslope
TH1F * m_th1_recyslopeminustrueyslope
Definition: ALFA_GloRec.h:113
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
ALFA_GloRec::m_th1_recyslopeovertrueyslope
TH1F * m_th1_recyslopeovertrueyslope
Definition: ALFA_GloRec.h:109
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
ALFA_GloRec::m_th1_recxslopeminustruexslope
TH1F * m_th1_recxslopeminustruexslope
Definition: ALFA_GloRec.h:112
ALFA_LocRecCorrEvCollection
Definition: ALFA_LocRecCorrEvCollection.h:13
ALFA_GloRec::m_strGloRecCollectionName
std::string m_strGloRecCollectionName
Definition: ALFA_GloRec.h:51
AlfaLocalHits
Definition: AlfaLocalHits.h:58
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
AlfaTrackCand::GetXslope
float GetXslope()
Definition: AlfaLocalHits.h:114
ALFA_GloRec::m_th1_xfarlwpotresiduals
TH1F * m_th1_xfarlwpotresiduals
Definition: ALFA_GloRec.h:99
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
x
#define x
ALFA_GloRec::m_th1_yslope_g
TH1F * m_th1_yslope_g
Definition: ALFA_GloRec.h:91
ALFA_GloRec::m_th1_yfarlwpotresiduals
TH1F * m_th1_yfarlwpotresiduals
Definition: ALFA_GloRec.h:100
AlfaTrackCand::IsLeftTrack
int IsLeftTrack()
Definition: AlfaLocalHits.cxx:296
ALFA_GloRec::m_th1_recxminusextrapxnearpot
TH1F * m_th1_recxminusextrapxnearpot
Definition: ALFA_GloRec.h:119
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
ALFA_GloRec::m_y_g_neg
double m_y_g_neg
Definition: ALFA_GloRec.h:82
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
ALFA_GloRecEvCollection
Definition: ALFA_GloRecEvCollection.h:13
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
ALFA_GloRec::m_th1_recyminusextrapynearpot
TH1F * m_th1_recyminusextrapynearpot
Definition: ALFA_GloRec.h:120
ALFA_GloRec::m_iDataType
int m_iDataType
Definition: ALFA_GloRec.h:47
ALFA_GloRec::m_th1_y_g
TH1F * m_th1_y_g
Definition: ALFA_GloRec.h:89
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
ALFA_GloRec::m_y_g_pos
double m_y_g_pos
Definition: ALFA_GloRec.h:75
ALFA_GloRecEvent
Definition: ALFA_GloRecEvent.h:12
ALFA_GloRec::m_th2_trueyvsrecy
TH2F * m_th2_trueyvsrecy
Definition: ALFA_GloRec.h:103
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
ALFA_GloRec::m_pz_g_neg
double m_pz_g_neg
Definition: ALFA_GloRec.h:80
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
CheckAppliedSFs.e3
e3
Definition: CheckAppliedSFs.py:264
ALFA_GloRec::m_th2_extrapxvsrecxnearpot
TH2F * m_th2_extrapxvsrecxnearpot
Definition: ALFA_GloRec.h:115
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
ALFA_GloRec::m_strLocRecCorrCollectionName
std::string m_strLocRecCorrCollectionName
Definition: ALFA_GloRec.h:52
ALFA_GloRec::m_th2_extrapyvsrecyfarpot
TH2F * m_th2_extrapyvsrecyfarpot
Definition: ALFA_GloRec.h:123
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
AlfaLocalHit::GetY
float GetY() const
Definition: AlfaLocalHits.h:38
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
AlfaTrackCand::GetYslope
float GetYslope()
Definition: AlfaLocalHits.h:115
ALFA_GloRec::m_th1_recyoverextrapyfarpot
TH1F * m_th1_recyoverextrapyfarpot
Definition: ALFA_GloRec.h:125
ALFA_GloRec::m_strTrackPathPatterns
std::string m_strTrackPathPatterns
Definition: ALFA_GloRec.h:48
ALFA_LocRecCorrEvent
Definition: ALFA_LocRecCorrEvent.h:8
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
AlfaTrackCand::GetFarImpactPoint
HepGeom::Point3D< double > * GetFarImpactPoint()
Definition: AlfaLocalHits.h:122
AlfaTrackCand::GetNearLocalHit
AlfaLocalHit * GetNearLocalHit()
Definition: AlfaLocalHits.h:116
AlfaLocalHit::GetZ
float GetZ() const
Definition: AlfaLocalHits.h:39
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
ALFA_GloRec::m_th1_xnearuppotresiduals
TH1F * m_th1_xnearuppotresiduals
Definition: ALFA_GloRec.h:93
ALFA_GloRec::InitHistos
void InitHistos()
Definition: ALFA_GloRec.cxx:340
ALFA_GloRec::m_th1_yfaruppotresiduals
TH1F * m_th1_yfaruppotresiduals
Definition: ALFA_GloRec.h:96
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:32
ALFA_GloRec::m_th2_truexslopevsrecxslope
TH2F * m_th2_truexslopevsrecxslope
Definition: ALFA_GloRec.h:104
ALFA_GloRec::m_th1_recxminustruex
TH1F * m_th1_recxminustruex
Definition: ALFA_GloRec.h:110
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
ALFA_GloRec::m_th1_recyoverextrapynearpot
TH1F * m_th1_recyoverextrapynearpot
Definition: ALFA_GloRec.h:118
AlfaTrackCand::GetX
float GetX()
Definition: AlfaLocalHits.h:111
HepMC::ConstGenParticlePtr
const GenParticle * ConstGenParticlePtr
Definition: GenParticle.h:38
Amg::py
@ py
Definition: GeoPrimitives.h:39
ALFA_GloRec::m_th1_recxovertruex
TH1F * m_th1_recxovertruex
Definition: ALFA_GloRec.h:106
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
ALFA_GloRec::m_th2_trueyslopevsrecyslope
TH2F * m_th2_trueyslopevsrecyslope
Definition: ALFA_GloRec.h:105
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ALFA_GloRec::m_px_g_pos
double m_px_g_pos
Definition: ALFA_GloRec.h:71
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
ALFA_GloRec::m_th1_recyovertruey
TH1F * m_th1_recyovertruey
Definition: ALFA_GloRec.h:107
ALFA_GloRec::m_th2_truexvsrecx
TH2F * m_th2_truexvsrecx
Definition: ALFA_GloRec.h:102
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
ALFA_GloRec::m_th1_recxoverextrapxnearpot
TH1F * m_th1_recxoverextrapxnearpot
Definition: ALFA_GloRec.h:117
ALFA_GloRec::m_th1_recyminusextrapyfarpot
TH1F * m_th1_recyminusextrapyfarpot
Definition: ALFA_GloRec.h:127
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
AlfaLocalHit
Definition: AlfaLocalHits.h:23
h
ALFA_GloRec::m_th1_xnearlwpotresiduals
TH1F * m_th1_xnearlwpotresiduals
Definition: ALFA_GloRec.h:97
ALFA_GloRec::m_th1_x_g
TH1F * m_th1_x_g
Definition: ALFA_GloRec.h:88
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DEBUG
#define DEBUG
Definition: page_access.h:11
ALFA_GloRec::WriteHistos
void WriteHistos()
Definition: ALFA_GloRec.cxx:469
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
ALFA_GloRec::m_strGloRecAnalysisFile
std::string m_strGloRecAnalysisFile
Definition: ALFA_GloRec.h:50
ALFA_GloRec::m_py_g_pos
double m_py_g_pos
Definition: ALFA_GloRec.h:72
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
ALFA_GloRec::m_th1_ynearuppotresiduals
TH1F * m_th1_ynearuppotresiduals
Definition: ALFA_GloRec.h:94
ALFA_GloRec::m_th1_recxoverextrapxfarpot
TH1F * m_th1_recxoverextrapxfarpot
Definition: ALFA_GloRec.h:124
ALFA_GloRec::m_th1_recyminustruey
TH1F * m_th1_recyminustruey
Definition: ALFA_GloRec.h:111
AlfaLocalHit::GetX
float GetX() const
Definition: AlfaLocalHits.h:37
AlfaTrackCand::IsRightTrack
int IsRightTrack()
Definition: AlfaLocalHits.cxx:310
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
ALFA_GloRec::m_z_g_pos
double m_z_g_pos
Definition: ALFA_GloRec.h:76
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
HepMC::ConstGenVertexPtr
const HepMC::GenVertex * ConstGenVertexPtr
Definition: GenVertex.h:60
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
ALFA_GloRec::m_px_g_neg
double m_px_g_neg
Definition: ALFA_GloRec.h:78
AlfaTrackCand::GetNearImpactPoint
HepGeom::Point3D< double > * GetNearImpactPoint()
Definition: AlfaLocalHits.h:121
AlfaTrackCand
Definition: AlfaLocalHits.h:90
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
ALFA_GloRec::m_pGloRecEvCollection
ALFA_GloRecEvCollection * m_pGloRecEvCollection
Definition: ALFA_GloRec.h:41
ServiceHandle< ICondSvc >
ALFA_GloRec::m_th1_ynearlwpotresiduals
TH1F * m_th1_ynearlwpotresiduals
Definition: ALFA_GloRec.h:98