ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
MuonGM::DriftTube Class Reference

#include <DriftTube.h>

Inheritance diagram for MuonGM::DriftTube:
Collaboration diagram for MuonGM::DriftTube:

Public Member Functions

GeoVPhysVol * build (StoredMaterialManager &matManager)
 
virtual void print () const override
 
 DriftTube (const MYSQL &mysql, const std::string &s)
 
void setLogVolName (const std::string &str)
 

Public Attributes

std::string gasMaterial {}
 
std::string tubeMaterial {}
 
std::string plugMaterial {}
 
std::string wireMaterial {}
 
double length {0.}
 
double outerRadius {0.}
 
double gasRadius {0.}
 
double plugLength {0.}
 
std::string name {}
 
std::string logVolName {}
 

Detailed Description

Definition at line 17 of file DriftTube.h.

Constructor & Destructor Documentation

◆ DriftTube()

MuonGM::DriftTube::DriftTube ( const MYSQL mysql,
const std::string &  s 
)

Definition at line 27 of file DriftTube.cxx.

28  : DetectorElement(n),
29  gasMaterial ("muo::ArCO2"),
30  tubeMaterial ("std::Aluminium"),
31  plugMaterial ("std::Bakelite"),
32  wireMaterial ("std::Aluminium"),
33  length(0.) // length is set in MultiLayer.cxx
34  {
35  const MDT *md = dynamic_cast<const MDT*>(mysql.GetTechnology(name.substr(0, 5)));
36  gasRadius = md->innerRadius;
37  outerRadius = gasRadius + md->tubeWallThickness;
38  plugLength = md->tubeEndPlugLength;
39  }

Member Function Documentation

◆ build()

GeoVPhysVol * MuonGM::DriftTube::build ( StoredMaterialManager matManager)

Definition at line 41 of file DriftTube.cxx.

41  {
42  const GeoTube *stube = new GeoTube(0.0, outerRadius, length / 2.0);
43  const GeoMaterial *mtube = matManager.getMaterial(tubeMaterial);
44  const GeoLogVol *ltube = new GeoLogVol("MDTDriftWall", stube, mtube);
45  GeoPhysVol *ptube = new GeoPhysVol(ltube);
46 
47  const GeoTube *splug = new GeoTube(0.0, outerRadius, plugLength / 2.0);
48  const GeoMaterial *mplug = matManager.getMaterial(plugMaterial);
49  const GeoLogVol *lplug = new GeoLogVol("Endplug", splug, mplug);
50  GeoPhysVol *pplug = new GeoPhysVol(lplug);
51 
52  const GeoTube *sgas = new GeoTube(0, gasRadius, length / 2.0 - plugLength);
53  const GeoMaterial *mgas = matManager.getMaterial(gasMaterial);
54  const GeoLogVol *lgas = new GeoLogVol("SensitiveGas", sgas, mgas);
55  GeoPhysVol *pgas = new GeoPhysVol(lgas);
56 
57  GeoSerialDenominator *plugDenominator = new GeoSerialDenominator("Tube Endplug");
58  GeoTransform *ec0X = new GeoTransform(GeoTrf::TranslateZ3D(+(length - plugLength) / 2));
59  GeoTransform *ec1X = new GeoTransform(GeoTrf::TranslateZ3D(-(length - plugLength) / 2));
60  std::string sGasName = "SensitiveGas";
61  GeoNameTag *gasDenominator = new GeoNameTag(sGasName);
62 
63  ptube->add(plugDenominator);
64  ptube->add(ec0X);
65  ptube->add(pplug);
66  ptube->add(ec1X);
67  ptube->add(pplug);
68  ptube->add(gasDenominator);
69  ptube->add(pgas);
70 
71  return ptube;
72  }

◆ print()

void MuonGM::DriftTube::print ( ) const
overridevirtual

Implements MuonGM::DetectorElement.

Definition at line 74 of file DriftTube.cxx.

74  {
75  MsgStream log(Athena::getMessageSvc(), "MuonGM::DriftTube");
76 
77  log << MSG::INFO << "Drift tube " << name.c_str() << " :" << std::endl
78  << " Tube material : " << tubeMaterial.c_str() << std::endl
79  << " Radius : " << outerRadius << std::endl
80  << " Length : " << length << std::endl
81  << " Thickness : " << outerRadius - gasRadius << " mm" << std::endl
82  << " Gas material : " << gasMaterial.c_str() << std::endl
83  << " EP length : " << plugLength << endmsg;
84  }

◆ setLogVolName()

void MuonGM::DetectorElement::setLogVolName ( const std::string &  str)
inlineinherited

Definition at line 22 of file DetectorElement.h.

22 { logVolName = str; }

Member Data Documentation

◆ gasMaterial

std::string MuonGM::DriftTube::gasMaterial {}

Definition at line 19 of file DriftTube.h.

◆ gasRadius

double MuonGM::DriftTube::gasRadius {0.}

Definition at line 25 of file DriftTube.h.

◆ length

double MuonGM::DriftTube::length {0.}

Definition at line 23 of file DriftTube.h.

◆ logVolName

std::string MuonGM::DetectorElement::logVolName {}
inherited

Definition at line 18 of file DetectorElement.h.

◆ name

std::string MuonGM::DetectorElement::name {}
inherited

Definition at line 17 of file DetectorElement.h.

◆ outerRadius

double MuonGM::DriftTube::outerRadius {0.}

Definition at line 24 of file DriftTube.h.

◆ plugLength

double MuonGM::DriftTube::plugLength {0.}

Definition at line 26 of file DriftTube.h.

◆ plugMaterial

std::string MuonGM::DriftTube::plugMaterial {}

Definition at line 21 of file DriftTube.h.

◆ tubeMaterial

std::string MuonGM::DriftTube::tubeMaterial {}

Definition at line 20 of file DriftTube.h.

◆ wireMaterial

std::string MuonGM::DriftTube::wireMaterial {}

Definition at line 22 of file DriftTube.h.


The documentation for this class was generated from the following files:
MuonGM::DetectorElement::name
std::string name
Definition: DetectorElement.h:17
MuonGM::DriftTube::outerRadius
double outerRadius
Definition: DriftTube.h:24
MuonGM::DriftTube::tubeMaterial
std::string tubeMaterial
Definition: DriftTube.h:20
MuonGM::DriftTube::plugMaterial
std::string plugMaterial
Definition: DriftTube.h:21
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
MuonGM::DriftTube::gasMaterial
std::string gasMaterial
Definition: DriftTube.h:19
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
MuonGM::DriftTube::wireMaterial
std::string wireMaterial
Definition: DriftTube.h:22
MuonGM::DriftTube::gasRadius
double gasRadius
Definition: DriftTube.h:25
MuonGM::DriftTube::plugLength
double plugLength
Definition: DriftTube.h:26
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
StoredMaterialManager::getMaterial
virtual const GeoMaterial * getMaterial(const std::string &name)=0
MuonGM::DetectorElement::logVolName
std::string logVolName
Definition: DetectorElement.h:18
MuonGM::DriftTube::length
double length
Definition: DriftTube.h:23
MuonGM::DetectorElement::DetectorElement
DetectorElement(const std::string &n)
Definition: DetectorElement.h:20
MDT
@ MDT
Definition: RegSelEnums.h:31