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 = nullptr
 the highest volume More...
 
ToolHandle< IExtrapolatorm_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"}
 The Extrapolator to be retrieved. More...
 
Rndm::Numbers * m_gaussDist = nullptr
 Random Number setup. More...
 
Rndm::Numbers * m_flatDist = nullptr
 
BooleanProperty m_materialCollectionValidation
 
TTree * m_validationTree = nullptr
 Root Validation Tree. More...
 
TTree * m_validationRunTree = nullptr
 Root Run Stats Tree. More...
 
StringProperty m_validationTreeFolder
 
StringProperty m_validationTreeName
 
StringProperty m_validationTreeDescription
 
StringProperty m_validationRunTreeFolder
 
StringProperty m_validationRunTreeName
 
StringProperty m_validationRunTreeDescription
 
UnsignedIntegerProperty m_cylinders
 
BooleanProperty m_onion
 
FloatProperty m_momentum
 
BooleanProperty m_usePt
 
FloatProperty m_minEta {this, "StartPerigeeMinEta", -3.}
 
FloatProperty m_maxEta {this, "StartPerigeeMaxEta", 3.}
 
size_t m_events = 0
 total number of recorded events More...
 
int m_totalRecordedLayers = 0
 total number of recorded layers More...
 
float m_avgRecordedLayers = 0
 average recorded layers per event More...
 
int m_pdg = 0
 PDG code corresponding to m_particleType. More...
 
IntegerProperty m_particleType
 
size_t m_entries = 0
 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 = 0
 extrapolation events forward More...
 
size_t m_breaksForward = 0
 extrapolation breaks forward More...
 
size_t m_triesBack = 0
 extrapolation events backward More...
 
size_t m_breaksBack = 0
 extrapolation breaks backward More...
 
size_t m_collectedLayerForward = 0
 collected material layers forward More...
 
size_t m_collectedLayerBack = 0
 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 = nullptr
 
DataVector< const Trk::DiscSurface > * m_theDiscs1 = nullptr
 
DataVector< const Trk::DiscSurface > * m_theDiscs2 = nullptr
 
FloatArrayProperty m_cylinderVR
 
FloatArrayProperty m_cylinderVZ
 
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 61 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 30 of file EnergyLossExtrapolationValidation.cxx.

31  : AthAlgorithm(name,pSvcLocator) {}

◆ ~EnergyLossExtrapolationValidation()

Trk::EnergyLossExtrapolationValidation::~EnergyLossExtrapolationValidation ( )

Default Destructor.

Definition at line 35 of file EnergyLossExtrapolationValidation.cxx.

36 {
37  // clear random number generators
38  delete m_gaussDist;
39  delete m_flatDist;
40  // clear data vectors
41  delete m_theCylinders;
42  delete m_theDiscs1;
43  delete m_theDiscs2;
44 
45 }

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

462 {
463 
464  if (phi!=0. && theta != 0.){
465  // create the Start Surface
466  Amg::Vector3D surfacePosition(x,y,z);
467  // z direction
468  Amg::Vector3D surfaceZdirection(cos(phi)*sin(theta),
469  sin(phi)*sin(theta),
470  cos(theta));
471  // the global z axis
472  Amg::Vector3D zAxis(0.,0.,1.);
473  // the y direction
474  Amg::Vector3D surfaceYdirection(zAxis.cross(surfaceZdirection));
475  // the x direction
476  Amg::Vector3D surfaceXdirection(surfaceYdirection.cross(surfaceZdirection));
477  // the rotation
478  Amg::RotationMatrix3D surfaceRotation;
479  surfaceRotation.col(0) = surfaceXdirection;
480  surfaceRotation.col(1) = surfaceYdirection;
481  surfaceRotation.col(2) = surfaceZdirection;
482  // return it
483  if (alphaZ==0.){
484  return std::make_unique<Amg::Transform3D>(surfaceRotation, surfacePosition);
485  }
486  Amg::Transform3D nominalTransform(surfaceRotation, surfacePosition);
487  return std::make_unique<Amg::Transform3D>(nominalTransform*Amg::AngleAxis3D(alphaZ,zAxis));
488 
489  }
490 
491  return std::make_unique<Amg::Transform3D>(Amg::Translation3D(x,y,z));
492 }

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

190 {
191  const EventContext& ctx = Gaudi::Hive::currentContext();
192  // get the overall dimensions
193  if (!m_highestVolume){
194  // get TrackingGeometry and highest volume
195  const Trk::TrackingGeometry* trackingGeometry = m_extrapolator->trackingGeometry();
196  m_highestVolume = trackingGeometry ? trackingGeometry->highestTrackingVolume() : nullptr;
197  const Trk::CylinderVolumeBounds* cylBounds = m_highestVolume ?
198  dynamic_cast<const Trk::CylinderVolumeBounds*>(&(m_highestVolume->volumeBounds())) : nullptr;
199  // bail out
200  if (!cylBounds){
201  ATH_MSG_WARNING( "execute() No highest TrackingVolume / no VolumeBounds ... pretty useless!" );
202  return StatusCode::SUCCESS;
203  }
204  }
205 
206 
207  m_entries = 0;
208  for (size_t par=0; par<TRKEXALGS_MAXPARAMETERS; ++par) {
209  // -----------> start parameters
210 
211  m_parameterP[par] = 0.;
212  m_energy[par] = 0.;
213  m_energyLoss[par] = 0.;
214  m_parameterX0[par] = 0.;
215  m_radius[par] = 0.;
216  m_positionX[par] = 0.;
217  m_positionY[par] = 0.;
218  m_positionZ[par] = 0.;
219  m_parameterEta[par] = 0.;
220  m_parameterPhi[par] = 0.;
221  m_parameterTheta[par] = 0.;
222  m_layer[par] = 0;
223  }
224 
225  // the local start parameters
226  // are adopted for planar and straight line surfaces
227  m_parameterPhi[0] = M_PI * (2 * m_flatDist->shoot() - 1);
230 
231  double charge = -1.;
233  // convert transverse momentum (pt) to momentum (p) if flag is set: p = pt/sin(theta)
234  if (m_usePt)
237 
239 
240  double energy1 = sqrt(m_parameterP[0]*m_parameterP[0] + mass*mass);
241 
242  double newX0 = 0;
243 
244  const Trk::PerigeeSurface perigeeSurface;
245  // the initial perigee with random numbers
246  Trk::Perigee startParameters(0, // m_parameterLoc1[0],
247  0, // m_parameterLoc2[0],
248  m_parameterPhi[0],
249  m_parameterTheta[0],
251  perigeeSurface);
252 
253  ATH_MSG_VERBOSE( "execute() Start Parameters : " << startParameters );
254  ATH_MSG_DEBUG( "execute() Start Parameters : [phi,eta] = [ " << startParameters.momentum().phi() << ", " << startParameters.eta() << " ]" );
255 
256  // --------------- propagate to find an intersection ---------------------
257 
258  // fill the TrackParameters vector with extrapolation from startParameters to dummy cylinder surface
259  const Trk::TrackParameters* lastParameters = nullptr;
260  const Trk::TrackParameters* newParameters = nullptr;
261 
263 
264  lastParameters = m_extrapolator->extrapolate(
265  ctx,
266  startParameters,
267  *(m_theCylinders->at(0)),
269  true,
270  static_cast<Trk::ParticleHypothesis>(m_particleType.value())).release();
271 
272  } else { // material collection validation
273 
274  // get the vector of TrackStateOnSurfaces back
275  const std::vector<const Trk::TrackStateOnSurface*>* collectedMaterial =
276  m_extrapolator->extrapolateM(
277  ctx,
278  startParameters,
279  *(m_theCylinders->at(0)),
281  true,
282  static_cast<Trk::ParticleHypothesis>(m_particleType.value()));
283 
284  // get the last one and clone it
285  if (collectedMaterial && !collectedMaterial->empty()) {
286  // get the last track state on surface & clone the destination parameters
287  const Trk::TrackStateOnSurface* destinationState = collectedMaterial->back();
288  lastParameters = destinationState->trackParameters() ? destinationState->trackParameters()->clone() : nullptr;
289  m_collectedLayerForward += collectedMaterial->size();
290  // delete the layers / cleanup
291  for (const auto* tsos : *collectedMaterial) {
292  newX0 += tsos->materialEffectsOnTrack() ? tsos->materialEffectsOnTrack()->thicknessInX0() : 0;
293  delete tsos;
294  }
295  ATH_MSG_VERBOSE( "execute() newX0 = " << newX0 );
296  }
297  }
298 
299 
300  for (size_t lay = 1; lay<m_cylinders+1; ++lay) {
301 
302  if (!m_onion) newX0 = 0;
303 
304  if (m_onion) {
305  // safety check
306  if (!lastParameters) {
307  ATH_MSG_WARNING( "execute() Layer " << lay << ": start parameters for cylinder NOT found - skip event !" );
308  break;
309  }
310  ATH_MSG_VERBOSE( "execute() Layer " << lay << ": start parameters for cylinder found: " << *lastParameters );
311  }
312 
313  // trying to extrapolate to cylinder barrel
314  newParameters = nullptr;
316 
317  newParameters = m_extrapolator->extrapolate(
318  ctx,
319  m_onion ? *lastParameters : startParameters,
320  *(m_theCylinders->at(lay)),
322  true,
323  static_cast<Trk::ParticleHypothesis>(m_particleType.value())).release();
324 
325  } else { // material collection validation
326 
327  // get the vector of TrackStateOnSurfaces back
328  const std::vector<const Trk::TrackStateOnSurface*>* collectedMaterial =
329  m_extrapolator->extrapolateM(ctx,
330  m_onion ? *lastParameters : startParameters,
331  *(m_theCylinders->at(lay)),
333  true,
334  static_cast<Trk::ParticleHypothesis>(m_particleType.value()));
335 
336  // get the last one and clone it
337  if (collectedMaterial && !collectedMaterial->empty()){
338  // get the last track state on surface & clone the destination parameters
339  const Trk::TrackStateOnSurface* destinationState = collectedMaterial->back();
340  newParameters = destinationState->trackParameters() ? destinationState->trackParameters()->clone() : nullptr;
341  if (m_onion)
342  m_collectedLayerForward += collectedMaterial->size();
343  else
344  m_collectedLayerForward = collectedMaterial->size(); // TODO: shouldn't there be something else here?
345  // delete the layers / cleanup
346  for (const auto* tsos : *collectedMaterial) {
347  newX0 += tsos->materialEffectsOnTrack() ? tsos->materialEffectsOnTrack()->thicknessInX0() : 0;
348  delete tsos;
349  }
350  ATH_MSG_VERBOSE( "execute() newX0 = " << newX0 );
351  }
352  }
353 
354  // no intersection with cylinder barrel, now trying disc endcaps
355  if (!newParameters) {
356 
358 
359  newParameters = m_extrapolator->extrapolate(
360  ctx,
361  m_onion ? *lastParameters : startParameters,
362  (m_parameterEta[0] < 0) ? *(m_theDiscs1->at(lay))
363  : *(m_theDiscs2->at(lay)),
365  true,
366  static_cast<Trk::ParticleHypothesis>(m_particleType.value())).release();
367 
368  } else { // material collection validation
369 
370  // get the vector of TrackStateOnSurfaces back
371  const std::vector<const Trk::TrackStateOnSurface*>* collectedMaterial =
372  m_extrapolator->extrapolateM(ctx,
373  m_onion ? *lastParameters : startParameters,
374  (m_parameterEta[0] < 0) ? *(m_theDiscs1->at(lay)) : *(m_theDiscs2->at(lay)),
376  true,
377  static_cast<Trk::ParticleHypothesis>(m_particleType.value()));
378 
379  // get the last one and clone it
380  if (collectedMaterial && !collectedMaterial->empty()){
381  // get the last track state on surface & clone the destination parameters
382  const Trk::TrackStateOnSurface* destinationState = collectedMaterial->back();
383  newParameters = destinationState->trackParameters() ? destinationState->trackParameters()->clone() : nullptr;
384  if (m_onion)
385  m_collectedLayerForward += collectedMaterial->size();
386  else
387  m_collectedLayerForward = collectedMaterial->size(); // TODO: shouldn't there be something else here?
388  // delete the layers / cleanup
389  for (const auto* tsos : *collectedMaterial) {
390  newX0 += tsos->materialEffectsOnTrack() ? tsos->materialEffectsOnTrack()->thicknessInX0() : 0;
391  delete tsos;
392  }
393  ATH_MSG_VERBOSE( "execute() newX0 = " << newX0 );
394  }
395  }
396  }
397 
398  // still no intersection
399  if (!newParameters) {
400  ATH_MSG_WARNING( "execute() Layer " << lay << " intersection did not work !" );
401  }
402 
403  else if (m_highestVolume && newParameters && !(m_highestVolume->inside(newParameters->position()))) {
404  ATH_MSG_WARNING( "execute() Layer " << lay << " intersection is outside the known world !" );
405  }
406 
407  else {
408 
409  // get the current surface intersection position
410  const Amg::Vector3D& newPosition = newParameters->position();
411  ATH_MSG_VERBOSE( "execute() Track Parameters at layer " << lay << ": " << *newParameters );
412  ATH_MSG_DEBUG( "execute() Track Parameters at layer " << lay << ": [r,z] = [ " << newPosition.perp() << ", " << newPosition.z() );
413 
414  // record the surface parameters
415  ++m_triesForward;
416  ++m_entries;
417  m_parameterPhi[m_entries] = newParameters->parameters()[Trk::phi];
418  m_parameterEta[m_entries] = newParameters->momentum().eta();
419  m_parameterTheta[m_entries] = newParameters->parameters()[Trk::theta];
420  m_parameterP[m_entries] = newParameters->momentum().mag();
421  m_parameterX0[m_entries] = (float)newX0;
422  ATH_MSG_DEBUG( "execute() Layer " << lay << ": cumulated X0 = " << m_parameterX0[m_entries] );
423 
424  // get the current energy and calculate energy loss
427  ATH_MSG_DEBUG( "execute() Layer " << lay << ": cumulated Energy Loss = " << m_energyLoss[m_entries] );
428 
429  // record the current layer ID
430  m_layer[m_entries] = lay;
431  // record the current position
432  m_radius[m_entries] = newPosition.perp();
433  m_positionX[m_entries] = newPosition.x();
434  m_positionY[m_entries] = newPosition.y();
435  m_positionZ[m_entries] = newPosition.z();
436 
437  }
438 
439  lastParameters = newParameters;
440 
441  }
442 
443 
445  ++m_events;
446  // increase m_entries once more before the fill (to account for the "start layer" at index 0 with initial track parameters)
447  ++m_entries;
448 
449  // fill the event tree
450  if (m_validationTree)
451  m_validationTree->Fill();
452 
453  // memory cleanup
454  ATH_MSG_DEBUG( "execute() deleting DataVector parameters ... " );
455 
456  return StatusCode::SUCCESS;
457 }

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

163 {
164  // Code entered here will be executed once at the end of the program run.
165  ATH_MSG_INFO( "finalize() ================== Output Statistics =========================" );
166  ATH_MSG_INFO( "finalize() = Navigation : " );
167  ATH_MSG_INFO( "finalize() = - breaks fwd : " << static_cast<double>(m_breaksForward)/static_cast<double>(m_triesForward)
168  << " (" << m_breaksForward << "/" << m_triesForward << ")" );
169  ATH_MSG_INFO( "finalize() = - breaks bwd : " << static_cast<double>(m_breaksBack)/static_cast<double>(m_triesBack)
170  << " (" << m_breaksBack << "/" << m_triesBack << ")" );
172  ATH_MSG_INFO( "finalize() = Material collection : " );
173  ATH_MSG_INFO( "finalize() = - layer collected fwd : " << m_collectedLayerForward );
174  ATH_MSG_INFO( "finalize() = - layer collected bwd : " << m_collectedLayerBack );
175  }
176  ATH_MSG_INFO( "finalize() ==============================================================" );
177 
178  m_avgRecordedLayers = m_events ? static_cast<float>(m_totalRecordedLayers) / static_cast<float>(m_events) : 0;
179  ++m_cylinders;
181  m_validationRunTree->Fill();
182  --m_cylinders;
183 
184  return StatusCode::SUCCESS;
185 }

