|
ATLAS Offline Software
|
#include <Routing2.h>
|
double | eosTolerance (DetType::Type type, DetType::Part part) const |
|
double | eosLength (DetType::Type type, DetType::Part part) const |
|
double | eosHalfThickness (DetType::Type type, DetType::Part part) const |
|
void | connect (ServiceVolume *prev, ServiceVolume *newv) |
|
void | routeBarrelLayer (LayerContainer::const_iterator bl, LayerContainer::const_iterator blend, ServicesTracker &tracker, VRoute &route) |
|
void | routeEndcapLayer (LayerContainer::const_iterator bl, LayerContainer::const_iterator blend, ServicesTracker &tracker, HRoute &route) |
|
bool | isRoutedOutsideSupportTube (LayerContainer::const_iterator bl, HRoute &route) |
|
void | routeOuterBarrelPixel (ServicesTracker &tracker) |
|
void | routeEndcapPixel (ServicesTracker &tracker) |
|
void | routeBarrelStrip (ServicesTracker &tracker) |
|
void | routeInnerBarrelPixel (ServicesTracker &tracker) |
|
void | createRoutes (ServicesTracker &tracker) |
|
void | createRoutesInIST (ServicesTracker &tracker) |
|
void | createOuterPixelRoutes (ServicesTracker &tracker) |
|
void | addVolume (ServiceVolume *v) |
|
ServiceVolume * | createSingleRouteVolume (Route &rt) |
|
void | connectRoutes (Route &in, Route &out) |
|
void | dumpRoute (const Route &route) |
|
std::string | nextVolumeName (const Route &route) const |
|
void | initMessaging () const |
| Initialize our message level and MessageSvc. More...
|
|
Definition at line 15 of file Routing2.h.
◆ LayerContainer
◆ Routing2()
◆ addVolume()
◆ connect()
◆ connectRoutes()
void Routing2::connectRoutes |
( |
Route & |
in, |
|
|
Route & |
out |
|
) |
| |
|
private |
Definition at line 513 of file Routing2.cxx.
527 nextVol = nextVol->
next();
528 if (nextVol ==
nullptr)
break;
◆ createOuterPixelRoutes()
◆ createRoutes()
Assume same length barrel, the loop is to make sure there are no volume overlaps in case strip barrel layers are slightly different
Definition at line 75 of file Routing2.cxx.
84 bpZmax =
std::max( bpZmax, (**bl).zPos() + (**bl).halfLength());
91 for (LayerContainer::const_iterator
i=eplc.begin();
i!=eplc.end(); ++
i)
92 epRmax =
std::max( epRmax, (**i).rMax());
95 double bpVertRouteRmax;
100 ATH_MSG_WARNING(
"No space for services between pixel diskd and sct support");
107 double bpHorRouteR = bpVertRouteRmax;
109 double bpHRouteZmax = eplc.back()->zPos();
110 ATH_MSG_INFO(
"Route2: setting bpHRouteZmax to " << bpHRouteZmax);
115 for (LayerContainer::const_iterator
i=bslc.begin();
i!=bslc.end(); ++
i)
116 bsZmax =
std::max( bsZmax, (**i).zPos() + (**i).halfLength());
127 if(bMSTI||bMSTM||bMSTO)
128 if(bpHRouteZmax_mode>0.1&&bpHRouteZmax_mode<bpHRouteZmax) bpHRouteZmax = bpHRouteZmax_mode-0.001;
130 ATH_MSG_INFO(
"Changing bpHRouteZmax to " << bpHRouteZmax);
135 m_bpVRoute =
VRoute( bpVertRouteZpos, bpVertRouteRmin, bpVertRouteRmax, bpVertRouteRmax,
"OuterPixelRPath");
138 m_bpHRoute =
HRoute( bpHorRouteR, bpHRouteZmin, bpHRouteZmax, bsVertRouteZpos,
"OuterPixelZPath");
140 m_bpHRoute =
HRoute( bpHorRouteR, bpHRouteZmin, bpHRouteZmax, bpHRouteZmax,
"OuterPixelZPath");
143 m_bsVRoute =
VRoute( bsVertRouteZpos, bsVertRouteRmin, bsVertRouteRmax, bsVertRouteRmax,
"BarrelStripRPath");
151 m_MSTO_HRoute =
HRoute( bpMSTO_R, bpHRouteZmin, bpHRouteZmax, bpHRouteZmax,
"MSTOPixelZPath");
155 m_MSTM_HRoute =
HRoute( bpMSTM_R, bpHRouteZmin, bpHRouteZmax, bpHRouteZmax,
"MSTMPixelZPath");
159 m_MSTI_HRoute =
HRoute( bpMSTI_R, bpHRouteZmin, bpHRouteZmax, bpHRouteZmax,
"MSTIPixelZPath");
◆ createRoutesInIST()
Definition at line 189 of file Routing2.cxx.
194 bpZmax =
std::max( bpZmax, (**bl).zPos() + (**bl).halfLength());
199 double istVRouteRmin = bplc.front()->radius();
217 m_istVRoute =
VRoute( istVRouteZpos, istVRouteRmin, istVRouteRmax, istVRouteRmax,
"InnerPixelRPath");
220 double istHRouteZmax = istZmax;
221 m_istHRoute =
HRoute( istVRouteRmax, istHRouteZmin, istHRouteZmax, istHRouteZmax,
"InnerPixelZPath");
◆ createRoutingVolumes()
◆ createSingleRouteVolume()
◆ dumpRoute()
Definition at line 577 of file Routing2.cxx.
580 for ( Route::VolumeContainer::const_iterator iv = route.
volumes().begin();
581 iv != route.
volumes().end(); ++iv) {
◆ eosHalfThickness()
◆ eosLength()
◆ eosTolerance()
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ isRoutedOutsideSupportTube()
bool Routing2::isRoutedOutsideSupportTube |
( |
LayerContainer::const_iterator |
bl, |
|
|
HRoute & |
route |
|
) |
| |
|
private |
◆ msg() [1/2]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [2/2]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl()
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ nextVolumeName()
std::string Routing2::nextVolumeName |
( |
const Route & |
route | ) |
const |
|
private |
◆ routeBarrelLayer()
void Routing2::routeBarrelLayer |
( |
LayerContainer::const_iterator |
bl, |
|
|
LayerContainer::const_iterator |
blend, |
|
|
ServicesTracker & |
tracker, |
|
|
VRoute & |
route |
|
) |
| |
|
private |
Definition at line 303 of file Routing2.cxx.
315 ATH_MSG_WARNING(
"not enough space for end of stave of barrel layer at radius "
320 (*bl)->radius()-halfEosThick,
321 (*bl)->radius()+halfEosThick,
322 zEosMin, zEosMax, (**bl).name() +
"EOS");
335 else rMax = route.
rExit();
343 connect( eosCylinder, newDisk);
◆ routeBarrelStrip()
Definition at line 234 of file Routing2.cxx.
237 for (LayerContainer::const_iterator bl=bls.begin(); bl!=bls.end(); ++bl) {
◆ routeEndcapLayer()
void Routing2::routeEndcapLayer |
( |
LayerContainer::const_iterator |
bl, |
|
|
LayerContainer::const_iterator |
blend, |
|
|
ServicesTracker & |
tracker, |
|
|
HRoute & |
route |
|
) |
| |
|
private |
Definition at line 349 of file Routing2.cxx.
366 double rEosMin = 0.0;
367 double rEosMax = 0.0;
369 double EOSZOffset = 0.0;
373 if (SupportName ==
"PST")
378 if (rEosMax < rEosMin)
ATH_MSG_WARNING(
"No space for routing of endcap layer at Z = " << (**bl).zPos());
380 else if (SupportName ==
"MST")
386 else if (SupportName ==
"IST")
391 if (rEosMax < rEosMin)
ATH_MSG_WARNING(
"No space for routing of endcap layer at Z = " << (**bl).zPos());
393 else if (SupportName ==
"MSTO" || SupportName ==
"MSTM" || SupportName ==
"MSTI" )
396 if (bRoutedOutsideSupport)
408 else if (SupportName==
"StdRoute")
414 ATH_MSG_WARNING(
"not enough space for end of stave of endcap layer at Z = " << (**bl).zPos());
417 if (rEosMax < rEosMin) {
418 ATH_MSG_WARNING(
"no space for routing of endcap layer at Z = " << (**bl).zPos());
423 ATH_MSG_ERROR(
"Specified support name (" << SupportName<<
") not recognised - EOS not created!");
429 (*bl)->zPos()-halfEosThick+ EOSZOffset,
430 (*bl)->zPos()+halfEosThick+ EOSZOffset,
431 (**bl).name() +
"EOS");
439 zMin = (*bl)->zPos() + EOSZOffset;
454 zMax = route.
zExit();
455 for (LayerContainer::const_iterator blnext = bl+1; blnext != blend; ++blnext)
459 zMax =
std::min((**blnext).zPos() + EOSZOffset, route.
zExit());
472 if (route.
zExit() < zMin) {
478 route.
name()+
"ExitVol");
483 zMax = (**bl).zPos();
◆ routeEndcapPixel()
Definition at line 242 of file Routing2.cxx.
255 for (LayerContainer::const_iterator bl=
lc.begin(); bl!=
lc.end(); ++bl)
283 if(!bMSTI&&!bMSTM&&!bMSTO)
284 for (LayerContainer::const_iterator bl=
lc.begin(); bl!=
lc.end(); ++bl)
◆ routeInnerBarrelPixel()
◆ routeOuterBarrelPixel()
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ volumes()
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_bpHRoute
◆ m_bpVRoute
◆ m_bsVRoute
◆ m_c_bpEosLength
double Routing2::m_c_bpEosLength |
|
private |
◆ m_c_bsEosLength
double Routing2::m_c_bsEosLength |
|
private |
◆ m_c_EosTolerance
double Routing2::m_c_EosTolerance |
|
private |
◆ m_c_EosTolerance2
double Routing2::m_c_EosTolerance2 |
|
private |
◆ m_c_epEosLength
double Routing2::m_c_epEosLength |
|
private |
◆ m_c_halfEosThick
double Routing2::m_c_halfEosThick |
|
private |
◆ m_c_LayerLengthTolerance
double Routing2::m_c_LayerLengthTolerance |
|
private |
◆ m_c_nInnerPixelLayers
int Routing2::m_c_nInnerPixelLayers |
|
private |
◆ m_c_safetyGap
double Routing2::m_c_safetyGap |
|
private |
◆ m_c_ServiceCylinderThickness
double Routing2::m_c_ServiceCylinderThickness |
|
private |
◆ m_c_ServiceDiskThickness
double Routing2::m_c_ServiceDiskThickness |
|
private |
◆ m_epHRoute
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_ISTexists
bool Routing2::m_ISTexists |
|
private |
◆ m_istHRoute
◆ m_ISTouter_HRoute
HRoute Routing2::m_ISTouter_HRoute |
|
private |
◆ m_istVRoute
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_MSTI_HRoute
HRoute Routing2::m_MSTI_HRoute |
|
private |
◆ m_MSTinside_HRoute
HRoute Routing2::m_MSTinside_HRoute |
|
private |
◆ m_MSTM_HRoute
HRoute Routing2::m_MSTM_HRoute |
|
private |
◆ m_MSTM_HRouteInner
HRoute Routing2::m_MSTM_HRouteInner |
|
private |
◆ m_MSTO_HRoute
HRoute Routing2::m_MSTO_HRoute |
|
private |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_pixelAlongBarrelStrip
bool Routing2::m_pixelAlongBarrelStrip |
|
private |
◆ m_pixelH2Route
HRoute Routing2::m_pixelH2Route |
|
private |
◆ m_pixelV2Route
VRoute Routing2::m_pixelV2Route |
|
private |
◆ m_routePixelBarrelOnPST
bool Routing2::m_routePixelBarrelOnPST |
|
private |
◆ m_volumes
The documentation for this class was generated from the following files:
void routeBarrelLayer(LayerContainer::const_iterator bl, LayerContainer::const_iterator blend, ServicesTracker &tracker, VRoute &route)
virtual double position() const
std::atomic< MSG::Level > m_lvl
Current logging level.
LayerContainer & barrelPixelLayers()
ServiceVolume * createSingleRouteVolume(Route &rt)
void routeInnerBarrelPixel(ServicesTracker &tracker)
LayerContainer & endcapPixelLayers()
const VolumeContainer & volumes() const
void createRoutesInIST(ServicesTracker &tracker)
void addEosServices(const ServicesLayer *l)
double eosHalfThickness(DetType::Type type, DetType::Part part) const
double m_c_ServiceCylinderThickness
const InDetServMatGeometryManager * geoMgr() const
double SupportTubeRMax(const std::string &name) const
double eosLength(DetType::Type type, DetType::Part part) const
virtual void setNextRoute(Route *nr)
bool m_pixelAlongBarrelStrip
double m_c_ServiceDiskThickness
bool m_routePixelBarrelOnPST
virtual ServiceVolume * exitVolume(bool ascending, MsgStream &msg) const
virtual void setNextRoute(Route *nr)
const std::string & name() const
void createOuterPixelRoutes(ServicesTracker &tracker)
std::string nextVolumeName(const Route &route) const
int SupportTubeExists(const std::string &name) const
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
IMessageSvc * getMessageSvc(bool quiet=false)
void setServiceVolumes(const std::vector< ServiceVolume * > &vc)
virtual void addVolume(ServiceVolume *vol)
double pixelEnvelopeRMax() const
void routeEndcapPixel(ServicesTracker &tracker)
AthMessaging()
Default constructor:
bool msgLvl(const MSG::Level lvl) const
Test the output level.
void setNext(ServiceVolume *next)
int m_c_nInnerPixelLayers
void dumpRoute(const Route &route)
double m_c_LayerLengthTolerance
void routeBarrelStrip(ServicesTracker &tracker)
void addPrevious(ServiceVolume *prev)
double sctInnerSupport() const
void routeOuterBarrelPixel(ServicesTracker &tracker)
LayerContainer & barrelStripLayers()
std::string pixelDiskServiceRoute(int disk) const
virtual void addVolume(ServiceVolume *vol)
MsgStream & msg() const
The standard message stream.
void addLayer(const ServicesLayer *l)
Add a layer the services of which are routed through this volume.
HRoute m_MSTM_HRouteInner
void addVolume(ServiceVolume *v)
double pixelDiskEOSZOffset(int disk) const
void connect(ServiceVolume *prev, ServiceVolume *newv)
double SupportTubeZMax(const std::string &name) const
double eosTolerance(DetType::Type type, DetType::Part part) const
bool isRoutedOutsideSupportTube(LayerContainer::const_iterator bl, HRoute &route)
void routeEndcapLayer(LayerContainer::const_iterator bl, LayerContainer::const_iterator blend, ServicesTracker &tracker, HRoute &route)
virtual double position() const
double SupportTubeRMin(const std::string &name) const
const LayerContainer & layers() const
#define ATH_MSG_WARNING(x)
void setExitVolume(ServiceVolume *vp)
std::string m_nm
Message source name.
virtual const VolumeContainer & volumes() const
void createRoutes(ServicesTracker &tracker)
void initMessaging() const
Initialize our message level and MessageSvc.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
void connectRoutes(Route &in, Route &out)
virtual const VolumeContainer & volumes() const =0
void dump(bool dumpMaterial=true) const
ServicesTracker::LayerContainer LayerContainer
virtual double position() const =0
double SupportTubeZMin(const std::string &name) const
void addLayers(const LayerContainer &lc)
virtual void addVolume(ServiceVolume *vol)=0
virtual double exit() const =0
std::vector< ServiceVolume * > m_volumes