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

#include <MuidCaloMaterialParam.h>

Inheritance diagram for Rec::MuidCaloMaterialParam:
Collaboration diagram for Rec::MuidCaloMaterialParam:

Public Member Functions

 MuidCaloMaterialParam (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~MuidCaloMaterialParam ()=default
 
StatusCode initialize () override
 
const Trk::SurfaceinnerSurface (double eta) const override
 IMuidCaloMaterialParam interface: return inner/middle/outer surface corresponding to eta value. More...
 
const Trk::SurfacemiddleSurface (double eta) const override
 
const Trk::SurfaceouterSurface (double eta) const override
 
double radiationThickness (double eta) const override
 IMuidCaloMaterialParam interface: calorimeter layer radiation thickness corresponding to eta value. More...
 
std::unique_ptr< Trk::TrackStateOnSurfacetrackStateOnSurface (const Trk::TrackParameters &parameters) const override
 IMuidCaloMaterialParam interface: TrackStateOnSurface for parameters at a scattering surface. 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 sysInitialize () override
 Perform system initialization for an algorithm. 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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool and IAlgTool interface methods. More...
 

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

std::unique_ptr< Trk::SurfacecreateSurface (double eta, double r, double z, double cotThetaWidth) const
 
StatusCode defineCaloMaterial ()
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ToolHandle< Trk::IGeometryProcessorm_surfaceDisplayTool
 
bool m_produceSurfacesDisplay
 if true (set in jobOptions), use TrackingVolumeDisplayer to produce ROOT output. More...
 
double m_binSize
 
std::vector< std::unique_ptr< const CaloLayer > > m_caloInnerLayers
 
std::vector< std::unique_ptr< const CaloLayer > > m_caloOuterLayers
 
std::vector< std::unique_ptr< const Trk::Surface > > m_innerBackwardSurfaces
 
std::vector< std::unique_ptr< const Trk::Surface > > m_innerForwardSurfaces
 
std::vector< std::unique_ptr< const Trk::Surface > > m_middleBackwardSurfaces
 
std::vector< std::unique_ptr< const Trk::Surface > > m_middleForwardSurfaces
 
const unsigned m_numberBins
 
std::vector< std::unique_ptr< const Trk::Surface > > m_outerBackwardSurfaces
 
std::vector< std::unique_ptr< const Trk::Surface > > m_outerForwardSurfaces
 
std::vector< double > m_radiationThickness
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 38 of file MuidCaloMaterialParam.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ MuidCaloMaterialParam()

MuidCaloMaterialParam::MuidCaloMaterialParam ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 39 of file MuidCaloMaterialParam.cxx.

39  :
41  declareInterface<IMuidCaloMaterialParam>(this);
42  declareProperty("ProduceSurfacesFile", m_produceSurfacesDisplay);
43  }

◆ ~MuidCaloMaterialParam()

virtual Rec::MuidCaloMaterialParam::~MuidCaloMaterialParam ( )
virtualdefault

Member Function Documentation

◆ createSurface()

std::unique_ptr< Trk::Surface > MuidCaloMaterialParam::createSurface ( double  eta,
double  r,
double  z,
double  cotThetaWidth 
) const
private

Definition at line 191 of file MuidCaloMaterialParam.cxx.

