ATLAS Offline Software
Loading...
Searching...
No Matches
AGDDMicromegas Class Reference

#include <AGDDMicromegas.h>

Inheritance diagram for AGDDMicromegas:
Collaboration diagram for AGDDMicromegas:

Public Member Functions

 AGDDMicromegas (const std::string &s, AGDDDetectorStore &ds, AGDDVolumeStore &vs, AGDDSectionStore &ss)
virtual void CreateVolume (AGDDBuilder &builder) override
virtual void CreateSolid (const AGDDBuilder &builder) override
void Register ()
double sWidth () const
double lWidth () const
double Length () const
double Tck () const
void xFrame (double y)
double xFrame () const
void ysFrame (double y)
double ysFrame () const
void ylFrame (double y)
double ylFrame () const
MuonGM::MM_TechnologyGetTechnology ()
MMReadoutParametersGetReadoutParameters ()
virtual void SetXYZ (const std::vector< double > &v)
void small_x (double x)
double small_x () const
void large_x (double x)
double large_x () const
void y (double yval)
double y () const
void z (double zval)
double z () const
void subType (const std::string &s)
const std::string & subType () const
const std::string & GetName () const
const std::string & DetectorType () const
const std::string & DetectorID () const
void SetAddressAndPosition (AGDDDetectorPositioner *)
std::vector< AGDDDetectorPositioner * > & GetDetectorPositioners ()
const std::string & GetName () const
void SetMaterial (const std::string &n)
void AddDaughter (AGDDPositioner *v)
AGDDPositionerGetDaughter (int i)
int NrOfDaughter () const
bool HasParent () const
void AddParent (AGDDVolume *v)
void * GetVolume ()
void * GetSolid ()
void SetSolid (void *p)
void SetVolume (void *p)
void SetColor (const std::string &c)
void IsSensitiveVolume (bool v)
bool IsSensitiveVolume () const
const std::string & GetColor () const
const std::string & GetMaterial () const

Public Attributes

MMReadoutParameters roParameters
std::string tech

Protected Member Functions

void SetDetectorAddress (AGDDDetectorPositioner *)
GeoMaterial * GetMMMaterial (std::string)
void AddDetectorPosition (AGDDDetectorPositioner *p)

Protected Attributes

double m_xFrame = 0.0
double m_ysFrame = 0.0
double m_ylFrame = 0.0
AGDDDetectorStorem_ds
double m_small_x
double m_large_x
double m_y
double m_z
std::string m_detectorType
std::string m_detectorID
std::string m_sType
std::vector< AGDDDetectorPositioner * > m_detectorPositions
std::string m_name
std::string m_name
std::string m_material
std::vector< AGDDPositioner * > m_theDaughters
std::vector< AGDDVolume * > m_theParents
std::string m_color
void * m_theSolid
void * m_theVolume
bool m_isSensitive
AGDDVolumeStorem_vs

Detailed Description

Definition at line 19 of file AGDDMicromegas.h.

Constructor & Destructor Documentation

◆ AGDDMicromegas()

AGDDMicromegas::AGDDMicromegas ( const std::string & s,
AGDDDetectorStore & ds,
AGDDVolumeStore & vs,
AGDDSectionStore & ss )

Definition at line 30 of file AGDDMicromegas.cxx.

34 : MMDetectorDescription(s,ds),AGDDVolume(s,vs,ss,true)
35{
36 Register();
37}
static Double_t ss
AGDDVolume(const std::string &s, AGDDVolumeStore &vs, AGDDSectionStore &ss, bool v=false)
MMDetectorDescription(const std::string &s, AGDDDetectorStore &ds)

Member Function Documentation

◆ AddDaughter()

void AGDDVolume::AddDaughter ( AGDDPositioner * v)
inherited

Definition at line 21 of file AGDDVolume.cxx.

22{
23 m_theDaughters.push_back(v);
24 m_vs.GetVolume(v->Volume())->AddParent(this);
25}
std::vector< AGDDPositioner * > m_theDaughters
Definition AGDDVolume.h:45
AGDDVolumeStore & m_vs
Definition AGDDVolume.h:55

