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 > &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 > &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

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 74 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 73 of file ALFA_GloRec.cxx.

73  :
74 AthAlgorithm(name, pSvcLocator)
75 //,m_digitsStore("StoreGateSvc", name)
76 {
77 
78  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::ALFA_GloRec");
79  LogStream << MSG::DEBUG << "begin ALFA_GloRec::ALFA_GloRec" << endmsg;
80 
82  // ... steerable job options
84  declareProperty("DataType", m_iDataType);
85  declareProperty("TrackPathPatterns", m_strTrackPathPatterns);
87 
88  declareProperty("OutputGloRecCollectionName",m_strGloRecCollectionName);
89  declareProperty("InputLocRecCollectionName",m_strLocRecCorrCollectionName);
90  declareProperty("TruthEventCollectionName",m_TruthCollectionName);
91 
93  m_pGloRecEvCollection=nullptr;
94 
95  m_px_g_pos = 0.0;
96  m_py_g_pos = 0.0;
97  m_pz_g_pos = 0.0;
98  m_x_g_pos = 0.0;
99  m_y_g_pos = 0.0;
100  m_z_g_pos = 0.0;
101  m_px_g_neg = 0.0;
102  m_py_g_neg = 0.0;
103  m_pz_g_neg = 0.0;
104  m_x_g_neg = 0.0;
105  m_y_g_neg = 0.0;
106  m_z_g_neg = 0.0;
107 
108  m_th1_x_g = nullptr;
109  m_th1_y_g = nullptr;
110  m_th1_xslope_g = nullptr;
111  m_th1_yslope_g = nullptr;
112  m_th1_xnearuppotresiduals = nullptr;
113  m_th1_ynearuppotresiduals = nullptr;
114  m_th1_xfaruppotresiduals = nullptr;
115  m_th1_yfaruppotresiduals = nullptr;
116  m_th1_xnearlwpotresiduals = nullptr;
117  m_th1_ynearlwpotresiduals = nullptr;
118  m_th1_xfarlwpotresiduals = nullptr;
119  m_th1_yfarlwpotresiduals = nullptr;
120  m_th2_truexvsrecx = nullptr;
121  m_th2_trueyvsrecy = nullptr;
122  m_th2_truexslopevsrecxslope = nullptr;
123  m_th2_trueyslopevsrecyslope = nullptr;
124  m_th1_recxovertruex = nullptr;
125  m_th1_recyovertruey = nullptr;
128  m_th1_recxminustruex = nullptr;
129  m_th1_recyminustruey = nullptr;
132  m_th2_extrapxvsrecxnearpot = nullptr;
133  m_th2_extrapyvsrecynearpot = nullptr;
138  m_th2_extrapxvsrecxfarpot = nullptr;
139  m_th2_extrapyvsrecyfarpot = nullptr;
140  m_th1_recxoverextrapxfarpot = nullptr;
141  m_th1_recyoverextrapyfarpot = nullptr;
144 
145 }

◆ ~ALFA_GloRec()

ALFA_GloRec::~ALFA_GloRec ( )

Definition at line 152 of file ALFA_GloRec.cxx.

152  {
153  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::~ALFA_GloRec");
154  LogStream << MSG::DEBUG << "begin ALFA_GloRec::~ALFA_GloRec" << endmsg;
155  LogStream << MSG::DEBUG << "end ALFA_GloRec::~ALFA_GloRec" << endmsg;
156 }

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 ALFA_GloRec::execute ( )
private

Definition at line 197 of file ALFA_GloRec.cxx.

197  {
198 
199  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::execute()");
200  LogStream << MSG::DEBUG << "begin ALFA_GloRec::execute()" << endmsg;
201  StatusCode sc = StatusCode::SUCCESS;
202 
203 
204 
205 
206 
208  // get truth information
210  if(m_iDataType == 0){
211  LogStream << MSG::DEBUG << "truth info()" << endmsg;
212  sc = Truth_info();
213  if (sc.isFailure()) {
214  LogStream << MSG::WARNING << "ALFA digi, Truth_info failed" << endmsg;
215  return StatusCode::SUCCESS;
216  }
217  }
218 
220  // ... record output collection
223  sc = evtStore()->record(m_pGloRecEvCollection, "ALFA_GloRecEvCollection");
224  if (sc.isFailure()) {
225  msg(MSG::ERROR) << "Could not create the empty LocRecEv collection in StoreGate" << endmsg;
226  }
227 
228 
230  // ... get LocRecCorr data
232  const ALFA_LocRecCorrEvCollection* pLocRecCorrCol = nullptr;
233  sc = evtStore()->retrieve(pLocRecCorrCol, m_strLocRecCorrCollectionName);
234  if(sc.isFailure() || !pLocRecCorrCol)
235  {
236  msg(MSG::ERROR) << "Container "<< m_strLocRecCorrCollectionName <<" NOT FOUND !!!!!!!" << endmsg;
237  return sc;
238  }
239 
240 
242  // ... collect the local hits and contain them in an auxiliary hit collection
244  ALFA_LocRecCorrEvCollection::const_iterator mcColBeg = pLocRecCorrCol->begin();
245  ALFA_LocRecCorrEvCollection::const_iterator mcColEnd = pLocRecCorrCol->end();
247  for(; mcColBeg!=mcColEnd; ++mcColBeg) {
248  HepGeom::Point3D<double> PointInAtlasCS;
249  const ALFA_LocRecCorrEvent* pLocRecCorr_tmp = static_cast<const ALFA_LocRecCorrEvent*> (*mcColBeg);
250  AlfaLocalHit l_hit(pLocRecCorr_tmp);
251  hits.AddHit(l_hit);
252  //PointInAtlasCS = m_pGeometryReader->GetDetPointInAtlas((eRPotName)(iRPot+1), Point3D<double>(fRecPosX, fRecPosY, 10.0));
253  }
254  //hits.Dump();
255 
256 
257 
259  // ... apply path pattern
261  for(int i = 0; i < m_TObjArrTrackPathPatterns.GetEntries(); i++){
262  TString l_pathpattern(((TObjString*) m_TObjArrTrackPathPatterns.At(i))->GetString());
263  hits.ApplyPathPattern(l_pathpattern.Data());
264  //hits.DumpPaths();
265  for(int i = 0 ; i < hits.GetNpaths() ; i++){
266  AlfaTrackCand trkcand(hits.GetPathHits(i));
267  if(trkcand.IsValidTrack()){
268  m_pGloRecEvCollection->push_back(new ALFA_GloRecEvent(trkcand.GetArmNum(),trkcand.GetX(),trkcand.GetY(),trkcand.GetXslope(),trkcand.GetXslope(),trkcand.GetNearLocRecCorr(),trkcand.GetFarLocRecCorr()));
269  FillTrackCandHistos(&trkcand);
270  }
271  }
272  hits.ResetPaths();
273  }
274 
275 
276 
277 
278  return sc;
279 }