◆ initialize()

StatusCode Trk::EnergyLossExtrapolationValidation::initialize ( )

standard Athena-Algorithm method

Definition at line 50 of file EnergyLossExtrapolationValidation.cxx.

51 {
52  // Code entered here will be executed once at program start.
53  ATH_MSG_INFO( "initialize()" );
54  ATH_MSG_DEBUG( "initialize() m_materialCollectionValidation = " << m_materialCollectionValidation );
55 
56  // Get Extrapolator from ToolService
57  if (m_extrapolator.retrieve().isFailure()) {
58  ATH_MSG_FATAL( "initialize() Could not retrieve Tool " << m_extrapolator << ". Exiting." );
59  return StatusCode::FAILURE;
60  }
61 
62  // create the new Trees
63  m_validationTree = new TTree(m_validationTreeName.value().c_str(),
64  m_validationTreeDescription.value().c_str());
65  m_validationRunTree = new TTree(m_validationRunTreeName.value().c_str(),
66  m_validationRunTreeDescription.value().c_str());
67 
68  // the branches for the parameters
69  m_validationTree->Branch("Entries", &m_entries, "entries/i");
70  m_validationTree->Branch("Energy", m_energy, "energy[entries]/F");
71  m_validationTree->Branch("EnergyLoss", m_energyLoss, "eLoss[entries]/F");
72  m_validationTree->Branch("tInX0", m_parameterX0, "tinX0[entries]/F");
73  m_validationTree->Branch("Radius", m_radius, "radius[entries]/F");
74  m_validationTree->Branch("PosX", m_positionX, "posX[entries]/F");
75  m_validationTree->Branch("PosY", m_positionY, "posY[entries]/F");
76  m_validationTree->Branch("PosZ", m_positionZ, "posZ[entries]/F");
77  m_validationTree->Branch("Eta", m_parameterEta, "eta[entries]/F");
78  m_validationTree->Branch("Phi", m_parameterPhi, "phi[entries]/F");
79  m_validationTree->Branch("Layer", m_layer, "layer[entries]/i");
80 
81  m_validationRunTree->Branch("Layers", &m_cylinders, "layers/i");
82  m_validationRunTree->Branch("CylR", m_cylinderR, "cylR[layers]/F");
83  m_validationRunTree->Branch("CylZ", m_cylinderZ, "cylZ[layers]/F");
84  m_validationRunTree->Branch("Momentum",&m_momentum, "momentum/F");
85  m_validationRunTree->Branch("UsePt", &m_usePt, "usePt/O");
86  m_validationRunTree->Branch("MinEta", &m_minEta, "minEta/F");
87  m_validationRunTree->Branch("MaxEta", &m_maxEta, "maxEta/F");
88  m_validationRunTree->Branch("PDG", &m_pdg, "pdg/I");
89  m_validationRunTree->Branch("Events", &m_events, "events/i");
90  m_validationRunTree->Branch("AvgRecordedLayers", &m_avgRecordedLayers, "avgRecLayers/F");
91 
92  // now register the Trees
93  SmartIF<ITHistSvc> tHistSvc{service("THistSvc")};
94  if (!tHistSvc){
95  ATH_MSG_ERROR( "initialize() Could not find Hist Service -> Switching ValidationMode Off !" );
96  delete m_validationTree; m_validationTree = nullptr;
97  delete m_validationRunTree; m_validationRunTree = nullptr;
98  }
99  if ((tHistSvc->regTree(m_validationTreeFolder, m_validationTree)).isFailure()
100  || (tHistSvc->regTree(m_validationRunTreeFolder, m_validationRunTree)).isFailure() ) {
101  ATH_MSG_ERROR( "initialize() Could not register the validation Trees -> Switching ValidationMode Off !" );
102  delete m_validationTree; m_validationTree = nullptr;
103  delete m_validationRunTree; m_validationRunTree = nullptr;
104  }
105 
106  // initialize the random number generators
107  ATH_MSG_INFO( "initialize() RandomService = " << randSvc()->name() );
108  m_gaussDist = new Rndm::Numbers(randSvc(), Rndm::Gauss(0.,1.));
109  m_flatDist = new Rndm::Numbers(randSvc(), Rndm::Flat(0.,1.));
110 
111  // initialize cylinders if they are not set in jobOptions
112  double const s_cylInitR[TRKEXALGS_MAXPARAMETERS] = { 0.5, 34.5, 250, 550, 1120, 4250, 13000, 0, 0, 0 };
113  double const s_cylInitZ[TRKEXALGS_MAXPARAMETERS] = { 100, 10e6, 680, 2820, 3120, 6500, 22000, 0, 0, 0 };
114 
115  // output of vector from jobOptions
116  ATH_MSG_INFO( "initialize() cylinder dimensions vector from jobOptions :" );
117  for (size_t lay=0; lay<m_cylinders+1; ++lay) {
118  ATH_MSG_INFO( "initialize() m_cylinderVR[" << lay << "] = " << m_cylinderVR[lay] << "\t ... m_cylinderVZ[" << lay << "] = " << m_cylinderVZ[lay] );
119  }
120  // transform vector (from jobOptions) into array (for ROOT tree)
121  ATH_MSG_INFO( "initialize() cylinder dimensions array for algorithm and ROOT tree :" );
122  for (size_t lay=0; lay<m_cylinders+1; ++lay) {
123  m_cylinderR[lay] = m_cylinderVR[lay] > 0 ? m_cylinderVR[lay] : s_cylInitR[lay];
124  m_cylinderZ[lay] = m_cylinderVZ[lay] > 0 ? m_cylinderVZ[lay] : s_cylInitZ[lay];
125  // in "strict onion mode", constrain m_cylinders if the values don't make sense
126  if (m_onion && lay>0 && (m_cylinderR[lay] < m_cylinderR[lay-1])) {
127  ATH_MSG_WARNING( "initialize() layer " << lay << "dimensions are smaller than those of layer " << lay-1 << " - constraining m_cylinders to " << lay-1 );
128  ATH_MSG_INFO( "initialize() cutting off here :" );
129  ATH_MSG_INFO( "initialize() m_cylinderR[" << lay << "] = " << m_cylinderR[lay] << "\t ... m_cylinderZ[" << lay << "] = " << m_cylinderZ[lay] );
130  m_cylinders = lay-1;
131  break;
132  }
133  ATH_MSG_INFO( "initialize() m_cylinderR[" << lay << "] = " << m_cylinderR[lay] << "\t ... m_cylinderZ[" << lay << "] = " << m_cylinderZ[lay] );
134  }
135 
136  // fill data vector with cylinders once (in order not to create them every time)
140  for (size_t lay=0; lay<m_cylinders+1; ++lay) {
142  ATH_MSG_INFO( "initialize() Cylinder " << lay << ": " << *m_theCylinders->at(lay) );
144  ATH_MSG_INFO( "initialize() Disc1 " << lay << ": " << *m_theDiscs1->at(lay) );
146  ATH_MSG_INFO( "initialize() Disc2 " << lay << ": " << *m_theDiscs2->at(lay) );
147  }
148 
149  if (m_particleType==0) m_pdg = 999; // geantino
150  else if (m_particleType==1) m_pdg = 11; // electron
151  else if (m_particleType==2) m_pdg = 13; // muon-
152  else if (m_particleType==3) m_pdg = 211; // pion+
153  else if (m_particleType==4) m_pdg = 321; // kaon+
154  ATH_MSG_INFO( "initialize() ParticleType = " << m_particleType << " ... PDG = " << m_pdg );
155 
156  ATH_MSG_INFO( "initialize() successful" );
157  return StatusCode::SUCCESS;
158 }