191  {
193  transform.setIdentity();
194  transform = Amg::Translation3D(0., 0., z);
195  double halfZLength = cotThetaWidth * r;
196  if (std::abs(eta) < 1.4) {
197  std::unique_ptr<Trk::CylinderSurface> surf = std::make_unique<Trk::CylinderSurface>(transform, r, halfZLength);
198  if (m_produceSurfacesDisplay) m_surfaceDisplayTool->process(*surf).ignore();
199  return surf;
200  } else {
201  double halfRLength = halfZLength * r / std::abs(z);
202  std::unique_ptr<Trk::DiscSurface> surf = std::make_unique<Trk::DiscSurface>(transform, r - halfRLength, r + halfRLength);
203  if (m_produceSurfacesDisplay) m_surfaceDisplayTool->process(*surf).ignore();
204  return surf;
205  }
206  ATH_MSG_ERROR("The code should actually never reach this branch");
207  return nullptr;
208  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ defineCaloMaterial()

StatusCode MuidCaloMaterialParam::defineCaloMaterial ( )
private

Definition at line 210 of file MuidCaloMaterialParam.cxx.

210  {
211  // careful - need const int declaration for array => check consistency
212  constexpr int N = 277;
213  if (static_cast<int>(m_numberBins) != N) return StatusCode::FAILURE;
214 
215  // In meters... be careful!!!
216  // const double mean[N] =
217  // {2.90771,2.78248,2.83172,2.7975,2.76139,2.88316,2.83738,2.81438,2.83947,2.87006,2.8278,2.85738,2.86536,2.94242,2.83682,2.96257,2.96406,2.86074,2.89693,2.83767,2.85071,2.99601,3.01353,2.89679,2.90693,2.93785,2.93202,2.93902,2.95558,2.91682,2.96795,3.07245,2.99349,2.98052,3.11216,3.02759,3.12314,2.99859,3.14099,3.04129,3.17957,3.07913,3.20328,3.11009,3.12813,3.24812,3.26814,3.17714,3.16095,3.3125,3.32224,3.19366,3.21848,3.21796,3.25126,3.268,3.31347,3.42457,3.29278,3.33556,3.3819,3.39939,3.51691,3.36272,3.37978,3.39153,3.38534,3.50773,3.61067,3.30092,3.5418,3.49208,3.53835,3.53299,3.60777,3.32772,3.38532,3.48208,3.54515,3.77164,3.71523,3.91961,3.80365,3.84777,3.88416,4.06013,4.1111,3.94053,3.9722,3.96949,4.03478,4.09423,4.14198,4.38723,4.28485,4.33281,4.3333,4.41784,4.43311,4.45871,4.54202,4.64106,4.69047,4.65375,4.77979,4.78705,4.82244,4.883,4.89827,4.94015,4.92729,4.97583,4.97669,4.99448,5.25401,5.29072,5.10841,5.32148,5.22758,5.26328,5.28108,5.49924,5.49748,5.18736,5.18277,5.4169,5.31641,5.33159,5.20546,5.21829,5.21831,5.24387,5.25622,5.26771,5.29139,5.31036,5.33198,5.34383,5.34278,5.33719,5.34692,5.34394,5.34866,5.35532,5.38633,5.35792,5.40507,5.44075,5.43697,5.36688,5.3615,5.34395,5.351,5.33692,5.40554,5.32767,5.30937,5.27858,5.24888,5.22321,5.18993,5.16593,5.15314,5.19365,5.10601,5.09906,5.14761,5.11907,5.09005,5.08759,5.12649,5.09114,5.10094,5.11952,5.14246,5.15773,5.20285,5.23313,5.26284,5.29047,5.31104,5.31609,5.34698,5.32669,5.32644,5.33017,5.32103,5.3161,5.30679,5.29896,5.28471,5.29577,5.28692,5.28526,5.28018,5.25654,5.27276,5.26505,5.25626,5.25022,5.22271,5.23219,5.24233,5.23496,5.22445,5.22157,5.22442,5.21315,5.19474,5.20876,5.20789,5.18328,5.19939,5.19362,5.1882,5.17646,5.18578,5.21858,5.30511,5.28661,5.28584,5.3002,5.29541,5.28864,5.30157,5.28195,5.29587,5.28504,5.29397,5.29198,5.28954,5.28545,5.28473,5.28091,5.27896,5.281,5.28209,5.27643,5.27176,5.28034,5.26778,5.26428,5.27236,5.26271,5.25728,5.20309,5.26363,5.25403,5.26598,5.27713,5.2639,5.34616,5.34954,5.34928,5.34872,5.34628,5.34574,5.3471,5.35188,5.34754,5.34501,5.34445,5.34497,5.34499,5.34479,5.33511,5.34532,5.33912,5.3364,5.34464,5.34311,5.27807,5.31777,5.3388,5.33045,5.32491,5.33117,5.33274};
218 
219  const double mean[N] = {
220  2.90896, 2.85532, 2.83093, 2.8064, 2.76147, 2.77842, 2.84819, 2.85462, 2.84207, 2.8698, 2.85196, 2.85928, 2.86565, 2.85887,
221  2.86074, 2.86888, 2.87614, 2.88714, 2.89461, 2.88509, 2.89893, 2.90348, 2.9149, 2.92062, 2.93808, 2.93909, 2.95316, 2.96446,
222  2.95808, 2.9744, 2.98252, 2.99579, 3.0031, 3.00655, 3.01533, 3.02955, 3.0375, 3.04185, 3.04363, 3.06828, 3.07989, 3.08877,
223  3.10764, 3.11947, 3.14111, 3.14608, 3.16545, 3.1774, 3.19129, 3.20832, 3.21966, 3.2294, 3.2477, 3.26422, 3.28213, 3.29407,
224  3.31355, 3.31759, 3.33572, 3.36416, 3.38337, 3.40047, 3.42178, 3.44093, 3.46112, 3.469, 3.48594, 3.50981, 3.49446, 3.48858,
225  3.47374, 3.5025, 3.53872, 3.53273, 3.47625, 3.44053, 3.44348, 3.49941, 3.54464, 3.60332, 3.71618, 3.75569, 3.80481, 3.84988,
226  3.88482, 3.90896, 3.93518, 3.96212, 3.98705, 4.03085, 4.0863, 4.1386, 4.18874, 4.24235, 4.28526, 4.33191, 4.37922, 4.42264,
227  4.47627, 4.52819, 4.58994, 4.64149, 4.69026, 4.74336, 4.78171, 4.81408, 4.84981, 4.88344, 4.9096, 4.94122, 4.96842, 4.99079,
228  5.02283, 5.06858, 5.08828, 5.12193, 5.15831, 5.1959, 5.22796, 5.26302, 5.28034, 5.31236, 5.30035, 5.28938, 5.30971, 5.30201,
229  5.3224, 5.33088, 5.27099, 5.21831, 5.23592, 5.24828, 5.26303, 5.26884, 5.29259, 5.30454, 5.32996, 5.34636, 5.34636, 5.36077,
230  5.36379, 5.3704, 5.37932, 5.38896, 5.39967, 5.40373, 5.41283, 5.44188, 5.42873, 5.43097, 5.4239, 5.40874, 5.41333, 5.40596,
231  5.39171, 5.37567, 5.35638, 5.31926, 5.29116, 5.26111, 5.23343, 5.20337, 5.17801, 5.15636, 5.14166, 5.16448, 5.16522, 5.13663,
232  5.11057, 5.09843, 5.14826, 5.11023, 5.11505, 5.13523, 5.15454, 5.17912, 5.21404, 5.246, 5.27176, 5.29481, 5.31911, 5.33475,
233  5.35133, 5.34602, 5.33701, 5.3328, 5.32425, 5.32026, 5.31533, 5.31104, 5.30473, 5.30016, 5.29413, 5.28658, 5.28047, 5.27475,
234  5.2677, 5.26156, 5.25584, 5.24831, 5.24262, 5.23702, 5.23091, 5.22422, 5.21841, 5.21265, 5.2077, 5.20334, 5.19879, 5.19395,
235  5.18991, 5.18564, 5.18073, 5.17633, 5.17276, 5.16907, 5.1658, 5.29633, 5.29401, 5.29103, 5.29047, 5.2896, 5.28996, 5.2899,
236  5.28791, 5.28734, 5.28593, 5.28437, 5.28506, 5.28519, 5.28436, 5.2837, 5.28259, 5.28195, 5.28128, 5.28153, 5.28072, 5.28068,
237  5.28069, 5.27997, 5.27685, 5.27733, 5.27693, 5.27541, 5.27407, 5.27409, 5.27443, 5.27419, 5.27407, 5.27377, 5.27264, 5.34869,
238  5.3483, 5.34923, 5.34963, 5.34951, 5.34925, 5.34931, 5.34959, 5.34892, 5.34872, 5.34848, 5.34837, 5.34681, 5.34619, 5.34639,
239  5.34711, 5.34672, 5.34638, 5.34594, 5.3456, 5.34591, 5.34566, 5.34428, 5.33676, 5.3333, 5.33278};
240 
241  // const double rms[N] =
242  // {0.824679,0.782446,0.818811,0.806885,0.803704,0.871136,0.813056,0.788195,0.814913,0.827358,0.803204,0.822611,0.823937,0.856411,0.809335,0.856246,0.863831,0.814316,0.837086,0.816152,0.827546,0.856583,0.868094,0.818259,0.827974,0.836275,0.827927,0.830695,0.841271,0.837476,0.853636,0.887113,0.852725,0.85005,0.889713,0.863394,0.906837,0.858824,0.905646,0.864854,0.916142,0.884857,0.92623,0.890286,0.893136,0.927233,0.93955,0.901352,0.910599,0.946087,0.953492,0.914146,0.919538,0.922878,0.926503,0.92716,0.941653,0.985742,0.947067,0.9437,0.968053,0.97057,1.01549,0.935575,0.936608,0.942302,0.937645,1.00356,1.05201,0.883722,1.04139,1.02598,1.04668,1.0511,1.09945,0.968244,1.01134,1.07265,1.10059,1.18976,1.13585,1.20976,1.17207,1.18968,1.2017,1.27592,1.28886,1.26559,1.28489,1.29385,1.30249,1.30601,1.31771,1.37203,1.34166,1.34777,1.3422,1.36425,1.35728,1.36912,1.38495,1.40415,1.40586,1.40536,1.40853,1.40943,1.4182,1.40153,1.40832,1.40528,1.3878,1.41426,1.39917,1.4051,1.46129,1.46377,1.41189,1.46455,1.44021,1.44527,1.44781,1.51096,1.50057,1.3753,1.34927,1.4508,1.40248,1.38909,1.31386,1.29765,1.29552,1.28221,1.27349,1.25879,1.25227,1.23533,1.22174,1.21283,1.19403,1.18947,1.16907,1.16221,1.14786,1.13494,1.13355,1.10559,1.09656,1.06811,1.06088,1.0577,1.04911,1.05024,1.02118,1.00554,0.989293,0.972336,0.961332,0.954117,0.955509,0.942485,0.927889,0.923071,0.910241,0.906156,0.895033,0.959418,0.948962,0.93796,0.926793,0.899814,0.911334,0.867638,0.867571,0.862463,0.854489,0.857443,0.866902,0.872196,0.86776,0.882162,0.898834,0.898431,0.900525,0.899913,0.892846,0.885463,0.896011,0.897224,0.898276,0.894747,0.891653,0.889951,0.889985,0.890034,0.889848,0.891503,0.881424,0.886063,0.883189,0.887374,0.889464,0.885434,0.880578,0.881069,0.879039,0.880486,0.877794,0.882369,0.879658,0.879052,0.875904,0.882218,0.869874,0.874634,0.873405,0.878323,0.864371,0.936041,0.982519,0.983783,0.984115,0.983673,0.987755,0.987389,0.989652,0.991566,0.982455,0.99419,0.990369,0.991263,0.984783,0.992409,0.994242,0.99489,0.996674,0.995799,0.994068,0.995591,1.00187,0.989916,1.00784,1.00462,1.00311,1.00495,1.00595,0.960289,1.00732,1.01066,1.00818,1.00171,1.01199,0.992116,0.990814,0.994797,0.995172,0.996153,0.996694,0.997064,0.986833,0.994606,0.998802,1.00438,1.00174,1.00119,1.00289,1.00228,1.00238,1.00678,1.00794,1.00604,1.00861,0.963929,1.01359,1.01218,1.01762,1.02796,1.02562,1.02};
243  const double rms[N] = {
244  0.823689, 0.805241, 0.817758, 0.805648, 0.802719, 0.829411, 0.808234, 0.796944, 0.813095, 0.826435, 0.811776, 0.819873,
245  0.823283, 0.818004, 0.819796, 0.820846, 0.82749, 0.822357, 0.818303, 0.822916, 0.834238, 0.821518, 0.835878, 0.826969,
246  0.83787, 0.835485, 0.837178, 0.842465, 0.839582, 0.850781, 0.847032, 0.848794, 0.849601, 0.85978, 0.85481, 0.86164,
247  0.866302, 0.866074, 0.869195, 0.874239, 0.880656, 0.881667, 0.888438, 0.886809, 0.89286, 0.892054, 0.903708, 0.900372,
248  0.904276, 0.912044, 0.917285, 0.92219, 0.927522, 0.931037, 0.935044, 0.938616, 0.941711, 0.946958, 0.950666, 0.95474,
249  0.967182, 0.970128, 0.975676, 0.97931, 0.984179, 0.988279, 0.995269, 1.00143, 0.999232, 0.998867, 0.999908, 1.02241,
250  1.0462, 1.05131, 1.03541, 1.02535, 1.03805, 1.07367, 1.09972, 1.12079, 1.13208, 1.15175, 1.17083, 1.18699,
251  1.20095, 1.22169, 1.24418, 1.26595, 1.28708, 1.30303, 1.31279, 1.32175, 1.329, 1.33418, 1.34, 1.34675,
252  1.35284, 1.36086, 1.368, 1.37633, 1.39387, 1.40353, 1.40547, 1.40902, 1.40658, 1.40523, 1.40309, 1.40089,
253  1.40122, 1.40212, 1.40281, 1.40877, 1.40972, 1.41208, 1.41789, 1.42165, 1.42453, 1.42954, 1.43856, 1.44613,
254  1.44894, 1.45408, 1.4347, 1.41351, 1.41201, 1.40167, 1.39811, 1.38846, 1.34956, 1.29556, 1.28353, 1.27768,
255  1.26644, 1.25752, 1.24987, 1.23723, 1.22353, 1.20934, 1.19558, 1.18253, 1.17099, 1.15867, 1.15074, 1.13651,
256  1.12275, 1.10774, 1.09431, 1.06622, 1.06609, 1.06611, 1.06505, 1.05314, 1.0261, 1.00457, 0.990423, 0.968341,
257  0.964148, 0.959084, 0.956413, 0.943587, 0.935617, 0.923163, 0.913453, 0.903224, 0.896578, 0.925755, 0.95124, 0.939449,
258  0.925327, 0.898027, 0.91426, 0.875688, 0.862338, 0.858283, 0.857438, 0.86037, 0.862203, 0.870719, 0.876149, 0.887925,
259  0.895045, 0.898852, 0.90329, 0.895159, 0.892505, 0.893056, 0.900081, 0.896356, 0.895693, 0.891834, 0.893339, 0.888931,
260  0.888282, 0.890026, 0.888641, 0.886521, 0.887356, 0.885548, 0.882484, 0.88512, 0.882618, 0.88119, 0.880995, 0.88102,
261  0.88134, 0.88315, 0.8824, 0.880437, 0.879697, 0.879628, 0.878431, 0.877552, 0.878481, 0.878691, 0.877373, 0.876806,
262  0.875456, 0.978556, 0.981988, 0.985465, 0.985556, 0.986936, 0.984079, 0.982189, 0.984073, 0.984913, 0.987486, 0.989538,
263  0.987139, 0.985936, 0.987119, 0.988206, 0.990297, 0.991416, 0.992575, 0.991251, 0.992607, 0.992754, 0.993668, 0.994706,
264  0.996367, 0.996439, 0.997143, 1.0003, 1.00234, 1.0024, 1.00091, 1.00194, 1.00287, 1.00385, 1.00475, 0.986361,
265  0.988892, 0.989372, 0.989529, 0.989478, 0.990144, 0.9908, 0.990212, 0.991309, 0.992435, 0.993439, 0.994017, 0.997914,
266  0.99955, 0.999073, 0.997491, 0.99844, 0.999279, 1.00009, 1.00086, 1.0004, 1.00093, 1.00345, 1.01321, 1.01864,
267  1.0196};
268  // const double eta[N] =
269  // {0.005,0.015,0.025,0.035,0.045,0.055,0.065,0.075,0.085,0.095,0.105,0.115,0.125,0.135,0.145,0.155,0.165,0.175,0.185,0.195,0.205,0.215,0.225,0.235,0.245,0.255,0.265,0.275,0.285,0.295,0.305,0.315,0.325,0.335,0.345,0.355,0.365,0.375,0.385,0.395,0.405,0.415,0.425,0.435,0.445,0.455,0.465,0.475,0.485,0.495,0.505,0.515,0.525,0.535,0.545,0.555,0.565,0.575,0.585,0.595,0.605,0.615,0.625,0.635,0.645,0.655,0.665,0.675,0.685,0.695,0.705,0.715,0.725,0.735,0.745,0.755,0.765,0.775,0.785,0.795,0.805,0.815,0.825,0.835,0.845,0.855,0.865,0.875,0.885,0.895,0.905,0.915,0.925,0.935,0.945,0.955,0.965,0.975,0.985,0.995,1.005,1.015,1.025,1.035,1.045,1.055,1.065,1.075,1.085,1.095,1.105,1.115,1.125,1.135,1.145,1.155,1.165,1.175,1.185,1.195,1.205,1.215,1.225,1.235,1.245,1.255,1.265,1.275,1.285,1.295,1.305,1.315,1.325,1.335,1.345,1.355,1.365,1.375,1.385,1.395,1.405,1.415,1.425,1.435,1.445,1.455,1.465,1.475,1.485,1.495,1.505,1.515,1.525,1.535,1.545,1.555,1.565,1.575,1.585,1.595,1.605,1.615,1.625,1.635,1.645,1.655,1.665,1.675,1.685,1.695,1.705,1.715,1.725,1.735,1.745,1.755,1.765,1.775,1.785,1.795,1.805,1.815,1.825,1.835,1.845,1.855,1.865,1.875,1.885,1.895,1.905,1.915,1.925,1.935,1.945,1.955,1.965,1.975,1.985,1.995,2.005,2.015,2.025,2.035,2.045,2.055,2.065,2.075,2.085,2.095,2.105,2.115,2.125,2.135,2.145,2.155,2.165,2.175,2.185,2.195,2.205,2.215,2.225,2.235,2.245,2.255,2.265,2.275,2.285,2.295,2.305,2.315,2.325,2.335,2.345,2.355,2.365,2.375,2.385,2.395,2.405,2.415,2.425,2.435,2.445,2.455,2.465,2.475,2.485,2.495,2.505,2.515,2.525,2.535,2.545,2.555,2.565,2.575,2.585,2.595,2.605,2.615,2.625,2.635,2.645,2.655,2.665,2.675,2.685,2.695,2.705,2.715,2.725,2.735,2.745,2.755,2.765,2.775};
270  const double eta[N] = {
271  0.005, 0.015, 0.025, 0.035, 0.045, 0.055, 0.065, 0.075, 0.085, 0.095, 0.105, 0.115, 0.125, 0.135, 0.145, 0.155, 0.165, 0.175,
272  0.185, 0.195, 0.205, 0.215, 0.225, 0.235, 0.245, 0.255, 0.265, 0.275, 0.285, 0.295, 0.305, 0.315, 0.325, 0.335, 0.345, 0.355,
273  0.365, 0.375, 0.385, 0.395, 0.405, 0.415, 0.425, 0.435, 0.445, 0.455, 0.465, 0.475, 0.485, 0.495, 0.505, 0.515, 0.525, 0.535,
274  0.545, 0.555, 0.565, 0.575, 0.585, 0.595, 0.605, 0.615, 0.625, 0.635, 0.645, 0.655, 0.665, 0.675, 0.685, 0.695, 0.705, 0.715,
275  0.725, 0.735, 0.745, 0.755, 0.765, 0.775, 0.785, 0.795, 0.805, 0.815, 0.825, 0.835, 0.845, 0.855, 0.865, 0.875, 0.885, 0.895,
276  0.905, 0.915, 0.925, 0.935, 0.945, 0.955, 0.965, 0.975, 0.985, 0.995, 1.005, 1.015, 1.025, 1.035, 1.045, 1.055, 1.065, 1.075,
277  1.085, 1.095, 1.105, 1.115, 1.125, 1.135, 1.145, 1.155, 1.165, 1.175, 1.185, 1.195, 1.205, 1.215, 1.225, 1.235, 1.245, 1.255,
278  1.265, 1.275, 1.285, 1.295, 1.305, 1.315, 1.325, 1.335, 1.345, 1.355, 1.365, 1.375, 1.385, 1.395, 1.405, 1.415, 1.425, 1.435,
279  1.445, 1.455, 1.465, 1.475, 1.485, 1.495, 1.505, 1.515, 1.525, 1.535, 1.545, 1.555, 1.565, 1.575, 1.585, 1.595, 1.605, 1.615,
280  1.625, 1.635, 1.645, 1.655, 1.665, 1.675, 1.685, 1.695, 1.705, 1.715, 1.725, 1.735, 1.745, 1.755, 1.765, 1.775, 1.785, 1.795,
281  1.805, 1.815, 1.825, 1.835, 1.845, 1.855, 1.865, 1.875, 1.885, 1.895, 1.905, 1.915, 1.925, 1.935, 1.945, 1.955, 1.965, 1.975,
282  1.985, 1.995, 2.005, 2.015, 2.025, 2.035, 2.045, 2.055, 2.065, 2.075, 2.085, 2.095, 2.105, 2.115, 2.125, 2.135, 2.145, 2.155,
283  2.165, 2.175, 2.185, 2.195, 2.205, 2.215, 2.225, 2.235, 2.245, 2.255, 2.265, 2.275, 2.285, 2.295, 2.305, 2.315, 2.325, 2.335,
284  2.345, 2.355, 2.365, 2.375, 2.385, 2.395, 2.405, 2.415, 2.425, 2.435, 2.445, 2.455, 2.465, 2.475, 2.485, 2.495, 2.505, 2.515,
285  2.525, 2.535, 2.545, 2.555, 2.565, 2.575, 2.585, 2.595, 2.605, 2.615, 2.625, 2.635, 2.645, 2.655, 2.665, 2.675, 2.685, 2.695,
286  2.705, 2.715, 2.725, 2.735, 2.745, 2.755, 2.765};
287  // X0tot/2.
288  // const double X0CaloLayers[N] =
289  // {54.0718,53.6793,51.1026,52.7207,54.3121,54.5799,54.6933,57.3391,55.3929,52.7291,54.9498,54.8578,53.7012,59.4177,53.3716,59.0585,58.9992,54.2931,59.6594,57.9365,55.2779,61.2433,59.3145,55.276,54.9965,56.4419,55.5374,54.9552,57.0007,54.7047,57.678,63.3163,58.3533,55.4158,62.8817,57.7717,63.6192,58.9201,64.8709,58.0192,63.7163,59.1298,63.678,60.302,59.8701,65.7836,64.7294,60.9158,62.8989,66.3413,66.4773,60.4863,60.8472,61.9235,61.3218,62.1608,63.7831,70.1807,64.1836,64.124,64.3934,64.8063,71.6659,62.5457,63.0828,63.2448,62.6003,67.0684,72.1467,57.8225,67.3932,63.7332,63.74,62.1021,64.3551,55.0171,56.196,59.2418,58.633,64.674,55.9855,62.6046,57.0551,57.7426,57.8879,63.9515,62.4365,56.502,55.5581,53.9051,54.201,54.8809,55.8935,66.3435,59.7587,60.5284,59.6337,62.1275,60.5448,61.3072,59.5853,61.4811,62.1179,62.5012,64.0563,66.8948,68.5185,69.5734,71.4861,73.1542,73.3252,77.6957,77.3028,79.1056,90.128,92.1165,84.2486,94.0138,88.9091,90.6579,91.6065,102.636,102.664,88.2848,86.3781,94.2899,88.1281,85.8002,78.7165,77.144,76.019,73.3795,71.3756,69.5571,68.0864,66.248,64.2698,62.5635,61.8486,61.3565,60.0822,59.4924,58.6984,56.8871,54.5453,56.0838,52.6754,50.3197,49.6728,51.8083,50.7692,50.7799,50.0932,50.1331,45.6858,48.7889,48.6627,48.7291,49.0538,49.2277,49.8541,49.9372,49.3862,46.1696,50.63,52.8881,51.5254,52.3118,52.7285,52.5438,54.6988,54.5386,55.3539,57.0784,58.8203,61.5868,62.9939,65.5747,67.574,69.2886,71.3357,73.9579,74.7242,75.5187,75.1089,74.582,74.3894,74.3444,74.5447,74.7789,75.3804,74.2035,74.4863,74.2174,74.193,75.42,74.1402,74.1646,74.8089,74.4747,75.9973,75.1384,74.1878,74.4443,74.9275,74.7224,74.8561,74.693,75.8353,74.5733,74.4269,75.7665,74.5918,74.8829,74.8254,75.2599,74.9678,79.3404,80.8504,82.0182,82.0322,81.0368,81.3742,81.8718,81.3208,82.4715,81.6779,82.3247,81.8919,82.4235,82.3492,82.8106,82.9172,83.0532,83.3448,82.9899,83.4892,83.7382,83.9838,83.1928,84.5102,84.7175,84.3154,84.8548,85.3676,81.9878,85.0532,85.7296,85.0054,84.6196,85.3146,80.0937,80.1703,80.2248,80.288,80.3804,80.4301,80.5178,80.5528,80.6757,80.7319,80.9331,81.0151,80.9382,81.1191,81.7465,81.2769,81.8252,81.8298,81.5847,81.6739,78.9587,83.4391,81.9643,82.5875,82.835,82.5863,82.5761};
290  // double X0CaloLayers[N] =
291  // {54.0318,57.0076,51.1641,51.9894,54.2876,49.952,53.8047,57.2497,55.2898,52.7514,55.8,54.8088,53.6844,54.3315,54.3281,54.3618,53.9736,55.5616,56.9004,57.4635,55.1762,56.5239,54.5526,56.377,55.1761,56.4038,56.7003,55.9741,56.9054,55.7233,57.0343,57.5817,57.8638,56.6075,58.0273,57.7163,58.1165,59.0785,59.8935,59.0176,58.7498,58.6666,58.3886,59.805,59.6712,60.6292,59.6653,60.9436,61.1729,61.1569,61.3458,61.1481,61.7262,62.1086,62.5146,63.3828,63.7797,64.8631,64.7619,65.4139,64.3393,64.7386,64.9614,65.6181,66.3964,66.1061,66.2985,66.9995,65.645,64.6098,63.1061,63.2137,63.7249,62.1394,59.6448,57.7733,57.1382,58.1615,58.6362,58.5288,56.0052,56.3635,57.0303,57.6919,57.8765,57.0406,56.0918,55.5172,54.763,54.9269,55.8817,56.6677,57.4943,58.3997,59.691,60.5222,61.3415,61.9216,61.8989,62.2833,61.2856,61.4755,62.0896,62.4886,64.0289,65.8034,67.7021,69.5661,71.0834,73.1107,75.0314,77.1124,79.0793,80.3072,82.1783,84.109,85.864,87.4737,88.7524,90.6428,91.6288,93.3277,93.5435,91.7726,91.8272,90.0656,87.8999,85.8715,81.4497,77.1833,75.3942,73.2785,71.9156,69.5589,68.0715,66.4536,64.2158,62.5124,61.4201,60.4425,59.1743,57.9759,56.9582,55.6219,54.3818,53.4652,52.348,50.246,49.5853,48.3385,47.7049,47.4402,46.9385,46.6683,46.3137,46.1782,46.2934,46.54,46.7983,47.1935,47.4539,47.6234,47.8758,48.2112,48.9842,50.2923,50.7137,51.236,51.8725,51.9032,53.3274,53.0254,54.5411,56.0885,57.9211,59.9838,62.3384,64.7229,66.7132,68.802,70.8444,72.5567,74.2853,74.1679,73.9891,74.025,74.0642,73.9976,73.9452,73.903,73.9035,73.9069,73.938,74.0291,74.1017,74.1701,74.2725,74.3826,74.4966,74.6262,74.7497,74.8589,74.9857,75.1326,75.2356,75.3198,75.3945,75.4574,75.5176,75.5841,75.6295,75.6865,75.7506,75.8005,75.8371,75.8714,75.8979,81.4955,81.6415,81.8159,81.9223,82.0275,82.1279,82.4254,82.7708,82.8566,82.8978,82.9502,83.0259,83.1228,83.2364,83.3429,83.4584,83.5643,83.6706,83.7648,83.8748,83.966,84.1007,84.156,84.0657,84.1141,84.2062,84.32,84.4591,84.5376,84.6284,84.6993,84.7651,84.8456,85.002,80.2595,80.3031,80.3048,80.3629,80.4524,80.5409,80.6004,80.6759,80.7758,80.8384,80.913,80.991,81.0944,81.183,81.26,81.3277,81.4144,81.501,81.5922,81.6799,81.754,81.8414,81.9578,82.287,82.469,82.5641};
292 
293  const double X0CaloLayers[N] = {
294  54.1, 57.1, 51.25, 52.1, 54.4, 50.05, 53.9, 57.4, 55.4, 52.9, 55.95, 54.95, 53.85, 54.45, 54.45, 54.5, 54.1,
295  55.7, 56.7, 57.3, 54.95, 56.3, 54.65, 56.5, 55.25, 56.5, 56.8, 56.05, 57, 55.8, 57.1, 57.65, 57.95, 56.7,
296  58.1, 57.85, 58.25, 59.2, 60, 59.15, 58.85, 58.75, 58.5, 59.9, 59.75, 60.7, 59.75, 61.05, 61.3, 61.3, 61.45,
297  61.25, 61.85, 62.25, 62.65, 63.5, 63.9, 65, 64.9, 65.55, 64.5, 64.9, 65.1, 65.75, 66.5, 66.2, 66.4, 67.15,
298  65.75, 64.7, 63.2, 63.3, 63.85, 62.25, 59.75, 57.9, 57.25, 58.25, 58.75, 58.65, 56.15, 56.7, 58.25, 59.85, 60.9,
299  61, 60.8, 59.95, 58.75, 58.45, 58.95, 59.3, 59.9, 60.75, 61.9, 62.65, 63.35, 63.8, 63.7, 64, 62.9, 63.05,
300  63.55, 63.85, 65.55, 67.6, 69.65, 71.55, 72.95, 75, 76.9, 79, 81, 82.2, 84.05, 85.95, 87.75, 89.35, 90.65,
301  92.5, 93.5, 95.15, 95.35, 93.6, 93.65, 91.85, 89.65, 87.65, 83.25, 78.95, 77.2, 75.05, 73.65, 71.3, 69.85, 68.2,
302  65.95, 64.25, 63.1, 62.15, 60.85, 59.65, 58.55, 57.25, 56, 55.1, 53.95, 51.85, 51.15, 49.96, 49.29, 49.08, 48.515,
303  48.24, 47.92, 47.765, 47.875, 48.095, 48.355, 48.78, 49.015, 49.14, 48.98, 48.77, 49.03, 49.515, 49.245, 49.78, 50.45, 50.45,
304  51.9, 51.65, 53.15, 54.65, 56.5, 58.55, 60.9, 63.3, 65.25, 67.35, 69.4, 71.15, 72.85, 72.75, 72.55, 72.6, 72.6,
305  72.55, 72.55, 72.5, 72.55, 72.55, 72.6, 72.65, 72.75, 72.8, 72.9, 73.1, 73.25, 73.4, 73.5, 73.65, 73.75, 73.9,
306  74, 74.1, 74.2, 74.35, 74.4, 74.45, 74.5, 74.7, 74.95, 75, 75.05, 75.05, 75.1, 75.1, 75.15, 75.25, 75.2,
307  75.25, 75.05, 75.05, 75.3, 75.3, 75.3, 75.25, 75.25, 75.25, 75.3, 75.35, 75.4, 75.4, 75.4, 75.4, 75.45, 75.45,
308  75.5, 75.45, 75.3, 75.3, 75.3, 75.35, 75.4, 75.4, 75.45, 75.45, 75.5, 75.5, 75.6, 70.8, 70.75, 70.7, 70.7,
309  70.7, 70.75, 70.75, 70.7, 70.75, 70.7, 70.75, 70.85, 71.05, 71.1, 71.1, 71.15, 71.15, 71.2, 71.25, 71.25, 71.25,
310  71.3, 71.3, 71.6, 71.65, 71.7};
311 
312  // check regular eta look-up is setup OK
313  m_binSize = (eta[N - 1] - eta[0]) / (static_cast<double>(N - 1));
314  for (unsigned i = 0; i != m_numberBins; ++i) {
315  double etaBin = m_binSize * (static_cast<double>(i) + 0.5);
316  if (std::abs(eta[i] - etaBin) < 0.001 * m_binSize) continue;
317  ATH_MSG_ERROR(" have " << m_numberBins << " eta bins of width " << m_binSize << endmsg << " for bin " << i
318  << ": expected/found eta " << etaBin << "/" << eta[i]);
319 
320  return StatusCode::FAILURE;
321  }
322 
323  // populate radiationThickness and Trk::Surface vectors
324  for (int i = 0; i != N; ++i) {
325  // radiationThickness
326  m_radiationThickness.push_back(X0CaloLayers[i]);
327 
328  // polar angle of bin centre
329  double theta = 2. * std::atan(std::exp(-eta[i]));
330  double cosTheta = std::cos(theta);
331  double sinTheta = std::sin(theta);
332  double thetaNext = 2. * std::atan(std::exp(-eta[i] - m_binSize));
333  double cotThetaWidth = 1. / std::tan(thetaNext) - cosTheta / sinTheta;
334 
335  // inner surfaces
336  double r = sinTheta * (mean[i] - rms[i]) * Gaudi::Units::meter;
337  double z = cosTheta * (mean[i] - rms[i]) * Gaudi::Units::meter;
338  m_innerBackwardSurfaces.emplace_back(createSurface(eta[i], r, -z, cotThetaWidth));
339  m_innerForwardSurfaces.emplace_back(createSurface(eta[i], r, z, cotThetaWidth));
340 
341  // middle surfaces
342  r = sinTheta * mean[i] * Gaudi::Units::meter;
343  z = cosTheta * mean[i] * Gaudi::Units::meter;
344  m_middleBackwardSurfaces.emplace_back(createSurface(eta[i], r, -z, cotThetaWidth));
345  m_middleForwardSurfaces.emplace_back(createSurface(eta[i], r, z, cotThetaWidth));
346 
347  // outer surfaces
348  r = sinTheta * (mean[i] + rms[i]) * Gaudi::Units::meter;
349  z = cosTheta * (mean[i] + rms[i]) * Gaudi::Units::meter;
350  m_outerBackwardSurfaces.emplace_back(createSurface(eta[i], r, -z, cotThetaWidth));
351  m_outerForwardSurfaces.emplace_back(createSurface(eta[i], r, z, cotThetaWidth));
352  }
353 
354  // fill Calo Layers with R,Z centre, surface, etc
355  double innerR[N] = {0.};
356  double innerZ[N] = {0.};
357  // double middleR[N] = {0.};
358  // double middleZ[N] = {0.};
359  double outerR[N] = {0.};
360  double outerZ[N] = {0.};
361  for (int i = 0; i != N; ++i) {
362  double theta = 2. * std::atan(std::exp(-eta[i]));
363  double cosTheta = std::cos(theta);
364  double sinTheta = std::sin(theta);
365  innerR[i] = sinTheta * (mean[i] - rms[i]) * Gaudi::Units::meter;
366  innerZ[i] = cosTheta * (mean[i] - rms[i]) * Gaudi::Units::meter;
367  // middleR[i] = sinTheta*mean[i]*Gaudi::Units::meter;
368  // middleZ[i] = cosTheta*mean[i]*Gaudi::Units::meter;
369  outerR[i] = sinTheta * (mean[i] + rms[i]) * Gaudi::Units::meter;
370  outerZ[i] = cosTheta * (mean[i] + rms[i]) * Gaudi::Units::meter;
371  bool barrel = (eta[i] <= 1.4);
372 
373  // outer layer
374  m_caloOuterLayers.emplace_back(
375  std::make_unique<CaloLayer>(outerSurface(-eta[i]), i, outerR[i], -outerZ[i], X0CaloLayers[i], barrel));
376  m_caloOuterLayers.emplace_back(
377  std::make_unique<CaloLayer>(outerSurface(eta[i]), i + N, outerR[i], outerZ[i], X0CaloLayers[i], barrel));
378 
379  // same thing for inner layer
380  m_caloInnerLayers.emplace_back(
381  std::make_unique<CaloLayer>(innerSurface(-eta[i]), i, innerR[i], -innerZ[i], X0CaloLayers[i], barrel));
382  m_caloInnerLayers.emplace_back(
383  std::make_unique<CaloLayer>(innerSurface(eta[i]), i + N, innerR[i], innerZ[i], X0CaloLayers[i], barrel));
384 
385  // check
386  const Trk::Surface* surfM = innerSurface(-eta[i]);
387  if (std::abs(surfM->center().z() + innerZ[i]) > 0.001) {
388  ATH_MSG_ERROR(" wrong surface " << i << " at eta " << eta[i] << endmsg << ": expected/found z " << -innerZ[i] << "/"
389  << surfM->center().z());
390  return StatusCode::FAILURE;
391  }
392  const Trk::Surface* surfP = innerSurface(eta[i]);
393  if (std::abs(surfP->center().z() - innerZ[i]) > 0.001) {
394  ATH_MSG_ERROR(" wrong surface " << i << " at eta " << eta[i] << endmsg << ": expected/found z " << innerZ[i] << "/"
395  << surfP->center().z());
396  return StatusCode::FAILURE;
397  }
398  }
399 
400  return StatusCode::SUCCESS;
401  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ initialize()

StatusCode MuidCaloMaterialParam::initialize ( )
override

Definition at line 47 of file MuidCaloMaterialParam.cxx.

47  {
48  ATH_MSG_INFO("Initializing MuidCaloMaterialParam");
49 
50  // get the display tool
52  ATH_CHECK(m_surfaceDisplayTool.retrieve());
53  ATH_MSG_INFO("Retrieved tool " << m_surfaceDisplayTool);
54  } else {
55  m_surfaceDisplayTool.disable();
56  }
57 
58  // setup up CaloMaterial
59  m_caloInnerLayers.reserve(2 * m_numberBins);
60  m_caloOuterLayers.reserve(2 * m_numberBins);
68 
69  if (StatusCode::SUCCESS != defineCaloMaterial()) {
70  ATH_MSG_FATAL(" inconsistent eta binning - check setup ");
71  return StatusCode::FAILURE;
72  }
73 
74  if (msgLvl(MSG::DEBUG)) {
75  for (std::unique_ptr<const CaloLayer>& lay : m_caloOuterLayers) {
76  if (lay->Z() > 0.) { lay->print(); }
77  }
78  }
79 
80  return StatusCode::SUCCESS;
81  }

◆ innerSurface()

const Trk::Surface * MuidCaloMaterialParam::innerSurface ( double  eta) const
overridevirtual

IMuidCaloMaterialParam interface: return inner/middle/outer surface corresponding to eta value.

Implements Rec::IMuidCaloMaterialParam.

Definition at line 82 of file MuidCaloMaterialParam.cxx.

82  {
83  if (eta < 0.) {
84  unsigned bin = static_cast<unsigned>(-eta / m_binSize);
85  if (bin >= m_numberBins) bin = m_numberBins - 1;
86 
87  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
88  << " innerSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " backwards bin " << bin);
89  return m_innerBackwardSurfaces[bin].get();
90  } else if (eta > 0.) {
91  unsigned bin = static_cast<unsigned>(eta / m_binSize);
92  if (bin >= m_numberBins) bin = m_numberBins - 1;
93 
94  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
95  << " innerSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " forward bin " << bin);
96  return m_innerForwardSurfaces[bin].get();
97  }
98 
99  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
100  << " innerSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " forward bin 0");
101 
102  return m_innerForwardSurfaces[0].get();
103  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ interfaceID()

static const InterfaceID& Rec::IMuidCaloMaterialParam::interfaceID ( )
inlinestaticinherited

AlgTool and IAlgTool interface methods.

Definition at line 45 of file IMuidCaloMaterialParam.h.

45 { return IID_IMuidCaloMaterialParam; }

◆ middleSurface()

const Trk::Surface * MuidCaloMaterialParam::middleSurface ( double  eta) const
overridevirtual

Implements Rec::IMuidCaloMaterialParam.

Definition at line 105 of file MuidCaloMaterialParam.cxx.

105  {
106  if (eta < 0.) {
107  unsigned bin = static_cast<unsigned>(-eta / m_binSize);
108  if (bin >= m_numberBins) bin = m_numberBins - 1;
109 
110  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
111  << " middleSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " backwards bin " << bin);
112  return m_middleBackwardSurfaces[bin].get();
113  } else if (eta > 0.) {
114  unsigned bin = static_cast<unsigned>(eta / m_binSize);
115  if (bin >= m_numberBins) bin = m_numberBins - 1;
116 
117  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
118  << " middleSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " forward bin " << bin);
119  return m_middleForwardSurfaces[bin].get();
120  }
121 
122  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
123  << " middleSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " forward bin 0");
124 
125  return m_middleForwardSurfaces[0].get();
126  }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::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< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

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

◆ outerSurface()

const Trk::Surface * MuidCaloMaterialParam::outerSurface ( double  eta) const
overridevirtual

Implements Rec::IMuidCaloMaterialParam.

Definition at line 128 of file MuidCaloMaterialParam.cxx.

128  {
129  if (eta < 0.) {
130  unsigned bin = static_cast<unsigned>(-eta / m_binSize);
131  if (bin >= m_numberBins) bin = m_numberBins - 1;
132 
133  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
134  << " outerSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " backwards bin " << bin);
135  return m_outerBackwardSurfaces[bin].get();
136  } else if (eta > 0.) {
137  unsigned bin = static_cast<unsigned>(eta / m_binSize);
138  if (bin >= m_numberBins) bin = m_numberBins - 1;
139 
140  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
141  << " outerSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " forward bin " << bin);
142  return m_outerForwardSurfaces[bin].get();
143  }
144 
145  ATH_MSG_VERBOSE(std::setiosflags(std::ios::fixed)
146  << " outerSurface: eta " << std::setw(7) << std::setprecision(3) << eta << " forward bin 0");
147 
148  return m_outerForwardSurfaces[0].get();
149  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ radiationThickness()

double MuidCaloMaterialParam::radiationThickness ( double  eta) const
overridevirtual

IMuidCaloMaterialParam interface: calorimeter layer radiation thickness corresponding to eta value.

Implements Rec::IMuidCaloMaterialParam.

Definition at line 151 of file MuidCaloMaterialParam.cxx.

151  {
152  if (eta < 0.) {
153  unsigned bin = static_cast<unsigned>(-eta / m_binSize);
154  if (bin >= m_numberBins) bin = m_numberBins - 1;
155 
156  return m_radiationThickness[bin];
157  } else if (eta > 0.) {
158  unsigned bin = static_cast<unsigned>(eta / m_binSize);
159  if (bin >= m_numberBins) bin = m_numberBins - 1;
160 
161  return m_radiationThickness[bin];
162  }
163  return m_radiationThickness[0];
164  }

◆ 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< AlgTool > >::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< AlgTool > >::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()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ trackStateOnSurface()

std::unique_ptr< Trk::TrackStateOnSurface > MuidCaloMaterialParam::trackStateOnSurface ( const Trk::TrackParameters parameters) const
overridevirtual

IMuidCaloMaterialParam interface: TrackStateOnSurface for parameters at a scattering surface.

Implements Rec::IMuidCaloMaterialParam.

Definition at line 166 of file MuidCaloMaterialParam.cxx.

167  {
168  // find radiationThickness corresponding to surface
169  // FIXME: use Surface* look-up method for execution speed
170 
171  std::unique_ptr<Trk::TrackParameters> param_clone = trackParameters.uniqueClone();
172  double thickness = radiationThickness(trackParameters.position().eta());
173  auto materialEffects =
174  std::make_unique<Trk::MaterialEffectsOnTrack>(thickness, param_clone->associatedSurface());
175 
176  // create TSOS
177  std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> pattern(0);
179 
180  ATH_MSG_VERBOSE(" trackStateOnSurface::Scatterer with radiationThickness " << thickness);
181 
182  return std::make_unique<Trk::TrackStateOnSurface>(
183  nullptr,
184  std::move(param_clone),
185  std::move(materialEffects),
186  pattern);
187  }

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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_binSize

double Rec::MuidCaloMaterialParam::m_binSize
private

Definition at line 76 of file MuidCaloMaterialParam.h.

◆ m_caloInnerLayers

std::vector<std::unique_ptr<const CaloLayer> > Rec::MuidCaloMaterialParam::m_caloInnerLayers
private

Definition at line 77 of file MuidCaloMaterialParam.h.

◆ m_caloOuterLayers

std::vector<std::unique_ptr<const CaloLayer> > Rec::MuidCaloMaterialParam::m_caloOuterLayers
private

Definition at line 78 of file MuidCaloMaterialParam.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_innerBackwardSurfaces

std::vector<std::unique_ptr<const Trk::Surface> > Rec::MuidCaloMaterialParam::m_innerBackwardSurfaces
private

Definition at line 79 of file MuidCaloMaterialParam.h.

◆ m_innerForwardSurfaces

std::vector<std::unique_ptr<const Trk::Surface> > Rec::MuidCaloMaterialParam::m_innerForwardSurfaces
private

Definition at line 80 of file MuidCaloMaterialParam.h.

◆ m_middleBackwardSurfaces

std::vector<std::unique_ptr<const Trk::Surface> > Rec::MuidCaloMaterialParam::m_middleBackwardSurfaces
private

Definition at line 81 of file MuidCaloMaterialParam.h.

◆ m_middleForwardSurfaces

std::vector<std::unique_ptr<const Trk::Surface> > Rec::MuidCaloMaterialParam::m_middleForwardSurfaces
private

Definition at line 82 of file MuidCaloMaterialParam.h.

◆ m_numberBins

const unsigned Rec::MuidCaloMaterialParam::m_numberBins
private

Definition at line 83 of file MuidCaloMaterialParam.h.

◆ m_outerBackwardSurfaces

std::vector<std::unique_ptr<const Trk::Surface> > Rec::MuidCaloMaterialParam::m_outerBackwardSurfaces
private

Definition at line 84 of file MuidCaloMaterialParam.h.

◆ m_outerForwardSurfaces

std::vector<std::unique_ptr<const Trk::Surface> > Rec::MuidCaloMaterialParam::m_outerForwardSurfaces
private

Definition at line 85 of file MuidCaloMaterialParam.h.

◆ m_produceSurfacesDisplay

bool Rec::MuidCaloMaterialParam::m_produceSurfacesDisplay
private

if true (set in jobOptions), use TrackingVolumeDisplayer to produce ROOT output.

Definition at line 73 of file MuidCaloMaterialParam.h.

◆ m_radiationThickness

std::vector<double> Rec::MuidCaloMaterialParam::m_radiationThickness
private

Definition at line 86 of file MuidCaloMaterialParam.h.

◆ m_surfaceDisplayTool

ToolHandle<Trk::IGeometryProcessor> Rec::MuidCaloMaterialParam::m_surfaceDisplayTool
private
Initial value:
{
this,
"SurfaceDisplayTool",
"Trk::TrackingVolumeDisplayer/TrackingVolumeDisplayer",
}

Definition at line 65 of file MuidCaloMaterialParam.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
mergePhysValFiles.pattern
pattern
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:26
beamspotman.r
def r
Definition: beamspotman.py:676
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Rec::MuidCaloMaterialParam::m_binSize
double m_binSize
Definition: MuidCaloMaterialParam.h:76
mean
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
Definition: dependence.cxx:254
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Trk::ParametersBase::associatedSurface
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
Rec::MuidCaloMaterialParam::radiationThickness
double radiationThickness(double eta) const override
IMuidCaloMaterialParam interface: calorimeter layer radiation thickness corresponding to eta value.
Definition: MuidCaloMaterialParam.cxx:151
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Rec::MuidCaloMaterialParam::m_produceSurfacesDisplay
bool m_produceSurfacesDisplay
if true (set in jobOptions), use TrackingVolumeDisplayer to produce ROOT output.
Definition: MuidCaloMaterialParam.h:73
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
bin
Definition: BinsDiffFromStripMedian.h:43
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
ReadBchFromCool.barrel
barrel
Definition: ReadBchFromCool.py:405
JetTiledMap::N
@ N
Definition: TiledEtaPhiMap.h:44
Rec::MuidCaloMaterialParam::defineCaloMaterial
StatusCode defineCaloMaterial()
Definition: MuidCaloMaterialParam.cxx:210
Rec::MuidCaloMaterialParam::createSurface
std::unique_ptr< Trk::Surface > createSurface(double eta, double r, double z, double cotThetaWidth) const
Definition: MuidCaloMaterialParam.cxx:191
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::Surface::center
const Amg::Vector3D & center() const
Returns the center position of the Surface.
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Rec::MuidCaloMaterialParam::m_surfaceDisplayTool
ToolHandle< Trk::IGeometryProcessor > m_surfaceDisplayTool
Definition: MuidCaloMaterialParam.h:65
Rec::MuidCaloMaterialParam::m_outerForwardSurfaces
std::vector< std::unique_ptr< const Trk::Surface > > m_outerForwardSurfaces
Definition: MuidCaloMaterialParam.h:85
xAOD::etaBin
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap etaBin
Definition: L2StandAloneMuon_v1.cxx:148
AthCommonDataStore
Definition: AthCommonDataStore.h:52
python.SystemOfUnits.meter
int meter
Definition: SystemOfUnits.py:61
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Rec::MuidCaloMaterialParam::m_numberBins
const unsigned m_numberBins
Definition: MuidCaloMaterialParam.h:83
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
Rec::MuidCaloMaterialParam::outerSurface
const Trk::Surface * outerSurface(double eta) const override
Definition: MuidCaloMaterialParam.cxx:128
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Rec::MuidCaloMaterialParam::m_innerForwardSurfaces
std::vector< std::unique_ptr< const Trk::Surface > > m_innerForwardSurfaces
Definition: MuidCaloMaterialParam.h:80
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Rec::MuidCaloMaterialParam::m_innerBackwardSurfaces
std::vector< std::unique_ptr< const Trk::Surface > > m_innerBackwardSurfaces
Definition: MuidCaloMaterialParam.h:79
Rec::MuidCaloMaterialParam::m_radiationThickness
std::vector< double > m_radiationThickness
Definition: MuidCaloMaterialParam.h:86
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
Rec::MuidCaloMaterialParam::m_outerBackwardSurfaces
std::vector< std::unique_ptr< const Trk::Surface > > m_outerBackwardSurfaces
Definition: MuidCaloMaterialParam.h:84
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
plotBeamSpotVxVal.bin
int bin
Definition: plotBeamSpotVxVal.py:83
Rec::MuidCaloMaterialParam::m_caloOuterLayers
std::vector< std::unique_ptr< const CaloLayer > > m_caloOuterLayers
Definition: MuidCaloMaterialParam.h:78
a
TList * a
Definition: liststreamerinfos.cxx:10
h
Rec::MuidCaloMaterialParam::m_middleBackwardSurfaces
std::vector< std::unique_ptr< const Trk::Surface > > m_middleBackwardSurfaces
Definition: MuidCaloMaterialParam.h:81
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DEBUG
#define DEBUG
Definition: page_access.h:11
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
beamspotnt.rms
rms
Definition: bin/beamspotnt.py:1266
Trk::TrackStateOnSurface::Scatterer
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
Definition: TrackStateOnSurface.h:113
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
Rec::MuidCaloMaterialParam::m_middleForwardSurfaces
std::vector< std::unique_ptr< const Trk::Surface > > m_middleForwardSurfaces
Definition: MuidCaloMaterialParam.h:82
Rec::MuidCaloMaterialParam::innerSurface
const Trk::Surface * innerSurface(double eta) const override
IMuidCaloMaterialParam interface: return inner/middle/outer surface corresponding to eta value.
Definition: MuidCaloMaterialParam.cxx:82
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Rec::MuidCaloMaterialParam::m_caloInnerLayers
std::vector< std::unique_ptr< const CaloLayer > > m_caloInnerLayers
Definition: MuidCaloMaterialParam.h:77
fitman.k
k
Definition: fitman.py:528