ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
Trk::EnergyLossExtrapolationValidation Class Reference

#include <EnergyLossExtrapolationValidation.h>

Inheritance diagram for Trk::EnergyLossExtrapolationValidation:
Collaboration diagram for Trk::EnergyLossExtrapolationValidation:

Public Member Functions

 EnergyLossExtrapolationValidation (const std::string &name, ISvcLocator *pSvcLocator)
 Standard Athena-Algorithm Constructor. More...
 
 ~EnergyLossExtrapolationValidation ()
 Default Destructor. More...
 
StatusCode initialize ()
 standard Athena-Algorithm method More...
 
StatusCode execute ()
 standard Athena-Algorithm method More...
 
StatusCode finalize ()
 standard Athena-Algorithm method More...
 
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

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

Static Private Member Functions

static std::unique_ptr< Amg::Transform3DcreateTransform (double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.)
 private helper method to create a Transform More...
 

Private Attributes

const TrackingVolumem_highestVolume
 the highest volume More...
 
ToolHandle< IExtrapolatorm_extrapolator
 The Extrapolator to be retrieved. More...
 
Rndm::Numbers * m_gaussDist
 Random Number setup. More...
 
Rndm::Numbers * m_flatDist
 
bool m_materialCollectionValidation
 use the material collection (extrapolateM) More...
 
TTree * m_validationTree
 Root Validation Tree. More...
 
TTree * m_validationRunTree
 Root Run Stats Tree. More...
 
std::string m_validationTreeFolder
 stream/folder to for the TTree to be written out More...
 
std::string m_validationTreeName
 validation tree name - to be accessed by this from root More...
 
std::string m_validationTreeDescription
 validation tree description - second argument in TTree More...
 
std::string m_validationRunTreeFolder
 stream/folder to for the second TTree to be written out More...
 
std::string m_validationRunTreeName
 run stats tree name - to be accessed by this from root More...
 
std::string m_validationRunTreeDescription
 run stats tree description - second argument in TTree More...
 
double m_maximumR
 maximum R of the highest More...
 
double m_maximumZ
 maximum halfZ of the highest tracking volume More...
 
size_t m_cylinders
 number of cylinder layers More...
 
bool m_onion
 strictly hierarchical ordering (onion-like) More...
 
float m_momentum
 momentum value More...
 
bool m_usePt
 use pt instead of p More...
 
float m_minEta
 Minimal eta value. More...
 
float m_maxEta
 Maximal eta value. More...
 
size_t m_events
 total number of recorded events More...
 
int m_totalRecordedLayers
 total number of recorded layers More...
 
float m_avgRecordedLayers
 average recorded layers per event More...
 
int m_pdg
 PDG code corresponding to m_particleType. More...
 
int m_particleType
 the particle type for the extrapolation More...
 
size_t m_entries
 effective number of used entries (recorded layers) in this event More...
 
float m_energy [TRKEXALGS_MAXPARAMETERS]
 energy More...
 
float m_energyLoss [TRKEXALGS_MAXPARAMETERS]
 energy loss More...
 
float m_parameterX0 [TRKEXALGS_MAXPARAMETERS]
 thickness in X0 More...
 
float m_radius [TRKEXALGS_MAXPARAMETERS]
 position radius More...
 
float m_positionX [TRKEXALGS_MAXPARAMETERS]
 position X More...
 
float m_positionY [TRKEXALGS_MAXPARAMETERS]
 position Y More...
 
float m_positionZ [TRKEXALGS_MAXPARAMETERS]
 position Z More...
 
float m_parameterPhi [TRKEXALGS_MAXPARAMETERS]
 phi More...
 
float m_parameterEta [TRKEXALGS_MAXPARAMETERS]
 eta More...
 
float m_parameterTheta [TRKEXALGS_MAXPARAMETERS]
 theta More...
 
float m_parameterQoverP [TRKEXALGS_MAXPARAMETERS]
 qOverP More...
 
float m_parameterP [TRKEXALGS_MAXPARAMETERS]
 P. More...
 
size_t m_layer [TRKEXALGS_MAXPARAMETERS]
 layer id More...
 
size_t m_triesForward
 extrapolation events forward More...
 
size_t m_breaksForward
 extrapolation breaks forward More...
 
size_t m_triesBack
 extrapolation events backward More...
 
size_t m_breaksBack
 extrapolation breaks backward More...
 
size_t m_collectedLayerForward
 collected material layers forward More...
 
size_t m_collectedLayerBack
 collected material layers backward More...
 
float m_cylinderR [TRKEXALGS_MAXPARAMETERS]
 radius of cylinder layers (for ROOT tree) More...
 
float m_cylinderZ [TRKEXALGS_MAXPARAMETERS]
 length of cylinder layers (for ROOT tree) More...
 
DataVector< const Trk::CylinderSurface > * m_theCylinders
 
DataVector< const Trk::DiscSurface > * m_theDiscs1
 
DataVector< const Trk::DiscSurface > * m_theDiscs2
 
std::vector< float > m_cylinderVR
 radius of cylinder layers (vector from jobOptions) More...
 
std::vector< float > m_cylinderVZ
 length of cylinder layers (vector from jobOptions) More...
 
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

The EnergyLossExtrapolationValidation Algorithm runs a number of n test extrapolations from randomly distributed Track Parameters to specific reference surfaces within the ATLAS Detector (user defined cylinder tubes which can be placed e.g. around Beam Pipe, Pixel, SCT, TRT, Calorimeter, Muon System, or have completely arbitrary dimensions).

In the jobOptions one can toggle these surfaces for

The code of ExtrapolationValidation (by Andreas Salzburger) has been reused and adjusted for this algorithm.

Author
Wolfgang Lukas <Wolfgang.Lukas -at- cern.ch>

Definition at line 60 of file EnergyLossExtrapolationValidation.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

◆ EnergyLossExtrapolationValidation()

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

Standard Athena-Algorithm Constructor.

Definition at line 31 of file EnergyLossExtrapolationValidation.cxx.

32 : AthAlgorithm(name,pSvcLocator),
33  m_highestVolume(nullptr),
34  m_extrapolator("Trk::Extrapolator/AtlasExtrapolator"),
35  m_gaussDist(nullptr),
36  m_flatDist(nullptr),
38  m_validationTree(nullptr),
39  m_validationRunTree(nullptr),
40  m_validationTreeFolder("/val/EventTreeTG"),
41  m_validationTreeName("EventTreeTG"),
42  m_validationTreeDescription("Event output of the EnergyLossExtrapolationValidation Algorithm"),
43  m_validationRunTreeFolder("/val/RunTreeTG"),
44  m_validationRunTreeName("RunTreeTG"),
45  m_validationRunTreeDescription("Run stats of the EnergyLossExtrapolationValidation Algorithm"),
46  m_maximumR(0.),
47  m_maximumZ(0.),
48  m_cylinders(6),
49  m_onion(true),
51  m_usePt(true),
52  m_minEta(-3.),
53  m_maxEta(3.),
54  m_events(0),
57  m_pdg(0),
58  m_particleType(2),
59  m_entries(0),
60  m_energy{},
61  m_energyLoss{},
62  m_parameterX0{},
63  m_radius{},
64  m_positionX{},
65  m_positionY{},
66  m_positionZ{},
67  m_parameterPhi{},
68  m_parameterEta{},
71  m_parameterP{},
72  m_layer{},
73  m_triesForward(0),
74  m_breaksForward(0),
75  m_triesBack(0),
76  m_breaksBack(0),
79  m_cylinderR{},
80  m_cylinderZ{},
81  m_theCylinders(nullptr),
82  m_theDiscs1(nullptr),
83  m_theDiscs2(nullptr)
84 {
85  // used algorithms and alg tools
86  declareProperty("Extrapolator" , m_extrapolator);
87  declareProperty("UseMaterialCollection" , m_materialCollectionValidation);
88  // TTree handling
89  declareProperty("ValidationTreeName" , m_validationTreeName);
90  declareProperty("ValidationRunTreeName" , m_validationRunTreeName);
91  declareProperty("ValidationTreeDescription" , m_validationTreeDescription);
92  declareProperty("ValidationRunTreeDescription" , m_validationRunTreeDescription);
93  declareProperty("ValidationTreeFolder" , m_validationTreeFolder);
94  declareProperty("ValidationRunTreeFolder" , m_validationRunTreeFolder);
95 
96  declareProperty("StartPerigeeMinEta" , m_minEta);
97  declareProperty("StartPerigeeMaxEta" , m_maxEta);
98  declareProperty("StartPerigeeUsePt" , m_usePt);
99  declareProperty("StartPerigeeMomentum" , m_momentum);
100 
101  declareProperty("ValidationCylinders" , m_cylinders);
102  declareProperty("ValidationCylinderR" , m_cylinderVR);
103  declareProperty("ValidationCylinderZ" , m_cylinderVZ);
104  declareProperty("StrictOnionMode" , m_onion);
105 
106  declareProperty("ParticleType" , m_particleType);
107 
108 }

◆ ~EnergyLossExtrapolationValidation()

Trk::EnergyLossExtrapolationValidation::~EnergyLossExtrapolationValidation ( )

Default Destructor.

Definition at line 112 of file EnergyLossExtrapolationValidation.cxx.

113 {
114  // clear random number generators
115  delete m_gaussDist;
116  delete m_flatDist;
117  // clear data vectors
118  delete m_theCylinders;
119  delete m_theDiscs1;
120  delete m_theDiscs2;
121 
122 }

Member Function Documentation

◆ createTransform()

std::unique_ptr< Amg::Transform3D > Trk::EnergyLossExtrapolationValidation::createTransform ( double  x,
double  y,
double  z,
double  phi = 0.,
double  theta = 0.,
double  alphaZ = 0. 
)
staticprivate

private helper method to create a Transform

Definition at line 549 of file EnergyLossExtrapolationValidation.cxx.

551 {
552 
553  if (phi!=0. && theta != 0.){
554  // create the Start Surface
555  Amg::Vector3D surfacePosition(x,y,z);
556  // z direction
557  Amg::Vector3D surfaceZdirection(cos(phi)*sin(theta),
558  sin(phi)*sin(theta),
559  cos(theta));
560  // the global z axis
561  Amg::Vector3D zAxis(0.,0.,1.);
562  // the y direction
563  Amg::Vector3D surfaceYdirection(zAxis.cross(surfaceZdirection));
564  // the x direction
565  Amg::Vector3D surfaceXdirection(surfaceYdirection.cross(surfaceZdirection));
566  // the rotation
567  Amg::RotationMatrix3D surfaceRotation;
568  surfaceRotation.col(0) = surfaceXdirection;
569  surfaceRotation.col(1) = surfaceYdirection;
570  surfaceRotation.col(2) = surfaceZdirection;
571  // return it
572  if (alphaZ==0.){
573  return std::make_unique<Amg::Transform3D>(surfaceRotation, surfacePosition);
574  }
575  Amg::Transform3D nominalTransform(surfaceRotation, surfacePosition);
576  return std::make_unique<Amg::Transform3D>(nominalTransform*Amg::AngleAxis3D(alphaZ,zAxis));
577 
578  }
579 
580  return std::make_unique<Amg::Transform3D>(Amg::Translation3D(x,y,z));
581 }

◆ 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 Trk::EnergyLossExtrapolationValidation::execute ( )

standard Athena-Algorithm method

Definition at line 268 of file EnergyLossExtrapolationValidation.cxx.

269 {
270  const EventContext& ctx = Gaudi::Hive::currentContext();
271  // get the overall dimensions
272  if (!m_highestVolume){
273  // get TrackingGeometry and highest volume
274  const Trk::TrackingGeometry* trackingGeometry = m_extrapolator->trackingGeometry();
275  m_highestVolume = trackingGeometry ? trackingGeometry->highestTrackingVolume() : nullptr;
276  const Trk::CylinderVolumeBounds* cylBounds = m_highestVolume ?
277  dynamic_cast<const Trk::CylinderVolumeBounds*>(&(m_highestVolume->volumeBounds())) : nullptr;
278  // bail out
279  if (!cylBounds){
280  ATH_MSG_WARNING( "execute() No highest TrackingVolume / no VolumeBounds ... pretty useless!" );
281  return StatusCode::SUCCESS;
282  }
283  // get the numbers
284  m_maximumR = cylBounds->outerRadius();
285  m_maximumZ = cylBounds->halflengthZ();
286  }
287 
288 
289  m_entries = 0;
290  for (size_t par=0; par<TRKEXALGS_MAXPARAMETERS; ++par) {
291  // -----------> start parameters
292 
293  m_parameterP[par] = 0.;
294  m_energy[par] = 0.;
295  m_energyLoss[par] = 0.;
296  m_parameterX0[par] = 0.;
297  m_radius[par] = 0.;
298  m_positionX[par] = 0.;
299  m_positionY[par] = 0.;
300  m_positionZ[par] = 0.;
301  m_parameterEta[par] = 0.;
302  m_parameterPhi[par] = 0.;
303  m_parameterTheta[par] = 0.;
304 // m_parameterQoverP[par] = 0.;
305  m_layer[par] = 0;
306  }
307 
308  // the local start parameters
309  // are adopted for planar and straight line surfaces
310  m_parameterPhi[0] = M_PI * (2 * m_flatDist->shoot() - 1);
312  m_parameterTheta[0] = 2.*atan(exp(-m_parameterEta[0]));
313 
314  double charge = -1.;
316  // convert transverse momentum (pt) to momentum (p) if flag is set: p = pt/sin(theta)
317  if (m_usePt)
320 
322 
323  double energy1 = sqrt(m_parameterP[0]*m_parameterP[0] + mass*mass);
324 
325  double newX0 = 0;
326 
327  const Trk::PerigeeSurface perigeeSurface;
328  // the initial perigee with random numbers
329  Trk::Perigee startParameters(0, // m_parameterLoc1[0],
330  0, // m_parameterLoc2[0],
331  m_parameterPhi[0],
332  m_parameterTheta[0],
334  perigeeSurface);
335 
336  ATH_MSG_VERBOSE( "execute() Start Parameters : " << startParameters );
337  ATH_MSG_DEBUG( "execute() Start Parameters : [phi,eta] = [ " << startParameters.momentum().phi() << ", " << startParameters.eta() << " ]" );
338 
339  // --------------- propagate to find an intersection ---------------------
340 
341  // fill the TrackParameters vector with extrapolation from startParameters to dummy cylinder surface
342  const Trk::TrackParameters* lastParameters = nullptr;
343  const Trk::TrackParameters* newParameters = nullptr;
344 
346 
347  lastParameters = m_extrapolator->extrapolate(
348  ctx,
349  startParameters,
350  *(m_theCylinders->at(0)),
352  true,
354 
355  } else { // material collection validation
356 
357  // get the vector of TrackStateOnSurfaces back
358  const std::vector<const Trk::TrackStateOnSurface*>* collectedMaterial =
359  m_extrapolator->extrapolateM(
360  ctx,
361  startParameters,
362  *(m_theCylinders->at(0)),
364  true,
366 
367  // get the last one and clone it
368  if (collectedMaterial && !collectedMaterial->empty()) {
369  // get the last track state on surface & clone the destination parameters
370  const Trk::TrackStateOnSurface* destinationState = collectedMaterial->back();
371  lastParameters = destinationState->trackParameters() ? destinationState->trackParameters()->clone() : nullptr;
372  m_collectedLayerForward += collectedMaterial->size();
373  // delete the layers / cleanup
374  std::vector<const Trk::TrackStateOnSurface*>::const_iterator tsosIter = collectedMaterial->begin();
375  std::vector<const Trk::TrackStateOnSurface*>::const_iterator tsosIterEnd = collectedMaterial->end();
376  for ( ; tsosIter != tsosIterEnd; ++tsosIter) {
377  newX0 += (*tsosIter)->materialEffectsOnTrack() ? (*tsosIter)->materialEffectsOnTrack()->thicknessInX0() : 0;
378  delete(*tsosIter);
379  }
380  ATH_MSG_VERBOSE( "execute() newX0 = " << newX0 );
381  }
382  }
383 
384 
385  for (size_t lay = 1; lay<m_cylinders+1; ++lay) {
386 
387  if (!m_onion) newX0 = 0;
388 
389  if (m_onion) {
390  // safety check
391  if (!lastParameters) {
392  ATH_MSG_WARNING( "execute() Layer " << lay << ": start parameters for cylinder NOT found - skip event !" );
393  break;
394  }
395  ATH_MSG_VERBOSE( "execute() Layer " << lay << ": start parameters for cylinder found: " << *lastParameters );
396  }
397 
398  // trying to extrapolate to cylinder barrel
399  newParameters = nullptr;
401 
402  newParameters = m_extrapolator->extrapolate(
403  ctx,
404  m_onion ? *lastParameters : startParameters,
405  *(m_theCylinders->at(lay)),
407  true,
409 
410  } else { // material collection validation
411 
412  // get the vector of TrackStateOnSurfaces back
413  const std::vector<const Trk::TrackStateOnSurface*>* collectedMaterial =
414  m_extrapolator->extrapolateM(ctx,
415  m_onion ? *lastParameters : startParameters,
416  *(m_theCylinders->at(lay)),
418  true,
420 
421  // get the last one and clone it
422  if (collectedMaterial && !collectedMaterial->empty()){
423  // get the last track state on surface & clone the destination parameters
424  const Trk::TrackStateOnSurface* destinationState = collectedMaterial->back();
425  newParameters = destinationState->trackParameters() ? destinationState->trackParameters()->clone() : nullptr;
426  if (m_onion)
427  m_collectedLayerForward += collectedMaterial->size();
428  else
429  m_collectedLayerForward = collectedMaterial->size(); // TODO: shouldn't there be something else here?
430  // delete the layers / cleanup
431  std::vector<const Trk::TrackStateOnSurface*>::const_iterator tsosIter = collectedMaterial->begin();
432  std::vector<const Trk::TrackStateOnSurface*>::const_iterator tsosIterEnd = collectedMaterial->end();
433  for ( ; tsosIter != tsosIterEnd; ++tsosIter) {
434  newX0 += (*tsosIter)->materialEffectsOnTrack() ? (*tsosIter)->materialEffectsOnTrack()->thicknessInX0() : 0;
435  delete(*tsosIter);
436  }
437  ATH_MSG_VERBOSE( "execute() newX0 = " << newX0 );
438  }
439  }
440 
441  // no intersection with cylinder barrel, now trying disc endcaps
442  if (!newParameters) {
443 
445 
446  newParameters = m_extrapolator->extrapolate(
447  ctx,
448  m_onion ? *lastParameters : startParameters,
449  (m_parameterEta[0] < 0) ? *(m_theDiscs1->at(lay))
450  : *(m_theDiscs2->at(lay)),
452  true,
454 
455  } else { // material collection validation
456 
457  // get the vector of TrackStateOnSurfaces back
458  const std::vector<const Trk::TrackStateOnSurface*>* collectedMaterial =
459  m_extrapolator->extrapolateM(ctx,
460  m_onion ? *lastParameters : startParameters,
461  (m_parameterEta[0] < 0) ? *(m_theDiscs1->at(lay)) : *(m_theDiscs2->at(lay)),
463  true,
465 
466  // get the last one and clone it
467  if (collectedMaterial && !collectedMaterial->empty()){
468  // get the last track state on surface & clone the destination parameters
469  const Trk::TrackStateOnSurface* destinationState = collectedMaterial->back();
470  newParameters = destinationState->trackParameters() ? destinationState->trackParameters()->clone() : nullptr;
471  if (m_onion)
472  m_collectedLayerForward += collectedMaterial->size();
473  else
474  m_collectedLayerForward = collectedMaterial->size(); // TODO: shouldn't there be something else here?
475  // delete the layers / cleanup
476  std::vector<const Trk::TrackStateOnSurface*>::const_iterator tsosIter = collectedMaterial->begin();
477  std::vector<const Trk::TrackStateOnSurface*>::const_iterator tsosIterEnd = collectedMaterial->end();
478  for ( ; tsosIter != tsosIterEnd; ++tsosIter) {
479  newX0 += (*tsosIter)->materialEffectsOnTrack() ? (*tsosIter)->materialEffectsOnTrack()->thicknessInX0() : 0;
480  delete(*tsosIter);
481  }
482  ATH_MSG_VERBOSE( "execute() newX0 = " << newX0 );
483  }
484  }
485  }
486 
487  // still no intersection
488  if (!newParameters) {
489  ATH_MSG_WARNING( "execute() Layer " << lay << " intersection did not work !" );
490  }
491 
492  else if (m_highestVolume && newParameters && !(m_highestVolume->inside(newParameters->position()))) {
493  ATH_MSG_WARNING( "execute() Layer " << lay << " intersection is outside the known world !" );
494  }
495 
496  else {
497 
498  // get the current surface intersection position
499  const Amg::Vector3D& newPosition = newParameters->position();
500  ATH_MSG_VERBOSE( "execute() Track Parameters at layer " << lay << ": " << *newParameters );
501  ATH_MSG_DEBUG( "execute() Track Parameters at layer " << lay << ": [r,z] = [ " << newPosition.perp() << ", " << newPosition.z() );
502 
503  // record the surface parameters
504  ++m_triesForward;
505  ++m_entries;
506  m_parameterPhi[m_entries] = newParameters->parameters()[Trk::phi];
507  m_parameterEta[m_entries] = newParameters->momentum().eta();
508  m_parameterTheta[m_entries] = newParameters->parameters()[Trk::theta];
509  m_parameterP[m_entries] = newParameters->momentum().mag();
510  m_parameterX0[m_entries] = (float)newX0;
511  ATH_MSG_DEBUG( "execute() Layer " << lay << ": cumulated X0 = " << m_parameterX0[m_entries] );
512 
513  // get the current energy and calculate energy loss
516  ATH_MSG_DEBUG( "execute() Layer " << lay << ": cumulated Energy Loss = " << m_energyLoss[m_entries] );
517 
518  // record the current layer ID
519  m_layer[m_entries] = lay;
520  // record the current position
521  m_radius[m_entries] = newPosition.perp();
522  m_positionX[m_entries] = newPosition.x();
523  m_positionY[m_entries] = newPosition.y();
524  m_positionZ[m_entries] = newPosition.z();
525 
526  }
527 
528  lastParameters = newParameters;
529 
530  }
531 
532 
534  ++m_events;
535  // increase m_entries once more before the fill (to account for the "start layer" at index 0 with initial track parameters)
536  ++m_entries;
537 
538  // fill the event tree
539  if (m_validationTree)
540  m_validationTree->Fill();
541 
542  // memory cleanup
543  ATH_MSG_DEBUG( "execute() deleting DataVector parameters ... " );
544 
545  return StatusCode::SUCCESS;
546 }

◆ extraDeps_update_handler()

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

Add StoreName to extra input/output deps as needed.

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

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 50 of file AthAlgorithm.cxx.

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

◆ finalize()

StatusCode Trk::EnergyLossExtrapolationValidation::finalize ( )

standard Athena-Algorithm method

Definition at line 241 of file EnergyLossExtrapolationValidation.cxx.

242 {
243  // Code entered here will be executed once at the end of the program run.
244  ATH_MSG_INFO( "finalize() ================== Output Statistics =========================" );
245  ATH_MSG_INFO( "finalize() = Navigation : " );
246  ATH_MSG_INFO( "finalize() = - breaks fwd : " << double(m_breaksForward)/double(m_triesForward)
247  << " (" << m_breaksForward << "/" << m_triesForward << ")" );
248  ATH_MSG_INFO( "finalize() = - breaks bwd : " << double(m_breaksBack)/double(m_triesBack)
249  << " (" << m_breaksBack << "/" << m_triesBack << ")" );
251  ATH_MSG_INFO( "finalize() = Material collection : " );
252  ATH_MSG_INFO( "finalize() = - layer collected fwd : " << m_collectedLayerForward );
253  ATH_MSG_INFO( "finalize() = - layer collected bwd : " << m_collectedLayerBack );
254  }
255  ATH_MSG_INFO( "finalize() ==============================================================" );
256 
258  ++m_cylinders;
260  m_validationRunTree->Fill();
261  --m_cylinders;
262 
263  return StatusCode::SUCCESS;
264 }

◆ initialize()

StatusCode Trk::EnergyLossExtrapolationValidation::initialize ( )

standard Athena-Algorithm method

sroe; original line was: if (m_onion && lay>0 && (m_cylinderR[lay] < m_cylinderR[lay-1] || m_cylinderR[lay] < m_cylinderR[lay-1])) { but the two sides of the 'or' are equal

Definition at line 127 of file EnergyLossExtrapolationValidation.cxx.

128 {
129  // Code entered here will be executed once at program start.
130  ATH_MSG_INFO( "initialize()" );
131  ATH_MSG_DEBUG( "initialize() m_materialCollectionValidation = " << m_materialCollectionValidation );
132 
133  // Get Extrapolator from ToolService
134  if (m_extrapolator.retrieve().isFailure()) {
135  ATH_MSG_FATAL( "initialize() Could not retrieve Tool " << m_extrapolator << ". Exiting." );
136  return StatusCode::FAILURE;
137  }
138 
139  // create the new Trees
142 
143  // the branches for the parameters
144  m_validationTree->Branch("Entries", &m_entries, "entries/i");
145  m_validationTree->Branch("Energy", m_energy, "energy[entries]/F");
146  m_validationTree->Branch("EnergyLoss", m_energyLoss, "eLoss[entries]/F");
147  m_validationTree->Branch("tInX0", m_parameterX0, "tinX0[entries]/F");
148  m_validationTree->Branch("Radius", m_radius, "radius[entries]/F");
149  m_validationTree->Branch("PosX", m_positionX, "posX[entries]/F");
150  m_validationTree->Branch("PosY", m_positionY, "posY[entries]/F");
151  m_validationTree->Branch("PosZ", m_positionZ, "posZ[entries]/F");
152  m_validationTree->Branch("Eta", m_parameterEta, "eta[entries]/F");
153  m_validationTree->Branch("Phi", m_parameterPhi, "phi[entries]/F");
154  m_validationTree->Branch("Layer", m_layer, "layer[entries]/i");
155 
156  m_validationRunTree->Branch("Layers", &m_cylinders, "layers/i");
157  m_validationRunTree->Branch("CylR", m_cylinderR, "cylR[layers]/F");
158  m_validationRunTree->Branch("CylZ", m_cylinderZ, "cylZ[layers]/F");
159  m_validationRunTree->Branch("Momentum",&m_momentum, "momentum/F");
160  m_validationRunTree->Branch("UsePt", &m_usePt, "usePt/O");
161  m_validationRunTree->Branch("MinEta", &m_minEta, "minEta/F");
162  m_validationRunTree->Branch("MaxEta", &m_maxEta, "maxEta/F");
163  m_validationRunTree->Branch("PDG", &m_pdg, "pdg/I");
164  m_validationRunTree->Branch("Events", &m_events, "events/i");
165  m_validationRunTree->Branch("AvgRecordedLayers", &m_avgRecordedLayers, "avgRecLayers/F");
166 
167  // now register the Trees
168  ITHistSvc* tHistSvc = nullptr;
169  if (service("THistSvc",tHistSvc).isFailure()){
170  ATH_MSG_ERROR( "initialize() Could not find Hist Service -> Switching ValidationMode Off !" );
171  delete m_validationTree; m_validationTree = nullptr;
172  delete m_validationRunTree; m_validationRunTree = nullptr;
173  }
174  if ((tHistSvc->regTree(m_validationTreeFolder, m_validationTree)).isFailure()
175  || (tHistSvc->regTree(m_validationRunTreeFolder, m_validationRunTree)).isFailure() ) {
176  ATH_MSG_ERROR( "initialize() Could not register the validation Trees -> Switching ValidationMode Off !" );
177  delete m_validationTree; m_validationTree = nullptr;
178  delete m_validationRunTree; m_validationRunTree = nullptr;
179  }
180 
181  // initialize the random number generators
182  ATH_MSG_INFO( "initialize() RandomService = " << randSvc()->name() );
183  m_gaussDist = new Rndm::Numbers(randSvc(), Rndm::Gauss(0.,1.));
184  m_flatDist = new Rndm::Numbers(randSvc(), Rndm::Flat(0.,1.));
185 
186  // initialize cylinders if they are not set in jobOptions
187  double const s_cylInitR[TRKEXALGS_MAXPARAMETERS] = { 0.5, 34.5, 250, 550, 1120, 4250, 13000, 0, 0, 0 };
188  double const s_cylInitZ[TRKEXALGS_MAXPARAMETERS] = { 100, 10e6, 680, 2820, 3120, 6500, 22000, 0, 0, 0 };
189 
190  // output of vector from jobOptions
191  ATH_MSG_INFO( "initialize() cylinder dimensions vector from jobOptions :" );
192  for (size_t lay=0; lay<m_cylinders+1; ++lay) {
193  ATH_MSG_INFO( "initialize() m_cylinderVR[" << lay << "] = " << m_cylinderVR[lay] << "\t ... m_cylinderVZ[" << lay << "] = " << m_cylinderVZ[lay] );
194  }
195  // transform vector (from jobOptions) into array (for ROOT tree)
196  ATH_MSG_INFO( "initialize() cylinder dimensions array for algorithm and ROOT tree :" );
197  for (size_t lay=0; lay<m_cylinders+1; ++lay) {
198  m_cylinderR[lay] = m_cylinderVR[lay] > 0 ? m_cylinderVR[lay] : s_cylInitR[lay];
199  m_cylinderZ[lay] = m_cylinderVZ[lay] > 0 ? m_cylinderVZ[lay] : s_cylInitZ[lay];
200  // in "strict onion mode", constrain m_cylinders if the values don't make sense
205  if (m_onion && lay>0 && (m_cylinderR[lay] < m_cylinderR[lay-1])) {
206  ATH_MSG_WARNING( "initialize() layer " << lay << "dimensions are smaller than those of layer " << lay-1 << " - constraining m_cylinders to " << lay-1 );
207  ATH_MSG_INFO( "initialize() cutting off here :" );
208  ATH_MSG_INFO( "initialize() m_cylinderR[" << lay << "] = " << m_cylinderR[lay] << "\t ... m_cylinderZ[" << lay << "] = " << m_cylinderZ[lay] );
209  m_cylinders = lay-1;
210  break;
211  }
212  ATH_MSG_INFO( "initialize() m_cylinderR[" << lay << "] = " << m_cylinderR[lay] << "\t ... m_cylinderZ[" << lay << "] = " << m_cylinderZ[lay] );
213  }
214 
215  // fill data vector with cylinders once (in order not to create them every time)
219  for (size_t lay=0; lay<m_cylinders+1; ++lay) {
221  ATH_MSG_INFO( "initialize() Cylinder " << lay << ": " << *m_theCylinders->at(lay) );
223  ATH_MSG_INFO( "initialize() Disc1 " << lay << ": " << *m_theDiscs1->at(lay) );
225  ATH_MSG_INFO( "initialize() Disc2 " << lay << ": " << *m_theDiscs2->at(lay) );
226  }
227 
228  if (m_particleType==0) m_pdg = 999; // geantino
229  else if (m_particleType==1) m_pdg = 11; // electron
230  else if (m_particleType==2) m_pdg = 13; // muon-
231  else if (m_particleType==3) m_pdg = 211; // pion+
232  else if (m_particleType==4) m_pdg = 321; // kaon+
233  ATH_MSG_INFO( "initialize() ParticleType = " << m_particleType << " ... PDG = " << m_pdg );
234 
235  ATH_MSG_INFO( "initialize() successful" );
236  return StatusCode::SUCCESS;
237 }

◆ inputHandles()

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

Return this algorithm's input handles.

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

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

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

Return this algorithm's output handles.

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

◆ renounce()

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

Definition at line 380 of file AthCommonDataStore.h.

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

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

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

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

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

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

Definition at line 66 of file AthAlgorithm.cxx.

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

◆ sysStart()

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

Handle START transition.

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

◆ updateVHKA()

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

Definition at line 308 of file AthCommonDataStore.h.

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

Member Data Documentation

◆ m_avgRecordedLayers

float Trk::EnergyLossExtrapolationValidation::m_avgRecordedLayers
private

average recorded layers per event

Definition at line 120 of file EnergyLossExtrapolationValidation.h.

◆ m_breaksBack

size_t Trk::EnergyLossExtrapolationValidation::m_breaksBack
private

extrapolation breaks backward

Definition at line 147 of file EnergyLossExtrapolationValidation.h.

◆ m_breaksForward

size_t Trk::EnergyLossExtrapolationValidation::m_breaksForward
private

extrapolation breaks forward

Definition at line 145 of file EnergyLossExtrapolationValidation.h.

◆ m_collectedLayerBack

size_t Trk::EnergyLossExtrapolationValidation::m_collectedLayerBack
private

collected material layers backward

Definition at line 150 of file EnergyLossExtrapolationValidation.h.

◆ m_collectedLayerForward

size_t Trk::EnergyLossExtrapolationValidation::m_collectedLayerForward
private

collected material layers forward

Definition at line 149 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinderR

float Trk::EnergyLossExtrapolationValidation::m_cylinderR[TRKEXALGS_MAXPARAMETERS]
private

radius of cylinder layers (for ROOT tree)

Definition at line 154 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinders

size_t Trk::EnergyLossExtrapolationValidation::m_cylinders
private

number of cylinder layers

Definition at line 111 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinderVR

std::vector<float> Trk::EnergyLossExtrapolationValidation::m_cylinderVR
private

radius of cylinder layers (vector from jobOptions)

Definition at line 159 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinderVZ

std::vector<float> Trk::EnergyLossExtrapolationValidation::m_cylinderVZ
private

length of cylinder layers (vector from jobOptions)

Definition at line 160 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinderZ

float Trk::EnergyLossExtrapolationValidation::m_cylinderZ[TRKEXALGS_MAXPARAMETERS]
private

length of cylinder layers (for ROOT tree)

Definition at line 155 of file EnergyLossExtrapolationValidation.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_energy

float Trk::EnergyLossExtrapolationValidation::m_energy[TRKEXALGS_MAXPARAMETERS]
private

energy

Definition at line 127 of file EnergyLossExtrapolationValidation.h.

◆ m_energyLoss

float Trk::EnergyLossExtrapolationValidation::m_energyLoss[TRKEXALGS_MAXPARAMETERS]
private

energy loss

Definition at line 128 of file EnergyLossExtrapolationValidation.h.

◆ m_entries

size_t Trk::EnergyLossExtrapolationValidation::m_entries
private

effective number of used entries (recorded layers) in this event

Definition at line 126 of file EnergyLossExtrapolationValidation.h.

◆ m_events

size_t Trk::EnergyLossExtrapolationValidation::m_events
private

total number of recorded events

Definition at line 118 of file EnergyLossExtrapolationValidation.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_extrapolator

ToolHandle<IExtrapolator> Trk::EnergyLossExtrapolationValidation::m_extrapolator
private

The Extrapolator to be retrieved.

Definition at line 89 of file EnergyLossExtrapolationValidation.h.

◆ m_flatDist

Rndm::Numbers* Trk::EnergyLossExtrapolationValidation::m_flatDist
private

Definition at line 93 of file EnergyLossExtrapolationValidation.h.

◆ m_gaussDist

Rndm::Numbers* Trk::EnergyLossExtrapolationValidation::m_gaussDist
private

Random Number setup.

Definition at line 92 of file EnergyLossExtrapolationValidation.h.

◆ m_highestVolume

const TrackingVolume* Trk::EnergyLossExtrapolationValidation::m_highestVolume
private

the highest volume

Definition at line 86 of file EnergyLossExtrapolationValidation.h.

◆ m_layer

size_t Trk::EnergyLossExtrapolationValidation::m_layer[TRKEXALGS_MAXPARAMETERS]
private

layer id

Definition at line 141 of file EnergyLossExtrapolationValidation.h.

◆ m_materialCollectionValidation

bool Trk::EnergyLossExtrapolationValidation::m_materialCollectionValidation
private

use the material collection (extrapolateM)

Definition at line 95 of file EnergyLossExtrapolationValidation.h.

◆ m_maxEta

float Trk::EnergyLossExtrapolationValidation::m_maxEta
private

Maximal eta value.

Definition at line 116 of file EnergyLossExtrapolationValidation.h.

◆ m_maximumR

double Trk::EnergyLossExtrapolationValidation::m_maximumR
private

maximum R of the highest

Definition at line 107 of file EnergyLossExtrapolationValidation.h.

◆ m_maximumZ

double Trk::EnergyLossExtrapolationValidation::m_maximumZ
private

maximum halfZ of the highest tracking volume

Definition at line 108 of file EnergyLossExtrapolationValidation.h.

◆ m_minEta

float Trk::EnergyLossExtrapolationValidation::m_minEta
private

Minimal eta value.

Definition at line 115 of file EnergyLossExtrapolationValidation.h.

◆ m_momentum

float Trk::EnergyLossExtrapolationValidation::m_momentum
private

momentum value

Definition at line 113 of file EnergyLossExtrapolationValidation.h.

◆ m_onion

bool Trk::EnergyLossExtrapolationValidation::m_onion
private

strictly hierarchical ordering (onion-like)

Definition at line 112 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterEta

float Trk::EnergyLossExtrapolationValidation::m_parameterEta[TRKEXALGS_MAXPARAMETERS]
private

eta

Definition at line 137 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterP

float Trk::EnergyLossExtrapolationValidation::m_parameterP[TRKEXALGS_MAXPARAMETERS]
private

P.

Definition at line 140 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterPhi

float Trk::EnergyLossExtrapolationValidation::m_parameterPhi[TRKEXALGS_MAXPARAMETERS]
private

phi

Definition at line 136 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterQoverP

float Trk::EnergyLossExtrapolationValidation::m_parameterQoverP[TRKEXALGS_MAXPARAMETERS]
private

qOverP

Definition at line 139 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterTheta

float Trk::EnergyLossExtrapolationValidation::m_parameterTheta[TRKEXALGS_MAXPARAMETERS]
private

theta

Definition at line 138 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterX0

float Trk::EnergyLossExtrapolationValidation::m_parameterX0[TRKEXALGS_MAXPARAMETERS]
private

thickness in X0

Definition at line 129 of file EnergyLossExtrapolationValidation.h.

◆ m_particleType

int Trk::EnergyLossExtrapolationValidation::m_particleType
private

the particle type for the extrapolation

Definition at line 123 of file EnergyLossExtrapolationValidation.h.

◆ m_pdg

int Trk::EnergyLossExtrapolationValidation::m_pdg
private

PDG code corresponding to m_particleType.

Definition at line 122 of file EnergyLossExtrapolationValidation.h.

◆ m_positionX

float Trk::EnergyLossExtrapolationValidation::m_positionX[TRKEXALGS_MAXPARAMETERS]
private

position X

Definition at line 133 of file EnergyLossExtrapolationValidation.h.

◆ m_positionY

float Trk::EnergyLossExtrapolationValidation::m_positionY[TRKEXALGS_MAXPARAMETERS]
private

position Y

Definition at line 134 of file EnergyLossExtrapolationValidation.h.

◆ m_positionZ

float Trk::EnergyLossExtrapolationValidation::m_positionZ[TRKEXALGS_MAXPARAMETERS]
private

position Z

Definition at line 135 of file EnergyLossExtrapolationValidation.h.

◆ m_radius

float Trk::EnergyLossExtrapolationValidation::m_radius[TRKEXALGS_MAXPARAMETERS]
private

position radius

Definition at line 130 of file EnergyLossExtrapolationValidation.h.

◆ m_theCylinders

DataVector<const Trk::CylinderSurface>* Trk::EnergyLossExtrapolationValidation::m_theCylinders
private

Definition at line 156 of file EnergyLossExtrapolationValidation.h.

◆ m_theDiscs1

DataVector<const Trk::DiscSurface>* Trk::EnergyLossExtrapolationValidation::m_theDiscs1
private

Definition at line 157 of file EnergyLossExtrapolationValidation.h.

◆ m_theDiscs2

DataVector<const Trk::DiscSurface>* Trk::EnergyLossExtrapolationValidation::m_theDiscs2
private

Definition at line 158 of file EnergyLossExtrapolationValidation.h.

◆ m_totalRecordedLayers

int Trk::EnergyLossExtrapolationValidation::m_totalRecordedLayers
private

total number of recorded layers

Definition at line 119 of file EnergyLossExtrapolationValidation.h.

◆ m_triesBack

size_t Trk::EnergyLossExtrapolationValidation::m_triesBack
private

extrapolation events backward

Definition at line 146 of file EnergyLossExtrapolationValidation.h.

◆ m_triesForward

size_t Trk::EnergyLossExtrapolationValidation::m_triesForward
private

extrapolation events forward

Definition at line 144 of file EnergyLossExtrapolationValidation.h.

◆ m_usePt

bool Trk::EnergyLossExtrapolationValidation::m_usePt
private

use pt instead of p

Definition at line 114 of file EnergyLossExtrapolationValidation.h.

◆ m_validationRunTree

TTree* Trk::EnergyLossExtrapolationValidation::m_validationRunTree
private

Root Run Stats Tree.

Definition at line 98 of file EnergyLossExtrapolationValidation.h.

◆ m_validationRunTreeDescription

std::string Trk::EnergyLossExtrapolationValidation::m_validationRunTreeDescription
private

run stats tree description - second argument in TTree

Definition at line 105 of file EnergyLossExtrapolationValidation.h.

◆ m_validationRunTreeFolder

std::string Trk::EnergyLossExtrapolationValidation::m_validationRunTreeFolder
private

stream/folder to for the second TTree to be written out

Definition at line 103 of file EnergyLossExtrapolationValidation.h.

◆ m_validationRunTreeName

std::string Trk::EnergyLossExtrapolationValidation::m_validationRunTreeName
private

run stats tree name - to be accessed by this from root

Definition at line 104 of file EnergyLossExtrapolationValidation.h.

◆ m_validationTree

TTree* Trk::EnergyLossExtrapolationValidation::m_validationTree
private

Root Validation Tree.

Definition at line 97 of file EnergyLossExtrapolationValidation.h.

◆ m_validationTreeDescription

std::string Trk::EnergyLossExtrapolationValidation::m_validationTreeDescription
private

validation tree description - second argument in TTree

Definition at line 102 of file EnergyLossExtrapolationValidation.h.

◆ m_validationTreeFolder

std::string Trk::EnergyLossExtrapolationValidation::m_validationTreeFolder
private

stream/folder to for the TTree to be written out

Definition at line 100 of file EnergyLossExtrapolationValidation.h.

◆ m_validationTreeName

std::string Trk::EnergyLossExtrapolationValidation::m_validationTreeName
private

validation tree name - to be accessed by this from root

Definition at line 101 of file EnergyLossExtrapolationValidation.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.


The documentation for this class was generated from the following files:
Trk::EnergyLossExtrapolationValidation::m_collectedLayerBack
size_t m_collectedLayerBack
collected material layers backward
Definition: EnergyLossExtrapolationValidation.h:150
Trk::y
@ y
Definition: ParamDefs.h:62
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
Trk::EnergyLossExtrapolationValidation::m_parameterX0
float m_parameterX0[TRKEXALGS_MAXPARAMETERS]
thickness in X0
Definition: EnergyLossExtrapolationValidation.h:129
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::z
@ z
global position (cartesian)
Definition: ParamDefs.h:63
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::EnergyLossExtrapolationValidation::m_maximumR
double m_maximumR
maximum R of the highest
Definition: EnergyLossExtrapolationValidation.h:107
PlotCalibFromCool.zAxis
zAxis
Definition: PlotCalibFromCool.py:76
Trk::EnergyLossExtrapolationValidation::m_validationTreeFolder
std::string m_validationTreeFolder
stream/folder to for the TTree to be written out
Definition: EnergyLossExtrapolationValidation.h:100
Trk::Volume::inside
bool inside(const Amg::Vector3D &gp, double tol=0.) const
Inside() method for checks.
Definition: Volume.cxx:90
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::EnergyLossExtrapolationValidation::m_minEta
float m_minEta
Minimal eta value.
Definition: EnergyLossExtrapolationValidation.h:115
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::EnergyLossExtrapolationValidation::m_parameterEta
float m_parameterEta[TRKEXALGS_MAXPARAMETERS]
eta
Definition: EnergyLossExtrapolationValidation.h:137
Trk::EnergyLossExtrapolationValidation::m_validationRunTreeDescription
std::string m_validationRunTreeDescription
run stats tree description - second argument in TTree
Definition: EnergyLossExtrapolationValidation.h:105
Trk::EnergyLossExtrapolationValidation::m_highestVolume
const TrackingVolume * m_highestVolume
the highest volume
Definition: EnergyLossExtrapolationValidation.h:86
Trk::EnergyLossExtrapolationValidation::m_parameterP
float m_parameterP[TRKEXALGS_MAXPARAMETERS]
P.
Definition: EnergyLossExtrapolationValidation.h:140
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Trk::EnergyLossExtrapolationValidation::createTransform
static std::unique_ptr< Amg::Transform3D > createTransform(double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.)
private helper method to create a Transform
Definition: EnergyLossExtrapolationValidation.cxx:549
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Trk::EnergyLossExtrapolationValidation::m_totalRecordedLayers
int m_totalRecordedLayers
total number of recorded layers
Definition: EnergyLossExtrapolationValidation.h:119
Trk::EnergyLossExtrapolationValidation::m_events
size_t m_events
total number of recorded events
Definition: EnergyLossExtrapolationValidation.h:118
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
Trk::DiscSurface
Definition: DiscSurface.h:54
Trk::EnergyLossExtrapolationValidation::m_triesForward
size_t m_triesForward
extrapolation events forward
Definition: EnergyLossExtrapolationValidation.h:144
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Trk::EnergyLossExtrapolationValidation::m_cylinderR
float m_cylinderR[TRKEXALGS_MAXPARAMETERS]
radius of cylinder layers (for ROOT tree)
Definition: EnergyLossExtrapolationValidation.h:154
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
Trk::EnergyLossExtrapolationValidation::m_particleType
int m_particleType
the particle type for the extrapolation
Definition: EnergyLossExtrapolationValidation.h:123
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
Trk::EnergyLossExtrapolationValidation::m_theDiscs2
DataVector< const Trk::DiscSurface > * m_theDiscs2
Definition: EnergyLossExtrapolationValidation.h:158
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Trk::EnergyLossExtrapolationValidation::m_triesBack
size_t m_triesBack
extrapolation events backward
Definition: EnergyLossExtrapolationValidation.h:146
Trk::EnergyLossExtrapolationValidation::m_entries
size_t m_entries
effective number of used entries (recorded layers) in this event
Definition: EnergyLossExtrapolationValidation.h:126
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
Trk::EnergyLossExtrapolationValidation::m_theCylinders
DataVector< const Trk::CylinderSurface > * m_theCylinders
Definition: EnergyLossExtrapolationValidation.h:156
Trk::EnergyLossExtrapolationValidation::m_energy
float m_energy[TRKEXALGS_MAXPARAMETERS]
energy
Definition: EnergyLossExtrapolationValidation.h:127
Trk::EnergyLossExtrapolationValidation::m_cylinderVZ
std::vector< float > m_cylinderVZ
length of cylinder layers (vector from jobOptions)
Definition: EnergyLossExtrapolationValidation.h:160
Trk::TrackingGeometry::highestTrackingVolume
const TrackingVolume * highestTrackingVolume() const
return the world
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
Trk::EnergyLossExtrapolationValidation::m_validationRunTreeFolder
std::string m_validationRunTreeFolder
stream/folder to for the second TTree to be written out
Definition: EnergyLossExtrapolationValidation.h:103
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Trk::EnergyLossExtrapolationValidation::m_extrapolator
ToolHandle< IExtrapolator > m_extrapolator
The Extrapolator to be retrieved.
Definition: EnergyLossExtrapolationValidation.h:89
Trk::EnergyLossExtrapolationValidation::m_parameterQoverP
float m_parameterQoverP[TRKEXALGS_MAXPARAMETERS]
qOverP
Definition: EnergyLossExtrapolationValidation.h:139
Trk::EnergyLossExtrapolationValidation::m_breaksBack
size_t m_breaksBack
extrapolation breaks backward
Definition: EnergyLossExtrapolationValidation.h:147
Trk::theta
@ theta
Definition: ParamDefs.h:72
Trk::TrackingGeometry
Definition: TrackingGeometry.h:67
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trk::EnergyLossExtrapolationValidation::m_validationTreeDescription
std::string m_validationTreeDescription
validation tree description - second argument in TTree
Definition: EnergyLossExtrapolationValidation.h:102
Trk::CylinderSurface
Definition: CylinderSurface.h:55
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::CylinderVolumeBounds::halflengthZ
double halflengthZ() const
This method returns the halflengthZ.
Definition: CylinderVolumeBounds.h:207
Trk::EnergyLossExtrapolationValidation::m_collectedLayerForward
size_t m_collectedLayerForward
collected material layers forward
Definition: EnergyLossExtrapolationValidation.h:149
Trk::EnergyLossExtrapolationValidation::m_avgRecordedLayers
float m_avgRecordedLayers
average recorded layers per event
Definition: EnergyLossExtrapolationValidation.h:120
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
TRKEXALGS_MAXPARAMETERS
#define TRKEXALGS_MAXPARAMETERS
Definition: EnergyLossExtrapolationValidation.h:28
Trk::EnergyLossExtrapolationValidation::m_positionZ
float m_positionZ[TRKEXALGS_MAXPARAMETERS]
position Z
Definition: EnergyLossExtrapolationValidation.h:135
DataVector< const Trk::CylinderSurface >
Trk::EnergyLossExtrapolationValidation::m_breaksForward
size_t m_breaksForward
extrapolation breaks forward
Definition: EnergyLossExtrapolationValidation.h:145
Trk::EnergyLossExtrapolationValidation::m_usePt
bool m_usePt
use pt instead of p
Definition: EnergyLossExtrapolationValidation.h:114
Trk::EnergyLossExtrapolationValidation::m_theDiscs1
DataVector< const Trk::DiscSurface > * m_theDiscs1
Definition: EnergyLossExtrapolationValidation.h:157
Trk::EnergyLossExtrapolationValidation::m_validationRunTree
TTree * m_validationRunTree
Root Run Stats Tree.
Definition: EnergyLossExtrapolationValidation.h:98
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
Trk::EnergyLossExtrapolationValidation::m_positionY
float m_positionY[TRKEXALGS_MAXPARAMETERS]
position Y
Definition: EnergyLossExtrapolationValidation.h:134
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Trk::ParticleMasses::mass
constexpr double mass[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:53
Trk::CylinderVolumeBounds
Definition: CylinderVolumeBounds.h:70
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
Trk::CylinderVolumeBounds::outerRadius
double outerRadius() const
This method returns the outer radius.
Definition: CylinderVolumeBounds.h:191
charge
double charge(const T &p)
Definition: AtlasPID.h:494
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::EnergyLossExtrapolationValidation::m_onion
bool m_onion
strictly hierarchical ordering (onion-like)
Definition: EnergyLossExtrapolationValidation.h:112
Trk::EnergyLossExtrapolationValidation::m_validationTreeName
std::string m_validationTreeName
validation tree name - to be accessed by this from root
Definition: EnergyLossExtrapolationValidation.h:101
Trk::EnergyLossExtrapolationValidation::m_radius
float m_radius[TRKEXALGS_MAXPARAMETERS]
position radius
Definition: EnergyLossExtrapolationValidation.h:130
Trk::EnergyLossExtrapolationValidation::m_maximumZ
double m_maximumZ
maximum halfZ of the highest tracking volume
Definition: EnergyLossExtrapolationValidation.h:108
Trk::EnergyLossExtrapolationValidation::m_validationRunTreeName
std::string m_validationRunTreeName
run stats tree name - to be accessed by this from root
Definition: EnergyLossExtrapolationValidation.h:104
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
Trk::EnergyLossExtrapolationValidation::m_layer
size_t m_layer[TRKEXALGS_MAXPARAMETERS]
layer id
Definition: EnergyLossExtrapolationValidation.h:141
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::EnergyLossExtrapolationValidation::m_energyLoss
float m_energyLoss[TRKEXALGS_MAXPARAMETERS]
energy loss
Definition: EnergyLossExtrapolationValidation.h:128
h
Trk::EnergyLossExtrapolationValidation::m_cylinderZ
float m_cylinderZ[TRKEXALGS_MAXPARAMETERS]
length of cylinder layers (for ROOT tree)
Definition: EnergyLossExtrapolationValidation.h:155
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
Trk::EnergyLossExtrapolationValidation::m_pdg
int m_pdg
PDG code corresponding to m_particleType.
Definition: EnergyLossExtrapolationValidation.h:122
Trk::EnergyLossExtrapolationValidation::m_parameterPhi
float m_parameterPhi[TRKEXALGS_MAXPARAMETERS]
phi
Definition: EnergyLossExtrapolationValidation.h:136
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
Trk::EnergyLossExtrapolationValidation::m_maxEta
float m_maxEta
Maximal eta value.
Definition: EnergyLossExtrapolationValidation.h:116
Trk::Volume::volumeBounds
const VolumeBounds & volumeBounds() const
returns the volumeBounds()
Definition: Volume.h:97
Trk::EnergyLossExtrapolationValidation::m_positionX
float m_positionX[TRKEXALGS_MAXPARAMETERS]
position X
Definition: EnergyLossExtrapolationValidation.h:133
Trk::EnergyLossExtrapolationValidation::m_materialCollectionValidation
bool m_materialCollectionValidation
use the material collection (extrapolateM)
Definition: EnergyLossExtrapolationValidation.h:95
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
Trk::phi
@ phi
Definition: ParamDefs.h:81
Trk::EnergyLossExtrapolationValidation::m_cylinders
size_t m_cylinders
number of cylinder layers
Definition: EnergyLossExtrapolationValidation.h:111
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Trk::EnergyLossExtrapolationValidation::m_flatDist
Rndm::Numbers * m_flatDist
Definition: EnergyLossExtrapolationValidation.h:93
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
Trk::x
@ x
Definition: ParamDefs.h:61
Trk::EnergyLossExtrapolationValidation::m_gaussDist
Rndm::Numbers * m_gaussDist
Random Number setup.
Definition: EnergyLossExtrapolationValidation.h:92
Trk::EnergyLossExtrapolationValidation::m_parameterTheta
float m_parameterTheta[TRKEXALGS_MAXPARAMETERS]
theta
Definition: EnergyLossExtrapolationValidation.h:138
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
Trk::EnergyLossExtrapolationValidation::m_momentum
float m_momentum
momentum value
Definition: EnergyLossExtrapolationValidation.h:113
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Trk::EnergyLossExtrapolationValidation::m_validationTree
TTree * m_validationTree
Root Validation Tree.
Definition: EnergyLossExtrapolationValidation.h:97
readCCLHist.float
float
Definition: readCCLHist.py:83
fitman.k
k
Definition: fitman.py:528
Trk::ParametersBase::clone
virtual ParametersBase< DIM, T > * clone() const override=0
clone method for polymorphic deep copy
ServiceHandle< ICondSvc >
Trk::EnergyLossExtrapolationValidation::m_cylinderVR
std::vector< float > m_cylinderVR
radius of cylinder layers (vector from jobOptions)
Definition: EnergyLossExtrapolationValidation.h:159