◆ AddDetectorPosition()

void AGDDDetector::AddDetectorPosition ( AGDDDetectorPositioner * p)
protectedinherited

Definition at line 19 of file AGDDDetector.cxx.

20{
21 m_detectorPositions.push_back(p);
22}
std::vector< AGDDDetectorPositioner * > m_detectorPositions

◆ AddParent()

void AGDDVolume::AddParent ( AGDDVolume * v)
inlineinherited

Definition at line 31 of file AGDDVolume.h.

31{m_theParents.push_back(v);}
std::vector< AGDDVolume * > m_theParents
Definition AGDDVolume.h:46

◆ CreateSolid()

void AGDDMicromegas::CreateSolid ( const AGDDBuilder & builder)
overridevirtual

Reimplemented from AGDDVolume.

Definition at line 39 of file AGDDMicromegas.cxx.

40{
41// std::cout<<"this is AGDDMicromegas::CreateSolid()"<<std::endl;
42// void *p=GetSolid();
43// if (!p)
44// {
45// std::cout<<" creating solid with dimensions "<<
46// m_small_x<<" "<<m_large_x<<" "<<m_y<<" "<<m_z<<std::endl;
47// GeoShape* solid=new GeoTrd(m_small_x/2.,m_large_x/2.,m_y/2.,m_y/2.,m_z/2.);
48// SetSolid(solid);
49// }
50
51}

◆ CreateVolume()

void AGDDMicromegas::CreateVolume ( AGDDBuilder & builder)
overridevirtual

Reimplemented from AGDDVolume.

Definition at line 53 of file AGDDMicromegas.cxx.

54{
55// std::cout<<"this is AGDDMicromegas::CreateVolume()"<<std::endl;
56
57 MuonGM::MicromegasComponent mm_comp;
58 mm_comp.name=tech;
59 mm_comp.dx1=small_x();
60 mm_comp.dx2=large_x();
61 mm_comp.dy=y();
62 mm_comp.subType=subType();
63
64 MuonGM::Micromegas cham (&mm_comp);
65 // We have IsSensitiveVolume true, so we want a GeoFulPhysVol here.
66 GeoFullPhysVol *vvv=cham.build(builder.GetMaterialManager(), 1);
67
68 CreateSolid (builder);
69
70 if (!GetVolume())
71 {
72 SetVolume(vvv);
73 }
74}
std::string tech
double small_x() const
double large_x() const
const std::string & subType() const
double y() const
virtual void CreateSolid(const AGDDBuilder &builder) override
void * GetVolume()
Definition AGDDVolume.h:32
void SetVolume(void *p)
Definition AGDDVolume.h:35
std::string name
Definition Component.h:18

◆ DetectorID()

const std::string & AGDDDetector::DetectorID ( ) const
inlineinherited

Definition at line 43 of file AGDDDetector.h.

43{return m_detectorID;}
std::string m_detectorID

◆ DetectorType()

const std::string & AGDDDetector::DetectorType ( ) const
inlineinherited

Definition at line 42 of file AGDDDetector.h.

42{return m_detectorType;}
std::string m_detectorType

◆ GetColor()

const std::string & AGDDVolume::GetColor ( ) const
inlineinherited

Definition at line 39 of file AGDDVolume.h.

39{return m_color;}
std::string m_color
Definition AGDDVolume.h:48

◆ GetDaughter()

AGDDPositioner * AGDDVolume::GetDaughter ( int i)
inlineinherited

Definition at line 28 of file AGDDVolume.h.

28{return m_theDaughters[i];}

◆ GetDetectorPositioners()

std::vector< AGDDDetectorPositioner * > & AGDDDetector::GetDetectorPositioners ( )
inherited

Definition at line 14 of file AGDDDetector.cxx.

15{
17}

◆ GetMaterial()

const std::string & AGDDVolume::GetMaterial ( ) const
inlineinherited

Definition at line 40 of file AGDDVolume.h.

40{return m_material;}
std::string m_material
Definition AGDDVolume.h:44

◆ GetMMMaterial()

