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 33 of file EnergyLossExtrapolationValidation.cxx.

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

◆ ~EnergyLossExtrapolationValidation()

Trk::EnergyLossExtrapolationValidation::~EnergyLossExtrapolationValidation ( )

Default Destructor.

Definition at line 114 of file EnergyLossExtrapolationValidation.cxx.

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

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 551 of file EnergyLossExtrapolationValidation.cxx.

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

◆ 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 270 of file EnergyLossExtrapolationValidation.cxx.

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

◆ 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 243 of file EnergyLossExtrapolationValidation.cxx.

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

◆ 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 129 of file EnergyLossExtrapolationValidation.cxx.

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

◆ 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:56
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
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Trk::z
@ z
global position (cartesian)
Definition: ParamDefs.h:57
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
Base_Fragment.mass
mass
Definition: Sherpa_i/share/common/Base_Fragment.py:59
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:551
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
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
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
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
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
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:66
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:221
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:538
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:623
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
Trk::phi
@ phi
Definition: ParamDefs.h:75
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:798
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:55
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
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