◆ 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 432 of file ALFA_GloRec.cxx.

432  {
433 
434  if(m_iDataType==0){
435  double x_g, y_g, z_g, px_g, py_g, pz_g;
436  if(trkcand->IsLeftTrack()){ // left is positive
437  x_g = m_x_g_pos;
438  y_g = m_y_g_pos;
439  z_g = m_z_g_pos;
440  px_g = m_px_g_pos;
441  py_g = m_py_g_pos;
442  pz_g = m_pz_g_pos;
443  }else if(trkcand->IsRightTrack()){ // right is negative
444  x_g = m_x_g_neg;
445  y_g = m_y_g_neg;
446  z_g = m_z_g_neg;
447  px_g = m_px_g_neg;
448  py_g = m_py_g_neg;
449  pz_g = m_pz_g_neg;
450  }else{
451  ATH_MSG_ERROR("ALFA_GloRec::FillTrackCandHistos : Track candidate neither left nor right !!!");
452  return;
453  }
454  m_th1_xnearuppotresiduals -> Fill(trkcand->GetNearImpactPoint()->x()-trkcand->GetNearLocalHit()->GetX(),1.);
455  m_th1_ynearuppotresiduals -> Fill(trkcand->GetNearImpactPoint()->y()-trkcand->GetNearLocalHit()->GetY(),1.);
456  m_th1_xfaruppotresiduals -> Fill(trkcand->GetFarImpactPoint()->x()-trkcand->GetFarLocalHit()->GetX(),1.);
457  m_th1_yfaruppotresiduals -> Fill(trkcand->GetFarImpactPoint()->y()-trkcand->GetFarLocalHit()->GetY(),1.);
458  m_th2_truexvsrecx -> Fill(x_g, trkcand->GetX(), 1.);
459  m_th2_trueyvsrecy -> Fill(y_g, trkcand->GetY(), 1.);
460  m_th1_recxovertruex -> Fill(trkcand->GetX()/x_g, 1.);
461  m_th1_recyovertruey -> Fill(trkcand->GetY()/y_g, 1.);
462  //double p_gen = TMath::Sqrt(px_g*px_g+px_g*px_g+py_g*pz_g);
463  double px_norm = px_g / pz_g;//p_gen;
464  double py_norm = py_g / pz_g;//p_gen;
465  m_th2_truexslopevsrecxslope -> Fill(px_norm, trkcand->GetXslope(), 1.);
466  m_th2_trueyslopevsrecyslope -> Fill(py_norm, trkcand->GetYslope(), 1.);
467  m_th1_recxovertruex -> Fill(trkcand->GetX()/x_g, 1.);
468  m_th1_recyovertruey -> Fill(trkcand->GetY()/y_g, 1.);
469  m_th1_recxslopeovertruexslope -> Fill(trkcand->GetXslope()/px_norm, 1.);
470  m_th1_recyslopeovertrueyslope -> Fill(trkcand->GetYslope()/py_norm, 1.);
471  m_th1_recxminustruex -> Fill(trkcand->GetX()-x_g, 1.);
472  m_th1_recyminustruey -> Fill(trkcand->GetY()-y_g, 1.);
473  m_th1_recxslopeminustruexslope -> Fill(trkcand->GetXslope()-px_norm, 1.);
474  m_th1_recyslopeminustrueyslope -> Fill(trkcand->GetYslope()-py_norm, 1.);
475  // ... extrapolate x any of gen track to near pot
476  double nearhitx = trkcand->GetNearLocalHit()->GetX();
477  double nearhity = trkcand->GetNearLocalHit()->GetY();
478  double nearhitz = trkcand->GetNearLocalHit()->GetZ();
479  double genxextrtonearpot = x_g + px_norm * (nearhitz - z_g);
480  double genyextrtonearpot = y_g + py_norm * (nearhitz - z_g);
481  //double genzextrtonearpot = nearhitz;
482  m_th2_extrapxvsrecxnearpot -> Fill(genxextrtonearpot, nearhitx,1.);
483  m_th2_extrapyvsrecynearpot -> Fill(genyextrtonearpot, nearhity,1.);
484  m_th1_recxoverextrapxnearpot -> Fill(nearhitx / genxextrtonearpot, 1.);
485  m_th1_recyoverextrapynearpot -> Fill(nearhity / genyextrtonearpot, 1.);
486  m_th1_recxminusextrapxnearpot -> Fill(nearhitx - genxextrtonearpot, 1.);
487  m_th1_recyminusextrapynearpot -> Fill(nearhity - genyextrtonearpot, 1.);
488  // ... extrapolate x any of gen track to far pot
489  double farhitx = trkcand->GetFarLocalHit()->GetX();
490  double farhity = trkcand->GetFarLocalHit()->GetY();
491  double farhitz = trkcand->GetFarLocalHit()->GetZ();
492  double genxextrtofarpot = x_g + px_norm * (farhitz - z_g);
493  double genyextrtofarpot = y_g + py_norm * (farhitz - z_g);
494  //double genzextrtofarpot = farhitz;
495  m_th2_extrapxvsrecxfarpot -> Fill(genxextrtofarpot, farhitx,1.);
496  m_th2_extrapyvsrecyfarpot -> Fill(genyextrtofarpot, farhity,1.);
497  m_th1_recxoverextrapxfarpot -> Fill(farhitx / genxextrtofarpot, 1.);
498  m_th1_recyoverextrapyfarpot -> Fill(farhity / genyextrtofarpot, 1.);
499  m_th1_recxminusextrapxfarpot -> Fill(farhitx - genxextrtofarpot, 1.);
500  m_th1_recyminusextrapyfarpot -> Fill(farhity - genyextrtofarpot, 1.);
501  }
502 }

