CMS 3D CMS Logo

DDHCalEndcapAlgo Class Reference

#include <Geometry/HcalAlgo/interface/DDHCalEndcapAlgo.h>

List of all members.

Public Member Functions

 DDHCalEndcapAlgo ()
int equipModule (unsigned int i) const
void execute ()
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 ()
void constructInsideModule (DDLogicalPart module, int mod)
void constructInsideModule0 (DDLogicalPart module, int mod)
void constructInsideSector (DDLogicalPart sector)
void constructScintLayer (DDLogicalPart glog, double pDz, double yh, double bl, double tl, double alp, std::string name, int id)
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 &zpos)
void parameterLayer0 (int mod, int layer, int iphi, double &yh, double &bl, double &tl, double &alp, double &xpos, double &ypos, double &zpos)

Private Attributes

std::string absMat
double angBot
double angGap
double angTop
double drEnd
double dzShift
double dzStep
std::vector< inteModule
std::string genMaterial
double heboxDepth
std::string idName
std::string idNameSpace
int idOffset
std::vector< intlayerN
std::vector< intlayerN0
std::vector< intlayerN1
std::vector< intlayerN2
std::vector< intlayerN3
std::vector< intlayerN4
std::vector< intlayerN5
std::vector< std::string > layerName
int layers
std::vector< double > layerT
std::vector< intlayerType
std::vector< std::string > modMat
std::vector< std::string > modName
std::vector< intmodType
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< intsectionModule
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


Detailed Description

Definition at line 10 of file DDHCalEndcapAlgo.h.


Constructor & Destructor Documentation

DDHCalEndcapAlgo::DDHCalEndcapAlgo (  ) 

Definition at line 23 of file DDHCalEndcapAlgo.cc.

References LogDebug.

00023                                   :
00024   modMat(0),modType(0),sectionModule(0),layerN(0),layerN0(0),layerN1(0),
00025   layerN2(0),layerN3(0),layerN4(0),layerN5(0),thick(0),trimLeft(0),
00026   trimRight(0),zminBlock(0),zmaxBlock(0),rinBlock1(0),routBlock1(0),
00027   rinBlock2(0),routBlock2(0),layerType(0),layerT(0),scintT(0) {
00028   LogDebug("HCalGeom") << "DDHCalEndcapAlgo info: Creating an instance";
00029 }

DDHCalEndcapAlgo::~DDHCalEndcapAlgo (  )  [virtual]

Definition at line 31 of file DDHCalEndcapAlgo.cc.

00031 {}


Member Function Documentation

void DDHCalEndcapAlgo::constructGeneralVolume (  )  [protected]

!!!!!!!!!!!!!!!!Should be zero. And removed as soon as

Definition at line 323 of file DDHCalEndcapAlgo.cc.

References constructInsideSector(), dbl_to_string(), DDpos(), 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, name, DDBase< N, C >::name(), dbtoconf::parent, phi, pi, DDSolidFactory::polyhedra(), proto, rot, rotation, rotHalf, rotns, edm::second(), and funct::tan().

Referenced by execute().

00323                                               {
00324   
00325   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: General volume...";
00326   bool proto = true;
00327   for (int i=0; i<3; i++) 
00328     if (equipModule(i) > 0) proto = false;
00329 
00330   DDRotation    rot;
00331   if (DDSplit(getRotation()).first == "NULL") rot = DDRotation();
00332   else rot = DDRotation(DDName(DDSplit(getRotation()).first,DDSplit(getRotation()).second));
00333   LogDebug("HCalGeom") << " First " << DDSplit(getRotation()).first
00334                        << " Second " << DDSplit(getRotation()).second 
00335                        << " Rotation " << rot;
00336   DDTranslation r0(0,0,getZShift());
00337   double alpha = pi/getNsectors();
00338   double dphi  = getNsectortot()*twopi/getNsectors();
00339 
00341   //vertical walls are allowed in SolidPolyhedra
00342   double delz = 0;
00343 
00344   vector<double> pgonZ, pgonRmin, pgonRmax;
00345   if (proto) {
00346     double zf = getZiBody() + getZShiftHac2();
00347     pgonZ.push_back(zf - getDzShift()); 
00348     pgonRmin.push_back(zf * tan(getAngBot())); 
00349     pgonRmax.push_back((zf - getZ1Beam())*getSlope()); 
00350   } else {
00351     pgonZ.push_back(getZFront()   - getDzShift()); 
00352     pgonRmin.push_back(getZFront()   * tan(getAngTop())); 
00353     pgonRmax.push_back((getZFront()   - getZ1Beam())*getSlope()); 
00354     pgonZ.push_back(getZiL0Body() - getDzShift()); 
00355     pgonRmin.push_back(getZiL0Body() * tan(getAngTop())); 
00356     pgonRmax.push_back((getZiL0Body() - getZ1Beam())*getSlope()); 
00357     pgonZ.push_back(getZiL0Body() - getDzShift()); 
00358     pgonRmin.push_back(getZiL0Body() * tan(getAngBot())); 
00359     pgonRmax.push_back((getZiL0Body() - getZ1Beam())*getSlope()); 
00360   }
00361   pgonZ.push_back(getZiKink()   - getDzShift()); 
00362   pgonRmin.push_back(getRinKink()); 
00363   pgonRmax.push_back(getRout()); 
00364   pgonZ.push_back(getZiDip()    - getDzShift()); 
00365   pgonRmin.push_back(getRinDip()); 
00366   pgonRmax.push_back(getRout()); 
00367   pgonZ.push_back(getZiDip()    - getDzShift() + delz); 
00368   pgonRmin.push_back(getRinDip()); 
00369   pgonRmax.push_back(getRoutDip()); 
00370   pgonZ.push_back(getZEnd()     - getDzShift()); 
00371   pgonRmin.push_back(getZEnd() * tan(getAngBot())); 
00372   pgonRmax.push_back(getRoutDip()); 
00373   pgonZ.push_back(getZEnd()); 
00374   pgonRmin.push_back(getZEnd() * tan(getAngBot())); 
00375   pgonRmax.push_back(getRoutDip()); 
00376 
00377   string name("Null");
00378   unsigned int i=0;
00379   DDSolid solid;
00380   solid = DDSolidFactory::polyhedra(DDName(idName, idNameSpace),
00381                                     getNsectortot(), -alpha, dphi, pgonZ, 
00382                                     pgonRmin, pgonRmax);
00383   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " 
00384                        << DDName(idName, idNameSpace) << " Polyhedra made of "
00385                        << getGenMat() << " with " << getNsectortot() 
00386                        << " sectors from " << -alpha/deg << " to " 
00387                        << (-alpha+dphi)/deg << " and with " << pgonZ.size() 
00388                        << " sections";
00389   for (i = 0; i <pgonZ.size(); i++) 
00390     LogDebug("HCalGeom") << "\t\tZ = " << pgonZ[i] << "\tRmin = " <<pgonRmin[i]
00391                          << "\tRmax = " << pgonRmax[i];
00392 
00393   DDName matname(DDSplit(getGenMat()).first, DDSplit(getGenMat()).second); 
00394   DDMaterial matter(matname);
00395   DDLogicalPart genlogic(DDName(idName, idNameSpace), matter, solid);
00396 
00397   DDName parentName = parent().name(); 
00398   DDpos(DDName(idName, idNameSpace), parentName, 1, r0, rot);
00399   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " 
00400                        << DDName(idName, idNameSpace) << " number 1 positioned"
00401                        << " in " << parentName << " at " << r0 << " with " 
00402                        << rot;
00403   if (getEndcaps() != 1) {
00404     rot = DDRotation(DDName(rotHalf,rotns));
00405     DDpos (DDName(idName, idNameSpace), parentName, 2, r0, rot);
00406     LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " 
00407                          << DDName(idName, idNameSpace) << " number 2 "
00408                          << "positioned in " << parentName  << " at " << r0
00409                          << " with " << rot;
00410   }
00411 
00412   //Forward half
00413   name  = idName + "Front";
00414   vector<double> pgonZMod, pgonRminMod, pgonRmaxMod;
00415   for (i=0; i < (pgonZ.size()-1); i++) {
00416     pgonZMod.push_back(pgonZ[i] + getDzShift()); 
00417     pgonRminMod.push_back(pgonRmin[i]); 
00418     pgonRmaxMod.push_back(pgonRmax[i]); 
00419   }
00420   solid = DDSolidFactory::polyhedra(DDName(name, idNameSpace),
00421                                     getNsectortot(), -alpha, dphi, pgonZMod,
00422                                     pgonRminMod, pgonRmaxMod);
00423   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace)
00424                        << " Polyhedra made of " << getGenMat() << " with "
00425                        << getNsectortot() << " sectors from " << -alpha/deg 
00426                        << " to " << (-alpha+dphi)/deg << " and with "
00427                        << pgonZMod.size() << " sections ";
00428   for (i = 0; i < pgonZMod.size(); i++) 
00429     LogDebug("HCalGeom") << "\t\tZ = " << pgonZMod[i] << "\tRmin = " 
00430                          << pgonRminMod[i] << "\tRmax = " << pgonRmaxMod[i];
00431   DDLogicalPart genlogich(DDName(name, idNameSpace), matter, solid);
00432 
00433   DDpos(genlogich, genlogic, 1, DDTranslation(0.0, 0.0, -getDzShift()),
00434         DDRotation());
00435   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << genlogich.name() 
00436                        << " number 1 positioned in " << genlogic.name() 
00437                        << " at (0,0," << -getDzShift() << ") with no rotation";
00438   
00439   //Construct sector (from -alpha to +alpha)
00440   name  = idName + "Module";
00441   solid =   DDSolidFactory::polyhedra(DDName(name, idNameSpace),
00442                                       1, -alpha, 2*alpha, pgonZMod,
00443                                       pgonRminMod, pgonRmaxMod);
00444   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace)
00445                        << " Polyhedra made of " << getGenMat() 
00446                        <<" with 1 sector from " << -alpha/deg << " to " 
00447                        << alpha/deg << " and with " << pgonZMod.size() 
00448                        << " sections";
00449   for (i = 0; i < pgonZMod.size(); i++) 
00450     LogDebug("HCalGeom") << "\t\tZ = " << pgonZMod[i] << "\tRmin = " 
00451                          << pgonRminMod[i] << "\tRmax = " << pgonRmaxMod[i];
00452 
00453   DDLogicalPart seclogic(DDName(name, idNameSpace), matter, solid);
00454   
00455   for (int ii=0; ii<getNsectortot(); ii++) {
00456     double phi    = ii*2*alpha;
00457     double phideg = phi/deg;
00458     
00459     DDRotation rotation;
00460     string rotstr("NULL");
00461     if (phideg != 0) {
00462       rotstr = "R"; 
00463       if (phideg < 100) rotstr = "R0"; 
00464       rotstr = rotstr + dbl_to_string(phideg);
00465       rotation = DDRotation(DDName(rotstr, rotns)); 
00466       if (!rotation) {
00467         LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Creating a new "
00468                              << "rotation " << rotstr << "\t" << 90 << "," 
00469                              << phideg << ","  << 90 << "," << (phideg+90)
00470                              << ", 0, 0";
00471         rotation = DDrot(DDName(rotstr, rotns), 90*deg, phideg*deg, 
00472                          90*deg, (90+phideg)*deg, 0*deg,  0*deg);
00473       } //if !rotation
00474     } //if phideg!=0
00475   
00476     DDpos (seclogic, genlogich, ii+1, DDTranslation(0.0, 0.0, 0.0), rotation);
00477     LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << seclogic.name() 
00478                          << " number " << ii+1 << " positioned in " 
00479                          << genlogich.name() << " at (0,0,0) with " <<rotation;
00480   }
00481   
00482   //Construct the things inside the sector
00483   constructInsideSector(seclogic);
00484 
00485   //Backward half
00486   name  = idName + "Back";
00487   vector<double> pgonZBack, pgonRminBack, pgonRmaxBack;
00488   pgonZBack.push_back(getZEnd() - getDzShift()); 
00489   pgonRminBack.push_back(pgonZBack[0]*tan(getAngBot()) + getDrEnd()); 
00490   pgonRmaxBack.push_back(getRoutDip()); 
00491   pgonZBack.push_back(getZEnd()); 
00492   pgonRminBack.push_back(pgonZBack[1]*tan(getAngBot()) + getDrEnd()); 
00493   pgonRmaxBack.push_back(getRoutDip()); 
00494   solid = DDSolidFactory::polyhedra(DDName(name, idNameSpace),
00495                                     getNsectortot(), -alpha, dphi, pgonZBack,
00496                                     pgonRminBack, pgonRmaxBack);
00497   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace)
00498                        << " Polyhedra made of " << getAbsMat() << " with " 
00499                        << getNsectortot() << " sectors from " << -alpha/deg 
00500                        << " to " << (-alpha+dphi)/deg << " and with " 
00501                        << pgonZBack.size()      << " sections";
00502   for (i = 0; i < pgonZBack.size(); i++) 
00503     LogDebug("HCalGeom") << "\t\tZ = " << pgonZBack[i] << "\tRmin = " 
00504                          << pgonRminBack[i] << "\tRmax = " << pgonRmaxBack[i];
00505   DDName absMatname(DDSplit(getAbsMat()).first, DDSplit(getAbsMat()).second); 
00506   DDMaterial absMatter(absMatname);
00507   DDLogicalPart glog(DDName(name, idNameSpace), absMatter, solid);
00508 
00509   DDpos(glog, genlogic, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
00510   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() 
00511                        << " number 1 positioned in "  << genlogic.name() 
00512                        << " at (0,0,0) with no rotation";
00513 }

void DDHCalEndcapAlgo::constructInsideModule ( DDLogicalPart  module,
int  mod 
) [protected]

Definition at line 778 of file DDHCalEndcapAlgo.cc.

References constructScintLayer(), DDBase< N, C >::ddname(), DDpos(), 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, name, DDName::name(), DDBase< N, C >::name(), parameterLayer(), phi, pi, r1, r2, rot, rotns, edm::second(), funct::tan(), theta, tl1, tl2, and DDSolidFactory::trap().

Referenced by constructInsideSector().

