13#include "GaudiKernel/SystemOfUnits.h"
36 return m_rdb->fwdRing(iRing)->getInt(
"NUMMODULES");
42 return m_rdb->fwdRing(iRing)->getDouble(
"MODULESTAGGER") * Gaudi::Units::mm;
48 return m_rdb->fwdRing(iRing)->getDouble(
"PHIOFREFMODULE") * Gaudi::Units::deg;
55 return m_rdb->fwdRing(iRing)->getInt(
"USUALRINGSIDE");
61 return m_rdb->fwdRing(iRing)->getDouble(
"RINGTODISCCENTER") * Gaudi::Units::mm;
72 return m_rdb->fwdWheel(iWheel)->getDouble(
"ZPOSITION") * Gaudi::Units::mm;
79 return m_rdb->fwdWheel(iWheel)->getInt(
"STEREOTYPE");
85 return m_rdb->fwdWheel(iWheel)->getInt(
"NUMRINGS");
100 int iWheelDB = iWheel + 1;
111 std::cout <<
"Wheel (numbering from 1)" << iWheelDB <<
", Ring " << iRing
112 <<
" not in table SctFwdWheelRingMap" << std::endl;
126 for (
int i=0; i <
m_rdb->fwdWheelRingMapSize(); i++) {
127 if ((
m_rdb->fwdWheelRingMap(i)->getInt(
"WHEELNUM") == iWheelDB) &&
128 (
m_rdb->fwdWheelRingMap(i)->getInt(
"RINGNUM") == iRing))
141 if (
index < 0)
return 0;
142 return m_rdb->fwdWheelRingMap(
index)->getInt(
"STAGGEROFREFMODULE");
150 if (
index < 0)
return 0;
151 return m_rdb->fwdWheelRingMap(
index)->getInt(
"SIDE");
159 if (
index < 0)
return 0;
160 return m_rdb->fwdWheelRingMap(
index)->getInt(
"MODULETYPE");
171 return m_rdb->fwdDiscSupport()->getDouble(
"INNERRADIUS") * Gaudi::Units::mm;
177 return m_rdb->fwdDiscSupport()->getDouble(
"OUTERRADIUS") * Gaudi::Units::mm;
183 return m_rdb->fwdDiscSupport()->getDouble(
"THICKNESS") * Gaudi::Units::mm;
189 return m_rdb->fwdDiscSupport()->getString(
"MATERIAL");
198 return m_rdb->fwdPatchPanelLocSize();
204 return m_rdb->fwdPatchPanelLoc(iLoc)->getInt(
"TYPENUM");
210 return m_rdb->fwdPatchPanelLoc(iLoc)->getDouble(
"LOCANGLE") * Gaudi::Units::degree;
216 return m_rdb->fwdPatchPanelLoc(iLoc)->getInt(
"REPEATQUADRANT");
222 return m_rdb->fwdPatchPanelSize();
228 return m_rdb->fwdPatchPanel(iType)->getDouble(
"THICKNESS") * Gaudi::Units::mm;
234 return m_rdb->fwdPatchPanel(iType)->getDouble(
"MIDRADIUS") * Gaudi::Units::mm;
241 return m_rdb->fwdPatchPanel(iType)->getDouble(
"DELTAR") * Gaudi::Units::mm;
247 return m_rdb->fwdPatchPanel(iType)->getDouble(
"RPHI") * Gaudi::Units::mm;
253 return m_rdb->fwdPatchPanel(iType)->getString(
"MATERIAL");
262 return m_rdb->fwdPPCoolingSize() > 0;
268 return m_rdb->fwdPPConnector()->getDouble(
"THICKNESS") * Gaudi::Units::mm;
274 return m_rdb->fwdPPConnector()->getDouble(
"DELTAR") * Gaudi::Units::mm;
280 return m_rdb->fwdPPConnector()->getDouble(
"RPHI") * Gaudi::Units::mm;
286 return m_rdb->fwdPPConnector()->getString(
"MATERIAL");
295 return m_rdb->fwdPPCoolingSize() > 0;
301 return m_rdb->fwdPPCooling()->getDouble(
"THICKNESS") * Gaudi::Units::mm;
307 return m_rdb->fwdPPCooling()->getDouble(
"DELTAR") * Gaudi::Units::mm;
313 return m_rdb->fwdPPCooling()->getDouble(
"RPHI") * Gaudi::Units::mm;
319 return m_rdb->fwdPPCooling()->getString(
"MATERIAL");
328 return m_rdb->fwdCoolingBlock(iType)->getInt(
"HILO");
335 return m_rdb->fwdCoolingBlock(iType)->getInt(
"MAINSECONDARY");
341 return m_rdb->fwdCoolingBlock(iType)->getDouble(
"DELTAR") * Gaudi::Units::mm;
347 return m_rdb->fwdCoolingBlock(iType)->getDouble(
"RPHI") * Gaudi::Units::mm;
353 return m_rdb->fwdCoolingBlock(iType)->getDouble(
"THICKNESS") * Gaudi::Units::mm;
359 return m_rdb->fwdCoolingBlock(iType)->getDouble(
"OFFSETFROMDISC") * Gaudi::Units::mm;
365 return m_rdb->fwdCoolingBlock(iType)->getString(
"MATERIAL");
375 return m_rdb->fwdRingServices(iRing)->getDouble(
"POWERTAPEINNERRADIUS") * Gaudi::Units::mm;
381 return m_rdb->fwdRingServices(iRing)->getDouble(
"POWERTAPEOUTERRADIUS") * Gaudi::Units::mm;
387 return m_rdb->fwdRingServices(iRing)->getDouble(
"POWERTAPETHICKNESS") * Gaudi::Units::mm;
393 return m_rdb->fwdRingServices(iRing)->getString(
"POWERTAPEMATERIAL");
404 return m_rdb->fwdRingServices(iRing)->getDouble(
"COOLINGINNERRADIUS") * Gaudi::Units::mm;
410 return m_rdb->fwdRingServices(iRing)->getDouble(
"COOLINGOUTERRADIUS") * Gaudi::Units::mm;
416 return m_rdb->fwdRingServices(iRing)->getDouble(
"COOLINGTHICKNESS") * Gaudi::Units::mm;
422 return m_rdb->fwdRingServices(iRing)->getString(
"COOLINGMATERIAL");
431 return m_rdb->fwdDiscFixationTable()->size() > 0;
437 return m_rdb->fwdDiscFixation()->getDouble(
"THICKNESS") * Gaudi::Units::mm;
443 return m_rdb->fwdDiscFixation()->getDouble(
"RADIUS") * Gaudi::Units::mm;
449 return m_rdb->fwdDiscFixation()->getString(
"MATERIAL");
458 return m_rdb->fwdServices()->getDouble(
"SUPPORTFRAMEDELTAR") * Gaudi::Units::mm;
464 return m_rdb->fwdServices()->getDouble(
"SUPPORTFRAMEINNERRAD") * Gaudi::Units::mm;
470 return m_rdb->fwdServices()->getDouble(
"SUPPORTFRAMEZMIN") * Gaudi::Units::mm;
476 return m_rdb->fwdServices()->getDouble(
"SUPPORTFRAMEZMAX") * Gaudi::Units::mm;
482 return m_rdb->fwdServices()->getString(
"SUPPORTFRAMEMATERIAL");
491 return m_rdb->fwdServices()->getDouble(
"COOLINGPIPERADIUS") * Gaudi::Units::mm;
497 return m_rdb->fwdServices()->getString(
"COOLINGPIPEMATERIAL");
506 return m_rdb->fwdServices()->getDouble(
"POWERTAPECROSSSECT") * Gaudi::Units::mm2;
513 return m_rdb->fwdServices()->getString(
"POWERTAPEMATERIAL");
522 return m_rdb->fwdFSITypeSize();
528 return m_rdb->fwdFSIType(iType)->getDouble(
"DELTAR") * Gaudi::Units::mm;
534 return m_rdb->fwdFSIType(iType)->getDouble(
"RPHI") * Gaudi::Units::mm;
541 if (iType == 0 &&
m_rdb->versionTag() ==
"SCT-DC3-03")
return 26*Gaudi::Units::mm;
542 return m_rdb->fwdFSIType(iType)->getDouble(
"THICKNESS") * Gaudi::Units::mm;
548 return m_rdb->fwdFSIType(iType)->getString(
"MATERIAL");
555 if (iType == 0 &&
m_rdb->versionTag() ==
"SCT-DC3-03")
return 22*Gaudi::Units::mm;
556 return m_rdb->fwdFSIType(iType)->getDouble(
"ZOFFSET") * Gaudi::Units::mm;
567const std::vector<const FSIDetails *> &
580 return m_rdb->fwdCylServSize() > 0;
587 return m_rdb->fwdCylServLocSize();
593 return m_rdb->fwdCylServLoc(iLoc)->getString(
"NAME");
599 return m_rdb->fwdCylServLoc(iLoc)->getDouble(
"LOCANGLE") * Gaudi::Units::degree;
605 return m_rdb->fwdCylServSize();
611 return m_rdb->fwdCylServ(iType)->getString(
"NAME");
617 return m_rdb->fwdCylServ(iType)->getString(
"MATERIAL");
623 return m_rdb->fwdCylServ(iType)->getDouble(
"DELTAR") * Gaudi::Units::mm;
629 return m_rdb->fwdCylServ(iType)->getDouble(
"RPHI") * Gaudi::Units::mm;
638 return m_rdb->fwdThermalShieldSize();
644 return m_rdb->fwdThermalShield(iElement)->getString(
"MATERIAL");
650 return m_rdb->fwdThermalShield(iElement)->getDouble(
"INNERRADIUS") * Gaudi::Units::mm;
656 return m_rdb->fwdThermalShield(iElement)->getDouble(
"OUTERRADIUS") * Gaudi::Units::mm;
662 return m_rdb->fwdThermalShield(iElement)->getDouble(
"ZMIN") * Gaudi::Units::mm;
668 return m_rdb->fwdThermalShield(iElement)->getDouble(
"ZMAX") * Gaudi::Units::mm;
678 return m_rdb->fwdGeneral()->getInt(
"NUMWHEELS");
684 return m_rdb->fwdGeneral()->getDouble(
"INNERRADIUS") * Gaudi::Units::mm;
690 return m_rdb->fwdGeneral()->getDouble(
"OUTERRADIUS") * Gaudi::Units::mm;
696 return m_rdb->fwdGeneral()->getDouble(
"ZMIN") * Gaudi::Units::mm;
702 return m_rdb->fwdGeneral()->getDouble(
"ZMAX") * Gaudi::Units::mm;
708 return m_rdb->fwdGeneral()->getDouble(
"TRTGAPPOS") * Gaudi::Units::mm;
717 return m_rdb->fwdOptoHarnessTable()->size() > 0;
723 return m_rdb->fwdOptoHarness(
index)->getInt(
"DISCTYPE");
729 return m_rdb->fwdOptoHarness(
index)->getDouble(
"INNERRADIUS") * Gaudi::Units::mm;
735 return m_rdb->fwdOptoHarness(
index)->getDouble(
"OUTERRADIUS") * Gaudi::Units::mm;
741 return m_rdb->fwdOptoHarness(
index)->getDouble(
"THICKNESS") * Gaudi::Units::mm;
747 return m_rdb->fwdOptoHarness(
index)->getString(
"MATERIAL");
752 if (
this != &right) {
Definition of the abstract IRDBRecord interface.
Definition of the abstract IRDBRecordset interface.
const std::vector< const FSIDetails * > & fsiVector(int wheel) const
bool fwdCylinderServicePresent() const
std::string fwdDiscPowerTapeMaterial(int iRing) const
bool fwdDiscFixationPresent() const
int fwdWheelNumRings(int iWheel) const
std::string fwdOptoHarnessMaterial(int itype) const
double fwdInnerRadius() const
double fwdPPConnectorDeltaR() const
double fwdOptoHarnessInnerRadius(int itype) const
int fwdWheelRingMapIndex(int iWheel, int iRing, int ec) const
double fwdPatchPanelThickness(int iType) const
double fwdOuterRadius() const
double fwdPPConnectorRPhi() const
int fwdWheelRingSide(int iWheel, int iRing, int ec) const
int fwdRingStaggerOfRefModule(int iRing) const
double fwdPPCoolingDeltaR() const
std::string fwdCylinderServiceMaterial(int iType) const
double fwdRingPhiOfRefModule(int iRing) const
double fwdThermalShieldOuterRadius(int iElement) const
int fwdOptoHarnessDiscType(int itype) const
std::string fwdCoolingBlockMaterial(int iType) const
double fwdCoolingBlockDeltaR(int iType) const
double fwdCylinderServiceDeltaR(int iType) const
int fwdPatchPanelType(int iLoc) const
int fwdNumPatchPanelTypes() const
bool fwdPatchPanelRepeatQuadrant(int iLoc) const
double fwdRingCoolingThickness(int iRing) const
double fwdDiscFixationRadius() const
double fwdFSIGeomDeltaR(int iType) const
double fwdPatchPanelDeltaR(int iType) const
double fwdRingCoolingOuterRadius(int iRing) const
int fwdWheelStereoType(int iWheel) const
std::string fwdCoolingPipeMaterial() const
double fwdDiscPowerTapeOuterRadius(int iRing) const
int fwdCoolingBlockMainOrSecondary(int iType) const
double fwdWheelZPosition(int iWheel) const
std::string fwdDiscFixationMaterial() const
double fwdSupportFrameZMin() const
double fwdSupportFrameInnerRadius() const
SCT_ForwardParameters(SCT_DataBase *rdb)
int fwdRingNumModules(int iRing) const
double fwdOptoHarnessThickness(int itype) const
double fwdDiscPowerTapeInnerRadius(int iRing) const
int fwdNumPatchPanelLocs() const
double fwdPPConnectorThickness() const
double fwdDiscSupportInnerRadius() const
std::string fwdDiscSupportMaterial() const
double fwdDiscFixationThickness() const
double fwdPPCoolingThickness() const
double fwdPowerTapeCrossSectArea() const
double fwdRingModuleStagger(int iRing) const
std::string fwdRingCoolingMaterial(int iRing) const
std::string fwdSupportFrameMaterial() const
bool fwdPPConnectorPresent() const
double fwdFSIGeomZOffset(int iType) const
double fwdCylinderServiceLocAngle(int iLoc) const
double fwdDiscPowerTapeThickness(int iRing) const
SCT_ForwardParameters & operator=(const SCT_ForwardParameters &right)
double fwdCylinderServiceRPhi(int iType) const
double fwdDiscSupportOuterRadius() const
int fwdRingUsualRingSide(int iRing) const
double fwdPatchPanelRPhi(int iType) const
std::string fwdPatchPanelMaterial(int iType) const
const std::vector< const FSIDetails * > & fsiVector(int iWheel) const
double fwdSupportFrameZMax() const
std::string fwdPPCoolingMaterial() const
std::string fwdPPConnectorMaterial() const
double fwdThermalShieldInnerRadius(int iElement) const
double fwdCoolingBlockOffsetFromDisc(int iType) const
double fwdCoolingBlockThickness(int iType) const
std::string fwdCylinderServiceLocName(int iLoc) const
int fwdFSINumGeomTypes() const
const FSIHelper & fsiHelper() const
int fwdWheelModuleType(int iWheel, int iRing, int ec) const
int fwdCoolingBlockHiLo(int iType) const
double fwdRingDistToDiscCenter(int iRin) const
double fwdPatchPanelLocAngle(int iLoc) const
bool fwdPPCoolingPresent() const
double fwdPPCoolingRPhi() const
double fwdPatchPanelMidRadius(int iType) const
std::string fwdCylinderServiceName(int iType) const
double fwdFSIGeomThickness(int iType) const
std::string fwdFSIGeomMaterial(int iType) const
double fwdOptoHarnessOuterRadius(int itype) const
double fwdRingCoolingInnerRadius(int iRing) const
std::string fwdPowerTapeMaterial() const
int fwdNumThermalShieldElements() const
double fwdDiscSupportThickness() const
double fwdCoolingBlockRPhi(int iType) const
double fwdCoolingPipeRadius() const
double fwdSupportFrameRadialThickness() const
std::string fwdThermalShieldMaterial(int iElement) const
std::unique_ptr< FSIHelper > m_fsiHelper
int fwdNumCylinderServiceLocs() const
double fwdThermalShieldZMax(int iElement) const
double fwdTrtGapPos() const
double fwdThermalShieldZMin(int iElement) const
bool fwdOptoHarnessPresent() const
int fwdWheelRingMapIndexDB(int iWheelDB, int iRing) const
double fwdFSIGeomRPhi(int iType) const
int fwdNumCylinderServiceTypes() const