◆ finalize()

StatusCode ALFA_GloRec::finalize ( )
private

Definition at line 289 of file ALFA_GloRec.cxx.

289  {
290 
291  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::finalize()");
292  LogStream << MSG::DEBUG << "begin ALFA_GloRec::finalize()" << endmsg;
293 
294  WriteHistos();
295 
296  return StatusCode::SUCCESS;
297 }

◆ InitHistos()

void ALFA_GloRec::InitHistos ( )
private

Definition at line 383 of file ALFA_GloRec.cxx.

383  {
384  m_th1_x_g = new TH1F("x_g","x^{vertex}_{gen}", 100, -5,5);
385  m_th1_y_g = new TH1F("y_g","y^{vertex}_{gen}", 100, -5,5);
386  m_th1_xslope_g = new TH1F("xslope_g","x'^{vertex}_{gen}", 100, -1.e-3,1.e3);
387  m_th1_yslope_g = new TH1F("yslope_g","y'^{vertex}_{gen}", 100, -1.e-3,1.e3);
388 
389  m_th1_xnearuppotresiduals = new TH1F("xnearuppotresiduals","trk x extrap. minus near IP U loc hit",100, -10., 10.);
390  m_th1_ynearuppotresiduals = new TH1F("ynearuppotresiduals","trk y extrap. minus near IP U loc hit",100, -10., 10.);
391  m_th1_xfaruppotresiduals = new TH1F("xfaruppotresiduals","trk x extrap. minus far IP U loc hit",100, -10., 10.);
392  m_th1_yfaruppotresiduals = new TH1F("yfaruppotresiduals","trk y extrap. minus far IP U loc hit",100, -10., 10.);
393  m_th1_xnearlwpotresiduals = new TH1F("xnearlwpotresiduals","trk x extrap. minus near IP L loc hit",100, -10., 10.);
394  m_th1_ynearlwpotresiduals = new TH1F("ynearlwpotresiduals","trk y extrap. minus near IP L loc hit",100, -10., 10.);
395  m_th1_xfarlwpotresiduals = new TH1F("xfarlwpotresiduals","trk x extrap. minus far IP L loc hit",100, -10., 10.);
396  m_th1_yfarlwpotresiduals = new TH1F("yfarlwpotresiduals","trk y extrap. minus far IP L loc hit",100, -10., 10.);
397 
398  m_th2_truexvsrecx = new TH2F("truexvsrecx","gen x vs rec x", 100, -50, 50, 100, -50, 50);
399  m_th2_trueyvsrecy = new TH2F("trueyvsrecy","gen y vs rec y", 100, -50, 50, 100, -50, 50);
400  m_th2_truexslopevsrecxslope = new TH2F("truexslopevsrecxslope","gen xslope vs rec xslope", 100,-0.002,0.002,100,-0.002,0.002);
401  m_th2_trueyslopevsrecyslope = new TH2F("trueyslopevsrecyslope","gen yslope vs rec yslope", 100,-0.002,0.002,100,-0.002,0.002);
402  m_th1_recxovertruex = new TH1F("recxovertruex","rec x over true x", 100, -2, 2);
403  m_th1_recyovertruey = new TH1F("recyovertruey","rec y over true y", 100, -2, 2);
404  m_th1_recxslopeovertruexslope = new TH1F("recxslopeovertruexslope","rec xslope over true xslope", 100,-2,2);
405  m_th1_recyslopeovertrueyslope = new TH1F("recyslopeovertrueyslope","rec yslope over true yslope", 100,-2,2);
406  m_th1_recxminustruex = new TH1F("recxminustruex","rec x minus true x", 100, -10, 10);
407  m_th1_recyminustruey = new TH1F("recyminustruey","rec y minus true y", 100, -10, 10);
408  m_th1_recxslopeminustruexslope = new TH1F("recxslopeminustruexslope","rec xslope minus true xslope", 100,-0.001,0.001);
409  m_th1_recyslopeminustrueyslope = new TH1F("recyslopeminustrueyslope","rec yslope minus true yslope", 100,-0.001,0.001);
410 
411  m_th2_extrapxvsrecxnearpot = new TH2F("extrapxvsrecxnearpot","extrapolated gen x vs rec x nearpot", 100, -50, 50, 100, -50, 50);
412  m_th2_extrapyvsrecynearpot = new TH2F("extrapyvsrecynearpot","extrapolated gen y vs rec y nearpot", 100, -50, 50, 100, -50, 50);
413  m_th1_recxoverextrapxnearpot = new TH1F("recxoverextrapxnearpot","rec x over extrap x nearpot", 100, 1.-0.2, 1.+0.2);
414  m_th1_recyoverextrapynearpot = new TH1F("recyoverextrapynearpot","rec y over extrap y nearpot", 100, 1.-0.2, 1.+0.2);
415  m_th1_recxminusextrapxnearpot = new TH1F("recxminusextrapxnearpot","rec x minus extrap x nearpot", 100, -0.5, 0.5);
416  m_th1_recyminusextrapynearpot = new TH1F("recyminusextrapynearpot","rec y minus extrap y nearpot", 100, -0.5, 0.5);
417 
418  m_th2_extrapxvsrecxfarpot = new TH2F("extrapxvsrecxfarpot","extrapolated gen x vs rec x farpot", 100, -50, 50, 100, -50, 50);
419  m_th2_extrapyvsrecyfarpot = new TH2F("extrapyvsrecyfarpot","extrapolated gen y vs rec y farpot", 100, -50, 50, 100, -50, 50);
420  m_th1_recxoverextrapxfarpot = new TH1F("recxoverextrapxfarpot","rec x over extrap x farpot", 100, 1.-0.2, 1.+0.2);
421  m_th1_recyoverextrapyfarpot = new TH1F("recyoverextrapyfarpot","rec y over extrap y farpot", 100, 1.-0.2, 1.+0.2);
422  m_th1_recxminusextrapxfarpot = new TH1F("recxminusextrapxfarpot","rec x minus extrap x farpot", 100, -0.5, 0.5);
423  m_th1_recyminusextrapyfarpot = new TH1F("recyminusextrapyfarpot","rec y minus extrap y farpot", 100, -0.5, 0.5);
424 }

◆ initialize()

StatusCode ALFA_GloRec::initialize ( )
private

Definition at line 163 of file ALFA_GloRec.cxx.

163  {
164  MsgStream LogStream(Athena::getMessageSvc(), "ALFA_GloRec::initialize()");
165  LogStream << MSG::DEBUG << "begin ALFA_GloRec::initialize()" << endmsg;
166 
167  msg(MSG::DEBUG) << "======================================" << endmsg;
168  msg(MSG::DEBUG) << "ALFA_GloRec::initialize - data type " << endmsg;
169  msg(MSG::DEBUG) << "======================================" << endmsg;
170  msg(MSG::DEBUG) << "DataType = " << m_iDataType << endmsg;
171 
172  TString l_strtmp(m_strTrackPathPatterns);
174  msg(MSG::DEBUG) << "==========================================================" << endmsg;
175  msg(MSG::DEBUG) << "ALFA_GloRec::initialize - Path patterns from job options " << endmsg;
176  msg(MSG::DEBUG) << "==========================================================" << endmsg;
177  m_TObjArrTrackPathPatterns = *(l_strtmp.Tokenize(","));
178  for(int i = 0; i < m_TObjArrTrackPathPatterns.GetEntries(); i++){
179  msg(MSG::DEBUG) << "pattern[" << i << "] = " << ((TObjString*) m_TObjArrTrackPathPatterns.At(i))->GetString().Data() << endmsg;
180  }
181 
182 
184  // ... declare histograms for some analysis
186  InitHistos();
187 
188 
189  return StatusCode::SUCCESS;
190 }

◆ 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 312 of file ALFA_GloRec.cxx.

