|
ATLAS Offline Software
|
#include <TRT_DetElementsRoadMaker_xk.h>
|
| TRT_DetElementsRoadMaker_xk (const std::string &, const std::string &, const IInterface *) |
|
virtual | ~TRT_DetElementsRoadMaker_xk () |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
virtual std::vector< const InDetDD::TRT_BaseElement * > | detElementsRoad (const EventContext &ctx, MagField::AtlasFieldCache &fieldCache, const Trk::TrackParameters &Tp, Trk::PropDirection D, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const override |
|
virtual MsgStream & | dump (MsgStream &out) const override |
|
virtual std::ostream & | dump (std::ostream &out) const override |
|
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 |
|
|
void | detElementsRoadATL (std::deque< Amg::Vector3D > &, std::vector< const InDetDD::TRT_BaseElement * > &, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used, const EventContext &ctx) const |
|
void | detElementsRoadCTB (std::deque< Amg::Vector3D > &, std::vector< const InDetDD::TRT_BaseElement * > &, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used, const EventContext &ctx) const |
|
Trk::CylinderBounds | getBound (MagField::AtlasFieldCache &fieldCache, const Trk::TrackParameters &, const EventContext &ctx) const |
|
MsgStream & | dumpConditions (MsgStream &out) const |
|
const TRT_DetElementsLayerVectors_xk * | getLayers (const EventContext &ctx) const |
|
const Trk::CylinderBounds | get_bounds (const EventContext &ctx) const |
|
double | getTRTMinR (const EventContext &ctx) const |
|
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...
|
|
◆ StoreGateSvc_t
◆ TRT_DetElementsRoadMaker_xk()
InDet::TRT_DetElementsRoadMaker_xk::TRT_DetElementsRoadMaker_xk |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~TRT_DetElementsRoadMaker_xk()
InDet::TRT_DetElementsRoadMaker_xk::~TRT_DetElementsRoadMaker_xk |
( |
| ) |
|
|
virtualdefault |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detElementsRoad()
◆ detElementsRoadATL()
Definition at line 302 of file TRT_DetElementsRoadMaker_xk.cxx.
316 float(std::sqrt((*g).x()*(*g).x()+(*g).y()*(*g).y())),
m_width,0.};
322 std::vector<std::pair<const InDet::TRT_DetElementLink_xk*,float> > lDE;
323 for (
unsigned int module_i = 0; module_i < 3; ++module_i) {
324 size_t layersSize =
layer[module_i].size();
326 used[module_i].resize(layersSize);
327 for (
unsigned int layer_i = 0; layer_i < layersSize; ++layer_i) {
330 used[module_i][layer_i].clear();
332 used[module_i][layer_i].resize(
layer[module_i][layer_i].nElements());
336 for(++
g;
g!=ge; ++
g) {
339 float(std::sqrt((*g).x()*(*g).x()+(*g).y()*(*g).y()))};
341 float dx = Pn[0]-Po[0];
342 float dy = Pn[1]-Po[1];
343 float dz = Pn[2]-Po[2];
344 float st = std::sqrt(
dx*
dx+
dy*
dy+dz*dz);
345 if(st <=0.)
continue;
356 assert(
used.at(1).size() >
static_cast<unsigned int>(
n1));
360 for (--
n1;
n1 >= 0; --
n1) {
363 assert(
used.at(1).size() >
static_cast<unsigned int>(
n1));
374 if (Pn[2] <
layer[2][n2].
z())
376 assert(
used.at(2).size() >
static_cast<unsigned int>(n2));
377 layer[2][n2].getEndcapDetElements(Po,
A, lDE,
used[2][n2]);
380 for (--n2; n2 >= 0; --n2) {
381 if (Pn[2] >
layer[2][n2].
z())
383 assert(
used.at(2).size() >
static_cast<unsigned int>(n2));
384 layer[2][n2].getEndcapDetElements(Po,
A, lDE,
used[2][n2]);
394 if (Pn[2] >
layer[0][n0].
z())
396 assert(
used.at(0).size() >
static_cast<unsigned int>(n0));
397 layer[0][n0].getEndcapDetElements(Po,
A, lDE,
used[0][n0]);
400 for (--n0; n0 >= 0; --n0) {
401 if (Pn[2] <
layer[0][n0].
z())
403 assert(
used.at(0).size() >
static_cast<unsigned int>(n0));
404 layer[0][n0].getEndcapDetElements(Po,
A, lDE,
used[0][n0]);
417 std::vector<std::pair<const InDet::TRT_DetElementLink_xk*,float> >
::iterator l=lDE.begin(),le=lDE.end(),
n,
m;
424 for(++
n;
n!=le; ++
n) {
426 if( (*m).second > (*n).second ) {
427 std::pair<const InDet::TRT_DetElementLink_xk*,float>
d=(*m); (*m)=(*n); (*n)=
d;
nc=
true;
435 for(
l=lDE.begin();
l!=le; ++
l) {
436 Road.push_back((*l).first->detElement());
◆ detElementsRoadCTB()
Definition at line 445 of file TRT_DetElementsRoadMaker_xk.cxx.
457 float(std::sqrt((*g).x()*(*g).x()+(*g).y()*(*g).y())),
m_width,0.};
461 std::vector<std::pair<const InDet::TRT_DetElementLink_xk*,float> > lDE;
462 for (
unsigned int module_i = 0; module_i < 3; ++module_i) {
463 size_t layersSize =
layer[module_i].size();
465 used[module_i].resize(layersSize);
466 for (
unsigned int layer_i = 0; layer_i < layersSize; ++layer_i) {
469 used[module_i][layer_i].clear();
471 used[module_i][layer_i].resize(
layer[module_i][layer_i].nElements());
475 for(++
g;
g!=ge; ++
g) {
478 float(std::sqrt((*g).x()*(*g).x()+(*g).y()*(*g).y()))};
480 float dx = Pn[0]-Po[0];
481 float dy = Pn[1]-Po[1];
482 float dz = Pn[2]-Po[2];
483 float st = std::sqrt(
dx*
dx+
dy*
dy+dz*dz);
492 assert(
used.at(1).size() >
static_cast<unsigned int>(
n1) );
507 std::vector<std::pair<const InDet::TRT_DetElementLink_xk*, float> >
::iterator l=lDE.begin(),le=lDE.end(),
n;
514 for(++
n;
n!=le; ++
n) {
516 if( (*l).second > (*n).second ) {
517 std::pair<const InDet::TRT_DetElementLink_xk*,float>
d = (*l); (*l) = (*n); (*n) =
d;
526 for(
l=lDE.begin();
l!=le; ++
l) {
527 Road.push_back((*l).first->detElement());
◆ detStore()
◆ dump() [1/2]
MsgStream & InDet::TRT_DetElementsRoadMaker_xk::dump |
( |
MsgStream & |
out | ) |
const |
|
overridevirtual |
◆ dump() [2/2]
std::ostream & InDet::TRT_DetElementsRoadMaker_xk::dump |
( |
std::ostream & |
out | ) |
const |
|
overridevirtual |
◆ dumpConditions()
MsgStream & InDet::TRT_DetElementsRoadMaker_xk::dumpConditions |
( |
MsgStream & |
out | ) |
const |
|
private |
Definition at line 96 of file TRT_DetElementsRoadMaker_xk.cxx.
99 std::string
s1;
for(
int i=0;
i<
n; ++
i)
s1.append(
" ");
s1.append(
"|");
101 std::string fieldmode[9] ={
"NoField" ,
"ConstantField",
"SolenoidalField",
102 "ToroidalField" ,
"Grid3DField" ,
"RealisticField" ,
103 "UndefinedField",
"AthenaField" ,
"?????" };
110 fieldCondObj->getInitializedCache (fieldCache);
114 int mode = fieldprop.magneticFieldMode();
115 if(mode<0 || mode>8 )
mode = 8;
117 n = 62-fieldmode[
mode].size();
118 std::string
s3;
for(
int i=0;
i<
n; ++
i)
s3.append(
" ");
s3.append(
"|");
127 out<<
"|----------------------------------------------------------------------"
128 <<
"-------------------|"
131 out<<
"| Magnetic field mode | "<<fieldmode[
mode]<<
s3<<std::endl;
132 out<<
"| Width of the road (mm) | "
133 <<std::setw(12)<<std::setprecision(5)<<
m_width
135 out<<
"|----------------------------------------------------------------------"
136 <<
"-------------------|"
142 int nl =
layer[1].size();
144 for(
const auto &
i :
layer[1])
nc+=
i.nElements();
145 out<<
"|----------------------------------------------------------------|"
147 out<<
"| Barrel map containt "
148 <<std::setw(4)<<nl<<
" layers and "
149 <<std::setw(6)<<
nc<<
" elements |"
151 out<<
"|------|-----------|------------|------------|------------|------|"
153 out<<
"| n | R | Z min | Z max | max dF | nEl |"
155 out<<
"|------|-----------|------------|------------|------------|------|"
157 for(
unsigned int i=0;
i!=
layer[1].size(); ++
i) {
161 <<std::setw(4)<<
i<<
" |"
162 <<std::setw(10)<<std::setprecision(4)<<
layer[1][
i].r ()<<
" | "
163 <<std::setw(10)<<std::setprecision(4)<<
zmin<<
" | "
164 <<std::setw(10)<<std::setprecision(4)<<
zmax<<
" | "
165 <<std::setw(10)<<std::setprecision(4)<<
layer[1][
i].dfe()<<
" | "
166 <<std::setw(4)<<
layer[1][
i].nElements()<<
" | "
169 out<<
"|------|-----------|------------|------------|------------|------|"
175 int nl =
layer[0].size();
177 for(
const auto &
i :
layer[0])
nc+=
i.nElements();
178 out<<
"|----------------------------------------------------------------|"
180 out<<
"| L.Endcap map containt "
181 <<std::setw(4)<<nl<<
" layers and "
182 <<std::setw(6)<<
nc<<
" elements |"
185 out<<
"|------|-----------|------------|------------|------------|------|"
187 out<<
"| n | Z | R min | R max | max dF | nEl |"
189 out<<
"|------|-----------|------------|------------|------------|------|"
191 for(
unsigned int i=0;
i!=
layer[0].size(); ++
i) {
195 <<std::setw(4)<<
i<<
" |"
196 <<std::setw(10)<<std::setprecision(4)<<
layer[0][
i].z()<<
" | "
197 <<std::setw(10)<<std::setprecision(4)<< rmin<<
" | "
198 <<std::setw(10)<<std::setprecision(4)<< rmax<<
" | "
199 <<std::setw(10)<<std::setprecision(4)<<
layer[0][
i].dfe()<<
" | "
200 <<std::setw(4)<<
layer[0][
i].nElements()<<
" | "
203 out<<
"|------|-----------|------------|------------|------------|------|"
207 int nl =
layer[2].size();
209 for(
const auto &
i :
layer[2])
nc+=
i.nElements();
210 out<<
"|----------------------------------------------------------------|"
212 out<<
"| R.Endcap map containt "
213 <<std::setw(4)<<nl<<
" layers and "
214 <<std::setw(6)<<
nc<<
" elements |"
216 out<<
"|------|-----------|------------|------------|------------|------|"
218 out<<
"| n | Z | R min | R max | max dF | nEl |"
220 out<<
"|------|-----------|------------|------------|------------|------|"
222 for(
unsigned int i=0;
i!=
layer[2].size(); ++
i) {
226 <<std::setw(4)<<
i<<
" |"
227 <<std::setw(10)<<std::setprecision(4)<<
layer[2][
i].z()<<
" | "
228 <<std::setw(10)<<std::setprecision(4)<< rmin<<
" | "
229 <<std::setw(10)<<std::setprecision(4)<< rmax<<
" | "
230 <<std::setw(10)<<std::setprecision(4)<<
layer[2][
i].dfe()<<
" | "
231 <<std::setw(4)<<
layer[2][
i].nElements()<<
" | "
234 out<<
"|------|-----------|------------|------------|------------|------|"
◆ dumpEvent()
MsgStream & InDet::TRT_DetElementsRoadMaker_xk::dumpEvent |
( |
MsgStream & |
out, |
|
|
int |
size_road |
|
) |
| |
|
staticprivate |
Definition at line 244 of file TRT_DetElementsRoadMaker_xk.cxx.
246 out<<
"|--------------------------------------------------------------------|"
248 out<<
"| Road size | "<<std::setw(12)<<size_road
250 out<<
"|--------------------------------------------------------------------|"
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ finalize()
StatusCode InDet::TRT_DetElementsRoadMaker_xk::finalize |
( |
| ) |
|
|
overridevirtual |
◆ get_bounds()
◆ getBound()
Definition at line 548 of file TRT_DetElementsRoadMaker_xk.cxx.
551 const double cor = 0.8;
558 zfield = 299.7925*
f[2];
563 if( std::abs(zfield) < .0000001 )
return bounds;
565 const AmgVector(5)& Vp = Tp.parameters();
569 if( std::abs(
cur)*bounds.
r() < cor )
return bounds;
572 if(cor*std::abs(
rad) > bounds.
r() )
return bounds;
575 double sn,cs; sincos(Vp[2],&sn,&cs);
576 double xc = Gp.x()+sn*
rad ;
577 double yc = Gp.y()-cs*
rad ;
578 double rm = (std::sqrt(xc*xc+yc*yc)+std::abs(
rad))*cor;
579 if( rm > bounds.
r() )
return bounds;
◆ getLayers()
◆ getTRTMinR()
double InDet::TRT_DetElementsRoadMaker_xk::getTRTMinR |
( |
const EventContext & |
ctx | ) |
const |
|
inlineprivate |
◆ initialize()
StatusCode InDet::TRT_DetElementsRoadMaker_xk::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
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()
const InterfaceID & InDet::ITRT_DetElementsRoadMaker::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ stepToDetElement()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_detStore
◆ m_evtStore
◆ m_fieldCacheCondObjInputKey
Initial value:{this,"AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}
Definition at line 102 of file TRT_DetElementsRoadMaker_xk.h.
◆ m_fieldmode
StringProperty InDet::TRT_DetElementsRoadMaker_xk::m_fieldmode |
|
private |
◆ m_fieldModeEnum
◆ m_proptool
PublicToolHandle<Trk::IPropagator> InDet::TRT_DetElementsRoadMaker_xk::m_proptool |
|
private |
◆ m_roadDataKey
Initial value:{this, "RoadDataKey",
"TRT_DetElementsRoadData_xk", "Key of TRT_DetElementsRoadData_xk"}
Definition at line 99 of file TRT_DetElementsRoadMaker_xk.h.
◆ m_step
DoubleProperty InDet::TRT_DetElementsRoadMaker_xk::m_step {this, "MaxStep", 20., "Max step allowed"} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_width
FloatProperty InDet::TRT_DetElementsRoadMaker_xk::m_width |
|
private |
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
MsgStream & dumpConditions(MsgStream &out) const
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
PublicToolHandle< Trk::IPropagator > m_proptool
void getFieldZR(const double *ATH_RESTRICT xyz, double *ATH_RESTRICT bxyz, double *ATH_RESTRICT deriv=nullptr)
get B field valaue on the z-r plane at given position works only inside the solenoid.
const Amg::Vector3D & position() const
Access method for the position.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
double getTRTMinR(const EventContext &ctx) const
bool msgLvl(const MSG::Level lvl) const
std::vector< std::vector< InDet::TRT_DetElementsLayer_xk > > TRT_DetElementsLayerVectors_xk
virtual void setOwner(IDataHandleHolder *o)=0
Trk::MagneticFieldMode m_fieldModeEnum
SG::ReadCondHandleKey< TRT_DetElementsRoadData_xk > m_roadDataKey
@ FastField
call the fast field access method of the FieldSvc
::StatusCode StatusCode
StatusCode definition for legacy code.
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
bool solenoidOn() const
status of the magnets
@ FullField
Field is set to be realistic, but within a given Volume.
void detElementsRoadATL(std::deque< Amg::Vector3D > &, std::vector< const InDetDD::TRT_BaseElement * > &, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used, const EventContext &ctx) const
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
StringProperty m_fieldmode
@ NoField
Field is set to 0., 0., 0.,.
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
Trk::CylinderBounds getBound(MagField::AtlasFieldCache &fieldCache, const Trk::TrackParameters &, const EventContext &ctx) const
virtual const Amg::Vector3D & center() const override final
Element Surface: center of a straw layer.
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const TRT_DetElementsLayerVectors_xk * getLayers(const EventContext &ctx) const
const Trk::CylinderBounds get_bounds(const EventContext &ctx) const
virtual const Amg::Vector3D & normal() const override final
Element Surface: normal of a straw layer.
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
double halflengthZ() const
This method returns the halflengthZ.
virtual double r() const override final
This method returns the radius.