  | 
  
    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