312  {
313 
314  const McEventCollection* mcTru = nullptr;
315  StatusCode sc = evtStore()->retrieve(mcTru,m_TruthCollectionName);
316  if(sc.isFailure() || !mcTru){
317  msg(MSG::DEBUG) << "Container "<< m_TruthCollectionName <<" NOT FOUND !!!!!!!" << endmsg;
318  return StatusCode::FAILURE;
319  }
320 
321 
322  //int VertexFoundInFrontOfALFA = 0;
323 
324 
325  McEventCollection::const_iterator mcTruBeg = mcTru->begin();
326  McEventCollection::const_iterator mcTruEnd = mcTru->end();
327 
328  //loop over collection (container) with hits (i.e. over 1 event)
329  for(;mcTruBeg!=mcTruEnd;++mcTruBeg){
330 
331  //loop over one event
332  m_z_g_pos = -1.e10;
333  m_z_g_neg = 1.e10;
334  for(const HepMC::ConstGenParticlePtr& begGen: (**mcTruBeg)){
335  if(((std::abs(begGen->pdg_id())==2212)||(std::abs(begGen->pdg_id())==211))){
336  double px, py, pz;
337  double x, y, z;
338  px = begGen->momentum().px();
339  py = begGen->momentum().py();
340  pz = begGen->momentum().pz();
341  HepMC::ConstGenVertexPtr l_prodvert = begGen->production_vertex();
342  x = l_prodvert->position().x();
343  y = l_prodvert->position().y();
344  z = l_prodvert->position().z();
345  if(z > 236000.){
346  m_px_g_pos = px;
347  m_py_g_pos = py;
348  m_pz_g_pos = pz;
349  m_x_g_pos = x;
350  m_y_g_pos = y;
351  m_z_g_pos = z;
352  continue;
353  }else if(z < -236000.){
354  m_px_g_neg = px;
355  m_py_g_neg = py;
356  m_pz_g_neg = pz;
357  m_x_g_neg = x;
358  m_y_g_neg = y;
359  m_z_g_neg = z;
360  continue;
361  }
362 
363  // ... break the loop if both suitable vertices were found
364  if (m_z_g_pos > 0. && m_z_g_neg < 0.){
365  msg(MSG::DEBUG) << "gen px, py, pz = " << m_px_g_pos << " " << m_py_g_pos << " " << m_pz_g_pos << endmsg;
366  msg(MSG::DEBUG) << "prod x, y, z = " << m_x_g_pos << " " << m_y_g_pos << " " << m_z_g_pos << endmsg;
367  msg(MSG::DEBUG) << "gen px, py, pz = " << m_px_g_neg << " " << m_py_g_neg << " " << m_pz_g_neg << endmsg;
368  msg(MSG::DEBUG) << "prod x, y, z = " << m_x_g_neg << " " << m_y_g_neg << " " << m_z_g_neg << endmsg;
369  break;
370  }
371  }
372  }
373  }
374  return StatusCode::SUCCESS;
375 }

◆ 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 512 of file ALFA_GloRec.cxx.

512  {
514  // ... write the histograms into a root file
516  TFile fw_glorecanalysis(m_strGloRecAnalysisFile.data(), "RECREATE", m_strGloRecAnalysisFile.data(), 0);
517  m_th1_xnearuppotresiduals -> Write();
518  m_th1_ynearuppotresiduals -> Write();
519  m_th1_xfaruppotresiduals -> Write();
520  m_th1_yfaruppotresiduals -> Write();
521  m_th1_xnearlwpotresiduals -> Write();
522  m_th1_ynearlwpotresiduals -> Write();
523  m_th1_xfarlwpotresiduals -> Write();
524  m_th1_yfarlwpotresiduals -> Write();
525  m_th2_truexvsrecx -> Write();
526  m_th2_trueyvsrecy -> Write();
527  m_th2_truexslopevsrecxslope -> Write();
528  m_th2_trueyslopevsrecyslope -> Write();
529  m_th1_recxovertruex -> Write();
530  m_th1_recyovertruey -> Write();
531  m_th1_recxslopeovertruexslope -> Write();
532  m_th1_recyslopeovertrueyslope -> Write();
533  m_th1_recxminustruex -> Write();
534  m_th1_recyminustruey -> Write();
535  m_th1_recxslopeminustruexslope -> Write();
536  m_th1_recyslopeminustrueyslope -> Write();
537  m_th2_extrapxvsrecxnearpot -> Write();
538  m_th2_extrapyvsrecynearpot -> Write();
539  m_th1_recxoverextrapxnearpot -> Write();
540  m_th1_recyoverextrapynearpot -> Write();
543  m_th2_extrapxvsrecxfarpot -> Write();
544  m_th2_extrapyvsrecyfarpot -> Write();
545  m_th1_recxoverextrapxfarpot -> Write();
546  m_th1_recyoverextrapyfarpot -> Write();
547  m_th1_recxminusextrapxfarpot -> Write();
548  m_th1_recyminusextrapyfarpot -> Write();
549 
550  fw_glorecanalysis.Write();
551  fw_glorecanalysis.Close();
552 }

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 93 of file ALFA_GloRec.h.

◆ m_pGloRecEvCollection

ALFA_GloRecEvCollection* ALFA_GloRec::m_pGloRecEvCollection
private

Definition at line 87 of file ALFA_GloRec.h.

◆ m_px_g_neg

double ALFA_GloRec::m_px_g_neg
private

Definition at line 124 of file ALFA_GloRec.h.

◆ m_px_g_pos

double ALFA_GloRec::m_px_g_pos
private

Definition at line 117 of file ALFA_GloRec.h.

◆ m_py_g_neg

double ALFA_GloRec::m_py_g_neg
private

Definition at line 125 of file ALFA_GloRec.h.

◆ m_py_g_pos

double ALFA_GloRec::m_py_g_pos
private

Definition at line 118 of file ALFA_GloRec.h.

◆ m_pz_g_neg

double ALFA_GloRec::m_pz_g_neg
private

Definition at line 126 of file ALFA_GloRec.h.

◆ m_pz_g_pos

double ALFA_GloRec::m_pz_g_pos
private

Definition at line 119 of file ALFA_GloRec.h.

◆ m_strGloRecAnalysisFile

std::string ALFA_GloRec::m_strGloRecAnalysisFile
private

Definition at line 96 of file ALFA_GloRec.h.

◆ m_strGloRecCollectionName

std::string ALFA_GloRec::m_strGloRecCollectionName
private

Definition at line 97 of file ALFA_GloRec.h.

◆ m_strLocRecCorrCollectionName