GeoMaterial * AGDDDetector::GetMMMaterial ( std::string )
protectedinherited

◆ GetName() [1/2]

const std::string & AGDDDetector::GetName ( ) const
inlineinherited

Definition at line 40 of file AGDDDetector.h.

40{return m_name;}
std::string m_name

◆ GetName() [2/2]

const std::string & AGDDVolume::GetName ( ) const
inlineinherited

Definition at line 23 of file AGDDVolume.h.

23{return m_name;}
std::string m_name
Definition AGDDVolume.h:43

◆ GetReadoutParameters()

MMReadoutParameters & MMDetectorDescription::GetReadoutParameters ( )
inlineinherited

Definition at line 69 of file MMDetectorDescription.h.

69{return roParameters;}
MMReadoutParameters roParameters

◆ GetSolid()

void * AGDDVolume::GetSolid ( )
inlineinherited

Definition at line 33 of file AGDDVolume.h.

33{return m_theSolid;}
void * m_theSolid
Definition AGDDVolume.h:50

◆ GetTechnology()

MuonGM::MM_Technology * MMDetectorDescription::GetTechnology ( )
inherited

Definition at line 47 of file MMDetectorDescription.cxx.

48{
49 MuonGM::MM_Technology* t =
50 dynamic_cast<MuonGM::MM_Technology*>(m_ds.GetTechnology(GetName()));
51 return t;
52}
const std::string & GetName() const

◆ GetVolume()

void * AGDDVolume::GetVolume ( )
inlineinherited

Definition at line 32 of file AGDDVolume.h.

32{return m_theVolume;}
void * m_theVolume
Definition AGDDVolume.h:51

◆ HasParent()

bool AGDDVolume::HasParent ( ) const
inlineinherited

Definition at line 30 of file AGDDVolume.h.

30{return (m_theParents.size());}

◆ IsSensitiveVolume() [1/2]

bool AGDDVolume::IsSensitiveVolume ( ) const
inlineinherited

Definition at line 38 of file AGDDVolume.h.

38{return m_isSensitive;}
bool m_isSensitive
Definition AGDDVolume.h:53

◆ IsSensitiveVolume() [2/2]

void AGDDVolume::IsSensitiveVolume ( bool v)
inherited

Definition at line 27 of file AGDDVolume.cxx.

28{
30}

◆ large_x() [1/2]

double AGDDDetector::large_x ( ) const
inlineinherited

Definition at line 34 of file AGDDDetector.h.

34{return m_large_x;}
double m_large_x

◆ large_x() [2/2]

void AGDDDetector::large_x ( double x)
inlineinherited

Definition at line 29 of file AGDDDetector.h.

29{m_large_x=x;}
#define x

◆ Length()

double MMDetectorDescription::Length ( ) const
inlineinherited

Definition at line 53 of file MMDetectorDescription.h.

53{return y();}

◆ lWidth()

double MMDetectorDescription::lWidth ( ) const
inlineinherited

Definition at line 52 of file MMDetectorDescription.h.

52{return large_x();}

◆ NrOfDaughter()

int AGDDVolume::NrOfDaughter ( ) const
inlineinherited

Definition at line 29 of file AGDDVolume.h.

29{return m_theDaughters.size();}

◆ Register()

void MMDetectorDescription::Register ( )
inherited

Definition at line 21 of file MMDetectorDescription.cxx.

22{
23 m_ds.RegisterDetector(this);
24}

◆ SetAddressAndPosition()

void AGDDDetector::SetAddressAndPosition ( AGDDDetectorPositioner * p)
inherited

Definition at line 8 of file AGDDDetector.cxx.

9{
12}
virtual void SetDetectorAddress(AGDDDetectorPositioner *)=0
void AddDetectorPosition(AGDDDetectorPositioner *p)

◆ SetColor()

void AGDDVolume::SetColor ( const std::string & c)
inlineinherited

Definition at line 36 of file AGDDVolume.h.

◆ SetDetectorAddress()

void MMDetectorDescription::SetDetectorAddress ( AGDDDetectorPositioner * p)
protectedvirtualinherited

Implements AGDDDetector.

