#include <DDHCalEndcapAlgo.h>
Public Member Functions | |
DDHCalEndcapAlgo () | |
int | equipModule (unsigned int i) const |
void | execute (DDCompactView &cpv) |
std::string | getAbsMat () const |
double | getAngBot () const |
double | getAngGap () const |
double | getAngTop () const |
double | getDrEnd () const |
double | getDzShift () const |
double | getDzStep () const |
int | getEndcaps () const |
std::string | getGenMat () const |
double | getHeboxDepth () const |
int | getLayer (unsigned int i, unsigned int j) const |
int | getLayerN (unsigned int i) const |
std::string | getLayerName (unsigned int i) const |
int | getLayers () const |
double | getLayerT (unsigned int i) const |
int | getLayerType (unsigned int i) const |
std::string | getModMat (unsigned int i) const |
std::string | getModName (unsigned int i) const |
int | getModType (unsigned int i) const |
int | getModules () const |
int | getNsectors () const |
int | getNsectortot () const |
int | getPhi () const |
std::string | getPhiName (unsigned int i) const |
std::string | getPlastMat () const |
double | getRinBlock1 (unsigned i) const |
double | getRinBlock2 (unsigned i) const |
double | getRinDip () const |
double | getRinKink () const |
std::string | getRotation () const |
std::string | getRotMat () const |
double | getRout () const |
double | getRoutBlock1 (unsigned i) const |
double | getRoutBlock2 (unsigned i) const |
double | getRoutDip () const |
std::string | getScintMat () const |
double | getScintT (unsigned int i) const |
int | getSectionModule (unsigned i) const |
double | getSlope () const |
double | getThick (unsigned int i) const |
double | getTolAbs () const |
double | getTolPos () const |
double | getTrim (unsigned int i, unsigned int j) const |
double | getZ0Beam () const |
double | getZ1Beam () const |
double | getZEnd () const |
double | getZFront () const |
double | getZiBody () const |
double | getZiDip () const |
double | getZiKink () const |
double | getZiL0Body () const |
double | getZiL0Nose () const |
double | getZiNose () const |
double | getZmaxBlock (unsigned i) const |
double | getZminBlock (unsigned i) const |
double | getZShift () const |
double | getZShiftHac2 () const |
void | initialize (const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) |
virtual | ~DDHCalEndcapAlgo () |
Protected Member Functions | |
void | constructGeneralVolume (DDCompactView &cpv) |
void | constructInsideModule (DDLogicalPart module, int mod, DDCompactView &cpv) |
void | constructInsideModule0 (DDLogicalPart module, int mod, DDCompactView &cpv) |
void | constructInsideSector (DDLogicalPart sector, DDCompactView &cpv) |
void | constructScintLayer (DDLogicalPart glog, double pDz, double yh, double bl, double tl, double alp, std::string name, int id, DDCompactView &cpv) |
void | parameterLayer (int iphi, double rinF, double routF, double rinB, double routB, double zi, double zo, double &yh1, double &bl1, double &tl1, double &yh2, double &bl2, double &tl2, double &alp, double &theta, double &phi, double &xpos, double &ypos, double &zcpv) |
void | parameterLayer0 (int mod, int layer, int iphi, double &yh, double &bl, double &tl, double &alp, double &xpos, double &ypos, double &zcpv) |
Private Attributes | |
std::string | absMat |
double | angBot |
double | angGap |
double | angTop |
double | drEnd |
double | dzShift |
double | dzStep |
std::vector< int > | eModule |
std::string | genMaterial |
double | heboxDepth |
std::string | idName |
std::string | idNameSpace |
int | idOffset |
std::vector< int > | layerN |
std::vector< int > | layerN0 |
std::vector< int > | layerN1 |
std::vector< int > | layerN2 |
std::vector< int > | layerN3 |
std::vector< int > | layerN4 |
std::vector< int > | layerN5 |
std::vector< std::string > | layerName |
int | layers |
std::vector< double > | layerT |
std::vector< int > | layerType |
std::vector< std::string > | modMat |
std::vector< std::string > | modName |
std::vector< int > | modType |
int | modules |
int | nEndcap |
int | nsectors |
int | nsectortot |
std::vector< std::string > | phiName |
int | phiSections |
std::string | plastMat |
double | riDip |
double | riKink |
std::vector< double > | rinBlock1 |
std::vector< double > | rinBlock2 |
double | roDip |
std::string | rotation |
std::string | rotHalf |
std::string | rotmat |
std::string | rotns |
double | rout |
std::vector< double > | routBlock1 |
std::vector< double > | routBlock2 |
std::string | scintMat |
std::vector< double > | scintT |
std::vector< int > | sectionModule |
double | slope |
std::vector< double > | thick |
double | tolAbs |
double | tolPos |
std::vector< double > | trimLeft |
std::vector< double > | trimRight |
double | z0Beam |
double | z1Beam |
double | zEnd |
double | zFront |
double | ziBody |
double | ziDip |
double | ziKink |
double | ziL0Body |
double | ziL0Nose |
double | ziNose |
std::vector< double > | zmaxBlock |
std::vector< double > | zminBlock |
double | zShift |
double | zShiftHac2 |
Definition at line 10 of file DDHCalEndcapAlgo.h.
DDHCalEndcapAlgo::DDHCalEndcapAlgo | ( | ) |
Definition at line 22 of file DDHCalEndcapAlgo.cc.
References LogDebug.
: modMat(0),modType(0),sectionModule(0),layerN(0),layerN0(0),layerN1(0), layerN2(0),layerN3(0),layerN4(0),layerN5(0),thick(0),trimLeft(0), trimRight(0),zminBlock(0),zmaxBlock(0),rinBlock1(0),routBlock1(0), rinBlock2(0),routBlock2(0),layerType(0),layerT(0),scintT(0) { LogDebug("HCalGeom") << "DDHCalEndcapAlgo info: Creating an instance"; }
DDHCalEndcapAlgo::~DDHCalEndcapAlgo | ( | ) | [virtual] |
Definition at line 30 of file DDHCalEndcapAlgo.cc.
{}
void DDHCalEndcapAlgo::constructGeneralVolume | ( | DDCompactView & | cpv | ) | [protected] |
!!!!!!!!!!!!!!!!Should be zero. And removed as soon as
Definition at line 323 of file DDHCalEndcapAlgo.cc.
References alpha, constructInsideSector(), dbl_to_string(), DDrot(), DDSplit(), equipModule(), first, getAbsMat(), getAngBot(), getAngTop(), getDrEnd(), getDzShift(), getEndcaps(), getGenMat(), getNsectors(), getNsectortot(), getRinDip(), getRinKink(), getRotation(), getRout(), getRoutDip(), getSlope(), getZ1Beam(), getZEnd(), getZFront(), getZiBody(), getZiDip(), getZiKink(), getZiL0Body(), getZShift(), getZShiftHac2(), i, idName, idNameSpace, LogDebug, AlCaRecoCosmics_cfg::name, DDBase< N, C >::name(), dbtoconf::parent, phi, pi, DDSolidFactory::polyhedra(), DDCompactView::position(), rotation, rotHalf, rotns, edm::second(), and funct::tan().
Referenced by execute().
{ LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: General volume..."; bool proto = true; for (int i=0; i<3; i++) if (equipModule(i) > 0) proto = false; DDRotation rot; if (DDSplit(getRotation()).first == "NULL") rot = DDRotation(); else rot = DDRotation(DDName(DDSplit(getRotation()).first,DDSplit(getRotation()).second)); LogDebug("HCalGeom") << " First " << DDSplit(getRotation()).first << " Second " << DDSplit(getRotation()).second << " Rotation " << rot; DDTranslation r0(0,0,getZShift()); double alpha = CLHEP::pi/getNsectors(); double dphi = getNsectortot()*CLHEP::twopi/getNsectors(); //vertical walls are allowed in SolidPolyhedra double delz = 0; vector<double> pgonZ, pgonRmin, pgonRmax; if (proto) { double zf = getZiBody() + getZShiftHac2(); pgonZ.push_back(zf - getDzShift()); pgonRmin.push_back(zf * tan(getAngBot())); pgonRmax.push_back((zf - getZ1Beam())*getSlope()); } else { pgonZ.push_back(getZFront() - getDzShift()); pgonRmin.push_back(getZFront() * tan(getAngTop())); pgonRmax.push_back((getZFront() - getZ1Beam())*getSlope()); pgonZ.push_back(getZiL0Body() - getDzShift()); pgonRmin.push_back(getZiL0Body() * tan(getAngTop())); pgonRmax.push_back((getZiL0Body() - getZ1Beam())*getSlope()); pgonZ.push_back(getZiL0Body() - getDzShift()); pgonRmin.push_back(getZiL0Body() * tan(getAngBot())); pgonRmax.push_back((getZiL0Body() - getZ1Beam())*getSlope()); } pgonZ.push_back(getZiKink() - getDzShift()); pgonRmin.push_back(getRinKink()); pgonRmax.push_back(getRout()); pgonZ.push_back(getZiDip() - getDzShift()); pgonRmin.push_back(getRinDip()); pgonRmax.push_back(getRout()); pgonZ.push_back(getZiDip() - getDzShift() + delz); pgonRmin.push_back(getRinDip()); pgonRmax.push_back(getRoutDip()); pgonZ.push_back(getZEnd() - getDzShift()); pgonRmin.push_back(getZEnd() * tan(getAngBot())); pgonRmax.push_back(getRoutDip()); pgonZ.push_back(getZEnd()); pgonRmin.push_back(getZEnd() * tan(getAngBot())); pgonRmax.push_back(getRoutDip()); string name("Null"); unsigned int i=0; DDSolid solid; solid = DDSolidFactory::polyhedra(DDName(idName, idNameSpace), getNsectortot(), -alpha, dphi, pgonZ, pgonRmin, pgonRmax); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(idName, idNameSpace) << " Polyhedra made of " << getGenMat() << " with " << getNsectortot() << " sectors from " << -alpha/CLHEP::deg << " to " << (-alpha+dphi)/CLHEP::deg << " and with " << pgonZ.size() << " sections"; for (i = 0; i <pgonZ.size(); i++) LogDebug("HCalGeom") << "\t\tZ = " << pgonZ[i] << "\tRmin = " <<pgonRmin[i] << "\tRmax = " << pgonRmax[i]; DDName matname(DDSplit(getGenMat()).first, DDSplit(getGenMat()).second); DDMaterial matter(matname); DDLogicalPart genlogic(DDName(idName, idNameSpace), matter, solid); DDName parentName = parent().name(); cpv.position(DDName(idName, idNameSpace), parentName, 1, r0, rot); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(idName, idNameSpace) << " number 1 positioned" << " in " << parentName << " at " << r0 << " with " << rot; if (getEndcaps() != 1) { rot = DDRotation(DDName(rotHalf,rotns)); cpv.position(DDName(idName, idNameSpace), parentName, 2, r0, rot); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(idName, idNameSpace) << " number 2 " << "positioned in " << parentName << " at " << r0 << " with " << rot; } //Forward half name = idName + "Front"; vector<double> pgonZMod, pgonRminMod, pgonRmaxMod; for (i=0; i < (pgonZ.size()-1); i++) { pgonZMod.push_back(pgonZ[i] + getDzShift()); pgonRminMod.push_back(pgonRmin[i]); pgonRmaxMod.push_back(pgonRmax[i]); } solid = DDSolidFactory::polyhedra(DDName(name, idNameSpace), getNsectortot(), -alpha, dphi, pgonZMod, pgonRminMod, pgonRmaxMod); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace) << " Polyhedra made of " << getGenMat() << " with " << getNsectortot() << " sectors from " << -alpha/CLHEP::deg << " to " << (-alpha+dphi)/CLHEP::deg << " and with " << pgonZMod.size() << " sections "; for (i = 0; i < pgonZMod.size(); i++) LogDebug("HCalGeom") << "\t\tZ = " << pgonZMod[i] << "\tRmin = " << pgonRminMod[i] << "\tRmax = " << pgonRmaxMod[i]; DDLogicalPart genlogich(DDName(name, idNameSpace), matter, solid); cpv.position(genlogich, genlogic, 1, DDTranslation(0.0, 0.0, -getDzShift()), DDRotation()); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << genlogich.name() << " number 1 positioned in " << genlogic.name() << " at (0,0," << -getDzShift() << ") with no rotation"; //Construct sector (from -alpha to +alpha) name = idName + "Module"; solid = DDSolidFactory::polyhedra(DDName(name, idNameSpace), 1, -alpha, 2*alpha, pgonZMod, pgonRminMod, pgonRmaxMod); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace) << " Polyhedra made of " << getGenMat() <<" with 1 sector from " << -alpha/CLHEP::deg << " to " << alpha/CLHEP::deg << " and with " << pgonZMod.size() << " sections"; for (i = 0; i < pgonZMod.size(); i++) LogDebug("HCalGeom") << "\t\tZ = " << pgonZMod[i] << "\tRmin = " << pgonRminMod[i] << "\tRmax = " << pgonRmaxMod[i]; DDLogicalPart seclogic(DDName(name, idNameSpace), matter, solid); for (int ii=0; ii<getNsectortot(); ii++) { double phi = ii*2*alpha; double phideg = phi/CLHEP::deg; DDRotation rotation; string rotstr("NULL"); if (phideg != 0) { rotstr = "R"; if (phideg < 100) rotstr = "R0"; rotstr = rotstr + dbl_to_string(phideg); rotation = DDRotation(DDName(rotstr, rotns)); if (!rotation) { LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Creating a new " << "rotation " << rotstr << "\t" << 90 << "," << phideg << "," << 90 << "," << (phideg+90) << ", 0, 0"; rotation = DDrot(DDName(rotstr, rotns), 90*CLHEP::deg, phideg*CLHEP::deg, 90*CLHEP::deg, (90+phideg)*CLHEP::deg, 0*CLHEP::deg, 0*CLHEP::deg); } //if !rotation } //if phideg!=0 cpv.position(seclogic, genlogich, ii+1, DDTranslation(0.0, 0.0, 0.0), rotation); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << seclogic.name() << " number " << ii+1 << " positioned in " << genlogich.name() << " at (0,0,0) with " <<rotation; } //Construct the things inside the sector constructInsideSector(seclogic, cpv); //Backward half name = idName + "Back"; vector<double> pgonZBack, pgonRminBack, pgonRmaxBack; pgonZBack.push_back(getZEnd() - getDzShift()); pgonRminBack.push_back(pgonZBack[0]*tan(getAngBot()) + getDrEnd()); pgonRmaxBack.push_back(getRoutDip()); pgonZBack.push_back(getZEnd()); pgonRminBack.push_back(pgonZBack[1]*tan(getAngBot()) + getDrEnd()); pgonRmaxBack.push_back(getRoutDip()); solid = DDSolidFactory::polyhedra(DDName(name, idNameSpace), getNsectortot(), -alpha, dphi, pgonZBack, pgonRminBack, pgonRmaxBack); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace) << " Polyhedra made of " << getAbsMat() << " with " << getNsectortot() << " sectors from " << -alpha/CLHEP::deg << " to " << (-alpha+dphi)/CLHEP::deg << " and with " << pgonZBack.size() << " sections"; for (i = 0; i < pgonZBack.size(); i++) LogDebug("HCalGeom") << "\t\tZ = " << pgonZBack[i] << "\tRmin = " << pgonRminBack[i] << "\tRmax = " << pgonRmaxBack[i]; DDName absMatname(DDSplit(getAbsMat()).first, DDSplit(getAbsMat()).second); DDMaterial absMatter(absMatname); DDLogicalPart glog(DDName(name, idNameSpace), absMatter, solid); cpv.position(glog, genlogic, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation()); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() << " number 1 positioned in " << genlogic.name() << " at (0,0,0) with no rotation"; }
void DDHCalEndcapAlgo::constructInsideModule | ( | DDLogicalPart | module, |
int | mod, | ||
DDCompactView & | cpv | ||
) | [protected] |
Definition at line 781 of file DDHCalEndcapAlgo.cc.
References alpha, constructScintLayer(), DDBase< N, C >::ddname(), DDSplit(), first, getAngBot(), getAngTop(), getDzStep(), getGenMat(), getLayer(), getLayerN(), getLayerName(), getLayerT(), getLayerType(), getModName(), getNsectors(), getPhi(), getPhiName(), getPlastMat(), getRotMat(), getRoutBlock2(), getScintT(), getSlope(), getThick(), getTrim(), getZ1Beam(), getZminBlock(), i, idNameSpace, idOffset, LogDebug, mod(), AlCaRecoCosmics_cfg::name, DDName::name(), DDBase< N, C >::name(), parameterLayer(), phi, pi, DDCompactView::position(), rotns, edm::second(), funct::tan(), theta(), and DDSolidFactory::trap().
Referenced by constructInsideSector().
{ LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: \t\tInside module ..." <<mod; //Pointers to the Rotation Matrices and to the Materials string rotstr = getRotMat(); DDRotation rot(DDName(rotstr, rotns)); DDName matName(DDSplit(getGenMat()).first, DDSplit(getGenMat()).second); DDMaterial matter(matName); DDName plasName(DDSplit(getPlastMat()).first, DDSplit(getPlastMat()).second); DDMaterial matplastic(plasName); double alpha = CLHEP::pi/getNsectors(); double zi = getZminBlock(mod); for (int i = 0; i < getLayerN(mod); i++) { string name; DDSolid solid; DDLogicalPart glog, plog; int layer = getLayer(mod,i); double zo = zi + 0.5*getDzStep(); for (int iphi = 0; iphi < getPhi(); iphi++) { double ziAir = zo - getThick(mod); double rinF, rinB; if (layer == 1) { rinF = ziAir * tan(getAngTop()); rinB = zo * tan(getAngTop()); } else { rinF = ziAir * tan(getAngBot()); rinB = zo * tan(getAngBot()); } double routF = (ziAir - getZ1Beam()) * getSlope(); double routB = (zo - getZ1Beam()) * getSlope(); if (routF > getRoutBlock2(mod)) routF = getRoutBlock2(mod); if (routB > getRoutBlock2(mod)) routB = getRoutBlock2(mod); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Layer " << i << " Phi " << iphi << " Front " << ziAir << ", " << rinF << ", " << routF << " Back " << zo << ", " << rinB << ", " << routB; double yh1, bl1, tl1, yh2, bl2, tl2, theta, phi, alp; double xpos, ypos, zpos; parameterLayer(iphi, rinF, routF, rinB, routB, ziAir, zo, yh1, bl1, tl1, yh2, bl2, tl2, alp, theta, phi, xpos, ypos, zpos); name = module.name().name()+getLayerName(layer)+getPhiName(iphi)+"Air"; solid = DDSolidFactory::trap(DDName(name, idNameSpace), 0.5*getThick(mod), theta, phi, yh1, bl1, tl1, alp, yh2, bl2, tl2, alp); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() << " Trap made of " << getGenMat() << " of dimensions " << 0.5*getThick(mod) << ", " << theta/CLHEP::deg << ", " << phi/CLHEP::deg << ", " << yh1 << ", " << bl1 << ", " << tl1 << ", " << alp/CLHEP::deg << ", " << yh2 << ", " << bl2 << ", " << tl2 << ", " << alp/CLHEP::deg; glog = DDLogicalPart(solid.ddname(), matter, solid); DDTranslation r1(xpos, ypos, zpos); cpv.position(glog, module, layer+1, r1, rot); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() << " number " << layer+1 << " positioned in " << module.name() << " at " << r1 << " with " << rot; //Now the plastic with scintillators double yh = 0.5 * (routF - rinB) - getTrim(mod,iphi); double bl = 0.5 * rinB * tan(alpha) - getTrim(mod,iphi); double tl = 0.5 * routF * tan(alpha) - getTrim(mod,iphi); name = module.name().name()+getLayerName(layer)+getPhiName(iphi); solid = DDSolidFactory::trap(DDName(name, idNameSpace), 0.5*getLayerT(layer), 0, 0, yh, bl, tl, alp, yh, bl, tl, alp); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() << " Trap made of " << getPlastMat() << " of dimensions " << 0.5*getLayerT(layer) << ", 0, 0, " << yh << ", " << bl << ", " << tl << ", " << alp/CLHEP::deg << ", " << yh << ", " << bl << ", " << tl << ", " << alp/CLHEP::deg; plog = DDLogicalPart(solid.ddname(), matplastic, solid); ypos = 0.5*(routF+rinB) - xpos; DDTranslation r2(0., ypos, 0.); cpv.position(plog, glog, idOffset+layer+1, r2, DDRotation()); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << plog.name() << " number " << idOffset+layer+1 << " positioned in " << glog.name() << " at " << r2 << " with no rotation"; //Constructin the scintillators inside int copyNo = layer*10 + getLayerType(layer); name = getModName(mod)+getLayerName(layer)+getPhiName(iphi); constructScintLayer (plog, getScintT(layer), yh,bl,tl, alp,name,copyNo, cpv); zo += 0.5*getDzStep(); } // End of loop over phi indices zi = zo - 0.5*getDzStep(); } // End of loop on layers }
void DDHCalEndcapAlgo::constructInsideModule0 | ( | DDLogicalPart | module, |
int | mod, | ||
DDCompactView & | cpv | ||
) | [protected] |
Definition at line 686 of file DDHCalEndcapAlgo.cc.
References constructScintLayer(), DDBase< N, C >::ddname(), DDSplit(), first, getAbsMat(), getAngBot(), getAngTop(), getDzStep(), getLayer(), getLayerName(), getLayerT(), getLayerType(), getModName(), getPhi(), getPhiName(), getPlastMat(), getRotMat(), getScintT(), getSlope(), getThick(), getTolAbs(), getZ1Beam(), getZminBlock(), idNameSpace, idOffset, LogDebug, mod(), AlCaRecoCosmics_cfg::name, DDName::name(), DDBase< N, C >::name(), parameterLayer(), parameterLayer0(), phi, DDCompactView::position(), rotns, edm::second(), funct::tan(), theta(), and DDSolidFactory::trap().
Referenced by constructInsideSector().
{ LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: \t\tInside module0 ..."<<mod; //Pointers to the Rotation Matrices and to the Materials string rotstr = getRotMat(); DDRotation rot(DDName(rotstr, rotns)); DDName matName(DDSplit(getAbsMat()).first, DDSplit(getAbsMat()).second); DDMaterial matabsorbr(matName); DDName plasName(DDSplit(getPlastMat()).first, DDSplit(getPlastMat()).second); DDMaterial matplastic(plasName); int layer = getLayer(mod,0); int layer0 = getLayer(mod,1); string name; double xpos, ypos, zpos; DDSolid solid; DDLogicalPart glog, plog; for (int iphi = 0; iphi < getPhi(); iphi++) { double yh, bl, tl, alp; parameterLayer0(mod, layer, iphi, yh, bl, tl, alp, xpos, ypos, zpos); name = module.name().name()+getLayerName(layer)+getPhiName(iphi); solid = DDSolidFactory::trap(DDName(name, idNameSpace), 0.5*getLayerT(layer), 0, 0, yh, bl, tl, alp, yh, bl, tl, alp); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() << " Trap made of " << getPlastMat() << " of dimensions " << 0.5*getLayerT(layer) << ", 0, 0, " << yh << ", " << bl << ", " << tl << ", " << alp/CLHEP::deg << ", " << yh << ", " << bl << ", " << tl << ", " << alp/CLHEP::deg; glog = DDLogicalPart(solid.ddname(), matplastic, solid); DDTranslation r1(xpos, ypos, zpos); cpv.position(glog, module, idOffset+layer+1, r1, rot); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() << " number " << idOffset+layer+1 << " positioned in " << module.name() << " at " << r1 << " with " << rot; //Now construct the layer of scintillator inside this int copyNo = layer0*10 + getLayerType(layer); name = getModName(mod)+getLayerName(layer)+getPhiName(iphi); constructScintLayer (glog, getScintT(layer), yh, bl, tl, alp, name, copyNo, cpv); } //Now the absorber layer double zi = getZminBlock(mod) + getLayerT(layer); double zo = zi + 0.5*getDzStep(); double rinF, routF, rinB, routB; if (mod == 0) { rinF = zi * tan(getAngTop()); routF =(zi - getZ1Beam()) * getSlope(); rinB = zo * tan(getAngTop()); routB =(zo - getZ1Beam()) * getSlope(); } else { rinF = zi * tan(getAngBot()); routF = zi * tan(getAngTop()); rinB = zo * tan(getAngBot()); routB = zo * tan(getAngTop()); } LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Module " << mod << " Front " << zi << ", " << rinF << ", " << routF << " Back " << zo << ", " << rinB << ", " << routB; double yh1, bl1, tl1, yh2, bl2, tl2, theta, phi, alp; parameterLayer(0, rinF, routF, rinB, routB, zi, zo, yh1, bl1, tl1, yh2, bl2, tl2, alp, theta, phi, xpos, ypos, zpos); double fact = getTolAbs(); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Trim " << fact << " Param " << yh1 << ", " << bl1 << ", " << tl1 << ", " << yh2 << ", " << bl2 << ", " << tl2; bl1 -= fact; tl1 -= fact; bl2 -= fact; tl2 -= fact; name = module.name().name()+"Absorber"; solid = DDSolidFactory::trap(DDName(name, idNameSpace), 0.5*getThick(mod), theta, phi, yh1, bl1, tl1, alp, yh2, bl2, tl2, alp); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() << " Trap made of " << getAbsMat() << " of dimensions " << 0.5*getThick(mod) << ", " << theta/CLHEP::deg << ", " << phi/CLHEP::deg << ", " << yh1 << ", " << bl1 << ", " << tl1 << ", " << alp/CLHEP::deg << ", " << yh2 << ", " << bl2 << ", " << tl2 << ", " << alp/CLHEP::deg; glog = DDLogicalPart(solid.ddname(), matabsorbr, solid); DDTranslation r2(xpos, ypos, zpos); cpv.position(glog, module, 1, r2, rot); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() << " number 1 positioned in " << module.name() << " at " << r2 << " with " << rot; }
void DDHCalEndcapAlgo::constructInsideSector | ( | DDLogicalPart | sector, |
DDCompactView & | cpv | ||
) | [protected] |
!!!!!!!!!!!!!!!!Should be zero. And removed as soon as
Definition at line 519 of file DDHCalEndcapAlgo.cc.
References alpha, constructInsideModule(), constructInsideModule0(), DDSplit(), equipModule(), first, getAngBot(), getModMat(), getModName(), getModType(), getModules(), getNsectors(), getRinBlock1(), getRinBlock2(), getRinDip(), getRinKink(), getRout(), getRoutBlock1(), getRoutBlock2(), getRoutDip(), getSectionModule(), getSlope(), getZ1Beam(), getZiDip(), getZiKink(), getZmaxBlock(), getZminBlock(), getZShiftHac2(), i, idName, idNameSpace, gen::k, LogDebug, AlCaRecoCosmics_cfg::name, DDBase< N, C >::name(), pi, DDSolidFactory::polyhedra(), DDCompactView::position(), edm::second(), and funct::tan().
Referenced by constructGeneralVolume().
{ LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Modules (" << getModules() << ") ..."; double alpha = CLHEP::pi/getNsectors(); for (int i = 0; i < getModules(); i++) { string name = idName + getModName(i); DDName matname(DDSplit(getModMat(i)).first, DDSplit(getModMat(i)).second); DDMaterial matter(matname); if (equipModule(i)>0) { int nsec = getSectionModule(i); //vertical walls are allowed in SolidPolyhedra double deltaz = 0; vector<double> pgonZ, pgonRmin, pgonRmax; if (nsec == 3) { double zf = getZminBlock(i) + getZShiftHac2(); pgonZ.push_back(zf); pgonRmin.push_back(zf*tan(getAngBot())); pgonRmax.push_back((zf-getZ1Beam())*getSlope()); pgonZ.push_back(getZiKink()); pgonRmin.push_back(getRinKink()); pgonRmax.push_back(getRout()); } else { pgonZ.push_back(getZminBlock(i)); pgonRmin.push_back(getRinBlock1(i)); pgonRmax.push_back(getRoutBlock1(i)); } if (nsec == 4) { pgonZ.push_back(getZiDip()); pgonRmin.push_back(getRinDip()); pgonRmax.push_back(getRout()); pgonZ.push_back(pgonZ[1] + deltaz); pgonRmin.push_back(pgonRmin[1]); pgonRmax.push_back(getRoutDip()); } pgonZ.push_back(getZmaxBlock(i)); pgonRmin.push_back(getRinBlock2(i)); pgonRmax.push_back(getRoutBlock2(i)); //Solid & volume DDSolid solid; solid = DDSolidFactory::polyhedra(DDName(name, idNameSpace), 1, -alpha, 2*alpha, pgonZ, pgonRmin, pgonRmax); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace) << " Polyhedra made of " << getModMat(i) << " with 1 sector from " << -alpha/CLHEP::deg << " to " << alpha/CLHEP::deg << " and with " << nsec << " sections"; for (unsigned int k=0; k<pgonZ.size(); k++) LogDebug("HCalGeom") << "\t\tZ = " << pgonZ[k] << "\tRmin = " << pgonRmin[k] << "\tRmax = " << pgonRmax[k]; DDLogicalPart glog(DDName(name, idNameSpace), matter, solid); cpv.position(glog, sector, i+1, DDTranslation(0.0, 0.0, 0.0), DDRotation()); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() << " number " << i+1 << " positioned in " << sector.name() << " at (0,0,0) with no rotation"; if (getModType(i) == 0) constructInsideModule0 (glog, i, cpv); else constructInsideModule (glog, i, cpv); } } }
void DDHCalEndcapAlgo::constructScintLayer | ( | DDLogicalPart | glog, |
double | pDz, | ||
double | yh, | ||
double | bl, | ||
double | tl, | ||
double | alp, | ||
std::string | name, | ||
int | id, | ||
DDCompactView & | cpv | ||
) | [protected] |
Definition at line 881 of file DDHCalEndcapAlgo.cc.
References DDBase< N, C >::ddname(), DDSplit(), first, getScintMat(), idName, idNameSpace, LogDebug, AlCaRecoCosmics_cfg::name, DDBase< N, C >::name(), DDCompactView::position(), edm::second(), and DDSolidFactory::trap().
Referenced by constructInsideModule(), and constructInsideModule0().
{ DDName matname(DDSplit(getScintMat()).first, DDSplit(getScintMat()).second); DDMaterial matter(matname); string name = idName+"Scintillator"+nm; DDSolid solid = DDSolidFactory::trap(DDName(name, idNameSpace), 0.5*dz, 0, 0, yh, bl, tl, alp, yh, bl, tl, alp); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace) << " Trap made of " << getScintMat() <<" of dimensions " << 0.5*dz << ", 0, 0, " << yh << ", " << bl << ", " << tl << ", " << alp/CLHEP::deg << ", " << yh << ", " << bl << ", " << tl << ", " << alp/CLHEP::deg; DDLogicalPart glog(solid.ddname(), matter, solid); cpv.position(glog, detector, id, DDTranslation(0,0,0), DDRotation()); LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() << " number " << id << " positioned in " << detector.name() << " at (0,0,0) with no rotation"; }
int DDHCalEndcapAlgo::equipModule | ( | unsigned int | i | ) | const [inline] |
Definition at line 22 of file DDHCalEndcapAlgo.h.
Referenced by constructGeneralVolume(), and constructInsideSector().
void DDHCalEndcapAlgo::execute | ( | DDCompactView & | cpv | ) |
Definition at line 314 of file DDHCalEndcapAlgo.cc.
References constructGeneralVolume(), and LogDebug.
{ LogDebug("HCalGeom") << "==>> Constructing DDHCalEndcapAlgo..."; constructGeneralVolume(cpv); LogDebug("HCalGeom") << "<<== End of DDHCalEndcapAlgo construction ..."; }
std::string DDHCalEndcapAlgo::getAbsMat | ( | ) | const [inline] |
Definition at line 50 of file DDHCalEndcapAlgo.h.
References absMat.
Referenced by constructGeneralVolume(), and constructInsideModule0().
{return absMat;}
double DDHCalEndcapAlgo::getAngBot | ( | ) | const [inline] |
Definition at line 46 of file DDHCalEndcapAlgo.h.
References angBot.
Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), constructInsideSector(), and parameterLayer0().
{return angBot;}
double DDHCalEndcapAlgo::getAngGap | ( | ) | const [inline] |
double DDHCalEndcapAlgo::getAngTop | ( | ) | const [inline] |
Definition at line 45 of file DDHCalEndcapAlgo.h.
References angTop.
Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), and parameterLayer0().
{return angTop;}
double DDHCalEndcapAlgo::getDrEnd | ( | ) | const [inline] |
Definition at line 44 of file DDHCalEndcapAlgo.h.
References drEnd.
Referenced by constructGeneralVolume().
{return drEnd;}
double DDHCalEndcapAlgo::getDzShift | ( | ) | const [inline] |
Definition at line 36 of file DDHCalEndcapAlgo.h.
References dzShift.
Referenced by constructGeneralVolume().
{return dzShift;}
double DDHCalEndcapAlgo::getDzStep | ( | ) | const [inline] |
Definition at line 35 of file DDHCalEndcapAlgo.h.
References dzStep.
Referenced by constructInsideModule(), and constructInsideModule0().
{return dzStep;}
int DDHCalEndcapAlgo::getEndcaps | ( | ) | const [inline] |
Definition at line 21 of file DDHCalEndcapAlgo.h.
References nEndcap.
Referenced by constructGeneralVolume().
{return nEndcap;}
std::string DDHCalEndcapAlgo::getGenMat | ( | ) | const [inline] |
Definition at line 17 of file DDHCalEndcapAlgo.h.
References genMaterial.
Referenced by constructGeneralVolume(), and constructInsideModule().
{return genMaterial;}
double DDHCalEndcapAlgo::getHeboxDepth | ( | ) | const [inline] |
int DDHCalEndcapAlgo::getLayer | ( | unsigned int | i, |
unsigned int | j | ||
) | const |
Definition at line 32 of file DDHCalEndcapAlgo.cc.
References j, layerN0, layerN1, layerN2, layerN3, layerN4, and layerN5.
Referenced by constructInsideModule(), and constructInsideModule0().
int DDHCalEndcapAlgo::getLayerN | ( | unsigned int | i | ) | const [inline] |
Definition at line 56 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule().
std::string DDHCalEndcapAlgo::getLayerName | ( | unsigned int | i | ) | const [inline] |
Definition at line 70 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), and constructInsideModule0().
int DDHCalEndcapAlgo::getLayers | ( | ) | const [inline] |
double DDHCalEndcapAlgo::getLayerT | ( | unsigned int | i | ) | const [inline] |
Definition at line 72 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), constructInsideModule0(), and parameterLayer0().
int DDHCalEndcapAlgo::getLayerType | ( | unsigned int | i | ) | const [inline] |
Definition at line 71 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), and constructInsideModule0().
std::string DDHCalEndcapAlgo::getModMat | ( | unsigned int | i | ) | const [inline] |
Definition at line 53 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideSector().
std::string DDHCalEndcapAlgo::getModName | ( | unsigned int | i | ) | const [inline] |
Definition at line 52 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), constructInsideModule0(), and constructInsideSector().
int DDHCalEndcapAlgo::getModType | ( | unsigned int | i | ) | const [inline] |
Definition at line 54 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideSector().
int DDHCalEndcapAlgo::getModules | ( | ) | const [inline] |
Definition at line 51 of file DDHCalEndcapAlgo.h.
References modules.
Referenced by constructInsideSector().
{return modules;}
int DDHCalEndcapAlgo::getNsectors | ( | ) | const [inline] |
Definition at line 19 of file DDHCalEndcapAlgo.h.
References nsectors.
Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideSector(), parameterLayer(), and parameterLayer0().
{return nsectors;}
int DDHCalEndcapAlgo::getNsectortot | ( | ) | const [inline] |
Definition at line 20 of file DDHCalEndcapAlgo.h.
References nsectortot.
Referenced by constructGeneralVolume().
{return nsectortot;}
int DDHCalEndcapAlgo::getPhi | ( | ) | const [inline] |
Definition at line 67 of file DDHCalEndcapAlgo.h.
References phiSections.
Referenced by constructInsideModule(), and constructInsideModule0().
{return phiSections;}
std::string DDHCalEndcapAlgo::getPhiName | ( | unsigned int | i | ) | const [inline] |
Definition at line 68 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), and constructInsideModule0().
std::string DDHCalEndcapAlgo::getPlastMat | ( | ) | const [inline] |
Definition at line 74 of file DDHCalEndcapAlgo.h.
References plastMat.
Referenced by constructInsideModule(), and constructInsideModule0().
{return plastMat;}
double DDHCalEndcapAlgo::getRinBlock1 | ( | unsigned | i | ) | const [inline] |
Definition at line 62 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideSector().
double DDHCalEndcapAlgo::getRinBlock2 | ( | unsigned | i | ) | const [inline] |
Definition at line 63 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideSector().
double DDHCalEndcapAlgo::getRinDip | ( | ) | const [inline] |
Definition at line 41 of file DDHCalEndcapAlgo.h.
References riDip.
Referenced by constructGeneralVolume(), and constructInsideSector().
{return riDip;}
double DDHCalEndcapAlgo::getRinKink | ( | ) | const [inline] |
Definition at line 40 of file DDHCalEndcapAlgo.h.
References riKink.
Referenced by constructGeneralVolume(), and constructInsideSector().
{return riKink;}
std::string DDHCalEndcapAlgo::getRotation | ( | ) | const [inline] |
Definition at line 18 of file DDHCalEndcapAlgo.h.
References rotation.
Referenced by constructGeneralVolume().
{return rotation;}
std::string DDHCalEndcapAlgo::getRotMat | ( | ) | const [inline] |
Definition at line 76 of file DDHCalEndcapAlgo.h.
References rotmat.
Referenced by constructInsideModule(), and constructInsideModule0().
{return rotmat;}
double DDHCalEndcapAlgo::getRout | ( | ) | const [inline] |
Definition at line 39 of file DDHCalEndcapAlgo.h.
References rout.
Referenced by constructGeneralVolume(), and constructInsideSector().
{return rout;}
double DDHCalEndcapAlgo::getRoutBlock1 | ( | unsigned | i | ) | const [inline] |
Definition at line 64 of file DDHCalEndcapAlgo.h.
References i, and routBlock1.
Referenced by constructInsideSector().
{return routBlock1[i];}
double DDHCalEndcapAlgo::getRoutBlock2 | ( | unsigned | i | ) | const [inline] |
Definition at line 65 of file DDHCalEndcapAlgo.h.
References i, and routBlock2.
Referenced by constructInsideModule(), and constructInsideSector().
{return routBlock2[i];}
double DDHCalEndcapAlgo::getRoutDip | ( | ) | const [inline] |
Definition at line 42 of file DDHCalEndcapAlgo.h.
References roDip.
Referenced by constructGeneralVolume(), and constructInsideSector().
{return roDip;}
std::string DDHCalEndcapAlgo::getScintMat | ( | ) | const [inline] |
Definition at line 75 of file DDHCalEndcapAlgo.h.
References scintMat.
Referenced by constructScintLayer().
{return scintMat;}
double DDHCalEndcapAlgo::getScintT | ( | unsigned int | i | ) | const [inline] |
Definition at line 73 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), and constructInsideModule0().
int DDHCalEndcapAlgo::getSectionModule | ( | unsigned | i | ) | const [inline] |
Definition at line 55 of file DDHCalEndcapAlgo.h.
References i, and sectionModule.
Referenced by constructInsideSector().
{return sectionModule[i];}
double DDHCalEndcapAlgo::getSlope | ( | ) | const [inline] |
Definition at line 48 of file DDHCalEndcapAlgo.h.
References slope.
Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), constructInsideSector(), and parameterLayer0().
{return slope;}
double DDHCalEndcapAlgo::getThick | ( | unsigned int | i | ) | const [inline] |
Definition at line 58 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), and constructInsideModule0().
double DDHCalEndcapAlgo::getTolAbs | ( | ) | const [inline] |
Definition at line 78 of file DDHCalEndcapAlgo.h.
References tolAbs.
Referenced by constructInsideModule0().
{return tolAbs;}
double DDHCalEndcapAlgo::getTolPos | ( | ) | const [inline] |
double DDHCalEndcapAlgo::getTrim | ( | unsigned int | i, |
unsigned int | j | ||
) | const |
Definition at line 64 of file DDHCalEndcapAlgo.cc.
References i, j, trimLeft, and trimRight.
Referenced by constructInsideModule(), and parameterLayer0().
double DDHCalEndcapAlgo::getZ0Beam | ( | ) | const [inline] |
double DDHCalEndcapAlgo::getZ1Beam | ( | ) | const [inline] |
Definition at line 33 of file DDHCalEndcapAlgo.h.
References z1Beam.
Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), constructInsideSector(), and parameterLayer0().
{return z1Beam;}
double DDHCalEndcapAlgo::getZEnd | ( | ) | const [inline] |
Definition at line 26 of file DDHCalEndcapAlgo.h.
References zEnd.
Referenced by constructGeneralVolume().
{return zEnd;}
double DDHCalEndcapAlgo::getZFront | ( | ) | const [inline] |
Definition at line 25 of file DDHCalEndcapAlgo.h.
References zFront.
Referenced by constructGeneralVolume().
{return zFront;}
double DDHCalEndcapAlgo::getZiBody | ( | ) | const [inline] |
Definition at line 29 of file DDHCalEndcapAlgo.h.
References ziBody.
Referenced by constructGeneralVolume().
{return ziBody;}
double DDHCalEndcapAlgo::getZiDip | ( | ) | const [inline] |
Definition at line 34 of file DDHCalEndcapAlgo.h.
References ziDip.
Referenced by constructGeneralVolume(), and constructInsideSector().
{return ziDip;}
double DDHCalEndcapAlgo::getZiKink | ( | ) | const [inline] |
Definition at line 31 of file DDHCalEndcapAlgo.h.
References ziKink.
Referenced by constructGeneralVolume(), and constructInsideSector().
{return ziKink;}
double DDHCalEndcapAlgo::getZiL0Body | ( | ) | const [inline] |
Definition at line 30 of file DDHCalEndcapAlgo.h.
References ziL0Body.
Referenced by constructGeneralVolume().
{return ziL0Body;}
double DDHCalEndcapAlgo::getZiL0Nose | ( | ) | const [inline] |
double DDHCalEndcapAlgo::getZiNose | ( | ) | const [inline] |
double DDHCalEndcapAlgo::getZmaxBlock | ( | unsigned | i | ) | const [inline] |
Definition at line 61 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideSector(), and parameterLayer0().
double DDHCalEndcapAlgo::getZminBlock | ( | unsigned | i | ) | const [inline] |
Definition at line 60 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), constructInsideModule0(), constructInsideSector(), and parameterLayer0().
double DDHCalEndcapAlgo::getZShift | ( | ) | const [inline] |
Definition at line 23 of file DDHCalEndcapAlgo.h.
References zShift.
Referenced by constructGeneralVolume().
{return zShift;}
double DDHCalEndcapAlgo::getZShiftHac2 | ( | ) | const [inline] |
Definition at line 37 of file DDHCalEndcapAlgo.h.
References zShiftHac2.
Referenced by constructGeneralVolume(), and constructInsideSector().
{return zShiftHac2;}
void DDHCalEndcapAlgo::initialize | ( | const DDNumericArguments & | nArgs, |
const DDVectorArguments & | vArgs, | ||
const DDMapArguments & | mArgs, | ||
const DDStringArguments & | sArgs, | ||
const DDStringVectorArguments & | vsArgs | ||
) |
Definition at line 72 of file DDHCalEndcapAlgo.cc.
References absMat, angBot, angGap, angTop, dbl_to_int(), drEnd, dzShift, dzStep, eModule, funct::exp(), genMaterial, heboxDepth, i, idName, idNameSpace, idOffset, j, layerN, layerN0, layerN1, layerN2, layerN3, layerN4, layerN5, layerName, layers, layerT, layerType, LogDebug, modMat, modName, modType, module(), modules, nEndcap, DDCurrentNamespace::ns(), nsectors, nsectortot, dbtoconf::parent, phiName, phiSections, plastMat, riDip, riKink, rinBlock1, rinBlock2, roDip, rotation, rotHalf, rotmat, rotns, rout, routBlock1, routBlock2, scintMat, scintT, sectionModule, funct::sin(), slope, funct::tan(), thick, tolAbs, tolPos, trimLeft, trimRight, z0Beam, z1Beam, zEnd, zFront, ziBody, ziDip, ziKink, ziL0Body, ziL0Nose, ziNose, zmaxBlock, zminBlock, zShift, and zShiftHac2.
{ int i,j; genMaterial = sArgs["MaterialName"]; rotation = sArgs["Rotation"]; nsectors = int (nArgs["Sector"]); nsectortot = int (nArgs["SectorTot"]); nEndcap = int (nArgs["Endcap"]); rotHalf = sArgs["RotHalf"]; rotns = sArgs["RotNameSpace"]; zShift = nArgs["ZShift"]; zFront = nArgs["ZFront"]; zEnd = nArgs["ZEnd"]; ziNose = nArgs["ZiNose"]; ziL0Nose = nArgs["ZiL0Nose"]; ziBody = nArgs["ZiBody"]; ziL0Body = nArgs["ZiL0Body"]; z0Beam = nArgs["Z0Beam"]; ziDip = nArgs["ZiDip"]; dzStep = nArgs["DzStep"]; zShiftHac2 = nArgs["ZShiftHac2"]; double gap = nArgs["Gap"]; double z1 = nArgs["Z1"]; double r1 = nArgs["R1"]; rout = nArgs["Rout"]; heboxDepth = nArgs["HEboxDepth"]; drEnd = nArgs["DrEnd"]; double etamin = nArgs["Etamin"]; angBot = nArgs["AngBot"]; angGap = nArgs["AngGap"]; LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: General material " << genMaterial << "\tSectors " << nsectors << ", " << nsectortot << "\tEndcaps " << nEndcap << "\tRotation matrix for half " << rotns << ":" << rotHalf << "\n\tzFront " << zFront << " zEnd " << zEnd << " ziNose " << ziNose << " ziL0Nose " << ziL0Nose << " ziBody " << ziBody << " ziL0Body " << ziL0Body << " z0Beam " << z0Beam << " ziDip " << ziDip << " dzStep " << dzStep << " Gap " << gap << " z1 " << z1 << "\n\tr1 " << r1 << " rout " << rout << " HeboxDepth " << heboxDepth << " drEnd " << drEnd << "\tetamin " << etamin << " Bottom angle " << angBot << " Gap angle " << angGap << " Z-Shift " << zShift << " " << zShiftHac2; //Derived quantities angTop = 2.0 * atan (exp(-etamin)); slope = tan(angGap); z1Beam = z1 - r1/slope; ziKink = z1Beam + rout/slope; riKink = ziKink*tan(angBot); riDip = ziDip*tan(angBot); roDip = rout - heboxDepth; dzShift = (z1Beam - z0Beam) - gap/sin(angGap); LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: angTop " << angTop/CLHEP::deg <<"\tSlope " << slope << "\tDzShift " << dzShift << "\n\tz1Beam " << z1Beam << "\tziKink" << ziKink << "\triKink " << riKink << "\triDip " << riDip << "\n\troDip " << roDip << "\tRotation " << rotation; //Modules absMat = sArgs["AbsMat"]; modules = int(nArgs["Modules"]); LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Number of modules " << modules << " and absorber material " << absMat; modName = vsArgs["ModuleName"]; modMat = vsArgs["ModuleMat"]; modType = dbl_to_int(vArgs["ModuleType"]); sectionModule = dbl_to_int(vArgs["SectionModule"]); thick = vArgs["ModuleThick"]; trimLeft = vArgs["TrimLeft"]; trimRight = vArgs["TrimRight"]; eModule = dbl_to_int(vArgs["EquipModule"]); layerN = dbl_to_int(vArgs["LayerN"]); layerN0 = dbl_to_int(vArgs["LayerN0"]); layerN1 = dbl_to_int(vArgs["LayerN1"]); layerN2 = dbl_to_int(vArgs["LayerN2"]); layerN3 = dbl_to_int(vArgs["LayerN3"]); layerN4 = dbl_to_int(vArgs["LayerN4"]); layerN5 = dbl_to_int(vArgs["LayerN5"]); for (i = 0; i < modules; i++) { LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: " << modName[i] <<" type " << modType[i] << " Sections " << sectionModule[i] << " thickness of absorber/air " << thick[i] << " trim " << trimLeft[i] << ", " << trimRight[i] << " equip module " << eModule[i] << " with " << layerN[i] << " layers"; if (i == 0) { for (j = 0; j < layerN[i]; j++) { LogDebug("HCalGeom") << "\t " << layerN0[j] << "/" << layerN0[j+1]; } } else if (i == 1) { for (j = 0; j < layerN[i]; j++) { LogDebug("HCalGeom") << "\t " << layerN1[j] << "/" << layerN1[j+1]; } } else if (i == 2) { for (j = 0; j < layerN[i]; j++) { LogDebug("HCalGeom") << "\t " << layerN2[j]; } } else if (i == 3) { for (j = 0; j < layerN[i]; j++) { LogDebug("HCalGeom") << "\t " << layerN3[j]; } } else if (i == 4) { for (j = 0; j < layerN[i]; j++) { LogDebug("HCalGeom") << "\t " << layerN4[j]; } } else if (i == 5) { for (j = 0; j < layerN[i]; j++) { LogDebug("HCalGeom") << "\t " << layerN5[j]; } } } //Layers phiSections = int(nArgs["PhiSections"]); phiName = vsArgs["PhiName"]; layers = int(nArgs["Layers"]); layerName = vsArgs["LayerName"]; layerType = dbl_to_int(vArgs["LayerType"]); layerT = vArgs["LayerT"]; scintT = vArgs["ScintT"]; scintMat = sArgs["ScintMat"]; plastMat = sArgs["PlastMat"]; rotmat = sArgs["RotMat"]; LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Phi Sections " << phiSections; for (i = 0; i < phiSections; i++) LogDebug("HCalGeom") << "\tName[" << i << "] : " << phiName[i]; LogDebug("HCalGeom") << "\tPlastic: " << plastMat << "\tScintillator: " << scintMat << "\tRotation matrix " << rotns << ":" << rotmat << "\n\tNumber of layers " << layers; for (i = 0; i < layers; i++) { LogDebug("HCalGeom") << "\t" << layerName[i] << "\tType " << layerType[i] << "\tThickness " << layerT[i] << "\tScint.Thick " << scintT[i]; } // Derive bounding of the modules int module = 0; // Layer 0 (Nose) if (modules > 0) { zminBlock.push_back(ziL0Nose); zmaxBlock.push_back(zminBlock[module] + layerT[0] + 0.5*dzStep); rinBlock1.push_back(zminBlock[module] * tan(angTop)); rinBlock2.push_back(zmaxBlock[module] * tan(angTop)); routBlock1.push_back((zminBlock[module] - z1Beam) * slope); routBlock2.push_back((zmaxBlock[module] - z1Beam) * slope); module++; } // Layer 0 (Body) if (modules > 1) { zminBlock.push_back(ziL0Body); zmaxBlock.push_back(zminBlock[module] + layerT[0] + 0.5*dzStep); rinBlock1.push_back(zminBlock[module] * tan(angBot)); rinBlock2.push_back(zmaxBlock[module] * tan(angBot)); routBlock1.push_back(zminBlock[module] * tan(angTop)); routBlock2.push_back(zmaxBlock[module] * tan(angTop)); module++; } // Hac1 if (modules > 2) { zminBlock.push_back(ziNose); zmaxBlock.push_back(ziBody); rinBlock1.push_back(zminBlock[module] * tan(angTop)); rinBlock2.push_back(zmaxBlock[module] * tan(angTop)); routBlock1.push_back((zminBlock[module] - z1Beam) * slope); routBlock2.push_back((zmaxBlock[module] - z1Beam) * slope); module++; } // Hac2 if (modules > 3) { zminBlock.push_back(ziBody); zmaxBlock.push_back(zminBlock[module] + layerN[3]*dzStep); rinBlock1.push_back(zminBlock[module] * tan(angBot)); rinBlock2.push_back(zmaxBlock[module] * tan(angBot)); routBlock1.push_back((zmaxBlock[module-1] - z1Beam) * slope); routBlock2.push_back(rout); module++; } // Hac3 if (modules > 4) { zminBlock.push_back(zmaxBlock[module-1]); zmaxBlock.push_back(zminBlock[module] + layerN[4]*dzStep); rinBlock1.push_back(zminBlock[module] * tan(angBot)); rinBlock2.push_back(zmaxBlock[module] * tan(angBot)); routBlock1.push_back(rout); routBlock2.push_back(rout); module++; } // Hac4 if (modules > 5) { zminBlock.push_back(zmaxBlock[module-1]); zmaxBlock.push_back(zminBlock[module] + layerN[5]*dzStep); rinBlock1.push_back(zminBlock[module] * tan(angBot)); rinBlock2.push_back(zmaxBlock[module] * tan(angBot)); routBlock1.push_back(rout); routBlock2.push_back(roDip); module++; } for (i = 0; i < module; i++) LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Module " << i << "\tZ/Rin/Rout " << zminBlock[i] << ", " << zmaxBlock[i] << "/ " << rinBlock1[i] << ", " << rinBlock2[i] << "/ " << routBlock1[i] << ", " << routBlock2[i]; idName = sArgs["MotherName"]; idNameSpace = DDCurrentNamespace::ns(); idOffset = int (nArgs["IdOffset"]); DDName parentName = parent().name(); LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Parent " << parentName << " idName " << idName << " NameSpace " << idNameSpace << " Offset " << idOffset; tolPos = nArgs["TolPos"]; tolAbs = nArgs["TolAbs"]; LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Tolerances - Positioning " << tolPos << " Absorber " << tolAbs; }
void DDHCalEndcapAlgo::parameterLayer | ( | int | iphi, |
double | rinF, | ||
double | routF, | ||
double | rinB, | ||
double | routB, | ||
double | zi, | ||
double | zo, | ||
double & | yh1, | ||
double & | bl1, | ||
double & | tl1, | ||
double & | yh2, | ||
double & | bl2, | ||
double & | tl2, | ||
double & | alp, | ||
double & | theta, | ||
double & | phi, | ||
double & | xpos, | ||
double & | ypos, | ||
double & | zcpv | ||
) | [protected] |
Definition at line 641 of file DDHCalEndcapAlgo.cc.
References alpha, getNsectors(), LogDebug, pi, csvReporter::r, mathSSE::sqrt(), and funct::tan().
Referenced by constructInsideModule(), and constructInsideModule0().
{ //Given rin, rout compute parameters of the trapezoid and //position of the trapezoid for a standrd layer double alpha = CLHEP::pi/getNsectors(); LogDebug("HCalGeom") << "Input " << iphi << " Front " << rinF << " " << routF << " " << zi << " Back " << rinB << " " << routB << " " << zo << " Alpha " << alpha/CLHEP::deg; yh1 = 0.5 * (routF - rinB); bl1 = 0.5 * rinB * tan(alpha); tl1 = 0.5 * routF * tan(alpha); yh2 = 0.5 * (routF - rinB); bl2 = 0.5 * rinB * tan(alpha); tl2 = 0.5 * routF * tan(alpha); double dx = 0.25* (bl2+tl2-bl1-tl1); double dy = 0.5 * (rinB+routF-rinB-routF); xpos = 0.25*(rinB+routF+rinB+routF); ypos = 0.25*(bl2+tl2+bl1+tl1); zpos = 0.5*(zi+zo); alp = atan(0.5 * tan(alpha)); // ypos-= getTolPos(); if (iphi == 0) { ypos = -ypos; } else { alp = -alp; dx = -dx; } double r = sqrt (dx*dx + dy*dy); theta= atan (r/(zo-zi)); phi = atan2 (dy, dx); LogDebug("HCalGeom") << "Output Dimensions " << yh1 << " " << bl1 << " " << tl1 << " " << yh2 << " " << bl2 << " " << tl2 << " " << alp/CLHEP::deg << " " << theta/CLHEP::deg << " " << phi/CLHEP::deg << " Position " << xpos << " " << ypos << " " << zpos; }
void DDHCalEndcapAlgo::parameterLayer0 | ( | int | mod, |
int | layer, | ||
int | iphi, | ||
double & | yh, | ||
double & | bl, | ||
double & | tl, | ||
double & | alp, | ||
double & | xpos, | ||
double & | ypos, | ||
double & | zcpv | ||
) | [protected] |
Definition at line 593 of file DDHCalEndcapAlgo.cc.
References alpha, getAngBot(), getAngTop(), getLayerT(), getNsectors(), getSlope(), getTrim(), getZ1Beam(), getZmaxBlock(), getZminBlock(), LogDebug, pi, rout, and funct::tan().
Referenced by constructInsideModule0().
{ //Given module and layer number compute parameters of trapezoid //and positioning parameters double alpha = CLHEP::pi/getNsectors(); LogDebug("HCalGeom") << "Input " << iphi << " " << layer << " " << iphi << " Alpha " << alpha/CLHEP::deg; double zi, zo; if (iphi == 0) { zi = getZminBlock(mod); zo = zi + getLayerT(layer); } else { zo = getZmaxBlock(mod); zi = zo - getLayerT(layer); } double rin, rout; if (mod == 0) { rin = zo * tan(getAngTop()); rout = (zi - getZ1Beam()) * getSlope(); } else { rin = zo * tan(getAngBot()); rout = zi * tan(getAngTop()); } yh = 0.5 * (rout - rin); bl = 0.5 * rin * tan (alpha); tl = 0.5 * rout * tan(alpha); xpos = 0.5 * (rin + rout); ypos = 0.5 * (bl + tl); zpos = 0.5 * (zi + zo); yh -= getTrim(mod,iphi); bl -= getTrim(mod,iphi); tl -= getTrim(mod,iphi); alp = atan(0.5 * tan(alpha)); if (iphi == 0) { ypos = -ypos; } else { alp = -alp; } LogDebug("HCalGeom") << "Output Dimensions " << yh << " " << bl << " " << tl << " " << alp/CLHEP::deg << " Position " << xpos << " " << ypos << " " << zpos; }
std::string DDHCalEndcapAlgo::absMat [private] |
Definition at line 144 of file DDHCalEndcapAlgo.h.
Referenced by getAbsMat(), and initialize().
double DDHCalEndcapAlgo::angBot [private] |
Definition at line 140 of file DDHCalEndcapAlgo.h.
Referenced by getAngBot(), and initialize().
double DDHCalEndcapAlgo::angGap [private] |
Definition at line 141 of file DDHCalEndcapAlgo.h.
Referenced by getAngGap(), and initialize().
double DDHCalEndcapAlgo::angTop [private] |
Definition at line 139 of file DDHCalEndcapAlgo.h.
Referenced by getAngTop(), and initialize().
double DDHCalEndcapAlgo::drEnd [private] |
Definition at line 137 of file DDHCalEndcapAlgo.h.
Referenced by getDrEnd(), and initialize().
double DDHCalEndcapAlgo::dzShift [private] |
Definition at line 129 of file DDHCalEndcapAlgo.h.
Referenced by getDzShift(), and initialize().
double DDHCalEndcapAlgo::dzStep [private] |
Definition at line 128 of file DDHCalEndcapAlgo.h.
Referenced by getDzStep(), and initialize().
std::vector<int> DDHCalEndcapAlgo::eModule [private] |
Definition at line 112 of file DDHCalEndcapAlgo.h.
Referenced by equipModule(), and initialize().
std::string DDHCalEndcapAlgo::genMaterial [private] |
Definition at line 108 of file DDHCalEndcapAlgo.h.
Referenced by getGenMat(), and initialize().
double DDHCalEndcapAlgo::heboxDepth [private] |
Definition at line 136 of file DDHCalEndcapAlgo.h.
Referenced by getHeboxDepth(), and initialize().
std::string DDHCalEndcapAlgo::idName [private] |
Definition at line 178 of file DDHCalEndcapAlgo.h.
Referenced by constructGeneralVolume(), constructInsideSector(), constructScintLayer(), and initialize().
std::string DDHCalEndcapAlgo::idNameSpace [private] |
Definition at line 179 of file DDHCalEndcapAlgo.h.
Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), constructInsideSector(), constructScintLayer(), and initialize().
int DDHCalEndcapAlgo::idOffset [private] |
Definition at line 180 of file DDHCalEndcapAlgo.h.
Referenced by constructInsideModule(), constructInsideModule0(), and initialize().
std::vector<int> DDHCalEndcapAlgo::layerN [private] |
Definition at line 150 of file DDHCalEndcapAlgo.h.
Referenced by getLayerN(), and initialize().
std::vector<int> DDHCalEndcapAlgo::layerN0 [private] |
Definition at line 151 of file DDHCalEndcapAlgo.h.
Referenced by getLayer(), and initialize().
std::vector<int> DDHCalEndcapAlgo::layerN1 [private] |
Definition at line 152 of file DDHCalEndcapAlgo.h.
Referenced by getLayer(), and initialize().
std::vector<int> DDHCalEndcapAlgo::layerN2 [private] |
Definition at line 153 of file DDHCalEndcapAlgo.h.
Referenced by getLayer(), and initialize().
std::vector<int> DDHCalEndcapAlgo::layerN3 [private] |
Definition at line 154 of file DDHCalEndcapAlgo.h.
Referenced by getLayer(), and initialize().
std::vector<int> DDHCalEndcapAlgo::layerN4 [private] |
Definition at line 155 of file DDHCalEndcapAlgo.h.
Referenced by getLayer(), and initialize().
std::vector<int> DDHCalEndcapAlgo::layerN5 [private] |
Definition at line 156 of file DDHCalEndcapAlgo.h.
Referenced by getLayer(), and initialize().
std::vector<std::string> DDHCalEndcapAlgo::layerName [private] |
Definition at line 170 of file DDHCalEndcapAlgo.h.
Referenced by getLayerName(), and initialize().
int DDHCalEndcapAlgo::layers [private] |
Definition at line 169 of file DDHCalEndcapAlgo.h.
Referenced by getLayers(), and initialize().
std::vector<double> DDHCalEndcapAlgo::layerT [private] |
Definition at line 172 of file DDHCalEndcapAlgo.h.
Referenced by getLayerT(), and initialize().
std::vector<int> DDHCalEndcapAlgo::layerType [private] |
Definition at line 171 of file DDHCalEndcapAlgo.h.
Referenced by getLayerType(), and initialize().
std::vector<std::string> DDHCalEndcapAlgo::modMat [private] |
Definition at line 147 of file DDHCalEndcapAlgo.h.
Referenced by getModMat(), and initialize().
std::vector<std::string> DDHCalEndcapAlgo::modName [private] |
Definition at line 146 of file DDHCalEndcapAlgo.h.
Referenced by getModName(), and initialize().
std::vector<int> DDHCalEndcapAlgo::modType [private] |
Definition at line 148 of file DDHCalEndcapAlgo.h.
Referenced by getModType(), and initialize().
int DDHCalEndcapAlgo::modules [private] |
Definition at line 145 of file DDHCalEndcapAlgo.h.
Referenced by getModules(), and initialize().
int DDHCalEndcapAlgo::nEndcap [private] |
Definition at line 111 of file DDHCalEndcapAlgo.h.
Referenced by getEndcaps(), and initialize().
int DDHCalEndcapAlgo::nsectors [private] |
Definition at line 109 of file DDHCalEndcapAlgo.h.
Referenced by getNsectors(), and initialize().
int DDHCalEndcapAlgo::nsectortot [private] |
Definition at line 110 of file DDHCalEndcapAlgo.h.
Referenced by getNsectortot(), and initialize().
std::vector<std::string> DDHCalEndcapAlgo::phiName [private] |
Definition at line 168 of file DDHCalEndcapAlgo.h.
Referenced by getPhiName(), and initialize().
int DDHCalEndcapAlgo::phiSections [private] |
Definition at line 167 of file DDHCalEndcapAlgo.h.
Referenced by getPhi(), and initialize().
std::string DDHCalEndcapAlgo::plastMat [private] |
Definition at line 174 of file DDHCalEndcapAlgo.h.
Referenced by getPlastMat(), and initialize().
double DDHCalEndcapAlgo::riDip [private] |
Definition at line 134 of file DDHCalEndcapAlgo.h.
Referenced by getRinDip(), and initialize().
double DDHCalEndcapAlgo::riKink [private] |
Definition at line 133 of file DDHCalEndcapAlgo.h.
Referenced by getRinKink(), and initialize().
std::vector<double> DDHCalEndcapAlgo::rinBlock1 [private] |
Definition at line 162 of file DDHCalEndcapAlgo.h.
Referenced by getRinBlock1(), and initialize().
std::vector<double> DDHCalEndcapAlgo::rinBlock2 [private] |
Definition at line 164 of file DDHCalEndcapAlgo.h.
Referenced by getRinBlock2(), and initialize().
double DDHCalEndcapAlgo::roDip [private] |
Definition at line 135 of file DDHCalEndcapAlgo.h.
Referenced by getRoutDip(), and initialize().
std::string DDHCalEndcapAlgo::rotation [private] |
Definition at line 115 of file DDHCalEndcapAlgo.h.
Referenced by constructGeneralVolume(), getRotation(), and initialize().
std::string DDHCalEndcapAlgo::rotHalf [private] |
Definition at line 113 of file DDHCalEndcapAlgo.h.
Referenced by constructGeneralVolume(), and initialize().
std::string DDHCalEndcapAlgo::rotmat [private] |
Definition at line 176 of file DDHCalEndcapAlgo.h.
Referenced by getRotMat(), and initialize().
std::string DDHCalEndcapAlgo::rotns [private] |
Definition at line 114 of file DDHCalEndcapAlgo.h.
Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), and initialize().
double DDHCalEndcapAlgo::rout [private] |
Definition at line 132 of file DDHCalEndcapAlgo.h.
Referenced by getRout(), initialize(), and parameterLayer0().
std::vector<double> DDHCalEndcapAlgo::routBlock1 [private] |
Definition at line 163 of file DDHCalEndcapAlgo.h.
Referenced by getRoutBlock1(), and initialize().
std::vector<double> DDHCalEndcapAlgo::routBlock2 [private] |
Definition at line 165 of file DDHCalEndcapAlgo.h.
Referenced by getRoutBlock2(), and initialize().
std::string DDHCalEndcapAlgo::scintMat [private] |
Definition at line 175 of file DDHCalEndcapAlgo.h.
Referenced by getScintMat(), and initialize().
std::vector<double> DDHCalEndcapAlgo::scintT [private] |
Definition at line 173 of file DDHCalEndcapAlgo.h.
Referenced by getScintT(), and initialize().
std::vector<int> DDHCalEndcapAlgo::sectionModule [private] |
Definition at line 149 of file DDHCalEndcapAlgo.h.
Referenced by getSectionModule(), and initialize().
double DDHCalEndcapAlgo::slope [private] |
Definition at line 142 of file DDHCalEndcapAlgo.h.
Referenced by getSlope(), and initialize().
std::vector<double> DDHCalEndcapAlgo::thick [private] |
Definition at line 157 of file DDHCalEndcapAlgo.h.
Referenced by getThick(), and initialize().
double DDHCalEndcapAlgo::tolAbs [private] |
Definition at line 182 of file DDHCalEndcapAlgo.h.
Referenced by getTolAbs(), and initialize().
double DDHCalEndcapAlgo::tolPos [private] |
Definition at line 182 of file DDHCalEndcapAlgo.h.
Referenced by getTolPos(), and initialize().
std::vector<double> DDHCalEndcapAlgo::trimLeft [private] |
Definition at line 158 of file DDHCalEndcapAlgo.h.
Referenced by getTrim(), and initialize().
std::vector<double> DDHCalEndcapAlgo::trimRight [private] |
Definition at line 159 of file DDHCalEndcapAlgo.h.
Referenced by getTrim(), and initialize().
double DDHCalEndcapAlgo::z0Beam [private] |
Definition at line 125 of file DDHCalEndcapAlgo.h.
Referenced by getZ0Beam(), and initialize().
double DDHCalEndcapAlgo::z1Beam [private] |
Definition at line 126 of file DDHCalEndcapAlgo.h.
Referenced by getZ1Beam(), and initialize().
double DDHCalEndcapAlgo::zEnd [private] |
Definition at line 119 of file DDHCalEndcapAlgo.h.
Referenced by getZEnd(), and initialize().
double DDHCalEndcapAlgo::zFront [private] |
Definition at line 118 of file DDHCalEndcapAlgo.h.
Referenced by getZFront(), and initialize().
double DDHCalEndcapAlgo::ziBody [private] |
Definition at line 122 of file DDHCalEndcapAlgo.h.
Referenced by getZiBody(), and initialize().
double DDHCalEndcapAlgo::ziDip [private] |
Definition at line 127 of file DDHCalEndcapAlgo.h.
Referenced by getZiDip(), and initialize().
double DDHCalEndcapAlgo::ziKink [private] |
Definition at line 124 of file DDHCalEndcapAlgo.h.
Referenced by getZiKink(), and initialize().
double DDHCalEndcapAlgo::ziL0Body [private] |
Definition at line 123 of file DDHCalEndcapAlgo.h.
Referenced by getZiL0Body(), and initialize().
double DDHCalEndcapAlgo::ziL0Nose [private] |
Definition at line 121 of file DDHCalEndcapAlgo.h.
Referenced by getZiL0Nose(), and initialize().
double DDHCalEndcapAlgo::ziNose [private] |
Definition at line 120 of file DDHCalEndcapAlgo.h.
Referenced by getZiNose(), and initialize().
std::vector<double> DDHCalEndcapAlgo::zmaxBlock [private] |
Definition at line 161 of file DDHCalEndcapAlgo.h.
Referenced by getZmaxBlock(), and initialize().
std::vector<double> DDHCalEndcapAlgo::zminBlock [private] |
Definition at line 160 of file DDHCalEndcapAlgo.h.
Referenced by getZminBlock(), and initialize().
double DDHCalEndcapAlgo::zShift [private] |
Definition at line 116 of file DDHCalEndcapAlgo.h.
Referenced by getZShift(), and initialize().
double DDHCalEndcapAlgo::zShiftHac2 [private] |
Definition at line 130 of file DDHCalEndcapAlgo.h.
Referenced by getZShiftHac2(), and initialize().