00778                                                                           {
00779   
00780   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: \t\tInside module ..." <<mod;
00781 
00783   //Pointers to the Rotation Matrices and to the Materials
00784   string rotstr = getRotMat();
00785   DDRotation rot(DDName(rotstr, rotns));
00786   DDName matName(DDSplit(getGenMat()).first, DDSplit(getGenMat()).second);
00787   DDMaterial matter(matName);
00788   DDName plasName(DDSplit(getPlastMat()).first, DDSplit(getPlastMat()).second);
00789   DDMaterial matplastic(plasName);
00790 
00791   double  alpha = pi/getNsectors();
00792   double  zi    = getZminBlock(mod);
00793 
00794   for (int i = 0; i < getLayerN(mod); i++) {
00795     string name;
00796     DDSolid solid;
00797     DDLogicalPart glog, plog;
00798     int     layer  = getLayer(mod,i);
00799     double  zo     = zi + 0.5*getDzStep();
00800 
00801     for (int iphi = 0; iphi < getPhi(); iphi++) {
00802       double  ziAir = zo - getThick(mod);
00803       double  rinF, rinB;
00804       if (layer == 1) {
00805         rinF  = ziAir * tan(getAngTop());
00806         rinB  = zo    * tan(getAngTop());
00807       } else {
00808         rinF  = ziAir * tan(getAngBot());
00809         rinB  = zo    * tan(getAngBot());
00810       }
00811       double routF = (ziAir - getZ1Beam()) * getSlope();
00812       double routB = (zo    - getZ1Beam()) * getSlope();
00813       if (routF > getRoutBlock2(mod)) routF =  getRoutBlock2(mod);
00814       if (routB > getRoutBlock2(mod)) routB =  getRoutBlock2(mod);
00815       LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Layer " << i << " Phi "
00816                            << iphi << " Front " << ziAir << ", " << rinF
00817                            << ", " << routF << " Back " << zo << ", " << rinB
00818                            << ", " << routB;
00819       double yh1, bl1, tl1, yh2, bl2, tl2, theta, phi, alp;
00820       double xpos, ypos, zpos;
00821       parameterLayer(iphi, rinF, routF, rinB, routB, ziAir, zo, yh1, bl1, tl1, 
00822                      yh2, bl2, tl2, alp, theta, phi, xpos, ypos, zpos);
00823       
00824       name = module.name().name()+getLayerName(layer)+getPhiName(iphi)+"Air";
00825       solid = DDSolidFactory::trap(DDName(name, idNameSpace), 
00826                                    0.5*getThick(mod), theta, phi, yh1,
00827                                    bl1, tl1, alp, yh2, bl2, tl2, alp);
00828       LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() 
00829                            << " Trap made of " << getGenMat() 
00830                            << " of dimensions " << 0.5*getThick(mod) << ", " 
00831                            << theta/deg << ", " << phi/deg << ", " << yh1 
00832                            << ", " << bl1 << ", " << tl1 << ", " << alp/deg 
00833                            << ", " << yh2 << ", " << bl2 << ", " << tl2 << ", "
00834                            << alp/deg;
00835       glog = DDLogicalPart(solid.ddname(), matter, solid);
00836 
00837       DDTranslation r1(xpos, ypos, zpos);
00838       DDpos(glog, module, layer+1, r1, rot);
00839       LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() 
00840                            << " number " << layer+1 << " positioned in " 
00841                            << module.name() << " at " << r1 << " with " << rot;
00842 
00843       //Now the plastic with scintillators
00844       double yh = 0.5 * (routF - rinB) - getTrim(mod,iphi);
00845       double bl = 0.5 * rinB  * tan(alpha) - getTrim(mod,iphi);
00846       double tl = 0.5 * routF * tan(alpha) - getTrim(mod,iphi);
00847       name = module.name().name()+getLayerName(layer)+getPhiName(iphi);
00848       solid = DDSolidFactory::trap(DDName(name, idNameSpace), 
00849                                    0.5*getLayerT(layer), 0, 0, yh,
00850                                    bl, tl, alp, yh, bl, tl, alp);
00851       LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() 
00852                            << " Trap made of " << getPlastMat() 
00853                            << " of dimensions " << 0.5*getLayerT(layer) 
00854                            << ", 0, 0, " << yh << ", " << bl << ", " << tl
00855                            << ", " << alp/deg << ", " << yh << ", " << bl 
00856                            << ", " << tl << ", " << alp/deg;
00857       plog = DDLogicalPart(solid.ddname(), matplastic, solid);
00858 
00859       ypos = 0.5*(routF+rinB) - xpos;
00860       DDTranslation r2(0., ypos, 0.);
00861       DDpos(plog, glog, idOffset+layer+1, r2, DDRotation());
00862       LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << plog.name() 
00863                            << " number " << idOffset+layer+1 
00864                            << " positioned in " << glog.name() << " at " << r2
00865                            << " with no rotation";
00866 
00867       //Constructin the scintillators inside
00868       int copyNo = layer*10 + getLayerType(layer);
00869       name = getModName(mod)+getLayerName(layer)+getPhiName(iphi);
00870       constructScintLayer (plog, getScintT(layer), yh,bl,tl, alp,name,copyNo);
00871       zo += 0.5*getDzStep();
00872     } // End of loop over phi indices
00873     zi = zo - 0.5*getDzStep();
00874   }   // End of loop on layers
00875 }

void DDHCalEndcapAlgo::constructInsideModule0 ( DDLogicalPart  module,
int  mod 
) [protected]

Definition at line 683 of file DDHCalEndcapAlgo.cc.

References constructScintLayer(), DDBase< N, C >::ddname(), DDpos(), DDSplit(), first, getAbsMat(), getAngBot(), getAngTop(), getDzStep(), getLayer(), getLayerName(), getLayerT(), getLayerType(), getModName(), getPhi(), getPhiName(), getPlastMat(), getRotMat(), getScintT(), getSlope(), getThick(), getTolAbs(), getZ1Beam(), getZminBlock(), idNameSpace, idOffset, LogDebug, name, DDName::name(), DDBase< N, C >::name(), parameterLayer(), parameterLayer0(), phi, r1, r2, rot, rotns, edm::second(), funct::tan(), theta, tl1, tl2, and DDSolidFactory::trap().

Referenced by constructInsideSector().

00683                                                                            {
00684   
00685   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: \t\tInside module0 ..."<<mod;
00686 
00688   //Pointers to the Rotation Matrices and to the Materials
00689   string rotstr = getRotMat();
00690   DDRotation rot(DDName(rotstr, rotns));
00691   DDName matName(DDSplit(getAbsMat()).first, DDSplit(getAbsMat()).second);
00692   DDMaterial matabsorbr(matName);
00693   DDName plasName(DDSplit(getPlastMat()).first, DDSplit(getPlastMat()).second);
00694   DDMaterial matplastic(plasName);
00695 
00696   int     layer  = getLayer(mod,0);
00697   int     layer0 = getLayer(mod,1);
00698   string  name;
00699   double  xpos, ypos, zpos;
00700   DDSolid solid;
00701   DDLogicalPart glog, plog;
00702   for (int iphi = 0; iphi < getPhi(); iphi++) {
00703     double yh, bl, tl, alp;
00704     parameterLayer0(mod, layer, iphi, yh, bl, tl, alp, xpos, ypos, zpos);
00705     name = module.name().name()+getLayerName(layer)+getPhiName(iphi);
00706     solid = DDSolidFactory::trap(DDName(name, idNameSpace), 
00707                                  0.5*getLayerT(layer), 0, 0, yh,
00708                                  bl, tl, alp, yh, bl, tl, alp);
00709     LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() 
00710                          << " Trap made of " << getPlastMat() 
00711                          << " of dimensions " << 0.5*getLayerT(layer) 
00712                          << ", 0, 0, " << yh << ", " << bl << ", " << tl 
00713                          << ", " << alp/deg << ", " << yh << ", " << bl 
00714                          << ", " << tl << ", " << alp/deg;
00715     glog = DDLogicalPart(solid.ddname(), matplastic, solid);
00716 
00717     DDTranslation r1(xpos, ypos, zpos);
00718     DDpos(glog, module, idOffset+layer+1, r1, rot);
00719     LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() 
00720                          << " number " << idOffset+layer+1 << " positioned in "
00721                          << module.name() << " at " << r1 << " with " << rot;
00722     //Now construct the layer of scintillator inside this
00723     int copyNo = layer0*10 + getLayerType(layer);
00724     name = getModName(mod)+getLayerName(layer)+getPhiName(iphi);
00725     constructScintLayer (glog, getScintT(layer), yh, bl, tl, alp, name,copyNo);
00726   }
00727 
00728   //Now the absorber layer
00729   double zi = getZminBlock(mod) + getLayerT(layer);
00730   double zo = zi + 0.5*getDzStep();
00731   double rinF, routF, rinB, routB;
00732   if (mod == 0) {
00733     rinF  = zi * tan(getAngTop());
00734     routF =(zi - getZ1Beam()) * getSlope();
00735     rinB  = zo * tan(getAngTop());
00736     routB =(zo - getZ1Beam()) * getSlope();
00737   } else {
00738     rinF  = zi * tan(getAngBot());
00739     routF = zi * tan(getAngTop());
00740     rinB  = zo * tan(getAngBot());
00741     routB = zo * tan(getAngTop());
00742   }
00743   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Module " << mod << " Front "
00744                        << zi << ", " << rinF << ", " << routF << " Back "
00745                        << zo << ", " << rinB << ", " << routB;
00746   double yh1, bl1, tl1, yh2, bl2, tl2, theta, phi, alp;
00747   parameterLayer(0, rinF, routF, rinB, routB, zi, zo, yh1, bl1, tl1, yh2, bl2, 
00748                  tl2, alp, theta, phi, xpos, ypos, zpos);
00749   double fact = getTolAbs();
00750   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Trim " << fact << " Param "
00751                        << yh1 << ", " << bl1 << ", " << tl1 << ", " << yh2
00752                        << ", " << bl2 << ", " << tl2;
00753   bl1 -= fact;
00754   tl1 -= fact;
00755   bl2 -= fact;
00756   tl2 -= fact;
00757 
00758   name = module.name().name()+"Absorber";
00759   solid = DDSolidFactory::trap(DDName(name, idNameSpace), 
00760                                0.5*getThick(mod), theta, phi, yh1,
00761                                bl1, tl1, alp, yh2, bl2, tl2, alp);
00762   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() 
00763                        << " Trap made of " << getAbsMat() << " of dimensions " 
00764                        << 0.5*getThick(mod) << ", " << theta/deg << ", " 
00765                        << phi/deg << ", " << yh1 << ", " << bl1 << ", " 
00766                        << tl1 << ", " << alp/deg << ", " << yh2 << ", " << bl2 
00767                        << ", " << tl2 << ", " << alp/deg;
00768   glog = DDLogicalPart(solid.ddname(), matabsorbr, solid);
00769 
00770   DDTranslation r2(xpos, ypos, zpos);
00771   DDpos(glog, module, 1, r2, rot);
00772   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() 
00773                        << " number 1 positioned in " << module.name() << " at "
00774                        << r2 << " with " << rot;
00775 }

void DDHCalEndcapAlgo::constructInsideSector ( DDLogicalPart  sector  )  [protected]

!!!!!!!!!!!!!!!!Should be zero. And removed as soon as

Definition at line 516 of file DDHCalEndcapAlgo.cc.

References constructInsideModule(), constructInsideModule0(), DDpos(), 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, k, LogDebug, name, DDBase< N, C >::name(), pi, DDSolidFactory::polyhedra(), edm::second(), and funct::tan().

Referenced by constructGeneralVolume().

00516                                                                  {
00517   
00518   LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Modules (" << getModules()
00519                        << ") ...";
00520   double alpha = pi/getNsectors();
00521 
00522   for (int i = 0; i < getModules(); i++) {
00523     string  name   = idName + getModName(i);
00524     DDName matname(DDSplit(getModMat(i)).first, DDSplit(getModMat(i)).second); 
00525     DDMaterial matter(matname);
00526     
00527     if (equipModule(i)>0) {
00528       int nsec = getSectionModule(i);
00529 
00531       //vertical walls are allowed in SolidPolyhedra
00532       double deltaz = 0;
00533     
00534       vector<double> pgonZ, pgonRmin, pgonRmax;
00535       if (nsec == 3) {
00536         double zf = getZminBlock(i) + getZShiftHac2();
00537         pgonZ.push_back(zf);
00538         pgonRmin.push_back(zf*tan(getAngBot())); 
00539         pgonRmax.push_back((zf-getZ1Beam())*getSlope());
00540         pgonZ.push_back(getZiKink());  
00541         pgonRmin.push_back(getRinKink()); 
00542         pgonRmax.push_back(getRout());
00543       } else {
00544         pgonZ.push_back(getZminBlock(i));
00545         pgonRmin.push_back(getRinBlock1(i)); 
00546         pgonRmax.push_back(getRoutBlock1(i));
00547       }
00548       if (nsec == 4) {
00549         pgonZ.push_back(getZiDip());
00550         pgonRmin.push_back(getRinDip());
00551         pgonRmax.push_back(getRout());
00552         pgonZ.push_back(pgonZ[1] + deltaz);
00553         pgonRmin.push_back(pgonRmin[1]); 
00554         pgonRmax.push_back(getRoutDip());
00555       }
00556       pgonZ.push_back(getZmaxBlock(i));
00557       pgonRmin.push_back(getRinBlock2(i)); 
00558       pgonRmax.push_back(getRoutBlock2(i));
00559 
00560       //Solid & volume
00561       DDSolid solid;
00562       solid = DDSolidFactory::polyhedra(DDName(name, idNameSpace), 
00563                                         1, -alpha, 2*alpha,
00564                                         pgonZ, pgonRmin, pgonRmax);
00565       LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " 
00566                            << DDName(name,idNameSpace) << " Polyhedra made of "
00567                            << getModMat(i) << " with 1 sector from "
00568                            << -alpha/deg << " to " << alpha/deg << " and with "
00569                            << nsec << " sections";
00570       for (unsigned int k=0; k<pgonZ.size(); k++)
00571         LogDebug("HCalGeom") << "\t\tZ = " << pgonZ[k] << "\tRmin = "
00572                              << pgonRmin[k] << "\tRmax = " << pgonRmax[k];
00573     
00574       DDLogicalPart glog(DDName(name, idNameSpace), matter, solid);
00575 
00576       DDpos (glog, sector, i+1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
00577       LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() 
00578                            << " number " << i+1 << " positioned in " 
00579                            << sector.name() << " at (0,0,0) with no rotation";
00580       
00581       if (getModType(i) == 0) 
00582         constructInsideModule0 (glog, i);
00583       else
00584         constructInsideModule  (glog, i);
00585     }
00586   }
00587   
00588 }

void DDHCalEndcapAlgo::constructScintLayer ( DDLogicalPart  glog,
double  pDz,
double  yh,
double  bl,
double  tl,
double  alp,
std::string  name,
int  id 
) [protected]

Referenced by constructInsideModule(), and constructInsideModule0().

int DDHCalEndcapAlgo::equipModule ( unsigned int  i  )  const [inline]

Definition at line 22 of file DDHCalEndcapAlgo.h.

References eModule.

Referenced by constructGeneralVolume(), and constructInsideSector().

00022 {return eModule[i];}

void DDHCalEndcapAlgo::execute (  ) 

Definition at line 314 of file DDHCalEndcapAlgo.cc.

References constructGeneralVolume(), and LogDebug.

00314                                {
00315   
00316   LogDebug("HCalGeom") << "==>> Constructing DDHCalEndcapAlgo...";
00317   constructGeneralVolume();
00318   LogDebug("HCalGeom") << "<<== End of DDHCalEndcapAlgo construction ...";
00319 }

std::string DDHCalEndcapAlgo::getAbsMat (  )  const [inline]

Definition at line 50 of file DDHCalEndcapAlgo.h.

References absMat.

Referenced by constructGeneralVolume(), and constructInsideModule0().

00050 {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().

00046 {return angBot;}

double DDHCalEndcapAlgo::getAngGap (  )  const [inline]

Definition at line 47 of file DDHCalEndcapAlgo.h.

References angGap.

00047 {return angGap;}

double DDHCalEndcapAlgo::getAngTop (  )  const [inline]

Definition at line 45 of file DDHCalEndcapAlgo.h.

References angTop.

Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), and parameterLayer0().

00045 {return angTop;}

double DDHCalEndcapAlgo::getDrEnd (  )  const [inline]

Definition at line 44 of file DDHCalEndcapAlgo.h.

References drEnd.

Referenced by constructGeneralVolume().

00044 {return drEnd;}

double DDHCalEndcapAlgo::getDzShift (  )  const [inline]

Definition at line 36 of file DDHCalEndcapAlgo.h.

References dzShift.

Referenced by constructGeneralVolume().

00036 {return dzShift;}

double DDHCalEndcapAlgo::getDzStep (  )  const [inline]

Definition at line 35 of file DDHCalEndcapAlgo.h.

References dzStep.

Referenced by constructInsideModule(), and constructInsideModule0().

00035 {return dzStep;}

int DDHCalEndcapAlgo::getEndcaps (  )  const [inline]

Definition at line 21 of file DDHCalEndcapAlgo.h.

References nEndcap.

Referenced by constructGeneralVolume().

00021 {return nEndcap;}

std::string DDHCalEndcapAlgo::getGenMat (  )  const [inline]

Definition at line 17 of file DDHCalEndcapAlgo.h.

References genMaterial.

Referenced by constructGeneralVolume(), and constructInsideModule().

00017 {return genMaterial;}

double DDHCalEndcapAlgo::getHeboxDepth (  )  const [inline]

Definition at line 43 of file DDHCalEndcapAlgo.h.

References heboxDepth.

00043 {return heboxDepth;}

int DDHCalEndcapAlgo::getLayer ( unsigned int  i,
unsigned int  j 
) const

Definition at line 33 of file DDHCalEndcapAlgo.cc.

References layerN0, layerN1, layerN2, layerN3, layerN4, and layerN5.

Referenced by constructInsideModule(), and constructInsideModule0().

00033                                                                    {
00034 
00035   switch (i) {
00036   case 0: 
00037     return layerN0[j];
00038     break;
00039 
00040   case 1: 
00041     return layerN1[j];
00042     break;
00043 
00044   case 2: 
00045     return layerN2[j];
00046     break;
00047 
00048   case 3: 
00049     return layerN3[j];
00050     break;
00051 
00052   case 4: 
00053     return layerN4[j];
00054     break;
00055 
00056   case 5: 
00057     return layerN5[j];
00058     break;
00059 
00060   default:
00061     return 0;
00062   }
00063 }

int DDHCalEndcapAlgo::getLayerN ( unsigned int  i  )  const [inline]

Definition at line 56 of file DDHCalEndcapAlgo.h.

References layerN.

Referenced by constructInsideModule().

00056 {return layerN[i];}

std::string DDHCalEndcapAlgo::getLayerName ( unsigned int  i  )  const [inline]

Definition at line 70 of file DDHCalEndcapAlgo.h.

References layerName.

Referenced by constructInsideModule(), and constructInsideModule0().

00070 {return layerName[i];}

int DDHCalEndcapAlgo::getLayers (  )  const [inline]

Definition at line 69 of file DDHCalEndcapAlgo.h.

References layers.

00069 {return layers;}

double DDHCalEndcapAlgo::getLayerT ( unsigned int  i  )  const [inline]

Definition at line 72 of file DDHCalEndcapAlgo.h.

References layerT.

Referenced by constructInsideModule(), constructInsideModule0(), and parameterLayer0().

00072 {return layerT[i];}

int DDHCalEndcapAlgo::getLayerType ( unsigned int  i  )  const [inline]

Definition at line 71 of file DDHCalEndcapAlgo.h.

References layerType.

Referenced by constructInsideModule(), and constructInsideModule0().

00071 {return layerType[i];}

std::string DDHCalEndcapAlgo::getModMat ( unsigned int  i  )  const [inline]

Definition at line 53 of file DDHCalEndcapAlgo.h.

References modMat.

Referenced by constructInsideSector().

00053 {return modMat[i];}

std::string DDHCalEndcapAlgo::getModName ( unsigned int  i  )  const [inline]

Definition at line 52 of file DDHCalEndcapAlgo.h.

References modName.

Referenced by constructInsideModule(), constructInsideModule0(), and constructInsideSector().

00052 {return modName[i];}

int DDHCalEndcapAlgo::getModType ( unsigned int  i  )  const [inline]

Definition at line 54 of file DDHCalEndcapAlgo.h.

References modType.

Referenced by constructInsideSector().

00054 {return modType[i];}

int DDHCalEndcapAlgo::getModules (  )  const [inline]

Definition at line 51 of file DDHCalEndcapAlgo.h.

References modules.

Referenced by constructInsideSector().

00051 {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().

00019 {return nsectors;}

int DDHCalEndcapAlgo::getNsectortot (  )  const [inline]

Definition at line 20 of file DDHCalEndcapAlgo.h.

References nsectortot.

Referenced by constructGeneralVolume().

00020 {return nsectortot;}

int DDHCalEndcapAlgo::getPhi (  )  const [inline]

Definition at line 67 of file DDHCalEndcapAlgo.h.

References phiSections.

Referenced by constructInsideModule(), and constructInsideModule0().

00067 {return phiSections;}

std::string DDHCalEndcapAlgo::getPhiName ( unsigned int  i  )  const [inline]

Definition at line 68 of file DDHCalEndcapAlgo.h.

References phiName.

Referenced by constructInsideModule(), and constructInsideModule0().

00068 {return phiName[i];}

std::string DDHCalEndcapAlgo::getPlastMat (  )  const [inline]

Definition at line 74 of file DDHCalEndcapAlgo.h.

References plastMat.

Referenced by constructInsideModule(), and constructInsideModule0().

00074 {return plastMat;}

double DDHCalEndcapAlgo::getRinBlock1 ( unsigned  i  )  const [inline]

Definition at line 62 of file DDHCalEndcapAlgo.h.

References rinBlock1.

Referenced by constructInsideSector().

00062 {return rinBlock1[i];}

double DDHCalEndcapAlgo::getRinBlock2 ( unsigned  i  )  const [inline]

Definition at line 63 of file DDHCalEndcapAlgo.h.

References rinBlock2.

Referenced by constructInsideSector().

00063 {return rinBlock2[i];}

double DDHCalEndcapAlgo::getRinDip (  )  const [inline]

Definition at line 41 of file DDHCalEndcapAlgo.h.

References riDip.

Referenced by constructGeneralVolume(), and constructInsideSector().

00041 {return riDip;}

double DDHCalEndcapAlgo::getRinKink (  )  const [inline]

Definition at line 40 of file DDHCalEndcapAlgo.h.

References riKink.

Referenced by constructGeneralVolume(), and constructInsideSector().

00040 {return riKink;}

std::string DDHCalEndcapAlgo::getRotation (  )  const [inline]

Definition at line 18 of file DDHCalEndcapAlgo.h.

References rotation.

Referenced by constructGeneralVolume().

00018 {return rotation;}

std::string DDHCalEndcapAlgo::getRotMat (  )  const [inline]

Definition at line 76 of file DDHCalEndcapAlgo.h.

References rotmat.

Referenced by constructInsideModule(), and constructInsideModule0().

00076 {return rotmat;}

double DDHCalEndcapAlgo::getRout (  )  const [inline]

Definition at line 39 of file DDHCalEndcapAlgo.h.

References rout.

Referenced by constructGeneralVolume(), and constructInsideSector().

00039 {return rout;}

double DDHCalEndcapAlgo::getRoutBlock1 ( unsigned  i  )  const [inline]

Definition at line 64 of file DDHCalEndcapAlgo.h.

References routBlock1.

Referenced by constructInsideSector().

00064 {return routBlock1[i];}

double DDHCalEndcapAlgo::getRoutBlock2 ( unsigned  i  )  const [inline]

Definition at line 65 of file DDHCalEndcapAlgo.h.

References routBlock2.

Referenced by constructInsideModule(), and constructInsideSector().

00065 {return routBlock2[i];}

double DDHCalEndcapAlgo::getRoutDip (  )  const [inline]

Definition at line 42 of file DDHCalEndcapAlgo.h.

References roDip.

Referenced by constructGeneralVolume(), and constructInsideSector().

00042 {return roDip;}

std::string DDHCalEndcapAlgo::getScintMat (  )  const [inline]

Definition at line 75 of file DDHCalEndcapAlgo.h.

References scintMat.

00075 {return scintMat;}

double DDHCalEndcapAlgo::getScintT ( unsigned int  i  )  const [inline]

Definition at line 73 of file DDHCalEndcapAlgo.h.

References scintT.

Referenced by constructInsideModule(), and constructInsideModule0().

00073 {return scintT[i];}

int DDHCalEndcapAlgo::getSectionModule ( unsigned  i  )  const [inline]

Definition at line 55 of file DDHCalEndcapAlgo.h.

References sectionModule.

Referenced by constructInsideSector().

00055 {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().

00048 {return slope;}

double DDHCalEndcapAlgo::getThick ( unsigned int  i  )  const [inline]

Definition at line 58 of file DDHCalEndcapAlgo.h.

References thick.

Referenced by constructInsideModule(), and constructInsideModule0().

00058 {return thick[i];}

double DDHCalEndcapAlgo::getTolAbs (  )  const [inline]

Definition at line 78 of file DDHCalEndcapAlgo.h.

References tolAbs.

Referenced by constructInsideModule0().

00078 {return tolAbs;}

double DDHCalEndcapAlgo::getTolPos (  )  const [inline]

Definition at line 77 of file DDHCalEndcapAlgo.h.

References tolPos.

Referenced by parameterLayer().

00077 {return tolPos;}

double DDHCalEndcapAlgo::getTrim ( unsigned int  i,
unsigned int  j 
) const

Definition at line 65 of file DDHCalEndcapAlgo.cc.

References trimLeft, and trimRight.

Referenced by constructInsideModule(), and parameterLayer0().

00065                                                                      {
00066  
00067  if (j == 0)
00068     return trimLeft[i];
00069   else
00070     return trimRight[j];
00071 }

double DDHCalEndcapAlgo::getZ0Beam (  )  const [inline]

Definition at line 32 of file DDHCalEndcapAlgo.h.

References z0Beam.

00032 {return z0Beam;}

double DDHCalEndcapAlgo::getZ1Beam (  )  const [inline]

Definition at line 33 of file DDHCalEndcapAlgo.h.

References z1Beam.

Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), constructInsideSector(), and parameterLayer0().

00033 {return z1Beam;}

double DDHCalEndcapAlgo::getZEnd (  )  const [inline]

Definition at line 26 of file DDHCalEndcapAlgo.h.

References zEnd.

Referenced by constructGeneralVolume().

00026 {return zEnd;}

double DDHCalEndcapAlgo::getZFront (  )  const [inline]

Definition at line 25 of file DDHCalEndcapAlgo.h.

References zFront.

Referenced by constructGeneralVolume().

00025 {return zFront;}

double DDHCalEndcapAlgo::getZiBody (  )  const [inline]

Definition at line 29 of file DDHCalEndcapAlgo.h.

References ziBody.

Referenced by constructGeneralVolume().

00029 {return ziBody;}

double DDHCalEndcapAlgo::getZiDip (  )  const [inline]

Definition at line 34 of file DDHCalEndcapAlgo.h.

References ziDip.

Referenced by constructGeneralVolume(), and constructInsideSector().

00034 {return ziDip;}

double DDHCalEndcapAlgo::getZiKink (  )  const [inline]

Definition at line 31 of file DDHCalEndcapAlgo.h.

References ziKink.

Referenced by constructGeneralVolume(), and constructInsideSector().

00031 {return ziKink;}

double DDHCalEndcapAlgo::getZiL0Body (  )  const [inline]

Definition at line 30 of file DDHCalEndcapAlgo.h.

References ziL0Body.

Referenced by constructGeneralVolume().

00030 {return ziL0Body;}

double DDHCalEndcapAlgo::getZiL0Nose (  )  const [inline]

Definition at line 28 of file DDHCalEndcapAlgo.h.

References ziL0Nose.

00028 {return ziL0Nose;}

double DDHCalEndcapAlgo::getZiNose (  )  const [inline]

Definition at line 27 of file DDHCalEndcapAlgo.h.

References ziNose.

00027 {return ziNose;}

double DDHCalEndcapAlgo::getZmaxBlock ( unsigned  i  )  const [inline]

Definition at line 61 of file DDHCalEndcapAlgo.h.

References zmaxBlock.

Referenced by constructInsideSector(), and parameterLayer0().

00061 {return zmaxBlock[i];}

double DDHCalEndcapAlgo::getZminBlock ( unsigned  i  )  const [inline]

Definition at line 60 of file DDHCalEndcapAlgo.h.

References zminBlock.

Referenced by constructInsideModule(), constructInsideModule0(), constructInsideSector(), and parameterLayer0().

00060 {return zminBlock[i];}

double DDHCalEndcapAlgo::getZShift (  )  const [inline]

Definition at line 23 of file DDHCalEndcapAlgo.h.

References zShift.

Referenced by constructGeneralVolume().

00023 {return zShift;}

double DDHCalEndcapAlgo::getZShiftHac2 (  )  const [inline]

Definition at line 37 of file DDHCalEndcapAlgo.h.

References zShiftHac2.

Referenced by constructGeneralVolume(), and constructInsideSector().

00037 {return zShiftHac2;}

void DDHCalEndcapAlgo::initialize ( const DDNumericArguments nArgs,
const DDVectorArguments vArgs,
const DDMapArguments mArgs,
const DDStringArguments sArgs,
const DDStringVectorArguments vsArgs 
)

Definition at line 73 of file DDHCalEndcapAlgo.cc.

References absMat, angBot, angGap, angTop, dbl_to_int(), drEnd, dzShift, dzStep, eModule, funct::exp(), genMaterial, heboxDepth, i, idName, idNameSpace, idOffset, int, j, layerN, layerN0, layerN1, layerN2, layerN3, layerN4, layerN5, layerName, layers, layerT, layerType, LogDebug, modMat, modName, modType, modules, nEndcap, DDCurrentNamespace::ns(), nsectors, nsectortot, dbtoconf::parent, phiName, phiSections, plastMat, r1, 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.

00077                                                                           {
00078 
00079   int i,j;
00080   genMaterial   = sArgs["MaterialName"];
00081   rotation      = sArgs["Rotation"];
00082   nsectors      = int (nArgs["Sector"]);
00083   nsectortot    = int (nArgs["SectorTot"]);
00084   nEndcap       = int (nArgs["Endcap"]);
00085   rotHalf       = sArgs["RotHalf"];
00086   rotns         = sArgs["RotNameSpace"];
00087   zShift        = nArgs["ZShift"];
00088 
00089   zFront        = nArgs["ZFront"];
00090   zEnd          = nArgs["ZEnd"];
00091   ziNose        = nArgs["ZiNose"];
00092   ziL0Nose      = nArgs["ZiL0Nose"];
00093   ziBody        = nArgs["ZiBody"];
00094   ziL0Body      = nArgs["ZiL0Body"];
00095   z0Beam        = nArgs["Z0Beam"];
00096   ziDip         = nArgs["ZiDip"];
00097   dzStep        = nArgs["DzStep"];
00098   zShiftHac2    = nArgs["ZShiftHac2"];
00099   double gap    = nArgs["Gap"];
00100   double z1     = nArgs["Z1"];
00101   double r1     = nArgs["R1"];
00102   rout          = nArgs["Rout"];
00103   heboxDepth    = nArgs["HEboxDepth"];
00104   drEnd         = nArgs["DrEnd"];
00105   double etamin = nArgs["Etamin"];
00106   angBot        = nArgs["AngBot"];
00107   angGap        = nArgs["AngGap"];
00108 
00109   LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: General material " 
00110                        << genMaterial << "\tSectors "  << nsectors << ",  " 
00111                        << nsectortot << "\tEndcaps " << nEndcap  
00112                        << "\tRotation matrix for half " << rotns 
00113                        << ":" << rotHalf << "\n\tzFront " << zFront << " zEnd "
00114                        << zEnd << " ziNose " << ziNose << " ziL0Nose " 
00115                        << ziL0Nose << " ziBody " << ziBody  << " ziL0Body " 
00116                        << ziL0Body << " z0Beam " << z0Beam << " ziDip " 
00117                        << ziDip << " dzStep " << dzStep << " Gap " << gap 
00118                        << " z1 " << z1 << "\n\tr1 " << r1 << " rout " << rout
00119                        << " HeboxDepth " << heboxDepth << " drEnd " << drEnd 
00120                        << "\tetamin " << etamin << " Bottom angle " << angBot
00121                        << " Gap angle " << angGap << " Z-Shift " << zShift
00122                        << " " << zShiftHac2;
00123 
00124   //Derived quantities
00125   angTop   = 2.0 * atan (exp(-etamin));
00126   slope    = tan(angGap);
00127   z1Beam   = z1 - r1/slope;
00128   ziKink   = z1Beam + rout/slope;
00129   riKink   = ziKink*tan(angBot);
00130   riDip    = ziDip*tan(angBot);
00131   roDip    = rout - heboxDepth;
00132   dzShift  = (z1Beam - z0Beam) - gap/sin(angGap);
00133   LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: angTop " << angTop/deg 
00134                        <<"\tSlope " << slope << "\tDzShift " << dzShift
00135                        << "\n\tz1Beam " << z1Beam << "\tziKink" << ziKink
00136                        << "\triKink " << riKink << "\triDip " << riDip 
00137                        << "\n\troDip " << roDip << "\tRotation " << rotation;
00138 
00140   //Modules
00141   absMat        = sArgs["AbsMat"];
00142   modules       = int(nArgs["Modules"]);
00143   LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Number of modules " 
00144                        << modules << " and absorber material " << absMat;
00145 
00146   modName       = vsArgs["ModuleName"];
00147   modMat        = vsArgs["ModuleMat"];
00148   modType       = dbl_to_int(vArgs["ModuleType"]);
00149   sectionModule = dbl_to_int(vArgs["SectionModule"]);
00150   thick         = vArgs["ModuleThick"];
00151   trimLeft      = vArgs["TrimLeft"]; 
00152   trimRight     = vArgs["TrimRight"]; 
00153   eModule       = dbl_to_int(vArgs["EquipModule"]);
00154   layerN        = dbl_to_int(vArgs["LayerN"]);
00155   layerN0       = dbl_to_int(vArgs["LayerN0"]);
00156   layerN1       = dbl_to_int(vArgs["LayerN1"]);
00157   layerN2       = dbl_to_int(vArgs["LayerN2"]);
00158   layerN3       = dbl_to_int(vArgs["LayerN3"]);
00159   layerN4       = dbl_to_int(vArgs["LayerN4"]);
00160   layerN5       = dbl_to_int(vArgs["LayerN5"]);
00161   for (i = 0; i < modules; i++) {
00162     LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: " << modName[i] <<" type "
00163                          << modType[i] << " Sections " << sectionModule[i] 
00164                          << " thickness of absorber/air " << thick[i] 
00165                          << " trim " << trimLeft[i] << ", " << trimRight[i] 
00166                          << " equip module " << eModule[i] << " with "
00167                          << layerN[i] << " layers";
00168     if (i == 0) {
00169       for (j = 0; j < layerN[i]; j++) {
00170         LogDebug("HCalGeom") << "\t " << layerN0[j] << "/" << layerN0[j+1];
00171       }
00172     } else if (i == 1) {
00173       for (j = 0; j < layerN[i]; j++) {
00174         LogDebug("HCalGeom") << "\t " << layerN1[j] << "/" << layerN1[j+1];
00175       }
00176     } else if (i == 2) {
00177       for (j = 0; j < layerN[i]; j++) {
00178         LogDebug("HCalGeom") << "\t " << layerN2[j];
00179       }
00180     } else if (i == 3) {
00181       for (j = 0; j < layerN[i]; j++) {
00182         LogDebug("HCalGeom") << "\t " << layerN3[j];
00183       }
00184     } else if (i == 4) {
00185       for (j = 0; j < layerN[i]; j++) {
00186         LogDebug("HCalGeom") << "\t " << layerN4[j];
00187       }
00188     } else if (i == 5) {
00189       for (j = 0; j < layerN[i]; j++) {
00190         LogDebug("HCalGeom") << "\t " << layerN5[j];
00191       }
00192     }
00193   }
00194   
00196   //Layers
00197   phiSections = int(nArgs["PhiSections"]);
00198   phiName     = vsArgs["PhiName"];
00199   layers      = int(nArgs["Layers"]);
00200   layerName   = vsArgs["LayerName"];
00201   layerType   = dbl_to_int(vArgs["LayerType"]);
00202   layerT      = vArgs["LayerT"];
00203   scintT      = vArgs["ScintT"];
00204   scintMat    = sArgs["ScintMat"];
00205   plastMat    = sArgs["PlastMat"];
00206   rotmat      = sArgs["RotMat"];
00207   LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Phi Sections " 
00208                        << phiSections;
00209   for (i = 0; i < phiSections; i++) 
00210     LogDebug("HCalGeom") << "\tName[" << i << "] : " << phiName[i];
00211   LogDebug("HCalGeom") << "\tPlastic: " << plastMat << "\tScintillator: "
00212                        << scintMat << "\tRotation matrix " << rotns << ":" 
00213                        << rotmat << "\n\tNumber of layers " << layers;
00214   for (i = 0; i < layers; i++) {
00215     LogDebug("HCalGeom") << "\t" << layerName[i] << "\tType " << layerType[i]
00216                          << "\tThickness " << layerT[i] << "\tScint.Thick " 
00217                          << scintT[i];
00218   }
00219 
00221   // Derive bounding of the modules
00222   int module = 0;
00223   // Layer 0 (Nose)
00224   if (modules > 0) {
00225     zminBlock.push_back(ziL0Nose);
00226     zmaxBlock.push_back(zminBlock[module] + layerT[0] + 0.5*dzStep);
00227     rinBlock1.push_back(zminBlock[module] * tan(angTop));
00228     rinBlock2.push_back(zmaxBlock[module] * tan(angTop));
00229     routBlock1.push_back((zminBlock[module] - z1Beam) * slope);
00230     routBlock2.push_back((zmaxBlock[module] - z1Beam) * slope);
00231     module++;
00232   }
00233 
00234   // Layer 0 (Body)
00235   if (modules > 1) {
00236     zminBlock.push_back(ziL0Body);
00237     zmaxBlock.push_back(zminBlock[module] + layerT[0] + 0.5*dzStep);
00238     rinBlock1.push_back(zminBlock[module] * tan(angBot));
00239     rinBlock2.push_back(zmaxBlock[module] * tan(angBot));
00240     routBlock1.push_back(zminBlock[module] * tan(angTop));
00241     routBlock2.push_back(zmaxBlock[module] * tan(angTop));
00242     module++;
00243   }
00244 
00245   // Hac1
00246   if (modules > 2) {
00247     zminBlock.push_back(ziNose);
00248     zmaxBlock.push_back(ziBody);
00249     rinBlock1.push_back(zminBlock[module] * tan(angTop));
00250     rinBlock2.push_back(zmaxBlock[module] * tan(angTop));
00251     routBlock1.push_back((zminBlock[module] - z1Beam) * slope);
00252     routBlock2.push_back((zmaxBlock[module] - z1Beam) * slope);
00253     module++;
00254   }
00255 
00256   // Hac2
00257   if (modules > 3) {
00258     zminBlock.push_back(ziBody);
00259     zmaxBlock.push_back(zminBlock[module] + layerN[3]*dzStep);
00260     rinBlock1.push_back(zminBlock[module] * tan(angBot));
00261     rinBlock2.push_back(zmaxBlock[module] * tan(angBot));
00262     routBlock1.push_back((zmaxBlock[module-1] - z1Beam) * slope);
00263     routBlock2.push_back(rout);
00264     module++;
00265   }
00266 
00267   // Hac3
00268   if (modules > 4) {
00269     zminBlock.push_back(zmaxBlock[module-1]);
00270     zmaxBlock.push_back(zminBlock[module] + layerN[4]*dzStep);
00271     rinBlock1.push_back(zminBlock[module] * tan(angBot));
00272     rinBlock2.push_back(zmaxBlock[module] * tan(angBot));
00273     routBlock1.push_back(rout);
00274     routBlock2.push_back(rout);
00275     module++;
00276   }
00277 
00278   // Hac4
00279   if (modules > 5) {
00280     zminBlock.push_back(zmaxBlock[module-1]);
00281     zmaxBlock.push_back(zminBlock[module] + layerN[5]*dzStep);
00282     rinBlock1.push_back(zminBlock[module] * tan(angBot));
00283     rinBlock2.push_back(zmaxBlock[module] * tan(angBot));
00284     routBlock1.push_back(rout);
00285     routBlock2.push_back(roDip);
00286     module++;
00287   }
00288 
00289   for (i = 0; i < module; i++)
00290     LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Module " << i 
00291                          << "\tZ/Rin/Rout " << zminBlock[i] << ", " 
00292                          << zmaxBlock[i] << "/ " << rinBlock1[i] << ", " 
00293                          << rinBlock2[i] << "/ " << routBlock1[i] << ", " 
00294                          << routBlock2[i];
00295 
00296   idName      = sArgs["MotherName"];
00297   idNameSpace = DDCurrentNamespace::ns();
00298   idOffset = int (nArgs["IdOffset"]); 
00299   DDName parentName = parent().name(); 
00300   LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Parent " << parentName 
00301                        << " idName " << idName << " NameSpace " << idNameSpace
00302                        << " Offset " << idOffset;
00303 
00304   tolPos      = nArgs["TolPos"];
00305   tolAbs      = nArgs["TolAbs"];
00306   LogDebug("HCalGeom") << "DDHCalEndcapAlgo debug: Tolerances - Positioning "
00307                        << tolPos << " Absorber " << tolAbs;
00308 }

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 &  zpos 
) [protected]

Definition at line 638 of file DDHCalEndcapAlgo.cc.

References getNsectors(), getTolPos(), LogDebug, pi, r, funct::sqrt(), and funct::tan().

Referenced by constructInsideModule(), and constructInsideModule0().

00644                                                     {
00645 
00646   //Given rin, rout compute parameters of the trapezoid and 
00647   //position of the trapezoid for a standrd layer
00648   double alpha = pi/getNsectors();
00649   LogDebug("HCalGeom") << "Input " << iphi << " Front " << rinF << " " << routF
00650                        << " " << zi << " Back " << rinB << " " << routB << " "
00651                        << zo << " Alpha " << alpha/deg;
00652 
00653   yh1 = 0.5 * (routF - rinF);
00654   bl1 = 0.5 * rinF  * tan(alpha);
00655   tl1 = 0.5 * routF * tan(alpha);
00656   yh2 = 0.5 * (routB - rinB);
00657   bl2 = 0.5 * rinB  * tan(alpha);
00658   tl2 = 0.5 * routB * tan(alpha);
00659   double dx  = 0.25* (bl2+tl2-bl1-tl1);
00660   double dy  = 0.5 * (rinB+routB-rinF-routF);
00661   xpos = 0.25*(rinB+routB+rinF+routF);
00662   ypos = 0.25*(bl2+tl2+bl1+tl1);
00663   zpos = 0.5*(zi+zo);
00664   alp  = 0.5 * alpha;
00665   ypos-= getTolPos();
00666   if (iphi == 0) {
00667     ypos  = -ypos;
00668   } else {
00669     alp  = -alp;
00670     dx   = -dx;
00671   }
00672   double r   = sqrt (dx*dx + dy*dy);
00673   theta= atan (r/(zo-zi));
00674   phi  = atan2 (dy, dx);
00675   LogDebug("HCalGeom") << "Output Dimensions " << yh1 << " " << bl1 << " "
00676                        << tl1 << " " << yh2 << " " << bl2 << " " << tl2
00677                        << " " << alp/deg << " " << theta/deg << " "
00678                        << phi/deg << " Position " << xpos << " " << ypos
00679                        << " " << zpos;
00680 }

void DDHCalEndcapAlgo::parameterLayer0 ( int  mod,
int  layer,
int  iphi,
double &  yh,
double &  bl,
double &  tl,
double &  alp,
double &  xpos,
double &  ypos,
double &  zpos 
) [protected]

Definition at line 590 of file DDHCalEndcapAlgo.cc.

References getAngBot(), getAngTop(), getLayerT(), getNsectors(), getSlope(), getTrim(), getZ1Beam(), getZmaxBlock(), getZminBlock(), LogDebug, pi, rout, and funct::tan().

Referenced by constructInsideModule0().

00593                                                      {
00594 
00595   //Given module and layer number compute parameters of trapezoid
00596   //and positioning parameters
00597   double alpha = pi/getNsectors();
00598   LogDebug("HCalGeom") << "Input " << iphi << " " << layer << " " << iphi
00599                        << " Alpha " << alpha/deg;
00600 
00601   double zi, zo;
00602   if (iphi == 0) {
00603     zi = getZminBlock(mod);
00604     zo = zi + getLayerT(layer);
00605   } else {
00606     zo = getZmaxBlock(mod);
00607     zi = zo - getLayerT(layer);
00608   }
00609   double rin, rout;
00610   if (mod == 0) {
00611     rin  = zo * tan(getAngTop());
00612     rout = (zi - getZ1Beam()) * getSlope();
00613   } else {
00614     rin  = zo * tan(getAngBot());
00615     rout = zi * tan(getAngTop());
00616   }
00617   yh   = 0.5 * (rout - rin);
00618   bl   = 0.5 * rin * tan (alpha);
00619   tl   = 0.5 * rout * tan(alpha);
00620   xpos = 0.5 * (rin + rout);
00621   ypos = 0.5 * (bl + tl);
00622   zpos = 0.5 * (zi + zo);
00623   yh  -= getTrim(mod,iphi);
00624   bl  -= getTrim(mod,iphi);
00625   tl  -= getTrim(mod,iphi);
00626   alp  = 0.5 * alpha;
00627   if (iphi == 0) {
00628     ypos  = -ypos;
00629   } else {
00630     alp  = -alp;
00631   }
00632   LogDebug("HCalGeom") << "Output Dimensions " << yh << " " << bl << " "
00633                        << tl << " " << alp/deg << " Position " << xpos << " " 
00634                        << ypos << " " << zpos;
00635 }


Member Data Documentation

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(), and initialize().

std::string DDHCalEndcapAlgo::idNameSpace [private]

Definition at line 179 of file DDHCalEndcapAlgo.h.

Referenced by constructGeneralVolume(), constructInsideModule(), constructInsideModule0(), constructInsideSector(), 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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:17:57 2009 for CMSSW by  doxygen 1.5.4