Definition at line 27 of file MMDetectorDescription.cxx.

28{
29 //std::cout<<"This is AGDDMicromegas::SetDetectorAddress "<<GetName()<<" "<<
30 //m_sType;
31 p->ID.detectorType="Micromegas";
32 p->theDetector=this;
33 std::stringstream stringone;
34 char side='A';
35 if (p->ID.sideIndex<0) side='C';
36 int ctype=0;
37 std::string_view subt = subType();
38 int ml=myatoi(subt.substr(3,1));
39 if (subt[2]=='L') ctype=1;
40 else if (subt[2]=='S') ctype=3;
41 int etaIndex=myatoi(subt.substr(1,1));
42 stringone<<"sMD"<<ctype<<'-'<<etaIndex<<'-'<<ml<<"-phi"<<p->ID.phiIndex+1<<side<<std::endl;
43 //std::cout<<" stringone "<<stringone.str()<<std::endl;
44 p->ID.detectorAddress=stringone.str();
45}
int myatoi(std::string_view str)

◆ SetMaterial()

void AGDDVolume::SetMaterial ( const std::string & n)
inlineinherited

Definition at line 24 of file AGDDVolume.h.

◆ SetSolid()

void AGDDVolume::SetSolid ( void * p)
inlineinherited

Definition at line 34 of file AGDDVolume.h.

◆ SetVolume()

void AGDDVolume::SetVolume ( void * p)
inlineinherited

Definition at line 35 of file AGDDVolume.h.

◆ SetXYZ()

virtual void AGDDDetector::SetXYZ ( const std::vector< double > & v)
inlinevirtualinherited

Reimplemented in sTGCDetectorDescription.

Definition at line 20 of file AGDDDetector.h.

21 {
22 m_small_x=v[0];
23 m_large_x=v[1];
24 m_y=v[2];
25 m_z=v[3];
26 }
double m_small_x

◆ small_x() [1/2]

double AGDDDetector::small_x ( ) const
inlineinherited

Definition at line 33 of file AGDDDetector.h.

33{return m_small_x;}

◆ small_x() [2/2]

void AGDDDetector::small_x ( double x)
inlineinherited

Definition at line 28 of file AGDDDetector.h.

28{m_small_x=x;}

◆ subType() [1/2]

const std::string & AGDDDetector::subType ( ) const
inlineinherited

Definition at line 37 of file AGDDDetector.h.

37{return m_sType;}
std::string m_sType

◆ subType() [2/2]

void AGDDDetector::subType ( const std::string & s)
inlineinherited

Definition at line 32 of file AGDDDetector.h.

◆ sWidth()

double MMDetectorDescription::sWidth ( ) const
inlineinherited

Definition at line 51 of file MMDetectorDescription.h.

51{return small_x();}

◆ Tck()

double MMDetectorDescription::Tck ( ) const
inlineinherited

Definition at line 54 of file MMDetectorDescription.h.

54{return z();}
double z() const

◆ xFrame() [1/2]

double MMDetectorDescription::xFrame ( ) const
inlineinherited

Definition at line 57 of file MMDetectorDescription.h.

◆ xFrame() [2/2]

void MMDetectorDescription::xFrame ( double y)
inlineinherited

Definition at line 56 of file MMDetectorDescription.h.

56{m_xFrame=y;}
void y(double yval)

◆ y() [1/2]

double AGDDDetector::y ( ) const
inlineinherited

Definition at line 35 of file AGDDDetector.h.

35{return m_y;}

◆ y() [2/2]

void AGDDDetector::y ( double yval)
inlineinherited

◆ ylFrame() [1/2]

double MMDetectorDescription::ylFrame ( ) const
inlineinherited

Definition at line 63 of file MMDetectorDescription.h.

◆ ylFrame() [2/2]

void MMDetectorDescription::ylFrame ( double y)
inlineinherited

Definition at line 62 of file MMDetectorDescription.h.

62{m_ylFrame=y;}

◆ ysFrame() [1/2]

double MMDetectorDescription::ysFrame ( ) const
inlineinherited