std::string ALFA_GloRec::m_strLocRecCorrCollectionName
private

Definition at line 98 of file ALFA_GloRec.h.

◆ m_strTrackPathPatterns

std::string ALFA_GloRec::m_strTrackPathPatterns
private

Definition at line 94 of file ALFA_GloRec.h.

◆ m_th1_recxminusextrapxfarpot

TH1F* ALFA_GloRec::m_th1_recxminusextrapxfarpot
private

Definition at line 172 of file ALFA_GloRec.h.

◆ m_th1_recxminusextrapxnearpot

TH1F* ALFA_GloRec::m_th1_recxminusextrapxnearpot
private

Definition at line 165 of file ALFA_GloRec.h.

◆ m_th1_recxminustruex

TH1F* ALFA_GloRec::m_th1_recxminustruex
private

Definition at line 156 of file ALFA_GloRec.h.

◆ m_th1_recxoverextrapxfarpot

TH1F* ALFA_GloRec::m_th1_recxoverextrapxfarpot
private

Definition at line 170 of file ALFA_GloRec.h.

◆ m_th1_recxoverextrapxnearpot

TH1F* ALFA_GloRec::m_th1_recxoverextrapxnearpot
private

Definition at line 163 of file ALFA_GloRec.h.

◆ m_th1_recxovertruex

TH1F* ALFA_GloRec::m_th1_recxovertruex
private

Definition at line 152 of file ALFA_GloRec.h.

◆ m_th1_recxslopeminustruexslope

TH1F* ALFA_GloRec::m_th1_recxslopeminustruexslope
private

Definition at line 158 of file ALFA_GloRec.h.

◆ m_th1_recxslopeovertruexslope

TH1F* ALFA_GloRec::m_th1_recxslopeovertruexslope
private

Definition at line 154 of file ALFA_GloRec.h.

◆ m_th1_recyminusextrapyfarpot

TH1F* ALFA_GloRec::m_th1_recyminusextrapyfarpot
private

Definition at line 173 of file ALFA_GloRec.h.

◆ m_th1_recyminusextrapynearpot

TH1F* ALFA_GloRec::m_th1_recyminusextrapynearpot
private

Definition at line 166 of file ALFA_GloRec.h.

◆ m_th1_recyminustruey

TH1F* ALFA_GloRec::m_th1_recyminustruey
private

Definition at line 157 of file ALFA_GloRec.h.

◆ m_th1_recyoverextrapyfarpot

TH1F* ALFA_GloRec::m_th1_recyoverextrapyfarpot
private

Definition at line 171 of file ALFA_GloRec.h.

◆ m_th1_recyoverextrapynearpot

TH1F* ALFA_GloRec::m_th1_recyoverextrapynearpot
private

Definition at line 164 of file ALFA_GloRec.h.

◆ m_th1_recyovertruey

TH1F* ALFA_GloRec::m_th1_recyovertruey
private

Definition at line 153 of file ALFA_GloRec.h.

◆ m_th1_recyslopeminustrueyslope

TH1F* ALFA_GloRec::m_th1_recyslopeminustrueyslope
private

Definition at line 159 of file ALFA_GloRec.h.

◆ m_th1_recyslopeovertrueyslope

TH1F* ALFA_GloRec::m_th1_recyslopeovertrueyslope
private

Definition at line 155 of file ALFA_GloRec.h.

◆ m_th1_x_g

TH1F* ALFA_GloRec::m_th1_x_g
private

Definition at line 134 of file ALFA_GloRec.h.

◆ m_th1_xfarlwpotresiduals

TH1F* ALFA_GloRec::m_th1_xfarlwpotresiduals
private

Definition at line 145 of file ALFA_GloRec.h.

◆ m_th1_xfaruppotresiduals

TH1F* ALFA_GloRec::m_th1_xfaruppotresiduals
private

Definition at line 141 of file ALFA_GloRec.h.

◆ m_th1_xnearlwpotresiduals

TH1F* ALFA_GloRec::m_th1_xnearlwpotresiduals
private

Definition at line 143 of file ALFA_GloRec.h.

◆ m_th1_xnearuppotresiduals

TH1F* ALFA_GloRec::m_th1_xnearuppotresiduals
private

Definition at line 139 of file ALFA_GloRec.h.

◆ m_th1_xslope_g

TH1F* ALFA_GloRec::m_th1_xslope_g
private

Definition at line 136 of file ALFA_GloRec.h.

◆ m_th1_y_g

TH1F* ALFA_GloRec::m_th1_y_g
private

Definition at line 135 of file ALFA_GloRec.h.

◆ m_th1_yfarlwpotresiduals

TH1F* ALFA_GloRec::m_th1_yfarlwpotresiduals
private

Definition at line 146 of file ALFA_GloRec.h.

◆ m_th1_yfaruppotresiduals

TH1F* ALFA_GloRec::m_th1_yfaruppotresiduals
private

Definition at line 142 of file ALFA_GloRec.h.

◆ m_th1_ynearlwpotresiduals

TH1F* ALFA_GloRec::m_th1_ynearlwpotresiduals
private

Definition at line 144 of file ALFA_GloRec.h.

◆ m_th1_ynearuppotresiduals

TH1F* ALFA_GloRec::m_th1_ynearuppotresiduals
private

Definition at line 140 of file ALFA_GloRec.h.

◆ m_th1_yslope_g

TH1F* ALFA_GloRec::m_th1_yslope_g
private

Definition at line 137 of file ALFA_GloRec.h.

◆ m_th2_extrapxvsrecxfarpot

TH2F* ALFA_GloRec::m_th2_extrapxvsrecxfarpot
private

Definition at line 168 of file ALFA_GloRec.h.

◆ m_th2_extrapxvsrecxnearpot

TH2F* ALFA_GloRec::m_th2_extrapxvsrecxnearpot
private

Definition at line 161 of file ALFA_GloRec.h.

◆ m_th2_extrapyvsrecyfarpot

TH2F* ALFA_GloRec::m_th2_extrapyvsrecyfarpot
private

Definition at line 169 of file ALFA_GloRec.h.

◆ m_th2_extrapyvsrecynearpot

TH2F* ALFA_GloRec::m_th2_extrapyvsrecynearpot
private

Definition at line 162 of file ALFA_GloRec.h.

◆ m_th2_truexslopevsrecxslope

TH2F* ALFA_GloRec::m_th2_truexslopevsrecxslope
private

Definition at line 150 of file ALFA_GloRec.h.

◆ m_th2_truexvsrecx

TH2F* ALFA_GloRec::m_th2_truexvsrecx
private

Definition at line 148 of file ALFA_GloRec.h.

◆ m_th2_trueyslopevsrecyslope

TH2F* ALFA_GloRec::m_th2_trueyslopevsrecyslope
private

Definition at line 151 of file ALFA_GloRec.h.

◆ m_th2_trueyvsrecy

TH2F* ALFA_GloRec::m_th2_trueyvsrecy
private

Definition at line 149 of file ALFA_GloRec.h.

◆ m_TObjArrTrackPathPatterns

TObjArray ALFA_GloRec::m_TObjArrTrackPathPatterns
private

Definition at line 95 of file ALFA_GloRec.h.

◆ m_TruthCollectionName

std::string ALFA_GloRec::m_TruthCollectionName
private

Definition at line 99 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 127 of file ALFA_GloRec.h.

◆ m_x_g_pos

double ALFA_GloRec::m_x_g_pos
private

Definition at line 120 of file ALFA_GloRec.h.

◆ m_y_g_neg

double ALFA_GloRec::m_y_g_neg
private

Definition at line 128 of file ALFA_GloRec.h.

◆ m_y_g_pos

double ALFA_GloRec::m_y_g_pos
private

Definition at line 121 of file ALFA_GloRec.h.

◆ m_z_g_neg

double ALFA_GloRec::m_z_g_neg
private

Definition at line 129 of file ALFA_GloRec.h.

◆ m_z_g_pos

double ALFA_GloRec::m_z_g_pos
private

Definition at line 122 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:154
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
ALFA_GloRec::FillTrackCandHistos
void FillTrackCandHistos(AlfaTrackCand *trkcand)
Definition: ALFA_GloRec.cxx:432
ALFA_GloRec::m_th1_recxminusextrapxfarpot
TH1F * m_th1_recxminusextrapxfarpot
Definition: ALFA_GloRec.h:172
ALFA_GloRec::m_TruthCollectionName
std::string m_TruthCollectionName
Definition: ALFA_GloRec.h:99
ALFA_GloRec::m_z_g_neg
double m_z_g_neg
Definition: ALFA_GloRec.h:129
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:95
ALFA_GloRec::m_x_g_neg
double m_x_g_neg
Definition: ALFA_GloRec.h:127
ALFA_GloRec::m_pz_g_pos
double m_pz_g_pos
Definition: ALFA_GloRec.h:119
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:126
AlfaTrackCand::GetY
float GetY()
Definition: AlfaLocalHits.h:121
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
ALFA_GloRec::m_py_g_neg
double m_py_g_neg
Definition: ALFA_GloRec.h:125
ALFA_GloRec::m_x_g_pos
double m_x_g_pos
Definition: ALFA_GloRec.h:120
ALFA_GloRec::m_th2_extrapyvsrecynearpot
TH2F * m_th2_extrapyvsrecynearpot
Definition: ALFA_GloRec.h:162
ALFA_GloRec::m_th1_xslope_g
TH1F * m_th1_xslope_g
Definition: ALFA_GloRec.h:136
ALFA_GloRec::Truth_info
StatusCode Truth_info()
Definition: ALFA_GloRec.cxx:312
ALFA_GloRec::m_th2_extrapxvsrecxfarpot
TH2F * m_th2_extrapxvsrecxfarpot
Definition: ALFA_GloRec.h:168
ALFA_GloRec::m_th1_xfaruppotresiduals
TH1F * m_th1_xfaruppotresiduals
Definition: ALFA_GloRec.h:141
ALFA_GloRec::m_th1_recyslopeminustrueyslope
TH1F * m_th1_recyslopeminustrueyslope
Definition: ALFA_GloRec.h:159
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:155
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:158
ALFA_LocRecCorrEvCollection
Definition: ALFA_LocRecCorrEvCollection.h:13
ALFA_GloRec::m_strGloRecCollectionName
std::string m_strGloRecCollectionName
Definition: ALFA_GloRec.h:97
AlfaLocalHits
Definition: AlfaLocalHits.h:67
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
AlfaTrackCand::GetXslope
float GetXslope()
Definition: AlfaLocalHits.h:123
ALFA_GloRec::m_th1_xfarlwpotresiduals
TH1F * m_th1_xfarlwpotresiduals
Definition: ALFA_GloRec.h:145
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:137
ALFA_GloRec::m_th1_yfarlwpotresiduals
TH1F * m_th1_yfarlwpotresiduals
Definition: ALFA_GloRec.h:146
AlfaTrackCand::IsLeftTrack
int IsLeftTrack()
Definition: AlfaLocalHits.cxx:297
ALFA_GloRec::m_th1_recxminusextrapxnearpot
TH1F * m_th1_recxminusextrapxnearpot
Definition: ALFA_GloRec.h:165
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:128
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:166
ALFA_GloRec::m_iDataType
int m_iDataType
Definition: ALFA_GloRec.h:93
ALFA_GloRec::m_th1_y_g
TH1F * m_th1_y_g
Definition: ALFA_GloRec.h:135
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:121
ALFA_GloRecEvent
Definition: ALFA_GloRecEvent.h:12
ALFA_GloRec::m_th2_trueyvsrecy
TH2F * m_th2_trueyvsrecy
Definition: ALFA_GloRec.h:149
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ALFA_GloRec::m_pz_g_neg
double m_pz_g_neg
Definition: ALFA_GloRec.h:126
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:161
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:98
ALFA_GloRec::m_th2_extrapyvsrecyfarpot
TH2F * m_th2_extrapyvsrecyfarpot
Definition: ALFA_GloRec.h:169
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:47
AlfaTrackCand::GetYslope
float GetYslope()
Definition: AlfaLocalHits.h:124
ALFA_GloRec::m_th1_recyoverextrapyfarpot
TH1F * m_th1_recyoverextrapyfarpot
Definition: ALFA_GloRec.h:171
ALFA_GloRec::m_strTrackPathPatterns
std::string m_strTrackPathPatterns
Definition: ALFA_GloRec.h:94
ALFA_LocRecCorrEvent
Definition: ALFA_LocRecCorrEvent.h:8
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
AlfaTrackCand::GetFarImpactPoint
HepGeom::Point3D< double > * GetFarImpactPoint()
Definition: AlfaLocalHits.h:131
AlfaTrackCand::GetNearLocalHit
AlfaLocalHit * GetNearLocalHit()
Definition: AlfaLocalHits.h:125
AlfaLocalHit::GetZ
float GetZ() const
Definition: AlfaLocalHits.h:48
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:139
ALFA_GloRec::InitHistos
void InitHistos()
Definition: ALFA_GloRec.cxx:383
ALFA_GloRec::m_th1_yfaruppotresiduals
TH1F * m_th1_yfaruppotresiduals
Definition: ALFA_GloRec.h:142
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
ALFA_GloRec::m_th2_truexslopevsrecxslope
TH2F * m_th2_truexslopevsrecxslope
Definition: ALFA_GloRec.h:150
ALFA_GloRec::m_th1_recxminustruex
TH1F * m_th1_recxminustruex
Definition: ALFA_GloRec.h:156
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:164
AlfaTrackCand::GetX
float GetX()
Definition: AlfaLocalHits.h:120
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:152
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:151
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
ALFA_GloRec::m_px_g_pos
double m_px_g_pos
Definition: ALFA_GloRec.h:117
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:153
ALFA_GloRec::m_th2_truexvsrecx
TH2F * m_th2_truexvsrecx
Definition: ALFA_GloRec.h:148
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:163
ALFA_GloRec::m_th1_recyminusextrapyfarpot
TH1F * m_th1_recyminusextrapyfarpot
Definition: ALFA_GloRec.h:173
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
AlfaLocalHit
Definition: AlfaLocalHits.h:32
h
ALFA_GloRec::m_th1_xnearlwpotresiduals
TH1F * m_th1_xnearlwpotresiduals
Definition: ALFA_GloRec.h:143
ALFA_GloRec::m_th1_x_g
TH1F * m_th1_x_g
Definition: ALFA_GloRec.h:134
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:512
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
ALFA_GloRec::m_strGloRecAnalysisFile
std::string m_strGloRecAnalysisFile
Definition: ALFA_GloRec.h:96
ALFA_GloRec::m_py_g_pos
double m_py_g_pos
Definition: ALFA_GloRec.h:118
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
ALFA_GloRec::m_th1_ynearuppotresiduals
TH1F * m_th1_ynearuppotresiduals
Definition: ALFA_GloRec.h:140
ALFA_GloRec::m_th1_recxoverextrapxfarpot
TH1F * m_th1_recxoverextrapxfarpot
Definition: ALFA_GloRec.h:170
ALFA_GloRec::m_th1_recyminustruey
TH1F * m_th1_recyminustruey
Definition: ALFA_GloRec.h:157
AlfaLocalHit::GetX
float GetX() const
Definition: AlfaLocalHits.h:46
AlfaTrackCand::IsRightTrack
int IsRightTrack()
Definition: AlfaLocalHits.cxx:311
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
ALFA_GloRec::m_z_g_pos
double m_z_g_pos
Definition: ALFA_GloRec.h:122
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
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:124
AlfaTrackCand::GetNearImpactPoint
HepGeom::Point3D< double > * GetNearImpactPoint()
Definition: AlfaLocalHits.h:130
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
AlfaTrackCand
Definition: AlfaLocalHits.h:99
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:87
ServiceHandle< ICondSvc >
ALFA_GloRec::m_th1_ynearlwpotresiduals
TH1F * m_th1_ynearlwpotresiduals
Definition: ALFA_GloRec.h:144