#include <InDetMaterialVeto.h>
Definition at line 29 of file InDetMaterialVeto.h.
◆ InDetMaterialVeto()
Definition at line 22 of file InDetMaterialVeto.cxx.
24 AthMessaging(Gaudi::svcLocator()->service< IMessageSvc >(
"MessageSvc" ),
"InDetMaterialVeto")
27 ATH_MSG_DEBUG(
"Building material rejection map from BeamPipe and PixelDetectorManager");
29 static constexpr
int nbins_R = 76;
30 double bins_R[nbins_R+1];
31 for(
unsigned int i=0;
i<=15;
i++) bins_R[
i] = 2*
i - 1.;
33 static constexpr
double Rbinwidth_pixel = 6.;
34 for(
unsigned int i=1;
i<=60;
i++) bins_R[
i+16] = 30 + Rbinwidth_pixel*
i;
36 static constexpr
int nbins_Z = 1000;
37 static constexpr
double zmax = 3000.;
38 static constexpr
double zbinwidth = 2*
zmax/nbins_Z;
40 std::string mapName =
"ITkMaterialMap";
46 double beamPipeRadius = 0.;
47 PVConstLink beamPipeTopVolume = beamPipeMgr->
getTreeTop(0);
48 const GeoLogVol* beamPipeLogVolume = beamPipeTopVolume->getLogVol();
49 const GeoTube* beamPipeTube =
nullptr;
51 if (beamPipeLogVolume){
52 beamPipeTube =
dynamic_cast<const GeoTube*
>(beamPipeLogVolume->getShape());
55 for(
unsigned int i=0;
i<beamPipeTopVolume->getNChildVols();
i++){
57 if(beamPipeTopVolume->getNameOfChildVol(
i)==
"SectionC03"){
58 PVConstLink childTopVolume = beamPipeTopVolume->getChildVol(
i);
59 const GeoLogVol* childLogVolume = childTopVolume->getLogVol();
60 const GeoTube* childTube =
nullptr;
63 childTube =
dynamic_cast<const GeoTube*
>(childLogVolume->getShape());
65 beamPipeRadius = 0.5 * (childTube->getRMax()+childTube->getRMin());
77 ATH_MSG_DEBUG(
"BeamPipeRadius used for material rejection="<<beamPipeRadius);
86 double IPTRadius = -1.;
88 PVConstLink pixelTopVolume = pixelManager->
getTreeTop(0);
90 for(
unsigned int i=0;
i<pixelTopVolume->getNChildVols();
i++){
92 PVConstLink childTopVolume = pixelTopVolume->getChildVol(
i);
93 const GeoLogVol* childLogVolume = childTopVolume->getLogVol();
94 const GeoTube* childTube =
nullptr;
97 childTube =
dynamic_cast<const GeoTube*
>(childLogVolume->getShape());
99 double radius = 0.5*(childTube->getRMin()+childTube->getRMax());
100 if(IPTRadius<0. ||
radius<IPTRadius) IPTRadius =
radius;
106 ATH_MSG_DEBUG(
"IPTRadius used for material rejection="<<IPTRadius);
112 InDetDD::SiDetectorElementCollection::const_iterator iter;
115 Identifier Pixel_ModuleID = (*iter)->identify();
124 double zMin_mod =
module->zMin();
125 double zMax_mod =
module->zMax();
126 double rMin_mod =
module->rMin();
127 double rMax_mod =
module->rMax();
129 double alpha = (rMin_mod-rMax_mod)/(zMax_mod-zMin_mod);
130 for(
double z=zMin_mod;
z<=zMax_mod;
z+=zbinwidth){
131 double R = rMax_mod + alpha*(
z-zMin_mod);
136 double alpha = (rMax_mod-rMin_mod)/(zMax_mod-zMin_mod);
137 for(
double z=zMin_mod;
z<=zMax_mod;
z+=zbinwidth){
138 double R = rMin_mod + alpha*(
z-zMin_mod);
145 double zMin_mod =
module->zMin();
146 double zMax_mod =
module->zMax();
147 double R = std::hypot(
module->center().x(),
module->center().y());
152 double rMin_mod =
module->rMin();
153 double rMax_mod =
module->rMax();
154 double z =
module->center().z();
◆ 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.
◆ ITkPixMaterialMap()
std::unique_ptr<TH2D> InDet::InDetMaterialVeto::ITkPixMaterialMap |
( |
| ) |
|
|
inline |
◆ 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.
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_ITkPixMaterialMap
std::unique_ptr<TH2D> InDet::InDetMaterialVeto::m_ITkPixMaterialMap |
|
private |
◆ 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_nm
std::string AthMessaging::m_nm |
|
privateinherited |
The documentation for this class was generated from the following files: