|
ATLAS Offline Software
|
#include <Station.h>
|
| Station () |
|
| ~Station ()=default |
|
| Station (const Station &s)=delete |
|
Station & | operator= (const Station &s)=delete |
|
| Station (MYSQL &mysql, std::string name) |
|
void | SetComponent (Component *c) |
|
void | SetCutout (Cutout *c) |
|
Component * | GetComponent (int i) const |
|
Cutout * | GetCutout (int i) const |
|
int | GetNrOfComponents () const |
|
int | GetNrOfCutouts () const |
|
void | SetPosition (Position p) |
|
void | SetAlignPos (const AlignPos &p) |
|
PositionIterator | begin () const |
|
PositionIterator | end () const |
|
AlignPosIterator | abegin () const |
|
AlignPosIterator | aend () const |
|
PositionIterator | FindPosition (int iz, int iphi) const |
|
AlignPosIterator | FindAlignPos (int iz, int iphi) const |
|
int | CountAlignPos (int iz, int iphi) const |
|
AlignPosIterator | getFirstAlignPosInRange (int iz, int iphi, AlignPosIterator &lastAlignPosInRange) const |
|
int | Npositions () const |
|
GeoTrf::Transform3D | native_to_tsz_frame (const MYSQL &mysql, const Position &p) const |
|
GeoTrf::Transform3D | tsz_to_native_frame (const MYSQL &mysql, const Position &p) const |
|
GeoTrf::Transform3D | tsz_to_global_frame (const MYSQL &mysql, const Position &p) const |
|
GeoTrf::Transform3D | global_to_tsz_frame (const MYSQL &mysql, const Position &p) const |
|
GeoTrf::Transform3D | getNominalTransform (const MYSQL &mysql, const Position &p) const |
|
GeoTrf::Transform3D | getDeltaTransform_tszFrame (const MYSQL &mysql, const AlignPos &ap) const |
|
GeoTrf::Transform3D | getDeltaTransform (const MYSQL &mysql, const AlignPos &ap, const Position &p) const |
|
GeoTrf::Transform3D | getAlignedTransform (const MYSQL &mysql, const AlignPos &ap, const Position &p) const |
|
const std::string & | GetName () const |
|
double | GetThickness (const MYSQL &mysql) const |
|
double | GetExtraBottomThickness () const |
|
double | GetExtraTopThickness () const |
|
double | GetLength () const |
|
double | GetWidth1 () const |
|
double | GetWidth2 () const |
|
double | getAmdbOrigine_along_length () const |
|
double | getAmdbOrigine_along_thickness (const MYSQL &mysql) const |
|
bool | hasMdts () const |
|
void | setHasMdts (bool x) |
|
double | mdtHalfPitch (const MYSQL &mysql) const |
|
bool | msgLvl (const MSG::Level lvl) const |
| Test the output level. More...
|
|
MsgStream & | msg () const |
| The standard message stream. More...
|
|
MsgStream & | msg (const MSG::Level lvl) const |
| The standard message stream. More...
|
|
void | setLevel (MSG::Level lvl) |
| Change the current logging level. More...
|
|
Definition at line 40 of file Station.h.
◆ Station() [1/3]
MuonGM::Station::Station |
( |
| ) |
|
◆ ~Station()
MuonGM::Station::~Station |
( |
| ) |
|
|
default |
◆ Station() [2/3]
◆ Station() [3/3]
MuonGM::Station::Station |
( |
MYSQL & |
mysql, |
|
|
std::string |
name |
|
) |
| |
Definition at line 23 of file Station.cxx.
30 mysql.StoreStation(
this);
◆ abegin()
◆ aend()
◆ begin()
◆ CountAlignPos()
int MuonGM::Station::CountAlignPos |
( |
int |
iz, |
|
|
int |
iphi |
|
) |
| const |
◆ end()
◆ FindAlignPos()
◆ FindPosition()
◆ getAlignedTransform()
◆ getAmdbOrigine_along_length()
double MuonGM::Station::getAmdbOrigine_along_length |
( |
| ) |
const |
◆ getAmdbOrigine_along_thickness()
double MuonGM::Station::getAmdbOrigine_along_thickness |
( |
const MYSQL & |
mysql | ) |
const |
◆ GetComponent()
Component * MuonGM::Station::GetComponent |
( |
int |
i | ) |
const |
◆ GetCutout()
Cutout * MuonGM::Station::GetCutout |
( |
int |
i | ) |
const |
◆ getDeltaTransform()
◆ getDeltaTransform_tszFrame()
Definition at line 519 of file Station.cxx.
521 if (
ap.tras != 0 ||
ap.trat != 0 ||
ap.traz != 0 ||
ap.rots != 0 ||
ap.rott != 0 ||
ap.rotz != 0) {
523 <<
ap.tras <<
" " <<
ap.traz <<
" " <<
ap.trat <<
" " <<
ap.rots <<
" "
524 <<
ap.rotz <<
" " <<
ap.rott <<
" isBarrel=" <<
ap.isBarrel
528 GeoTrf::RotateX3D rott(
ap.rott);
529 GeoTrf::RotateZ3D rotz(
ap.rotz);
530 GeoTrf::RotateY3D rots(
ap.rots);
531 GeoTrf::Transform3D trans = GeoTrf::TranslateY3D(
ap.tras) * GeoTrf::TranslateZ3D(
ap.traz) * GeoTrf::TranslateX3D(
ap.trat);
537 << delta(0, 0) <<
" " << delta(0, 1) <<
" " << delta(0, 2) <<
" " << delta(0, 3) <<
" " <<
endmsg
538 << delta(1, 0) <<
" " << delta(1, 1) <<
" " << delta(1, 2) <<
" " << delta(1, 3) <<
" " <<
endmsg
539 << delta(2, 0) <<
" " << delta(2, 1) <<
" " << delta(2, 2) <<
" " << delta(2, 3) <<
" " <<
endmsg;
◆ GetExtraBottomThickness()
double MuonGM::Station::GetExtraBottomThickness |
( |
| ) |
const |
◆ GetExtraTopThickness()
double MuonGM::Station::GetExtraTopThickness |
( |
| ) |
const |
◆ getFirstAlignPosInRange()
Definition at line 55 of file Station.cxx.
56 int key = iz * 100 + iphi;
58 lastAlignPosInRange = ppp.second;
◆ GetLength()
double MuonGM::Station::GetLength |
( |
| ) |
const |
Definition at line 160 of file Station.cxx.
164 double outerrad = 0.;
167 TgcComponent *tg =
dynamic_cast<TgcComponent*
>(
m_components[
i].get());
169 if (tg->posy < innerrad) {
173 if (tg->posy + tg->dy > outerrad) {
174 outerrad = tg->posy + tg->dy;
178 len = outerrad - innerrad;
180 double ystart = 999999.;
183 StandardComponent*
sc =
dynamic_cast<StandardComponent*
>(
m_components[
i].get());
185 ATH_MSG_ERROR(
"Dynamic cast to StandardComponent failed at line "<<__LINE__);
189 sc->name <<
" posy " <<
sc->posy <<
" dy " <<
sc->dy <<
" len " << len <<
190 " ystart " << ystart);
191 if ((
sc->dy +
sc->posy) > len)
192 len =
sc->dy +
sc->posy;
193 if (
i == 0 ||
sc->posy < ystart)
198 if (std::abs(ystart) > 0.001) {
202 ATH_MSG_VERBOSE(
"Station " <<
m_name <<
" redefining len = " << len <<
" because ystart = " << ystart);
◆ GetName()
const std::string & MuonGM::Station::GetName |
( |
| ) |
const |
◆ getNominalTransform()
◆ GetNrOfComponents()
int MuonGM::Station::GetNrOfComponents |
( |
| ) |
const |
◆ GetNrOfCutouts()
int MuonGM::Station::GetNrOfCutouts |
( |
| ) |
const |
◆ GetThickness()
double MuonGM::Station::GetThickness |
( |
const MYSQL & |
mysql | ) |
const |
Definition at line 112 of file Station.cxx.
116 TgcComponent *
t =
dynamic_cast<TgcComponent*
>(
m_components[
i].get());
121 thick = thick >
t->GetThickness(mysql) +
t->posz ? thick :
t->GetThickness(mysql) +
t->posz;
127 StandardComponent*
s =
dynamic_cast<StandardComponent*
>(
m_components[
i].get());
132 thick = thick >
s->GetThickness(mysql) +
s->posz ? thick :
s->GetThickness(mysql) +
s->posz;
133 if (
i == 0 ||
s->posz < zstart)
136 ATH_MSG_VERBOSE(
"Station " <<
m_name <<
" calculating Thinkness = " << thick <<
" and zstart = " << zstart);
139 if (std::abs(zstart) > 0.001) {
140 thick = thick - zstart;
143 " because zstart = " << zstart <<
◆ GetWidth1()
double MuonGM::Station::GetWidth1 |
( |
| ) |
const |
Definition at line 227 of file Station.cxx.
228 double maxdxmin = std::numeric_limits<double>::lowest();
237 if (typetgc ==
"01" || typetgc ==
"06" || typetgc ==
"12" || typetgc ==
"18" || typetgc ==
"19" || typetgc ==
"20" || typetgc ==
"21") {
257 ATH_MSG_ERROR(
"Dynamic cast to StandardComponent failed at line "<<__LINE__);
264 if (maxdxmin < dxmin && (
n.substr(0, 2) !=
"LB" ||
m_name[0] ==
'B'))
269 if (
m_name.substr(0, 1) ==
"T")
◆ GetWidth2()
double MuonGM::Station::GetWidth2 |
( |
| ) |
const |
Definition at line 275 of file Station.cxx.
278 double maxdxmax = std::numeric_limits<double>::lowest();
291 if (typetgc ==
"01" || typetgc ==
"06" || typetgc ==
"12" || typetgc ==
"18" || typetgc ==
"19" || typetgc ==
"20" || typetgc ==
"21") {
304 ATH_MSG_ERROR(
"Dynamic cast to StandardComponent failed at line "<<__LINE__);
311 if (maxdxmax < dxmax)
316 if (
m_name.compare(0, 1,
"T") == 0)
◆ getYMin()
double MuonGM::Station::getYMin |
( |
| ) |
const |
|
private |
Definition at line 209 of file Station.cxx.
214 StandardComponent*
sc =
dynamic_cast<StandardComponent*
>(
m_components[
i].get());
216 ATH_MSG_ERROR(
"Dynamic cast to StandardComponent failed at line "<<__LINE__);
219 if (
i == 0 ||
sc->posy < ystart)
◆ global_to_tsz_frame()
◆ hasMdts()
bool MuonGM::Station::hasMdts |
( |
| ) |
const |
|
inline |
◆ 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.
◆ mdtHalfPitch()
double MuonGM::Station::mdtHalfPitch |
( |
const MYSQL & |
mysql | ) |
const |
Definition at line 343 of file Station.cxx.
344 const MDT *mdtobj =
dynamic_cast<const MDT*
>(mysql.GetATechnology(
"MDT0"));
346 ATH_MSG_ERROR(
"Dynamic cast to MDT failed at line "<<__LINE__);
349 double mdthalfpitch = 0.5 * (mdtobj->pitch);
355 if (
c->name.compare(0, 3,
"MDT") != 0)
357 const MDT *mdtobj =
dynamic_cast<const MDT*
>(mysql.GetATechnology(
c->name));
359 ATH_MSG_ERROR(
"Cannot find MDT definition for component " <<
c->name);
362 mdthalfpitch = 0.5 * (mdtobj->pitch);
◆ 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.
◆ native_to_tsz_frame()
Definition at line 371 of file Station.cxx.
372 int amdbVersion = mysql.getNovaReadVersion();
374 if (amdbVersion > 0 && amdbVersion < 7 &&
m_name[0] !=
'B') {
375 ATH_MSG_DEBUG(
"For AMDB version " << amdbVersion <<
" a left-handed chamber coordinate system was used "
376 <<
" for endcap side A so be very careful.");
388 GeoTrf::Translate3D AMDBorgTranslation(0, 0, 0);
389 if ((
m_name[0] ==
'B' ||
p.isBarrelLike) &&
p.zindex < 0 && (!
p.isMirrored) &&
hasMdts()) {
393 ATH_MSG_VERBOSE(
" GetThickness / getAmdbO_thick / GetLength() / getAmdbO_length " <<
404 ATH_MSG_VERBOSE(
" GetThickness / getAmdbO_thick / GetLength() / getAmdbO_length " <<
◆ Npositions()
int MuonGM::Station::Npositions |
( |
| ) |
const |
◆ operator=()
◆ SetAlignPos()
Definition at line 42 of file Station.cxx.
46 p.zindex <<
" " <<
p.phiindex <<
" " <<
p.zindex * 100 +
p.phiindex <<
51 int key =
p.zindex * 100 +
p.phiindex;
◆ SetComponent()
void MuonGM::Station::SetComponent |
( |
Component * |
c | ) |
|
◆ SetCutout()
void MuonGM::Station::SetCutout |
( |
Cutout * |
c | ) |
|
◆ setHasMdts()
void MuonGM::Station::setHasMdts |
( |
bool |
x | ) |
|
|
inline |
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ SetPosition()
void MuonGM::Station::SetPosition |
( |
Position |
p | ) |
|
Definition at line 87 of file Station.cxx.
91 p.zindex <<
" " <<
p.phiindex <<
" " <<
p.zindex * 100 +
p.phiindex);
◆ tsz_to_global_frame()
Definition at line 430 of file Station.cxx.
449 if ((
p.isBarrelLike) || (
m_name[0] ==
'B')) {
456 if ((
p.isBarrelLike) || (
m_name[0] ==
'B' &&
p.zindex < 0 &&
hasMdts())) {
458 vec.z() =
p.z + halfpitch;
471 ATH_MSG_VERBOSE(
" gamma is not changing sign - original " <<
p.gamma <<
" new one " <<
p.gamma <<
472 " alpha / beta " <<
p.alpha <<
" " <<
p.beta);
480 if (
m_name[0] ==
'B' ||
p.isBarrelLike) {
497 }
else if (
p.z < 0) {
505 return GeoTrf::Translate3D(
vec.x(),
vec.y(),
vec.z()) * nominalTransf * abgRot;
◆ tsz_to_native_frame()
◆ operator<<
std::ostream& operator<< |
( |
std::ostream & |
os, |
|
|
const Station & |
s |
|
) |
| |
|
friend |
Definition at line 326 of file Station.cxx.
327 os <<
"Station m_name: " <<
s.m_name <<
" " <<
s.m_components.size() << std::endl;
328 for (
unsigned int i = 0;
i <
s.m_components.size();
i++)
329 os <<
"\t" <<
s.m_components[
i].get() << std::endl;
332 for (
k =
s.begin();
k !=
s.end(); ++
k)
333 os <<
"\t\t" << (*k).second << std::endl;
336 for (ak =
s.abegin(); ak !=
s.aend(); ++ak)
337 os <<
"\t\t" << (*ak).second << std::endl;
339 os <<
"--------------------------------------------------" << std::endl;
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_alignpositions
◆ m_amdbOrigine_along_length
std::atomic<double> MuonGM::Station::m_amdbOrigine_along_length |
|
mutableprivate |
◆ m_amdbOrigine_along_thickness
std::atomic<double> MuonGM::Station::m_amdbOrigine_along_thickness |
|
mutableprivate |
◆ m_components
std::vector<std::unique_ptr<Component> > MuonGM::Station::m_components {} |
|
private |
◆ m_cutouts
std::vector< std::unique_ptr<Cutout> > MuonGM::Station::m_cutouts {} |
|
private |
◆ m_hasMdts
bool MuonGM::Station::m_hasMdts {false} |
|
private |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ 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_name
std::string MuonGM::Station::m_name {} |
|
private |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_positions
The documentation for this class was generated from the following files:
std::atomic< MSG::Level > m_lvl
Current logging level.
GeoTrf::Transform3D tsz_to_global_frame(const MYSQL &mysql, const Position &p) const
std::vector< std::unique_ptr< Component > > m_components
std::atomic< double > m_amdbOrigine_along_length
double getAmdbOrigine_along_thickness(const MYSQL &mysql) const
std::vector< std::unique_ptr< Cutout > > m_cutouts
std::vector< size_t > vec
#define ATH_MSG_VERBOSE(x)
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
IMessageSvc * getMessageSvc(bool quiet=false)
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
AthMessaging()
Default constructor:
bool msgLvl(const MSG::Level lvl) const
Test the output level.
std::map< int, Position, std::less< int > >::const_iterator PositionIterator
PositionIterator FindPosition(int iz, int iphi) const
Eigen::Affine3d Transform3D
double getAmdbOrigine_along_length() const
std::multimap< int, AlignPos, std::less< int > >::const_iterator AlignPosIterator
GeoTrf::Transform3D tsz_to_native_frame(const MYSQL &mysql, const Position &p) const
MsgStream & msg() const
The standard message stream.
AlignPosIterator FindAlignPos(int iz, int iphi) const
Eigen::Matrix< double, 3, 1 > Vector3D
GeoTrf::Transform3D getDeltaTransform_tszFrame(const MYSQL &mysql, const AlignPos &ap) const
int GetNrOfComponents() const
#define ATH_MSG_WARNING(x)
std::string m_nm
Message source name.
AlignPosMap m_alignpositions
double GetThickness(const MYSQL &mysql) const
GeoTrf::Transform3D native_to_tsz_frame(const MYSQL &mysql, const Position &p) const
std::atomic< double > m_amdbOrigine_along_thickness
void initMessaging() const
Initialize our message level and MessageSvc.
PositionIterator end() const
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Component * GetComponent(int i) const
double mdtHalfPitch(const MYSQL &mysql) const