◆ 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 = 0
private

average recorded layers per event

Definition at line 138 of file EnergyLossExtrapolationValidation.h.

◆ m_breaksBack

size_t Trk::EnergyLossExtrapolationValidation::m_breaksBack = 0
private

extrapolation breaks backward

Definition at line 164 of file EnergyLossExtrapolationValidation.h.

◆ m_breaksForward

size_t Trk::EnergyLossExtrapolationValidation::m_breaksForward = 0
private

extrapolation breaks forward

Definition at line 162 of file EnergyLossExtrapolationValidation.h.

◆ m_collectedLayerBack

size_t Trk::EnergyLossExtrapolationValidation::m_collectedLayerBack = 0
private

collected material layers backward

Definition at line 167 of file EnergyLossExtrapolationValidation.h.

◆ m_collectedLayerForward

size_t Trk::EnergyLossExtrapolationValidation::m_collectedLayerForward = 0
private

collected material layers forward

Definition at line 166 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinderR

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

radius of cylinder layers (for ROOT tree)

Definition at line 171 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinders

UnsignedIntegerProperty Trk::EnergyLossExtrapolationValidation::m_cylinders
private
Initial value:
{this, "ValidationCylinders", 6,
"number of cylinder layers"}

Definition at line 125 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinderVR

FloatArrayProperty Trk::EnergyLossExtrapolationValidation::m_cylinderVR
private
Initial value:
{this, "ValidationCylinderR", {},
"radius of cylinder layers"}

Definition at line 176 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinderVZ

FloatArrayProperty Trk::EnergyLossExtrapolationValidation::m_cylinderVZ
private
Initial value:
{this, "ValidationCylinderZ", {},
"length of cylinder layers"}

Definition at line 178 of file EnergyLossExtrapolationValidation.h.

◆ m_cylinderZ

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

length of cylinder layers (for ROOT tree)

Definition at line 172 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 146 of file EnergyLossExtrapolationValidation.h.

◆ m_energyLoss

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

energy loss

Definition at line 147 of file EnergyLossExtrapolationValidation.h.

◆ m_entries

size_t Trk::EnergyLossExtrapolationValidation::m_entries = 0
private

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

Definition at line 145 of file EnergyLossExtrapolationValidation.h.

◆ m_events

size_t Trk::EnergyLossExtrapolationValidation::m_events = 0
private

total number of recorded events

Definition at line 136 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 {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"}
private

The Extrapolator to be retrieved.

Definition at line 90 of file EnergyLossExtrapolationValidation.h.

◆ m_flatDist

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

Definition at line 95 of file EnergyLossExtrapolationValidation.h.

◆ m_gaussDist

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

Random Number setup.

Definition at line 94 of file EnergyLossExtrapolationValidation.h.

◆ m_highestVolume

const TrackingVolume* Trk::EnergyLossExtrapolationValidation::m_highestVolume = nullptr
private

the highest volume

Definition at line 87 of file EnergyLossExtrapolationValidation.h.

◆ m_layer

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

layer id

Definition at line 158 of file EnergyLossExtrapolationValidation.h.

◆ m_materialCollectionValidation

BooleanProperty Trk::EnergyLossExtrapolationValidation::m_materialCollectionValidation
private
Initial value:
{this, "UseMaterialCollection", false,
"use the material collection (extrapolateM)"}

Definition at line 97 of file EnergyLossExtrapolationValidation.h.

◆ m_maxEta

FloatProperty Trk::EnergyLossExtrapolationValidation::m_maxEta {this, "StartPerigeeMaxEta", 3.}
private

Definition at line 134 of file EnergyLossExtrapolationValidation.h.

◆ m_minEta

FloatProperty Trk::EnergyLossExtrapolationValidation::m_minEta {this, "StartPerigeeMinEta", -3.}
private

Definition at line 133 of file EnergyLossExtrapolationValidation.h.

◆ m_momentum

FloatProperty Trk::EnergyLossExtrapolationValidation::m_momentum
private
Initial value:
{this, "StartPerigeeMomentum",

Definition at line 129 of file EnergyLossExtrapolationValidation.h.

◆ m_onion

BooleanProperty Trk::EnergyLossExtrapolationValidation::m_onion
private
Initial value:
{this, "StrictOnionMode", true,
"strictly hierarchical ordering (onion-like)"}

Definition at line 127 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterEta

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

eta

Definition at line 154 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterP

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

P.

Definition at line 157 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterPhi

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

phi

Definition at line 153 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterQoverP

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

qOverP

Definition at line 156 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterTheta

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

theta

Definition at line 155 of file EnergyLossExtrapolationValidation.h.

◆ m_parameterX0

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

thickness in X0

Definition at line 148 of file EnergyLossExtrapolationValidation.h.

◆ m_particleType

IntegerProperty Trk::EnergyLossExtrapolationValidation::m_particleType
private
Initial value:
{this, "ParticleType", 2,
"the particle type for the extrapolation"}

Definition at line 141 of file EnergyLossExtrapolationValidation.h.

◆ m_pdg

int Trk::EnergyLossExtrapolationValidation::m_pdg = 0
private

PDG code corresponding to m_particleType.

Definition at line 140 of file EnergyLossExtrapolationValidation.h.

◆ m_positionX

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

position X

Definition at line 150 of file EnergyLossExtrapolationValidation.h.

◆ m_positionY

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

position Y

Definition at line 151 of file EnergyLossExtrapolationValidation.h.

◆ m_positionZ

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

position Z

Definition at line 152 of file EnergyLossExtrapolationValidation.h.

◆ m_radius

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

position radius

Definition at line 149 of file EnergyLossExtrapolationValidation.h.

◆ m_theCylinders

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

Definition at line 173 of file EnergyLossExtrapolationValidation.h.

◆ m_theDiscs1

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

Definition at line 174 of file EnergyLossExtrapolationValidation.h.

◆ m_theDiscs2

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

Definition at line 175 of file EnergyLossExtrapolationValidation.h.

◆ m_totalRecordedLayers

int Trk::EnergyLossExtrapolationValidation::m_totalRecordedLayers = 0
private

total number of recorded layers

Definition at line 137 of file EnergyLossExtrapolationValidation.h.

◆ m_triesBack

size_t Trk::EnergyLossExtrapolationValidation::m_triesBack = 0
private

extrapolation events backward

Definition at line 163 of file EnergyLossExtrapolationValidation.h.

◆ m_triesForward

size_t Trk::EnergyLossExtrapolationValidation::m_triesForward = 0
private

extrapolation events forward

Definition at line 161 of file EnergyLossExtrapolationValidation.h.

◆ m_usePt

BooleanProperty Trk::EnergyLossExtrapolationValidation::m_usePt
private
Initial value:
{this, "StartPerigeeUsePt", true,
"use pt instead of p"}

Definition at line 131 of file EnergyLossExtrapolationValidation.h.

◆ m_validationRunTree

TTree* Trk::EnergyLossExtrapolationValidation::m_validationRunTree = nullptr
private

Root Run Stats Tree.

Definition at line 102 of file EnergyLossExtrapolationValidation.h.

◆ m_validationRunTreeDescription

StringProperty Trk::EnergyLossExtrapolationValidation::m_validationRunTreeDescription
private
Initial value:
{this, "ValidationRunTreeDescription",
"Run stats of the EnergyLossExtrapolationValidation Algorithm",
"run stats tree description - second argument in TTree"}

Definition at line 120 of file EnergyLossExtrapolationValidation.h.

◆ m_validationRunTreeFolder

StringProperty Trk::EnergyLossExtrapolationValidation::m_validationRunTreeFolder
private
Initial value:
{this, "ValidationRunTreeFolder", "/val/RunTreeTG",
"stream/folder to for the second TTree to be written out"}

Definition at line 114 of file EnergyLossExtrapolationValidation.h.

◆ m_validationRunTreeName

StringProperty Trk::EnergyLossExtrapolationValidation::m_validationRunTreeName
private
Initial value:
{this, "ValidationRunTreeName", "RunTreeTG",
"run stats tree name - to be accessed by this from root"}

Definition at line 117 of file EnergyLossExtrapolationValidation.h.

◆ m_validationTree

TTree* Trk::EnergyLossExtrapolationValidation::m_validationTree = nullptr
private

Root Validation Tree.

Definition at line 101 of file EnergyLossExtrapolationValidation.h.

◆ m_validationTreeDescription

StringProperty Trk::EnergyLossExtrapolationValidation::m_validationTreeDescription
private
Initial value:
{this, "ValidationTreeDescription",
"Event output of the EnergyLossExtrapolationValidation Algorithm",
"validation tree description - second argument in TTree"}

Definition at line 110 of file EnergyLossExtrapolationValidation.h.

◆ m_validationTreeFolder

StringProperty Trk::EnergyLossExtrapolationValidation::m_validationTreeFolder
private
Initial value:
{this, "ValidationTreeFolder", "/val/EventTreeTG",
"stream/folder to for the TTree to be written out"}

Definition at line 104 of file EnergyLossExtrapolationValidation.h.

◆ m_validationTreeName

StringProperty Trk::EnergyLossExtrapolationValidation::m_validationTreeName
private
Initial value:
{this, "ValidationTreeName", "EventTreeTG",
"validation tree name - to be accessed by this from root"}

Definition at line 107 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:167
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:148
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
PlotCalibFromCool.zAxis
zAxis
Definition: PlotCalibFromCool.py:76
Base_Fragment.mass
mass
Definition: Sherpa_i/share/common/Base_Fragment.py:59
Trk::EnergyLossExtrapolationValidation::m_minEta
FloatProperty m_minEta
Definition: EnergyLossExtrapolationValidation.h:133
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::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
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_maxEta
FloatProperty m_maxEta
Definition: EnergyLossExtrapolationValidation.h:134
Trk::EnergyLossExtrapolationValidation::m_parameterEta
float m_parameterEta[TRKEXALGS_MAXPARAMETERS]
eta
Definition: EnergyLossExtrapolationValidation.h:154
Trk::EnergyLossExtrapolationValidation::m_highestVolume
const TrackingVolume * m_highestVolume
the highest volume
Definition: EnergyLossExtrapolationValidation.h:87
Trk::EnergyLossExtrapolationValidation::m_parameterP
float m_parameterP[TRKEXALGS_MAXPARAMETERS]
P.
Definition: EnergyLossExtrapolationValidation.h:157
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:460
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:137
Trk::EnergyLossExtrapolationValidation::m_events
size_t m_events
total number of recorded events
Definition: EnergyLossExtrapolationValidation.h:136
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:161
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_validationTreeFolder
StringProperty m_validationTreeFolder
Definition: EnergyLossExtrapolationValidation.h:105
Trk::EnergyLossExtrapolationValidation::m_cylinderR
float m_cylinderR[TRKEXALGS_MAXPARAMETERS]
radius of cylinder layers (for ROOT tree)
Definition: EnergyLossExtrapolationValidation.h:171
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
Trk::EnergyLossExtrapolationValidation::m_theDiscs2
DataVector< const Trk::DiscSurface > * m_theDiscs2
Definition: EnergyLossExtrapolationValidation.h:175
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:163
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
Trk::EnergyLossExtrapolationValidation::m_entries
size_t m_entries
effective number of used entries (recorded layers) in this event
Definition: EnergyLossExtrapolationValidation.h:145
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
Trk::EnergyLossExtrapolationValidation::m_theCylinders
DataVector< const Trk::CylinderSurface > * m_theCylinders
Definition: EnergyLossExtrapolationValidation.h:173
Trk::EnergyLossExtrapolationValidation::m_momentum
FloatProperty m_momentum
Definition: EnergyLossExtrapolationValidation.h:129
Trk::EnergyLossExtrapolationValidation::m_energy
float m_energy[TRKEXALGS_MAXPARAMETERS]
energy
Definition: EnergyLossExtrapolationValidation.h:146
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_validationTreeName
StringProperty m_validationTreeName
Definition: EnergyLossExtrapolationValidation.h:108
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Trk::EnergyLossExtrapolationValidation::m_onion
BooleanProperty m_onion
Definition: EnergyLossExtrapolationValidation.h:127
Trk::EnergyLossExtrapolationValidation::m_extrapolator
ToolHandle< IExtrapolator > m_extrapolator
The Extrapolator to be retrieved.
Definition: EnergyLossExtrapolationValidation.h:91
Trk::EnergyLossExtrapolationValidation::m_parameterQoverP
float m_parameterQoverP[TRKEXALGS_MAXPARAMETERS]
qOverP
Definition: EnergyLossExtrapolationValidation.h:156
Trk::EnergyLossExtrapolationValidation::m_breaksBack
size_t m_breaksBack
extrapolation breaks backward
Definition: EnergyLossExtrapolationValidation.h:164
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_materialCollectionValidation
BooleanProperty m_materialCollectionValidation
Definition: EnergyLossExtrapolationValidation.h:98
Trk::CylinderSurface
Definition: CylinderSurface.h:55
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::EnergyLossExtrapolationValidation::m_collectedLayerForward
size_t m_collectedLayerForward
collected material layers forward
Definition: EnergyLossExtrapolationValidation.h:166
Trk::EnergyLossExtrapolationValidation::m_avgRecordedLayers
float m_avgRecordedLayers
average recorded layers per event
Definition: EnergyLossExtrapolationValidation.h:138
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
Trk::EnergyLossExtrapolationValidation::m_validationRunTreeDescription
StringProperty m_validationRunTreeDescription
Definition: EnergyLossExtrapolationValidation.h:121
TRKEXALGS_MAXPARAMETERS
#define TRKEXALGS_MAXPARAMETERS
Definition: EnergyLossExtrapolationValidation.h:29
Trk::EnergyLossExtrapolationValidation::m_positionZ
float m_positionZ[TRKEXALGS_MAXPARAMETERS]
position Z
Definition: EnergyLossExtrapolationValidation.h:152
DataVector< const Trk::CylinderSurface >
Trk::EnergyLossExtrapolationValidation::m_breaksForward
size_t m_breaksForward
extrapolation breaks forward
Definition: EnergyLossExtrapolationValidation.h:162
Trk::EnergyLossExtrapolationValidation::m_theDiscs1
DataVector< const Trk::DiscSurface > * m_theDiscs1
Definition: EnergyLossExtrapolationValidation.h:174
Trk::EnergyLossExtrapolationValidation::m_validationRunTree
TTree * m_validationRunTree
Root Run Stats Tree.
Definition: EnergyLossExtrapolationValidation.h:102
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
Trk::EnergyLossExtrapolationValidation::m_positionY
float m_positionY[TRKEXALGS_MAXPARAMETERS]
position Y
Definition: EnergyLossExtrapolationValidation.h:151
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:228
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
charge
double charge(const T &p)
Definition: AtlasPID.h:756
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_validationRunTreeName
StringProperty m_validationRunTreeName
Definition: EnergyLossExtrapolationValidation.h:118
Trk::EnergyLossExtrapolationValidation::m_radius
float m_radius[TRKEXALGS_MAXPARAMETERS]
position radius
Definition: EnergyLossExtrapolationValidation.h:149
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_cylinders
UnsignedIntegerProperty m_cylinders
Definition: EnergyLossExtrapolationValidation.h:125
Trk::EnergyLossExtrapolationValidation::m_layer
size_t m_layer[TRKEXALGS_MAXPARAMETERS]
layer id
Definition: EnergyLossExtrapolationValidation.h:158
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::EnergyLossExtrapolationValidation::m_energyLoss
float m_energyLoss[TRKEXALGS_MAXPARAMETERS]
energy loss
Definition: EnergyLossExtrapolationValidation.h:147
Trk::EnergyLossExtrapolationValidation::m_validationRunTreeFolder
StringProperty m_validationRunTreeFolder
Definition: EnergyLossExtrapolationValidation.h:115
h
Trk::EnergyLossExtrapolationValidation::m_cylinderZ
float m_cylinderZ[TRKEXALGS_MAXPARAMETERS]
length of cylinder layers (for ROOT tree)
Definition: EnergyLossExtrapolationValidation.h:172
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:140
Trk::EnergyLossExtrapolationValidation::m_parameterPhi
float m_parameterPhi[TRKEXALGS_MAXPARAMETERS]
phi
Definition: EnergyLossExtrapolationValidation.h:153
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
Trk::Volume::volumeBounds
const VolumeBounds & volumeBounds() const
returns the volumeBounds()
Definition: Volume.h:97
Trk::EnergyLossExtrapolationValidation::m_particleType
IntegerProperty m_particleType
Definition: EnergyLossExtrapolationValidation.h:141
Trk::EnergyLossExtrapolationValidation::m_positionX
float m_positionX[TRKEXALGS_MAXPARAMETERS]
position X
Definition: EnergyLossExtrapolationValidation.h:150
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
Trk::EnergyLossExtrapolationValidation::m_cylinderVR
FloatArrayProperty m_cylinderVR
Definition: EnergyLossExtrapolationValidation.h:176
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
Trk::phi
@ phi
Definition: ParamDefs.h:75
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
Trk::EnergyLossExtrapolationValidation::m_flatDist
Rndm::Numbers * m_flatDist
Definition: EnergyLossExtrapolationValidation.h:95
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:94
Trk::EnergyLossExtrapolationValidation::m_validationTreeDescription
StringProperty m_validationTreeDescription
Definition: EnergyLossExtrapolationValidation.h:111
Trk::EnergyLossExtrapolationValidation::m_parameterTheta
float m_parameterTheta[TRKEXALGS_MAXPARAMETERS]
theta
Definition: EnergyLossExtrapolationValidation.h:155
Trk::EnergyLossExtrapolationValidation::m_usePt
BooleanProperty m_usePt
Definition: EnergyLossExtrapolationValidation.h:131
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:101
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
Trk::EnergyLossExtrapolationValidation::m_cylinderVZ
FloatArrayProperty m_cylinderVZ
Definition: EnergyLossExtrapolationValidation.h:178
ServiceHandle< ICondSvc >