|
ATLAS Offline Software
|
Writes the inner detector and calorimeter geometry to an XML file for use with Atlantis.
More...
#include <GeometryWriter.h>
|
| GeometryWriter (const std::string &t, const std::string &n, const IInterface *p) |
| Constructor. More...
|
|
virtual StatusCode | writeGeometry () override |
| Writes the inner detector and calorimeter geometry to an XML file. More...
|
|
virtual | ~GeometryWriter () |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
void | writeHeader (std::ofstream &out) |
| Writes the header of the XML file. More...
|
|
void | writePixelGeometry (std::ofstream &out) |
| Writes the geometry of the pixel detector. More...
|
|
void | writeSCTGeometry (std::ofstream &out) |
| Writes the geometry of the silicon detector. More...
|
|
void | writeTRTGeometry (std::ofstream &out) |
| Writes the geometry of the TRT detector. More...
|
|
void | writeSolenoidGeometry (std::ofstream &out) |
| Writes the (hardcoded) geometry of the solenoid. More...
|
|
void | writeLArGeometry (std::ofstream &out) |
| Writes the geometry of the LAr calorimeters. More...
|
|
void | writeMBTSGeometry (std::ofstream &out) |
| Writes the geometry of the Minimum Bias Trigger Scintillators. More...
|
|
void | writeTILEGeometry (std::ofstream &out) |
| Writes the geometry of the TILE calorimeters. More...
|
|
void | writeFooter (std::ofstream &out) |
| Writes the footer of the XML file. More...
|
|
void | writeDiscElement (std::ofstream &out, std::string p, std::string c, std::string n, double rIn, double rOut) |
| Writes <ADisc> element to the XML file. More...
|
|
void | writeRectangleElement (std::ofstream &out, std::string p, std::string c, std::string n, double xIn, double xOut, double yIn, double yOut) |
| Writes <ARectangle> element to the XML file. More...
|
|
void | writeRectanglishElement (std::ofstream &out, std::string p, std::string c, std::string n, double xIn, double xOut, double yIn, double yOut) |
| Writes <AGeneralPath> element to the XML file. More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
Writes the inner detector and calorimeter geometry to an XML file for use with Atlantis.
Definition at line 37 of file GeometryWriter.h.
◆ StoreGateSvc_t
◆ GeometryWriter()
JiveXML::GeometryWriter::GeometryWriter |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
|
inline |
Constructor.
- Parameters
-
detStore | pointer to the detector store service |
log | log message stream |
Definition at line 46 of file GeometryWriter.h.
◆ ~GeometryWriter()
virtual JiveXML::GeometryWriter::~GeometryWriter |
( |
| ) |
|
|
inlinevirtual |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
const InterfaceID & JiveXML::IGeometryWriter::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ writeDiscElement()
void JiveXML::GeometryWriter::writeDiscElement |
( |
std::ofstream & |
out, |
|
|
std::string |
p, |
|
|
std::string |
c, |
|
|
std::string |
n, |
|
|
double |
rIn, |
|
|
double |
rOut |
|
) |
| |
|
private |
Writes <ADisc> element to the XML file.
- Parameters
-
out | stream where the element is written to |
p | projection attribute |
c | fill color from colormap |
n | detector/module name |
rIn | inner radius of the disc |
rOut | outer radius of the disc |
◆ writeFooter()
void JiveXML::GeometryWriter::writeFooter |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the footer of the XML file.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 895 of file GeometryWriter.cxx.
897 out <<
"</AGeometry>" << std::endl;
◆ writeGeometry()
StatusCode JiveXML::GeometryWriter::writeGeometry |
( |
| ) |
|
|
overridevirtual |
Writes the inner detector and calorimeter geometry to an XML file.
Implements JiveXML::IGeometryWriter.
Definition at line 35 of file GeometryWriter.cxx.
43 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not retrieve InDetDD::PixelDetectorManager" <<
endmsg;
46 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not retrieve PixelIDHelper" <<
endmsg;
54 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not retrieve InDetDD::SCT_DetectorManager" <<
endmsg;
57 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not retrieve SCT_IDHelper" <<
endmsg;
65 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not retrieve InDetDD::TRT_DetectorManager" <<
endmsg;
70 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not retrieve TRT_IDHelper" <<
endmsg;
116 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not retrieve TileDetDescrManager" <<
endmsg;
123 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not retrieve LArDetectorManager for MBTS" <<
endmsg;
131 return StatusCode::SUCCESS;
◆ writeHeader()
void JiveXML::GeometryWriter::writeHeader |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the header of the XML file.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 134 of file GeometryWriter.cxx.
136 out <<
"<?xml version=\"1.0\"?>" << std::endl
137 <<
"<!DOCTYPE AGeometry [" << std::endl
138 <<
"<!ELEMENT AGeometry (ADisc | ARectangle | ABarrelCalorimeter |" << std::endl
139 <<
" AEndcapCalorimeter | AGapCalorimeter | AEndcapCryostat |" << std::endl
140 <<
" ABarrelSiliconDetector | AEndcapSiliconDetector |" << std::endl
141 <<
" ABarrelTRTDetector | AEndcapTRTDetector)* >" << std::endl
142 <<
"<!ELEMENT ADisc EMPTY >" << std::endl
143 <<
"<!ATTLIST ADisc" << std::endl
144 <<
" p CDATA #REQUIRED" << std::endl
145 <<
" c CDATA #REQUIRED" << std::endl
146 <<
" n CDATA #REQUIRED" << std::endl
147 <<
" rIn CDATA #REQUIRED" << std::endl
148 <<
" rOut CDATA #REQUIRED" << std::endl
149 <<
" nIn CDATA \"256\"" << std::endl
150 <<
" nOut CDATA \"256\">" << std::endl
151 <<
"<!ELEMENT ARectangle EMPTY >" << std::endl
152 <<
"<!ATTLIST ARectangle" << std::endl
153 <<
" p CDATA #REQUIRED" << std::endl
154 <<
" c CDATA #REQUIRED" << std::endl
155 <<
" n CDATA #REQUIRED" << std::endl
156 <<
" xMin CDATA #REQUIRED" << std::endl
157 <<
" xMax CDATA #REQUIRED" << std::endl
158 <<
" yMin CDATA #REQUIRED" << std::endl
159 <<
" yMax CDATA #REQUIRED" << std::endl
160 <<
" xR (YES|NO) \"YES\"" << std::endl
161 <<
" yR (YES|NO) \"YES\">" << std::endl
162 <<
"<!ELEMENT ABarrelCalorimeter EMPTY >" << std::endl
163 <<
"<!ATTLIST ABarrelCalorimeter" << std::endl
164 <<
" c CDATA #REQUIRED" << std::endl
165 <<
" n CDATA #REQUIRED" << std::endl
166 <<
" sampling CDATA #REQUIRED" << std::endl
167 <<
" region CDATA #REQUIRED" << std::endl
168 <<
" rMin CDATA #REQUIRED" << std::endl
169 <<
" rMax CDATA #REQUIRED" << std::endl
170 <<
" zMin CDATA #REQUIRED" << std::endl
171 <<
" zMax CDATA #REQUIRED" << std::endl
172 <<
" eta0 CDATA #REQUIRED" << std::endl
173 <<
" deta CDATA #REQUIRED" << std::endl
174 <<
" neta CDATA #REQUIRED" << std::endl
175 <<
" meta CDATA #REQUIRED" << std::endl
176 <<
" phi0 CDATA #REQUIRED" << std::endl
177 <<
" nphi CDATA #REQUIRED>" << std::endl
178 <<
"<!ELEMENT AEndcapCalorimeter EMPTY >" << std::endl
179 <<
"<!ATTLIST AEndcapCalorimeter" << std::endl
180 <<
" c CDATA #REQUIRED" << std::endl
181 <<
" n CDATA #REQUIRED" << std::endl
182 <<
" sampling CDATA #REQUIRED" << std::endl
183 <<
" region CDATA #REQUIRED" << std::endl
184 <<
" rMin CDATA #REQUIRED" << std::endl
185 <<
" rMax CDATA #REQUIRED" << std::endl
186 <<
" zMin CDATA #REQUIRED" << std::endl
187 <<
" zMax CDATA #REQUIRED" << std::endl
188 <<
" eta0 CDATA #REQUIRED" << std::endl
189 <<
" deta CDATA #REQUIRED" << std::endl
190 <<
" neta CDATA #REQUIRED" << std::endl
191 <<
" meta CDATA #REQUIRED" << std::endl
192 <<
" phi0 CDATA #REQUIRED" << std::endl
193 <<
" nphi CDATA #REQUIRED>" << std::endl
194 <<
"<!ELEMENT AGapCalorimeter EMPTY >" << std::endl
195 <<
"<!ATTLIST AGapCalorimeter" << std::endl
196 <<
" c CDATA #REQUIRED" << std::endl
197 <<
" n CDATA #REQUIRED" << std::endl
198 <<
" sampling CDATA #REQUIRED" << std::endl
199 <<
" region CDATA #REQUIRED" << std::endl
200 <<
" rMin CDATA #REQUIRED" << std::endl
201 <<
" rMax CDATA #REQUIRED" << std::endl
202 <<
" zMin CDATA #REQUIRED" << std::endl
203 <<
" zMax CDATA #REQUIRED" << std::endl
204 <<
" eta CDATA #REQUIRED" << std::endl
205 <<
" phi0 CDATA #REQUIRED" << std::endl
206 <<
" nphi CDATA #REQUIRED>" << std::endl
207 <<
"<!ELEMENT AEndcapCryostat EMPTY >" << std::endl
208 <<
"<!ATTLIST AEndcapCryostat" << std::endl
209 <<
" c CDATA #REQUIRED" << std::endl
210 <<
" n CDATA #REQUIRED" << std::endl
211 <<
" sampling CDATA #REQUIRED" << std::endl
212 <<
" region CDATA #REQUIRED" << std::endl
213 <<
" rMin CDATA #REQUIRED" << std::endl
214 <<
" rMax CDATA #REQUIRED" << std::endl
215 <<
" zMin CDATA #REQUIRED" << std::endl
216 <<
" zMax CDATA #REQUIRED" << std::endl
217 <<
" neta CDATA #REQUIRED" << std::endl
218 <<
" nphi CDATA #REQUIRED>" << std::endl
219 <<
"<!ELEMENT ABarrelSiliconDetector EMPTY >" << std::endl
220 <<
"<!ATTLIST ABarrelSiliconDetector" << std::endl
221 <<
" c CDATA #REQUIRED" << std::endl
222 <<
" n CDATA #REQUIRED" << std::endl
223 <<
" layer CDATA #REQUIRED" << std::endl
224 <<
" length CDATA #REQUIRED" << std::endl
225 <<
" width CDATA #REQUIRED" << std::endl
226 <<
" thickness CDATA #REQUIRED" << std::endl
227 <<
" tilt CDATA #REQUIRED" << std::endl
228 <<
" nz CDATA #REQUIRED" << std::endl
229 <<
" nphi CDATA #REQUIRED" << std::endl
230 <<
" r0 CDATA #REQUIRED" << std::endl
231 <<
" phi0 CDATA #REQUIRED" << std::endl
232 <<
" zMin CDATA #REQUIRED" << std::endl
233 <<
" zMax CDATA #REQUIRED>" << std::endl
234 <<
"<!ELEMENT AEndcapSiliconDetector EMPTY >" << std::endl
235 <<
"<!ATTLIST AEndcapSiliconDetector" << std::endl
236 <<
" c CDATA #REQUIRED" << std::endl
237 <<
" n CDATA #REQUIRED" << std::endl
238 <<
" layer CDATA #REQUIRED" << std::endl
239 <<
" length CDATA #REQUIRED" << std::endl
240 <<
" width CDATA #REQUIRED" << std::endl
241 <<
" thickness CDATA #REQUIRED" << std::endl
242 <<
" nz CDATA #REQUIRED" << std::endl
243 <<
" nphi CDATA #REQUIRED" << std::endl
244 <<
" rMin CDATA #REQUIRED" << std::endl
245 <<
" rMax CDATA #REQUIRED" << std::endl
246 <<
" phi0 CDATA #REQUIRED" << std::endl
247 <<
" zMin CDATA #REQUIRED" << std::endl
248 <<
" zMax CDATA #REQUIRED>" << std::endl
249 <<
"<!ELEMENT ABarrelTRTDetector EMPTY >" << std::endl
250 <<
"<!ATTLIST ABarrelTRTDetector" << std::endl
251 <<
" c CDATA #REQUIRED" << std::endl
252 <<
" n CDATA #REQUIRED" << std::endl
253 <<
" layer CDATA #REQUIRED" << std::endl
254 <<
" nphi CDATA #REQUIRED" << std::endl
255 <<
" rMin CDATA #REQUIRED" << std::endl
256 <<
" rMax CDATA #REQUIRED" << std::endl
257 <<
" phiIn CDATA #REQUIRED" << std::endl
258 <<
" phiOut CDATA #REQUIRED" << std::endl
259 <<
" zMin CDATA #REQUIRED" << std::endl
260 <<
" zMax CDATA #REQUIRED>" << std::endl
261 <<
"<!ELEMENT AEndcapTRTDetector EMPTY >" << std::endl
262 <<
"<!ATTLIST AEndcapTRTDetector" << std::endl
263 <<
" c CDATA #REQUIRED" << std::endl
264 <<
" n CDATA #REQUIRED" << std::endl
265 <<
" layer CDATA #REQUIRED" << std::endl
266 <<
" nphi CDATA #REQUIRED" << std::endl
267 <<
" rMin CDATA #REQUIRED" << std::endl
268 <<
" rMax CDATA #REQUIRED" << std::endl
269 <<
" phi0 CDATA #REQUIRED" << std::endl
270 <<
" zMin CDATA #REQUIRED" << std::endl
271 <<
" zMax CDATA #REQUIRED>" << std::endl
273 <<
"<AGeometry>" << std::endl;
◆ writeLArGeometry()
void JiveXML::GeometryWriter::writeLArGeometry |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the geometry of the LAr calorimeters.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 612 of file GeometryWriter.cxx.
621 for (
int region=0; region<8; region++) {
623 for (
int inner=0; inner<2; inner++) {
625 int minEtaIndex = 0, maxEtaIndex = 0;
633 std::string technology;
636 if (!element)
continue;
641 if (element->
is_tile())
continue;
648 if (idHelper->
eta(
id) != idHelper->
eta_min(
id) || idHelper->
side(
id) < 0)
continue;
650 if (idHelper->
region(
id) != region)
continue;
657 if (element->
z() < 0)
continue;
660 etaIndex = idHelper->
eta(
id);
664 if (!oneSuchElement) {
665 oneSuchElement = element;
666 minEtaIndex = maxEtaIndex = etaIndex;
667 minEta = element->
eta();
669 if (etaIndex < minEtaIndex) {
670 minEtaIndex = etaIndex;
671 minEta = element->
eta();
673 if (etaIndex > maxEtaIndex) {
674 maxEtaIndex = etaIndex;
679 if (oneSuchElement) {
691 name =
"LAr Presampler";
705 name =
"LAr_EC_Presampler";
712 name = inner ?
"LAr Inner Endcap" :
"LAr Outer Endcap";
742 double phi0 = 180./
M_PI * (oneSuchElement->
phi()-oneSuchElement->
dphi()/2.);
744 int numEta = maxEtaIndex - minEtaIndex + 1;
748 out <<
"<ABarrelCalorimeter c=\"" <<
color <<
"\" n=\"" <<
name <<
"\""
749 <<
" sampling=\"" << sampling <<
"\" region=\"" << region%8 <<
"\""
750 <<
" rMin=\"" << (oneSuchElement->
r()-oneSuchElement->
dr()/2.)/10. <<
"\""
751 <<
" rMax=\"" << (oneSuchElement->
r()+oneSuchElement->
dr()/2.)/10. <<
"\""
754 <<
" eta0=\"" << minEta-oneSuchElement->
deta()/2. <<
"\""
755 <<
" deta=\"" << oneSuchElement->
deta() <<
"\""
756 <<
" neta=\"" << numEta <<
"\""
757 <<
" meta=\"" << minEtaIndex <<
"\""
758 <<
" phi0=\"" <<
phi0 <<
"\""
759 <<
" nphi=\"" << numPhi <<
"\""
760 <<
" />" << std::endl;
763 out <<
"<AEndcapCalorimeter c=\"" <<
color <<
"\" n=\"" <<
name <<
"\""
764 <<
" sampling=\"" << sampling <<
"\" region=\"" << region%8 <<
"\""
767 <<
" zMin=\"" << (oneSuchElement->
z()-oneSuchElement->
dz()/2.)/10. <<
"\""
768 <<
" zMax=\"" << (oneSuchElement->
z()+oneSuchElement->
dz()/2.)/10. <<
"\""
769 <<
" eta0=\"" << minEta-oneSuchElement->
deta()/2. <<
"\""
770 <<
" deta=\"" << oneSuchElement->
deta() <<
"\""
771 <<
" neta=\"" << numEta <<
"\""
772 <<
" meta=\"" << minEtaIndex <<
"\""
773 <<
" phi0=\"" <<
phi0 <<
"\""
774 <<
" nphi=\"" << numPhi <<
"\""
775 <<
" />" << std::endl;
778 out <<
"<ADisc p=\"YX\" c=\"" <<
color <<
"\" n=\"" <<
name <<
"\""
779 <<
" rIn=\"" << descriptor->
calo_r_min()/10. <<
"\""
780 <<
" rOut=\"" << descriptor->
calo_r_max()/10. <<
"\""
781 <<
" />" << std::endl;
782 out <<
"<ARectangle p=\"RZ\" c=\"" <<
color <<
"\" n=\"" <<
name <<
"\""
783 <<
" xMin=\"" << descriptor->
calo_z_min()/10. <<
"\""
784 <<
" xMax=\"" << descriptor->
calo_z_max()/10. <<
"\""
785 <<
" yMin=\"" << descriptor->
calo_r_min()/10. <<
"\""
786 <<
" yMax=\"" << descriptor->
calo_r_max()/10. <<
"\""
787 <<
" />" << std::endl;
◆ writeMBTSGeometry()
void JiveXML::GeometryWriter::writeMBTSGeometry |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the geometry of the Minimum Bias Trigger Scintillators.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 795 of file GeometryWriter.cxx.
806 for (
unsigned int c=0;
c< myVol->getNChildVols();
c++)
808 PVConstLink child = myVol->getChildVol(
c);
809 if((child->getLogVol())->getName()==
"MBTS_mother")
811 int sampling=0,numPhi=0;
812 std::string stringOfNames=
"";
816 double zlocation = translate.z();
818 zlocation=-zlocation;
822 PVConstLink pvAirEnv = 0;
823 for (
unsigned int cc=0;
cc< child->getNChildVols();
cc++) {
824 if(((child->getChildVol(
cc))->getLogVol())->getName()==
"MBTSAirEnv") {
825 pvAirEnv = child->getChildVol(
cc);
826 transformToScin = child->getXToChildVol(
cc);
831 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not find MBTSAirEnv" <<
endmsg;
835 PVConstLink pvAluEnv = 0;
836 for (
unsigned int ichildAirEnv=0; ichildAirEnv<pvAirEnv->getNChildVols(); ichildAirEnv++) {
837 if(((pvAirEnv->getChildVol(ichildAirEnv))->getLogVol())->getName()==
"MBTSAluEnv") {
838 pvAluEnv = pvAirEnv->getChildVol(ichildAirEnv);
839 transformToScin = transformToScin * pvAirEnv->getXToChildVol(ichildAirEnv);
843 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not find MBTSAluEnv" <<
endmsg;
847 PVConstLink pvAirInAlu = 0;
848 for (
unsigned int ichildAluEnv=0; ichildAluEnv<pvAluEnv->getNChildVols(); ichildAluEnv++) {
849 if(((pvAluEnv->getChildVol(ichildAluEnv))->getLogVol())->getName()==
"MBTSAirInAlu") {
850 pvAirInAlu = pvAluEnv->getChildVol(ichildAluEnv);
851 transformToScin = transformToScin * pvAluEnv->getXToChildVol(ichildAluEnv);
855 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Could not find MBTSAirInAlu" <<
endmsg;
859 for (
unsigned int ichildAirInAlu=0; ichildAirInAlu<pvAirInAlu->getNChildVols(); ichildAirInAlu++) {
860 PVConstLink childschild = pvAirInAlu->getChildVol(ichildAirInAlu);
861 if((childschild->getLogVol())->getShape()->typeID() == GeoTrd::getClassTypeID() )
863 std::string currentName = (childschild->getLogVol())->
getName();
864 if(currentName!=
"MBTS1" && currentName!=
"MBTS2")
continue;
865 if(stringOfNames.find(currentName,0) == std::string::npos)
867 stringOfNames+=
" " + currentName;
868 GeoTrf::Vector3D translateToScin = (transformToScin * pvAirInAlu->getXToChildVol(ichildAirInAlu)).translation();
869 const GeoTrd* theTrd =
dynamic_cast<const GeoTrd*
> ((childschild->getLogVol())->getShape());
870 double rho=
pow(translateToScin.x(),2.0) +
pow(translateToScin.y(),2.0);
872 double RMin=
rho-theTrd->getZHalfLength();
873 double RMax=
rho+theTrd->getZHalfLength();
874 double zmovement=translateToScin.z();
875 double zthickness=theTrd->getXHalfLength1();
876 out <<
"<AEndcapCryostat c=\"HCAL\" n=\"Minimum Bias Trigger Scintillators\""
877 <<
" sampling=\"" << sampling <<
"\" region=\"" << 0 <<
"\""
878 <<
" rMin=\"" << RMin/10. <<
"\""
879 <<
" rMax=\"" << RMax/10. <<
"\""
880 <<
" zMin=\"" << (zlocation+zmovement-zthickness)/10. <<
"\""
881 <<
" zMax=\"" << (zlocation+zmovement+zthickness)/10. <<
"\""
882 <<
" neta=\"" <<
"1" <<
"\""
883 <<
" nphi=\"" << numPhi <<
"\""
884 <<
" />" << std::endl;
◆ writePixelGeometry()
void JiveXML::GeometryWriter::writePixelGeometry |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the geometry of the pixel detector.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 276 of file GeometryWriter.cxx.
278 InDetDD::SiDetectorElementCollection::const_iterator
it;
285 if (!element)
continue;
290 double rMin = element->
rMin();
291 double rMax = element->
rMax();
292 double zMax = element->
zMax();
295 if (
next->rMin() < rMin) rMin =
next->rMin();
296 if (
next->rMax() > rMax) rMax =
next->rMax();
297 if (
next->zMax() > zMax) zMax =
next->zMax();
302 out <<
"<ABarrelSiliconDetector c=\"" <<
"PIX" <<
"\" n=\"" <<
"Pixel" <<
"\""
304 <<
" length=\"" << element->
length()/10. <<
"\""
305 <<
" width=\"" << element->
width()/10. <<
"\""
306 <<
" thickness=\"" << (rMax - rMin - element->
sinTilt()*element->
width())/40. <<
"\""
307 <<
" tilt=\"" << 180./
M_PI * asin(element->
sinTilt()) <<
"\""
311 <<
" r0=\"" << (rMin+rMax)/20. <<
"\""
312 <<
" phi0=\"" << 180./
M_PI * (element->
phiMin()+element->
phiMax())/2. <<
"\""
313 <<
" zMin=\"" << -zMax/10. <<
"\""
314 <<
" zMax=\"" << zMax/10. <<
"\""
315 <<
" />" << std::endl;
322 double rMin = element->
rMin();
323 double rMax = element->
rMax();
324 double zMin = element->
zMin();
325 double zMax = element->
zMax();
328 if (
next->zMin() < 0)
continue;
329 if (
next->rMin() < rMin) rMin =
next->rMin();
330 if (
next->rMax() > rMax) rMax =
next->rMax();
331 if (
next->zMin() < zMin) zMin =
next->zMin();
332 if (
next->zMax() > zMax) zMax =
next->zMax();
338 out <<
"<AEndcapSiliconDetector c=\"" <<
"PIX" <<
"\" n=\"" <<
"Pixel" <<
"\""
340 <<
" length=\"" << element->
length()/10. <<
"\""
341 <<
" width=\"" << element->
width()/10. <<
"\""
342 <<
" thickness=\"" << (rMax - rMin - element->
sinTilt()*element->
width())/40. <<
"\""
346 <<
" rMin=\"" << rMin/10. <<
"\""
347 <<
" rMax=\"" << rMax/10. <<
"\""
348 <<
" phi0=\"" << 180./
M_PI * (element->
phiMin()+element->
phiMax())/2. <<
"\""
349 <<
" zMin=\"" << zMin/10. <<
"\""
350 <<
" zMax=\"" << zMax/10. <<
"\""
351 <<
" />" << std::endl;
◆ writeRectangleElement()
void JiveXML::GeometryWriter::writeRectangleElement |
( |
std::ofstream & |
out, |
|
|
std::string |
p, |
|
|
std::string |
c, |
|
|
std::string |
n, |
|
|
double |
xIn, |
|
|
double |
xOut, |
|
|
double |
yIn, |
|
|
double |
yOut |
|
) |
| |
|
private |
Writes <ARectangle> element to the XML file.
- Parameters
-
out | stream where the element is written to |
p | projection attribute |
c | fill color from colormap |
n | detector/module name |
xIn | inner x coordinate |
xOut | outer x coordinate |
yIn | inner y coordinate |
yOut | outer y coordinate |
◆ writeRectanglishElement()
void JiveXML::GeometryWriter::writeRectanglishElement |
( |
std::ofstream & |
out, |
|
|
std::string |
p, |
|
|
std::string |
c, |
|
|
std::string |
n, |
|
|
double |
xIn, |
|
|
double |
xOut, |
|
|
double |
yIn, |
|
|
double |
yOut |
|
) |
| |
|
private |
Writes <AGeneralPath> element to the XML file.
This element is basically a rectangle, but its (xOut,yIn) corner has been removed. (Used for SCT endcaps.)
- Parameters
-
out | stream where the element is written to |
p | projection attribute |
c | fill color from colormap |
n | detector/module name |
xIn | inner x coordinate |
xOut | outer x coordinate |
yIn | inner y coordinate |
yOut | outer y coordinate |
◆ writeSCTGeometry()
void JiveXML::GeometryWriter::writeSCTGeometry |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the geometry of the silicon detector.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 357 of file GeometryWriter.cxx.
359 InDetDD::SiDetectorElementCollection::const_iterator
it;
366 if (!element)
continue;
372 double rMin = element->
rMin();
373 double rMax = element->
rMax();
374 double zMax = element->
zMax();
377 if (
next->rMin() < rMin) rMin =
next->rMin();
378 if (
next->rMax() > rMax) rMax =
next->rMax();
379 if (
next->zMax() > zMax) zMax =
next->zMax();
384 if (
next->rMin() < rMin) rMin =
next->rMin();
385 if (
next->rMax() > rMax) rMax =
next->rMax();
386 if (
next->zMax() > zMax) zMax =
next->zMax();
391 out <<
"<ABarrelSiliconDetector c=\"" <<
"SIL" <<
"\" n=\"" <<
"Silicon" <<
"\""
393 <<
" length=\"" << element->
length()/10. <<
"\""
394 <<
" width=\"" << element->
width()/10. <<
"\""
395 <<
" thickness=\"" << 2. * (rMax - rMin - element->
sinTilt()*element->
width())/10. <<
"\""
396 <<
" tilt=\"" << 180./
M_PI * asin(element->
sinTilt()) <<
"\""
400 <<
" r0=\"" << (rMin+rMax)/20. <<
"\""
401 <<
" phi0=\"" << 180./
M_PI * (element->
phiMin()+element->
phiMax())/2. <<
"\""
402 <<
" zMin=\"" << -zMax/10. <<
"\""
403 <<
" zMax=\"" << zMax/10. <<
"\""
404 <<
" />" << std::endl;
412 double rMin = element->
rMin();
413 double rMax = element->
rMax();
414 double zMin = element->
zMin();
415 double zMax = element->
zMax();
418 if (
next->zMin() < 0)
continue;
419 if (
next->rMin() < rMin) rMin =
next->rMin();
420 if (
next->rMax() > rMax) rMax =
next->rMax();
421 if (
next->zMin() < zMin) zMin =
next->zMin();
422 if (
next->zMax() > zMax) zMax =
next->zMax();
427 if (
next->zMin() < 0)
continue;
428 if (
next->rMin() < rMin) rMin =
next->rMin();
429 if (
next->rMax() > rMax) rMax =
next->rMax();
430 if (
next->zMin() < zMin) zMin =
next->zMin();
431 if (
next->zMax() > zMax) zMax =
next->zMax();
437 out <<
"<AEndcapSiliconDetector c=\"" <<
"SIL" <<
"\" n=\"" <<
"Silicon" <<
"\""
439 <<
" length=\"" << element->
length()/10. <<
"\""
440 <<
" width=\"" << element->
width()/10. <<
"\""
441 <<
" thickness=\"" << 2. * (rMax - rMin - element->
sinTilt()*element->
width())/10. <<
"\""
445 <<
" rMin=\"" << rMin/10. <<
"\""
446 <<
" rMax=\"" << rMax/10. <<
"\""
447 <<
" phi0=\"" << 180./
M_PI * (element->
phiMin()+element->
phiMax())/2. <<
"\""
448 <<
" zMin=\"" << zMin/10. <<
"\""
449 <<
" zMax=\"" << zMax/10. <<
"\""
450 <<
" />" << std::endl;
◆ writeSolenoidGeometry()
void JiveXML::GeometryWriter::writeSolenoidGeometry |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the (hardcoded) geometry of the solenoid.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 533 of file GeometryWriter.cxx.
540 out <<
"<ADisc p=\"YX\" c=\"Sol\" n=\"Solenoid\""
541 <<
" rIn=\"" << rIn <<
"\""
542 <<
" rOut=\"" << rOut <<
"\" />"
545 out <<
"<ARectangle p=\"RZ\" c=\"Sol\" n=\"Solenoid\""
546 <<
" xMin=\"" << zIn <<
"\""
547 <<
" xMax=\"" << zOut <<
"\""
548 <<
" yMin=\"" << rIn <<
"\""
549 <<
" yMax=\"" << rOut <<
"\""
◆ writeTILEGeometry()
void JiveXML::GeometryWriter::writeTILEGeometry |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the geometry of the TILE calorimeters.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 555 of file GeometryWriter.cxx.
561 if (!descriptor)
continue;
566 if (descriptor->
zcenter(
i) <= 0)
continue;
575 if (!
name.compare(0, 3,
"ITC")) {
577 out <<
"<AGapCalorimeter c=\"" <<
"HCAL" <<
"\" n=\"" <<
name <<
"\""
578 <<
" sampling=\"" << (
i < 3 ?
i : 3) <<
"\" region=\"" << 0 <<
"\""
579 <<
" rMin=\"" << (descriptor->
rcenter(
i)-descriptor->
dr(
i)/2.)/10. <<
"\""
580 <<
" rMax=\"" << (descriptor->
rcenter(
i)+descriptor->
dr(
i)/2.)/10. <<
"\""
581 <<
" zMin=\"" << (descriptor->
zcenter(
i)-descriptor->
dz(
i)/2.)/10. <<
"\""
582 <<
" zMax=\"" << (descriptor->
zcenter(
i)+descriptor->
dz(
i)/2.)/10. <<
"\""
583 <<
" eta=\"" << (
i < 3 ? tileIdHelper->
eta_min(descriptor->
identify())-
i+2 :
i) <<
"\""
584 <<
" phi0=\"" << descriptor->
phi_min() <<
"\""
585 <<
" nphi=\"" << descriptor->
n_phi() <<
"\""
586 <<
" />" << std::endl;
594 out <<
"<ABarrelCalorimeter c=\"" <<
"HCAL" <<
"\" n=\"" <<
name <<
"\""
595 <<
" sampling=\"" <<
i <<
"\" region=\"" << 0 <<
"\""
596 <<
" rMin=\"" << (descriptor->
rcenter(
i)-descriptor->
dr(
i)/2.)/10. <<
"\""
597 <<
" rMax=\"" << (descriptor->
rcenter(
i)+descriptor->
dr(
i)/2.)/10. <<
"\""
598 <<
" zMin=\"" << (descriptor->
zcenter(
i)-descriptor->
dz(
i)/2.)/10. <<
"\""
599 <<
" zMax=\"" << (descriptor->
zcenter(
i)+descriptor->
dz(
i)/2.)/10. <<
"\""
600 <<
" eta0=\"" << descriptor->
eta_min(
i) <<
"\""
601 <<
" deta=\"" << descriptor->
deta(
i) <<
"\""
602 <<
" neta=\"" << descriptor->
n_eta(
i) <<
"\""
603 <<
" meta=\"" << tileIdHelper->
eta_min(
id) <<
"\""
604 <<
" phi0=\"" << descriptor->
phi_min() <<
"\""
605 <<
" nphi=\"" << descriptor->
n_phi() <<
"\""
606 <<
" />" << std::endl;
◆ writeTRTGeometry()
void JiveXML::GeometryWriter::writeTRTGeometry |
( |
std::ofstream & |
out | ) |
|
|
private |
Writes the geometry of the TRT detector.
- Parameters
-
out | stream where the XML fragment is written to |
Definition at line 456 of file GeometryWriter.cxx.
458 InDetDD::TRT_DetElementCollection::const_iterator
it;
464 if (!elementIn)
continue;
470 if (posIn.z() < 0)
continue;
481 if (!elementOut)
continue;
487 if (!element)
continue;
492 out <<
"<ABarrelTRTDetector c=\"TRT\" n=\"TRT\""
494 <<
" nphi=\"" << nphi <<
"\""
495 <<
" rMin=\"" << posIn.perp()/10. - .4 <<
"\""
496 <<
" rMax=\"" << posOut.perp()/10. + .4 <<
"\""
497 <<
" phiIn=\"" << 180./
M_PI * (posIn.phi() - dphiIn - 2
e-3) <<
"\""
498 <<
" phiOut=\"" << 180./
M_PI * (posOut.phi() - dphiOut - 2
e-3) <<
"\""
499 <<
" zMin=\"" << -(posIn.z() + elementIn->
strawLength()/2.)/10. <<
"\""
500 <<
" zMax=\"" << (posIn.z() + elementIn->
strawLength()/2.)/10. <<
"\""
501 <<
" />" << std::endl;
510 if (!elementOut)
continue;
516 int nphi = (
int) floor(2.*
M_PI / fabs(posOut.phi() - posIn.phi()));
518 out <<
"<AEndcapTRTDetector c=\"TRT\" n=\"TRT\""
520 <<
" nphi=\"" << nphi <<
"\""
521 <<
" rMin=\"" << (posIn.perp()-elementIn->
strawLength()/2.)/10. <<
"\""
522 <<
" rMax=\"" << (posIn.perp()+elementIn->
strawLength()/2.)/10. <<
"\""
523 <<
" phi0=\"" << 180./
M_PI * posIn.phi() <<
"\""
524 <<
" zMin=\"" << posIn.z()/10. <<
"\""
525 <<
" zMax=\"" << posOut.z()/10. <<
"\""
526 <<
" />" << std::endl;
◆ m_calo_manager
◆ m_detStore
◆ m_evtStore
◆ m_lar_manager
◆ m_larMax
std::vector<double> JiveXML::GeometryWriter::m_larMax |
|
private |
◆ m_larMin
std::vector<double> JiveXML::GeometryWriter::m_larMin |
|
private |
◆ m_numCaloTypes
const int JiveXML::GeometryWriter::m_numCaloTypes = 24 |
|
staticprivate |
◆ m_pixel_manager
◆ m_pixelIdHelper
const PixelID* JiveXML::GeometryWriter::m_pixelIdHelper {nullptr} |
|
private |
◆ m_sctIdHelper
const SCT_ID* JiveXML::GeometryWriter::m_sctIdHelper {nullptr} |
|
private |
◆ m_silicon_manager
◆ m_tile_manager
◆ m_trt_manager
◆ m_trtIdHelper
const TRT_ID* JiveXML::GeometryWriter::m_trtIdHelper {nullptr} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
float deta() const
cell deta
def retrieve(aClass, aKey=None)
tile_descr_const_iterator tile_descriptors_begin() const
int eta_min(const Identifier &id) const
max values (-999 == failure)
virtual const double & strawLength() const =0
Active straw length.
int region(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
int straw_max(const Identifier &id) const
void writeLArGeometry(std::ofstream &out)
Writes the geometry of the LAr calorimeters.
bool is_tile_gap(const Identifier &id) const
const PixelID * m_pixelIdHelper
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const TRT_BarrelElement * getBarrelElement(unsigned int positive, unsigned int moduleIndex, unsigned int phiIndex, unsigned int strawLayerIndex) const
Access Barrel Elements:---------------—(Fast)-------------------------—.
virtual PVConstLink getTreeTop(unsigned int i) const override
Gets the ith tree top.
std::vector< double > m_larMax
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
float round(const float toRound, const unsigned int decimals)
int side(const Identifier &id) const
virtual SiDetectorElementCollection::const_iterator getDetectorElementBegin() const override
int eta_module_max(const Identifier &id) const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
bool is_tile_extbarrel(const Identifier &id) const
const InDetDD::SCT_DetectorManager * m_silicon_manager
Silicon detector manager and ID helper.
int tower(const Identifier &id) const
int phi_module(const Identifier &id) const
const InDetDD::TRT_DetectorManager * m_trt_manager
TRT detector manager and ID helper.
int phi_module_max(const Identifier &id) const
tile_descr_const_iterator tile_descriptors_end() const
const TileDetDescrManager * m_tile_manager
float dz(unsigned int samp) const
int eta_module_max(const Identifier &id) const
IMessageSvc * getMessageSvc(bool quiet=false)
const SCT_ID * m_sctIdHelper
double calo_z_max() const
'ideal' geometry: z maximal
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
int n_eta(unsigned int samp) const
float dr(unsigned int samp) const
Identifier identify(void) const
double sinTilt() const
Compute sin(tilt angle) at a given position: at center.
const TRT_BarrelElement * nextInPhi() const
Returns the next-in-phi detector element, or zero if none (forseeing gaps, in other words).
std::unique_ptr< CaloDetDescrManager > m_calo_manager
Calorimeter detector manager.
Identifier identify() const override final
cell identifier
float rcenter(unsigned int samp) const
void writeSCTGeometry(std::ofstream &out)
Writes the geometry of the silicon detector.
bool is_tile_gapscin(const Identifier &id) const
double calo_z_min() const
'ideal' geometry: z minimal
int module(const Identifier &id) const
float zcenter(unsigned int samp) const
Helper class for TileCal offline identifiers.
const TRT_ID * m_trtIdHelper
Eigen::Affine3d Transform3D
const LArDetectorManager * m_lar_manager
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
double width() const
Methods from design (inline)
int eta(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
float eta_min(unsigned int samp) const
virtual SiDetectorElementCollection::const_iterator getDetectorElementBegin() const override
void writeTILEGeometry(std::ofstream &out)
Writes the geometry of the TILE calorimeters.
virtual Identifier identify() const override final
identifier of this detector element:
Helper class for offline cell identifiers.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int straw_layer(const Identifier &id) const
bool is_lar_fcal() const
cell belongs to FCAL
void writeSolenoidGeometry(std::ofstream &out)
Writes the (hardcoded) geometry of the solenoid.
int layer_or_wheel(const Identifier &id) const
void writePixelGeometry(std::ofstream &out)
Writes the geometry of the pixel detector.
TRT_DetElementCollection::const_iterator getDetectorElementBegin() const
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
bool is_tile() const
cell belongs to Tile
int phi_module_max(const Identifier &id) const
int eta_module_min(const Identifier &id) const
const TRT_EndcapElement * getEndcapElement(unsigned int positive, unsigned int wheelIndex, unsigned int strawLayerIndex, unsigned int phiIndex) const
Access Endcap Elements:---------------—(Fast)--------------------------—.
int layer_disk(const Identifier &id) const
int eta_module(const Identifier &id) const
int straw_layer_max(const Identifier &id) const
Max values for each field (-999 == failure)
int eta_min(const Identifier regId) const
min value of eta index (-999 == failure)
float deta(unsigned int samp) const
const SiDetectorElement * otherSide() const
Useful for SCT only.
int layer_disk(const Identifier &id) const
std::vector< double > m_larMin
void writeTRTGeometry(std::ofstream &out)
Writes the geometry of the TRT detector.
int phi(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
Eigen::Matrix< double, 3, 1 > Vector3D
int phi_module(const Identifier &id) const
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
float dphi() const
cell dphi
int eta_module_min(const Identifier &id) const
const SiDetectorElement * nextInEta() const
tile_descr_vec::const_iterator tile_descr_const_iterator
const Amg::Transform3D & strawTransform(unsigned int straw) const
Straw transform - fast access in array, in Tracking frame: Amg.
bool is_barrel(const Identifier &id) const
Test for barrel.
int side(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
This is a base class for LAr and Tile Descriptors The primary goal is to speed up loops over all the ...
CaloCell_ID::CaloSample getSampling() const
cell sampling
int eta_module(const Identifier &id) const
virtual const Amg::Vector3D & center() const override final
Element Surface: center of a straw layer.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const CaloDetDescriptor * descriptor() const
cell descriptor
int side(const Identifier &id) const
float eta() const
cell eta
float phi() const
cell phi
int section(const Identifier &id) const
double length() const
Length in eta direction (z - barrel, r - endcap)
double calo_r_max() const
'ideal' geometry: r maximal
int phi_module(const Identifier &id) const
bool is_tile_barrel(const Identifier &id) const
Test of an Identifier to see if it belongs to a particular part of the calorimeter.
const InDetDD::PixelDetectorManager * m_pixel_manager
Pixel detector manager and ID helper.
Identifier cell_id(const Identifier &any_id) const
constexpr int pow(int base, int exp) noexcept
void writeHeader(std::ofstream &out)
Writes the header of the XML file.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::unique_ptr< CaloDetDescrManager > buildCaloDetDescr(ISvcLocator *svcLocator, IMessageSvc *msgSvc, const GeoAlignmentStore *geoAlignStore, const CaloRec::CaloCellPositionShift *cellPosShift)
virtual Identifier identify() const override final
identifier of this detector element (inline)
double calo_r_min() const
'ideal' geometry: r minimal
Tranform iterator over pointers to iterator over const pointers.
void writeMBTSGeometry(std::ofstream &out)
Writes the geometry of the Minimum Bias Trigger Scintillators.
static const int m_numCaloTypes
The number of calorimeter sampling types.
void writeFooter(std::ofstream &out)
Writes the footer of the XML file.
const TileID * get_id() const