Definition at line 60 of file MMDetectorDescription.h.

◆ ysFrame() [2/2]

void MMDetectorDescription::ysFrame ( double y)
inlineinherited

Definition at line 59 of file MMDetectorDescription.h.

59{m_ysFrame=y;}

◆ z() [1/2]

double AGDDDetector::z ( ) const
inlineinherited

Definition at line 36 of file AGDDDetector.h.

36{return m_z;}

◆ z() [2/2]

void AGDDDetector::z ( double zval)
inlineinherited

Definition at line 31 of file AGDDDetector.h.

31{m_z=zval;}

Member Data Documentation

◆ m_color

std::string AGDDVolume::m_color
protectedinherited

Definition at line 48 of file AGDDVolume.h.

◆ m_detectorID

std::string AGDDDetector::m_detectorID
protectedinherited

Definition at line 57 of file AGDDDetector.h.

◆ m_detectorPositions

std::vector<AGDDDetectorPositioner*> AGDDDetector::m_detectorPositions
protectedinherited

Definition at line 66 of file AGDDDetector.h.

◆ m_detectorType

std::string AGDDDetector::m_detectorType
protectedinherited

Definition at line 56 of file AGDDDetector.h.

◆ m_ds

AGDDDetectorStore& MMDetectorDescription::m_ds
protectedinherited

Definition at line 76 of file MMDetectorDescription.h.

◆ m_isSensitive

bool AGDDVolume::m_isSensitive
protectedinherited

Definition at line 53 of file AGDDVolume.h.

◆ m_large_x

double AGDDDetector::m_large_x
protectedinherited

Definition at line 51 of file AGDDDetector.h.

◆ m_material

std::string AGDDVolume::m_material
protectedinherited

Definition at line 44 of file AGDDVolume.h.

◆ m_name [1/2]

std::string AGDDDetector::m_name
protectedinherited

Definition at line 68 of file AGDDDetector.h.

◆ m_name [2/2]

std::string AGDDVolume::m_name
protectedinherited

Definition at line 43 of file AGDDVolume.h.

◆ m_small_x

double AGDDDetector::m_small_x
protectedinherited

Definition at line 50 of file AGDDDetector.h.

◆ m_sType

std::string AGDDDetector::m_sType
protectedinherited

Definition at line 59 of file AGDDDetector.h.

◆ m_theDaughters

std::vector<AGDDPositioner*> AGDDVolume::m_theDaughters
protectedinherited

Definition at line 45 of file AGDDVolume.h.

◆ m_theParents

std::vector<AGDDVolume*> AGDDVolume::m_theParents
protectedinherited

Definition at line 46 of file AGDDVolume.h.

◆ m_theSolid

void* AGDDVolume::m_theSolid
protectedinherited

Definition at line 50 of file AGDDVolume.h.

◆ m_theVolume

void* AGDDVolume::m_theVolume
protectedinherited

Definition at line 51 of file AGDDVolume.h.

◆ m_vs

AGDDVolumeStore& AGDDVolume::m_vs
protectedinherited

Definition at line 55 of file AGDDVolume.h.

◆ m_xFrame

double MMDetectorDescription::m_xFrame = 0.0
protectedinherited

Definition at line 72 of file MMDetectorDescription.h.

◆ m_y

double AGDDDetector::m_y
protectedinherited

Definition at line 52 of file AGDDDetector.h.

◆ m_ylFrame

double MMDetectorDescription::m_ylFrame = 0.0
protectedinherited

Definition at line 74 of file MMDetectorDescription.h.

◆ m_ysFrame

double MMDetectorDescription::m_ysFrame = 0.0
protectedinherited

Definition at line 73 of file MMDetectorDescription.h.

◆ m_z

double AGDDDetector::m_z
protectedinherited

Definition at line 53 of file AGDDDetector.h.

◆ roParameters

MMReadoutParameters MMDetectorDescription::roParameters
inherited

Definition at line 67 of file MMDetectorDescription.h.

◆ tech

std::string AGDDDetector::tech
inherited

Definition at line 38 of file AGDDDetector.h.


The documentation for this class was generated from the following files: