|
|
|
void | constructInsideModule (const DDLogicalPart &module, DDCompactView &cpv) |
|
void | constructInsideModule0 (const DDLogicalPart &module, DDCompactView &cpv) |
|
void | constructScintLayer (const DDLogicalPart &detector, double dz, DDHCalEndcapModuleAlgo::HcalEndcapPar parm, const std::string &nm, int id, DDCompactView &cpv) |
|
double | getRout (double z) const |
|
double | getTrim (unsigned int j) const |
|
HcalEndcapPar | parameterLayer (unsigned int iphi, double rinF, double routF, double rinB, double routB, double zi, double zo) |
|
HcalEndcapPar | parameterLayer0 (unsigned int iphi) |
|
Definition at line 29 of file DDHCalEndcapModuleAlgo.cc.
◆ DDHCalEndcapModuleAlgo()
DDHCalEndcapModuleAlgo::DDHCalEndcapModuleAlgo |
( |
| ) |
|
◆ ~DDHCalEndcapModuleAlgo()
DDHCalEndcapModuleAlgo::~DDHCalEndcapModuleAlgo |
( |
| ) |
|
|
override |
◆ constructInsideModule()
Definition at line 337 of file DDHCalEndcapModuleAlgo.cc.
339 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: \t\tInside module";
357 double zo = zi + 0.5 *
dzStep;
372 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: Layer " <<
i <<
" Phi " <<
iphi <<
" Front " << ziAir
373 <<
", " << rinF <<
", " << routF <<
" Back " << zo <<
", " << rinB <<
", " << routB;
391 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: " << solid.
name() <<
" Trap made of " << matName
402 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: " << glog.
name() <<
" number " << layer + 1
403 <<
" positioned in " << module.
name() <<
" at " <<
r1 <<
" with " <<
rot;
423 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: " << solid.
name() <<
" Trap made of " << plasName
424 <<
" of dimensions " << 0.5 *
layerThick <<
", 0, 0, " << parm.
yh1 <<
", "
426 << parm.
yh1 <<
", " << parm.
bl1 <<
", " << parm.
tl1 <<
", "
431 double ypos = 0.5 * (routF + rinB) - parm.
xpos;
436 <<
" positioned in " << glog.
name() <<
" at " <<
r2 <<
" with no rotation";
References DDHCalEndcapModuleAlgo::HcalEndcapPar::alp, zMuMuMuonUserData::alpha, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl1, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl2, angle_units::operators::convertRadToDeg(), DDBase< N, C >::ddname(), DDSplit(), dqmdumpme::first, mps_fire::i, versionedElectronIDProducer_cfi::idName, LEDCalibrationChannels::iphi, Skims_PA_cff::name, DDBase< N, C >::name(), DDHCalEndcapModuleAlgo::HcalEndcapPar::phi, DDCompactView::position(), diffTwoXMLs::r1, diffTwoXMLs::r2, makeMuonMisalignmentScenario::rot, edm::second(), volumeBasedMagneticField_160812_cfi::sectors, AlCaHLTBitMon_QueryRunRegistry::string, funct::tan(), DDHCalEndcapModuleAlgo::HcalEndcapPar::theta, DDHCalEndcapModuleAlgo::HcalEndcapPar::tl1, DDHCalEndcapModuleAlgo::HcalEndcapPar::tl2, DDSolidFactory::trap(), DDHCalEndcapModuleAlgo::HcalEndcapPar::xpos, DDHCalEndcapModuleAlgo::HcalEndcapPar::yh1, DDHCalEndcapModuleAlgo::HcalEndcapPar::yh2, DDHCalEndcapModuleAlgo::HcalEndcapPar::ypos, and DDHCalEndcapModuleAlgo::HcalEndcapPar::zpos.
◆ constructInsideModule0()
Definition at line 221 of file DDHCalEndcapModuleAlgo.cc.
223 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: \t\tInside module0";
254 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: " << solid.
name() <<
" Trap made of " << plasName
255 <<
" of dimensions " << 0.5 *
layerThick <<
", 0, 0, " << parm.
yh1 <<
", " << parm.
bl1
265 <<
" positioned in " << module.
name() <<
" at " <<
r1 <<
" with " <<
rot;
275 double zo = zi + 0.5 *
dzStep;
276 double rinF, routF, rinB, routB;
294 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: Front " << zi <<
", " << rinF <<
", " << routF <<
" Back "
295 << zo <<
", " << rinB <<
", " << routB;
300 <<
", " << parm.
tl1 <<
", " << parm.
yh2 <<
", " << parm.
bl2 <<
", " << parm.
tl2;
321 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: " << solid.
name() <<
" Trap made of " << matName
332 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: " << glog.
name() <<
" number 1 positioned in "
333 << module.
name() <<
" at " <<
r2 <<
" with " <<
rot;
References DDHCalEndcapModuleAlgo::HcalEndcapPar::alp, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl1, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl2, angle_units::operators::convertRadToDeg(), DDBase< N, C >::ddname(), DDSplit(), dqmdumpme::first, versionedElectronIDProducer_cfi::idName, LEDCalibrationChannels::iphi, Skims_PA_cff::name, DDBase< N, C >::name(), DDHCalEndcapModuleAlgo::HcalEndcapPar::phi, DDCompactView::position(), diffTwoXMLs::r1, diffTwoXMLs::r2, makeMuonMisalignmentScenario::rot, edm::second(), AlCaHLTBitMon_QueryRunRegistry::string, DDHCalEndcapModuleAlgo::HcalEndcapPar::theta, DDHCalEndcapModuleAlgo::HcalEndcapPar::tl1, DDHCalEndcapModuleAlgo::HcalEndcapPar::tl2, DDSolidFactory::trap(), DDHCalEndcapModuleAlgo::HcalEndcapPar::xpos, DDHCalEndcapModuleAlgo::HcalEndcapPar::yh1, DDHCalEndcapModuleAlgo::HcalEndcapPar::yh2, DDHCalEndcapModuleAlgo::HcalEndcapPar::ypos, and DDHCalEndcapModuleAlgo::HcalEndcapPar::zpos.
◆ constructScintLayer()
Definition at line 549 of file DDHCalEndcapModuleAlgo.cc.
573 <<
" of dimensions " << 0.5 *
dz <<
", 0, 0, " << parm.
yh1 <<
", " << parm.
bl1 <<
", "
581 edm::LogVerbatim(
"HCalGeom") <<
"DDHCalEndcapModuleAlgo: " << glog.name() <<
" number " <<
id <<
" positioned in "
582 <<
detector.name() <<
" at (0,0,0) with no rotation";
References DDHCalEndcapModuleAlgo::HcalEndcapPar::alp, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl1, angle_units::operators::convertRadToDeg(), DDBase< N, C >::ddname(), DDSplit(), hgcalTestNeighbor_cfi::detector, PVValHelper::dz, dqmdumpme::first, versionedElectronIDProducer_cfi::idName, Skims_PA_cff::name, DDBase< N, C >::name(), DDCompactView::position(), edm::second(), AlCaHLTBitMon_QueryRunRegistry::string, DDHCalEndcapModuleAlgo::HcalEndcapPar::tl1, DDSolidFactory::trap(), and DDHCalEndcapModuleAlgo::HcalEndcapPar::yh1.
◆ execute()
◆ getRout()
double DDHCalEndcapModuleAlgo::getRout |
( |
double |
z | ) |
const |
|
private |
◆ getTrim()
double DDHCalEndcapModuleAlgo::getTrim |
( |
unsigned int |
j | ) |
const |
|
private |
◆ initialize()
◆ parameterLayer()
Definition at line 502 of file DDHCalEndcapModuleAlgo.cc.
509 edm::LogVerbatim(
"HCalGeom") <<
"Input " <<
iphi <<
" Front " << rinF <<
" " << routF <<
" " << zi <<
" Back " << rinB
512 parm.
yh1 = 0.5 * (routF - rinB);
515 parm.
yh2 = 0.5 * (routF - rinB);
519 double dy = 0.5 * (rinB + routF - rinB - routF);
520 parm.
xpos = 0.25 * (rinB + routF + rinB + routF);
522 parm.
zpos = 0.5 * (zi + zo);
535 parm.
theta = atan(
r / (zo - zi));
References DDHCalEndcapModuleAlgo::HcalEndcapPar::alp, zMuMuMuonUserData::alpha, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl1, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl2, angle_units::operators::convertRadToDeg(), PVValHelper::dx, PVValHelper::dy, MillePedeFileConverter_cfg::e, LEDCalibrationChannels::iphi, DDHCalEndcapModuleAlgo::HcalEndcapPar::phi, alignCSCRings::r, volumeBasedMagneticField_160812_cfi::sectors, mathSSE::sqrt(), funct::tan(), DDHCalEndcapModuleAlgo::HcalEndcapPar::theta, DDHCalEndcapModuleAlgo::HcalEndcapPar::tl1, DDHCalEndcapModuleAlgo::HcalEndcapPar::tl2, DDHCalEndcapModuleAlgo::HcalEndcapPar::xpos, DDHCalEndcapModuleAlgo::HcalEndcapPar::yh1, DDHCalEndcapModuleAlgo::HcalEndcapPar::yh2, DDHCalEndcapModuleAlgo::HcalEndcapPar::ypos, and DDHCalEndcapModuleAlgo::HcalEndcapPar::zpos.
◆ parameterLayer0()
Definition at line 448 of file DDHCalEndcapModuleAlgo.cc.
479 double yh = 0.5 * (rout - rin);
481 double tl = 0.5 * rout *
tan(
alpha);
482 parm.
xpos = 0.5 * (rin + rout);
483 parm.
ypos = 0.5 * (bl + tl);
484 parm.
zpos = 0.5 * (zi + zo);
References DDHCalEndcapModuleAlgo::HcalEndcapPar::alp, zMuMuMuonUserData::alpha, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl1, DDHCalEndcapModuleAlgo::HcalEndcapPar::bl2, angle_units::operators::convertRadToDeg(), LEDCalibrationChannels::iphi, volumeBasedMagneticField_160812_cfi::sectors, funct::tan(), DDHCalEndcapModuleAlgo::HcalEndcapPar::tl1, DDHCalEndcapModuleAlgo::HcalEndcapPar::tl2, DDHCalEndcapModuleAlgo::HcalEndcapPar::xpos, DDHCalEndcapModuleAlgo::HcalEndcapPar::yh1, DDHCalEndcapModuleAlgo::HcalEndcapPar::yh2, DDHCalEndcapModuleAlgo::HcalEndcapPar::ypos, and DDHCalEndcapModuleAlgo::HcalEndcapPar::zpos.
◆ absorberMat
std::string DDHCalEndcapModuleAlgo::absorberMat |
|
private |
◆ dzStep
double DDHCalEndcapModuleAlgo::dzStep |
|
private |
◆ genMaterial
std::string DDHCalEndcapModuleAlgo::genMaterial |
|
private |
◆ idName
std::string DDHCalEndcapModuleAlgo::idName |
|
private |
◆ idNameSpace
std::string DDHCalEndcapModuleAlgo::idNameSpace |
|
private |
◆ idOffset
int DDHCalEndcapModuleAlgo::idOffset |
|
private |
◆ layerName
std::vector<std::string> DDHCalEndcapModuleAlgo::layerName |
|
private |
◆ layerNumber
std::vector<int> DDHCalEndcapModuleAlgo::layerNumber |
|
private |
◆ layerThick
double DDHCalEndcapModuleAlgo::layerThick |
|
private |
◆ layerType
int DDHCalEndcapModuleAlgo::layerType |
|
private |
◆ modName
std::string DDHCalEndcapModuleAlgo::modName |
|
private |
◆ modNumber
int DDHCalEndcapModuleAlgo::modNumber |
|
private |
◆ modType
int DDHCalEndcapModuleAlgo::modType |
|
private |
◆ moduleThick
double DDHCalEndcapModuleAlgo::moduleThick |
|
private |
◆ phiName
std::vector<std::string> DDHCalEndcapModuleAlgo::phiName |
|
private |
◆ plasticMat
std::string DDHCalEndcapModuleAlgo::plasticMat |
|
private |
◆ rMaxBack
double DDHCalEndcapModuleAlgo::rMaxBack |
|
private |
◆ rMaxFront
double DDHCalEndcapModuleAlgo::rMaxFront |
|
private |
◆ rotstr
std::string DDHCalEndcapModuleAlgo::rotstr |
|
private |
◆ scintMat
std::string DDHCalEndcapModuleAlgo::scintMat |
|
private |
◆ scintThick
double DDHCalEndcapModuleAlgo::scintThick |
|
private |
◆ sectors
int DDHCalEndcapModuleAlgo::sectors |
|
private |
◆ slopeBot
double DDHCalEndcapModuleAlgo::slopeBot |
|
private |
◆ slopeTop
double DDHCalEndcapModuleAlgo::slopeTop |
|
private |
◆ slopeTopF
double DDHCalEndcapModuleAlgo::slopeTopF |
|
private |
◆ tolAbs
double DDHCalEndcapModuleAlgo::tolAbs |
|
private |
◆ trimLeft
double DDHCalEndcapModuleAlgo::trimLeft |
|
private |
◆ trimRight
double DDHCalEndcapModuleAlgo::trimRight |
|
private |
◆ z1Beam
double DDHCalEndcapModuleAlgo::z1Beam |
|
private |
◆ ziDip
double DDHCalEndcapModuleAlgo::ziDip |
|
private |
◆ zMaxBlock
double DDHCalEndcapModuleAlgo::zMaxBlock |
|
private |
◆ zMinBlock
double DDHCalEndcapModuleAlgo::zMinBlock |
|
private |
DDName is used to identify DDD entities uniquely.
std::vector< std::string > phiName
alpha
zGenParticlesMatch = cms.InputTag(""),
constexpr NumType convertRadToDeg(NumType radians)
double getRout(double z) const
U second(std::pair< T, U > const &p)
std::vector< int > dbl_to_int(const std::vector< double > &vecdbl)
Converts a std::vector of doubles to a std::vector of int.
double getTrim(unsigned int j) const
std::vector< std::string > layerName
DDMaterial is used to define and access material information.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
void constructInsideModule0(const DDLogicalPart &module, DDCompactView &cpv)
std::vector< int > layerNumber
A DDLogicalPart aggregates information concerning material, solid and sensitveness ....
Tan< T >::type tan(const T &t)
void constructScintLayer(const DDLogicalPart &detector, double dz, DDHCalEndcapModuleAlgo::HcalEndcapPar parm, const std::string &nm, int id, DDCompactView &cpv)
Log< level::Info, true > LogVerbatim
void constructInsideModule(const DDLogicalPart &module, DDCompactView &cpv)
static std::string & ns()
A DDSolid represents the shape of a part.
Represents a uniquely identifyable rotation matrix.
HcalEndcapPar parameterLayer(unsigned int iphi, double rinF, double routF, double rinB, double routB, double zi, double zo)
static DDSolid trap(const DDName &name, double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
HcalEndcapPar parameterLayer0(unsigned int iphi)
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
ROOT::Math::Rotation3D DDRotation