CMS 3D CMS Logo

DDHCalBarrelAlgo Class Reference

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

List of all members.

Public Member Functions

 DDHCalBarrelAlgo ()
void execute ()
double getAbsorbD (unsigned int i) const
int getAbsorberN () const
std::string getAbsorbMat (unsigned int i) const
std::string getAbsorbName (unsigned int i) const
double getAbsorbT (unsigned int i) const
double getDetdP1 (unsigned int i) const
double getDetdP2 (unsigned int i) const
std::string getDetMat () const
std::string getDetMatPl () const
std::string getDetMatSc () const
int getDetPosY (unsigned int i) const
double getDetT11 (unsigned int i) const
double getDetT12 (unsigned int i) const
double getDetT21 (unsigned int i) const
double getDetT22 (unsigned int i) const
double getDetTsc (unsigned int i) const
int getDetType (unsigned int i) const
double getDetWidth1 (unsigned int i) const
double getDetWidth2 (unsigned int i) const
std::string getGenMaterial () const
int getLayerAbsorb (unsigned int i) const
double getLayerAlpha (unsigned i) const
double getLayerD1 (unsigned i) const
double getLayerD2 (unsigned i) const
double getLayerGap (unsigned int i) const
int getLayerId (unsigned i) const
std::string getLayerLabel (unsigned i) const
std::string getLayerMaterial (unsigned i) const
double getLayerT1 (unsigned i) const
double getLayerT2 (unsigned i) const
double getLayerWidth (unsigned i) const
std::string getMidAbsMat (unsigned int i) const
std::string getMidAbsName (unsigned int i) const
int getMidAbsorber () const
double getMidAbsT (unsigned int i) const
double getMidAbsW (unsigned int i) const
double getMiddleD () const
std::string getMiddleMat () const
double getMiddleW () const
int getNhalf () const
int getNLayers () const
int getNsectors () const
int getNsectortot () const
double getRin () const
double getRmax (unsigned int i) const
double getRout () const
int getRzones () const
std::string getSideAbsMat (unsigned int i) const
std::string getSideAbsName (unsigned int i) const
int getSideAbsorber () const
double getSideAbsW (unsigned int i) const
double getSideD (unsigned int i) const
std::string getSideMat (unsigned int i) const
double getSideT (unsigned int i) const
double getTanTheta (unsigned int i) const
double getTheta (unsigned int i) const
double getZoff (unsigned int i) const
void initialize (const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs)
virtual ~DDHCalBarrelAlgo ()

Protected Member Functions

void constructGeneralVolume ()
void constructInsideDetectors (DDLogicalPart detector, std::string name, int id, double dx, double dy, double dz, int type)
void constructInsideLayers (DDLogicalPart laylog, std::string name, int id, int nAbs, double rin, double d1, double alpha1, double d2, double alpha2, double t1, double t2)
void constructInsideSector (DDLogicalPart sector)
DDLogicalPart constructMidLayer (DDLogicalPart laylog, std::string nm, double rin, double alpha)
DDLogicalPart constructSideLayer (DDLogicalPart laylog, std::string nm, int nAbs, double rin, double alpha)

Private Attributes

std::vector< double > absorbD
std::vector< std::string > absorbMat
std::vector< std::string > absorbName
std::vector< double > absorbT
std::vector< double > detdP1
std::vector< double > detdP2
std::string detMat
std::string detMatPl
std::string detMatSc
std::vector< intdetPosY
std::string detRot
std::vector< double > detT11
std::vector< double > detT12
std::vector< double > detT21
std::vector< double > detT22
std::vector< double > detTsc
std::vector< intdetType
std::vector< double > detWidth1
std::vector< double > detWidth2
std::string genMaterial
std::string idName
std::string idNameSpace
int idOffset
std::vector< intlayerAbsorb
std::vector< double > layerAlpha
std::vector< double > layerD1
std::vector< double > layerD2
std::vector< double > layerGap
std::vector< intlayerId
std::vector< std::string > layerLabel
std::vector< std::string > layerMat
std::vector< double > layerT1
std::vector< double > layerT2
std::vector< double > layerWidth
double middleD
std::string middleMat
double middleW
std::vector< std::string > midMat
std::vector< std::string > midName
std::vector< double > midT
std::vector< double > midW
int nAbsorber
int nhalf
int nLayers
int nMidAbs
int nsectors
int nsectortot
int nSideAbs
double rin
std::vector< double > rmax
std::string rotHalf
std::string rotns
double rout
int rzones
std::vector< std::string > sideAbsMat
std::vector< std::string > sideAbsName
std::vector< double > sideAbsW
std::vector< double > sideD
std::vector< std::string > sideMat
std::vector< double > sideT
std::vector< double > theta
std::vector< double > ttheta
std::vector< double > zoff


Detailed Description

Definition at line 10 of file DDHCalBarrelAlgo.h.


Constructor & Destructor Documentation

DDHCalBarrelAlgo::DDHCalBarrelAlgo (  ) 

Definition at line 23 of file DDHCalBarrelAlgo.cc.

References LogDebug.

00023                                   :
00024   theta(0),rmax(0),zoff(0),ttheta(0),layerId(0),layerLabel(0),layerMat(0),
00025   layerWidth(0),layerD1(0),layerD2(0),layerAlpha(0),layerT1(0),layerT2(0),
00026   layerAbsorb(0),layerGap(0),absorbName(0),absorbMat(0),absorbD(0),absorbT(0),
00027   midName(0),midMat(0),midW(0),midT(0),sideMat(0),sideD(0),sideT(0),
00028   sideAbsName(0),sideAbsMat(0),sideAbsW(0),detType(0),detdP1(0),detdP2(0),
00029   detT11(0),detT12(0),detTsc(0),detT21(0),detT22(0),detWidth1(0),detWidth2(0),
00030   detPosY(0) {
00031   LogDebug("HCalGeom") << "DDHCalBarrelAlgo info: Creating an instance";
00032 }

DDHCalBarrelAlgo::~DDHCalBarrelAlgo (  )  [virtual]

Definition at line 34 of file DDHCalBarrelAlgo.cc.

00034 {}


Member Function Documentation

void DDHCalBarrelAlgo::constructGeneralVolume (  )  [protected]

Definition at line 199 of file DDHCalBarrelAlgo.cc.

References constructInsideSector(), dbl_to_string(), DDpos(), DDrot(), DDSplit(), first, getGenMaterial(), getNhalf(), getNsectors(), getNsectortot(), getRin(), getRmax(), getRout(), getTanTheta(), getZoff(), i, idName, idNameSpace, LogDebug, name, DDBase< N, C >::name(), dbtoconf::parent, phi, pi, DDSolidFactory::polyhedra(), rin, rot, rotHalf, rotns, rout, and edm::second().

Referenced by execute().

00199                                               {
00200   
00201   LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: General volume...";
00202   unsigned int i=0;
00203 
00204   DDRotation rot = DDRotation();
00205 
00206   double alpha = pi/getNsectors();
00207   double dphi  = getNsectortot()*twopi/getNsectors();
00208   int nsec, ntot=15;
00209   if (getNhalf() == 1)
00210     nsec = 8;
00211   else
00212     nsec = 15;
00213   int nf = ntot - nsec;
00214 
00215   //Calculate zmin... see HCalBarrel.hh picture. For polyhedra
00216   //Rmin and Rmax are distances to vertex
00217   double zmax   = getZoff(3);
00218   double zstep5 = getZoff(4);
00219   double zstep4 =(getZoff(1) + getRmax(1)*getTanTheta(1));
00220   if ((getZoff(2)+getRmax(1)*getTanTheta(2)) > zstep4)
00221     zstep4 = (getZoff(2)+getRmax(1)*getTanTheta(2));
00222   double zstep3 =(getZoff(1) + getRmax(0)*getTanTheta(1));
00223   double zstep2 =(getZoff(0) + getRmax(0)*getTanTheta(0));
00224   double zstep1 =(getZoff(0) + getRin()  *getTanTheta(0));
00225   double rout   = getRout();
00226   double rout1  = getRmax(3);
00227   double rin    = getRin();
00228   double rmid1  = getRmax(0);
00229   double rmid2  = getRmax(1);
00230   double rmid3  =(getZoff(4) - getZoff(2))/getTanTheta(2);
00231   double rmid4  = getRmax(2);
00232 
00233   vector<double> pgonZ;
00234   pgonZ.push_back( -zmax); 
00235   pgonZ.push_back( -zstep5); 
00236   pgonZ.push_back( -zstep5); 
00237   pgonZ.push_back( -zstep4); 
00238   pgonZ.push_back( -zstep3); 
00239   pgonZ.push_back( -zstep2); 
00240   pgonZ.push_back( -zstep1); 
00241   pgonZ.push_back(       0); 
00242   pgonZ.push_back(  zstep1); 
00243   pgonZ.push_back(  zstep2); 
00244   pgonZ.push_back(  zstep3); 
00245   pgonZ.push_back(  zstep4); 
00246   pgonZ.push_back(  zstep5); 
00247   pgonZ.push_back(  zstep5); 
00248   pgonZ.push_back(    zmax);
00249 
00250   vector<double> pgonRmin;
00251   pgonRmin.push_back(   rmid4); 
00252   pgonRmin.push_back(   rmid3); 
00253   pgonRmin.push_back(   rmid3); 
00254   pgonRmin.push_back(   rmid2); 
00255   pgonRmin.push_back(   rmid1); 
00256   pgonRmin.push_back(   rmid1); 
00257   pgonRmin.push_back(     rin); 
00258   pgonRmin.push_back(     rin); 
00259   pgonRmin.push_back(     rin); 
00260   pgonRmin.push_back(   rmid1); 
00261   pgonRmin.push_back(   rmid1); 
00262   pgonRmin.push_back(   rmid2); 
00263   pgonRmin.push_back(   rmid3); 
00264   pgonRmin.push_back(   rmid3); 
00265   pgonRmin.push_back(   rmid4);
00266 
00267   vector<double> pgonRmax;
00268   pgonRmax.push_back(   rout1); 
00269   pgonRmax.push_back(   rout1); 
00270   pgonRmax.push_back(    rout); 
00271   pgonRmax.push_back(    rout); 
00272   pgonRmax.push_back(    rout); 
00273   pgonRmax.push_back(    rout); 
00274   pgonRmax.push_back(    rout); 
00275   pgonRmax.push_back(    rout); 
00276   pgonRmax.push_back(    rout); 
00277   pgonRmax.push_back(    rout); 
00278   pgonRmax.push_back(    rout); 
00279   pgonRmax.push_back(    rout); 
00280   pgonRmax.push_back(    rout); 
00281   pgonRmax.push_back(   rout1);
00282   pgonRmax.push_back(   rout1);
00283 
00284   vector<double> pgonZHalf;
00285   pgonZHalf.push_back(       0); 
00286   pgonZHalf.push_back(  zstep1); 
00287   pgonZHalf.push_back(  zstep2); 
00288   pgonZHalf.push_back(  zstep3); 
00289   pgonZHalf.push_back(  zstep4); 
00290   pgonZHalf.push_back(  zstep5); 
00291   pgonZHalf.push_back(  zstep5); 
00292   pgonZHalf.push_back(    zmax);
00293 
00294   vector<double> pgonRminHalf;
00295   pgonRminHalf.push_back(     rin); 
00296   pgonRminHalf.push_back(     rin); 
00297   pgonRminHalf.push_back(   rmid1); 
00298   pgonRminHalf.push_back(   rmid1); 
00299   pgonRminHalf.push_back(   rmid2); 
00300   pgonRminHalf.push_back(   rmid3); 
00301   pgonRminHalf.push_back(   rmid3); 
00302   pgonRminHalf.push_back(   rmid4);
00303 
00304   vector<double> pgonRmaxHalf;
00305   pgonRmaxHalf.push_back(    rout); 
00306   pgonRmaxHalf.push_back(    rout); 
00307   pgonRmaxHalf.push_back(    rout); 
00308   pgonRmaxHalf.push_back(    rout); 
00309   pgonRmaxHalf.push_back(    rout); 
00310   pgonRmaxHalf.push_back(    rout); 
00311   pgonRmaxHalf.push_back(   rout1);
00312   pgonRmaxHalf.push_back(   rout1);
00313 
00314   string name("Null");
00315   DDSolid solid;
00316   if (nf == 0) { 
00317     solid = DDSolidFactory::polyhedra(DDName(idName, idNameSpace),
00318                                       getNsectortot(), -alpha, dphi, pgonZ, 
00319                                       pgonRmin, pgonRmax);
00320     LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: "
00321                          << DDName(idName, idNameSpace) <<" Polyhedra made of "
00322                          << getGenMaterial() << " with " << getNsectortot()
00323                          << " sectors from " << -alpha/deg <<" to "
00324                          << (-alpha+dphi)/deg << " and with " << nsec
00325                          << " sections ";
00326     for (i = 0; i <pgonZ.size(); i++) {
00327       LogDebug("HCalGeom") << "\t" << "\tZ = " << pgonZ[i] << "\tRmin = " 
00328                            << pgonRmin[i] << "\tRmax = " << pgonRmax[i];
00329     }
00330   } else {
00331     solid = DDSolidFactory::polyhedra(DDName(idName, idNameSpace),
00332                                       getNsectortot(), -alpha, dphi, pgonZHalf,
00333                                       pgonRminHalf, pgonRmaxHalf);
00334     LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: " 
00335                          << DDName(idName, idNameSpace) <<" Polyhedra made of "
00336                          << getGenMaterial() << " with " << getNsectortot()
00337                          << " sectors from " << -alpha/deg << " to " 
00338                          << (-alpha+dphi)/deg << " and with " << nsec 
00339                          << " sections ";
00340     for (i = 0; i < pgonZHalf.size(); i++) {
00341       LogDebug("HCalGeom") << "\t" << "\tZ = " << pgonZHalf[i] << "\tRmin = "
00342                            << pgonRminHalf[i] << "\tRmax = " <<pgonRmaxHalf[i];
00343     }
00344   }  
00345   
00346 
00347   DDName matname(DDSplit(getGenMaterial()).first, DDSplit(getGenMaterial()).second);
00348   DDMaterial matter(matname);
00349   DDLogicalPart genlogic(DDName(idName, idNameSpace), matter, solid);
00350 
00351   DDName parentName = parent().name(); 
00352   DDTranslation r0(0,0,0);
00353   DDpos(DDName(idName, idNameSpace), parentName, 1, r0, rot);
00354   LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: " 
00355                        << DDName(idName, idNameSpace) << " number 1 positioned"
00356                        << " in " << parentName << " at " << r0 <<" with "<<rot;
00357 
00358   //Forward and backwards halfs
00359   name = idName + "Half";
00360   nf   = (ntot+1)/2;
00361   LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: " << DDName(name,idNameSpace)
00362                        << " Polyhedra made of " << getGenMaterial() << " with "
00363                        << getNsectortot() << " sectors from " << -alpha/deg 
00364                        << " to " << (-alpha+dphi)/deg << " and with " << nf
00365                        << " sections "; 
00366   for (i = 0; i < pgonZHalf.size(); i++) {
00367     LogDebug("HCalGeom") << "\t" << "\tZ = " << pgonZHalf[i] << "\tRmin = "
00368                          << pgonRminHalf[i] << "\tRmax = " << pgonRmaxHalf[i];
00369   }
00370 
00371   solid =   DDSolidFactory::polyhedra(DDName(name, idNameSpace),
00372                                       getNsectortot(), -alpha, dphi, pgonZHalf,
00373                                       pgonRminHalf, pgonRmaxHalf);
00374   DDLogicalPart genlogich(DDName(name, idNameSpace), matter, solid);
00375 
00376   DDpos(genlogich, genlogic, 1, r0, rot);
00377   LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: "  << genlogich.name() 
00378                        << " number 1 positioned in " << genlogic.name() 
00379                        << " at " << r0 << " with " << rot;
00380 
00381   if (getNhalf() != 1) {
00382     rot = DDRotation(DDName(rotHalf, rotns));
00383     DDpos (genlogich, genlogic, 2, r0, rot);
00384     LogDebug("HCalGeom") << "DDHCalBarrelAlgo test:  " << genlogich.name()
00385                          << " number 2 positioned in " << genlogic.name()
00386                          << " at " << r0 << " with " << rot;
00387   } //end if (getNhalf...
00388   
00389   //Construct sector (from -alpha to +alpha)
00390   name = idName + "Module";
00391   LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: " << DDName(name,idNameSpace)
00392                        << " Polyhedra made of " << getGenMaterial() 
00393                        << " with 1 sector from " << -alpha/deg << " to "  
00394                        << alpha/deg << " and with " << nf << " sections";
00395   for (i = 0; i < pgonZHalf.size(); i++) {
00396     LogDebug("HCalGeom") << "\t" << "\tZ = " << pgonZHalf[i] << "\tRmin = " 
00397                          << pgonRminHalf[i] << "\tRmax = " << pgonRmaxHalf[i];
00398   }
00399 
00400   solid =   DDSolidFactory::polyhedra(DDName(name, idNameSpace),
00401                                       1, -alpha, 2*alpha, pgonZHalf,
00402                                       pgonRminHalf, pgonRmaxHalf);
00403   DDLogicalPart seclogic(DDName(name, idNameSpace), matter, solid);
00404   
00405   for (int ii=0; ii<getNsectortot(); ii++) {
00406     double phi    = ii*2*alpha;
00407     double phideg = phi/deg;
00408     
00409     DDRotation rotation;
00410     string rotstr("NULL");
00411     if (phideg != 0) {
00412       rotstr = "R"; 
00413       if (phideg < 100) rotstr = "R0"; 
00414       rotstr = rotstr + dbl_to_string(phideg);
00415       rotation = DDRotation(DDName(rotstr, rotns)); 
00416       if (!rotation) {
00417         LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: Creating a new rotat"
00418                              << "ion " << rotstr << "\t" << 90 << "," << phideg
00419                              << ","  << 90 << "," << (phideg+90) << ", 0, 0";
00420         rotation = DDrot(DDName(rotstr, rotns), 90*deg, phideg*deg, 
00421                          90*deg, (90+phideg)*deg, 0*deg,  0*deg);
00422       } //if !rotation
00423     } //if phideg!=0
00424   
00425     DDpos (seclogic, genlogich, ii+1, r0, rotation);
00426     LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: " << seclogic.name() 
00427                          << " number " << ii+1 << " positioned in " 
00428                          << genlogich.name() << " at " << r0 << " with "
00429                          << rotation;
00430   }
00431   
00432   //Construct the things inside the sector
00433   constructInsideSector(seclogic);
00434 }

void DDHCalBarrelAlgo::constructInsideDetectors ( DDLogicalPart  detector,
std::string  name,
int  id,
double  dx,
double  dy,
double  dz,
int  type 
) [protected]

void DDHCalBarrelAlgo::constructInsideLayers ( DDLogicalPart  laylog,
std::string  name,
int  id,
int  nAbs,
double  rin,
double  d1,
double  alpha1,
double  d2,
double  alpha2,
double  t1,
double  t2 
) [protected]

Referenced by constructInsideSector().

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

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

Definition at line 437 of file DDHCalBarrelAlgo.cc.

References constructInsideLayers(), DDpos(), DDSplit(), e, first, getLayerAbsorb(), getLayerAlpha(), getLayerD1(), getLayerD2(), getLayerGap(), getLayerId(), getLayerLabel(), getLayerMaterial(), getLayerT1(), getLayerT2(), getLayerWidth(), getNLayers(), getNsectors(), getRin(), getRmax(), getRzones(), getTanTheta(), getZoff(), i, idName, idNameSpace, in, j, k, LogDebug, name, DDBase< N, C >::name(), out, pi, DDSolidFactory::polyhedra(), rin, rout, edm::second(), funct::tan(), and width.

Referenced by constructGeneralVolume().

00437                                                                  {
00438   
00439   LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: Layers (" << getNLayers()
00440                        << ") ...";
00441 
00442   double alpha = pi/getNsectors();
00443   double rin   = getRin();
00444   for (int i = 0; i < getNLayers(); i++) {
00445     string  name   = idName + getLayerLabel(i);
00446     DDName matname(DDSplit(getLayerMaterial(i)).first, 
00447                    DDSplit(getLayerMaterial(i)).second); //idNameSpace);
00448     DDMaterial matter(matname);
00449 
00450     double width = getLayerWidth(i);
00451     double rout  = rin + width;
00452 
00453     int    in = 0, out = 0;
00454     for (int j = 0; j < getRzones()-1; j++) {
00455       if (rin >= getRmax(j)) in = j+1;
00456       if (rout>  getRmax(j)) out= j+1;
00457     }
00458     double zout  = getZoff(in) + rin*getTanTheta(in);
00459 
00461     //vertical walls are allowed in SolidPolyhedra
00462     double deltaz = 0;
00463     int    nsec=2;
00464     vector<double> pgonZ, pgonRmin, pgonRmax;
00465     // index 0
00466     pgonZ.push_back(0);
00467     pgonRmin.push_back(rin); 
00468     pgonRmax.push_back(rout);
00469     // index 1
00470     pgonZ.push_back(zout);  
00471     pgonRmin.push_back(rin); 
00472     pgonRmax.push_back(rout);
00473     if (in == out) {
00474       if (in <= 3) {
00475         //index 2
00476         pgonZ.push_back(getZoff(in) + rout*getTanTheta(in));
00477         pgonRmin.push_back(pgonRmax[1]);
00478         pgonRmax.push_back(pgonRmax[1]);
00479         nsec++;
00480       }
00481     } else {
00482       if (in == 3) {
00483         //redo index 1, add index 2
00484         pgonZ[1]    =(getZoff(out) + getRmax(out)*getTanTheta(out));
00485         pgonZ.push_back(pgonZ[1] + deltaz);
00486         pgonRmin.push_back(pgonRmin[1]); 
00487         pgonRmax.push_back(getRmax(in));
00488         //index 3 
00489         pgonZ.push_back(getZoff(in) + getRmax(in)*getTanTheta(in));
00490         pgonRmin.push_back(pgonRmin[2]); 
00491         pgonRmax.push_back(pgonRmax[2]);
00492         nsec       += 2;
00493       } else {
00494         //index 2
00495         pgonZ.push_back(getZoff(in) + getRmax(in)*getTanTheta(in));
00496         pgonRmin.push_back(getRmax(in)); 
00497         pgonRmax.push_back(pgonRmax[1]); 
00498         nsec++;
00499         if (in == 0) {
00500           pgonZ.push_back(getZoff(out) + getRmax(in)*getTanTheta(out));
00501           pgonRmin.push_back(pgonRmin[2]); 
00502           pgonRmax.push_back(pgonRmax[2]);
00503           nsec++;
00504         }
00505         if (in <= 1) {
00506           pgonZ.push_back(getZoff(out) + rout*getTanTheta(out));
00507           pgonRmin.push_back(rout);
00508           pgonRmax.push_back(rout);
00509           nsec++;
00510         }
00511       }
00512     }
00513     //Solid & volume
00514     DDSolid solid;
00515     double  alpha1 = alpha;
00516     if (getLayerGap(i)>1.e-6) {
00517       double rmid  = 0.5*(rin+rout);
00518       double width = rmid*tan(alpha) - getLayerGap(i);
00519       alpha1 = atan(width/rmid);
00520       LogDebug("HCalGeom") << "\t" << "Alpha_1 modified from " << alpha/deg 
00521                            << " to " << alpha1/deg << " Rmid " << rmid
00522                            << " Reduced width " << width;
00523     }
00524     LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: " << name << " (Layer " 
00525                          << i << ") Polyhedra made of " << getLayerMaterial(i)
00526                          << " with 1 sector from " << -alpha1/deg << " to " 
00527                          << alpha1/deg << " and with " << nsec << " sections";
00528     for (unsigned int k=0; k<pgonZ.size(); k++) {
00529       LogDebug("HCalGeom") << "\t" << "\t" << pgonZ[k] << "\t" << pgonRmin[k]
00530                            << "\t" << pgonRmax[k];
00531     }    
00532     solid = DDSolidFactory::polyhedra(DDName(name, idNameSpace), 
00533                                       1, -alpha1, 2*alpha1,
00534                                       pgonZ, pgonRmin, pgonRmax);
00535     DDLogicalPart glog(DDName(name, idNameSpace), matter, solid);
00536 
00537     DDpos (glog, sector, getLayerId(i), DDTranslation(0.0, 0.0, 0.0), 
00538            DDRotation());
00539     LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: " << glog.name() 
00540                          << " number " << getLayerId(i) << " positioned in " 
00541                          << sector.name() << " at (0,0,0) with no rotation";
00542 
00543     constructInsideLayers(glog, getLayerLabel(i), getLayerId(i), 
00544                           getLayerAbsorb(i), rin,  getLayerD1(i), alpha1, 
00545                           getLayerD2(i), getLayerAlpha(i), getLayerT1(i),
00546                           getLayerT2(i));
00547     rin = rout;
00548   }
00549   
00550 }

DDLogicalPart DDHCalBarrelAlgo::constructMidLayer ( DDLogicalPart  laylog,
std::string  nm,
double  rin,
double  alpha 
) [protected]

DDLogicalPart DDHCalBarrelAlgo::constructSideLayer ( DDLogicalPart  laylog,
std::string  nm,
int  nAbs,
double  rin,
double  alpha 
) [protected]

void DDHCalBarrelAlgo::execute (  ) 

Definition at line 190 of file DDHCalBarrelAlgo.cc.

References constructGeneralVolume(), and LogDebug.

00190                                {
00191 
00192   LogDebug("HCalGeom") << "==>> Constructing DDHCalBarrelAlgo...";
00193   constructGeneralVolume();
00194   LogDebug("HCalGeom") << "<<== End of DDHCalBarrelAlgo construction ...";
00195 }

double DDHCalBarrelAlgo::getAbsorbD ( unsigned int  i  )  const [inline]

Definition at line 53 of file DDHCalBarrelAlgo.h.

References absorbD.

00053 {return absorbD[i];}

int DDHCalBarrelAlgo::getAbsorberN (  )  const [inline]

Definition at line 50 of file DDHCalBarrelAlgo.h.

References nAbsorber.

00050 {return nAbsorber;}

std::string DDHCalBarrelAlgo::getAbsorbMat ( unsigned int  i  )  const [inline]

Definition at line 52 of file DDHCalBarrelAlgo.h.

References absorbMat.

00052 {return absorbMat[i];}

std::string DDHCalBarrelAlgo::getAbsorbName ( unsigned int  i  )  const [inline]

Definition at line 51 of file DDHCalBarrelAlgo.h.

References absorbName.

00051 {return absorbName[i];}

double DDHCalBarrelAlgo::getAbsorbT ( unsigned int  i  )  const [inline]

Definition at line 54 of file DDHCalBarrelAlgo.h.

References absorbT.

00054 {return absorbT[i];}

double DDHCalBarrelAlgo::getDetdP1 ( unsigned int  i  )  const [inline]

Definition at line 68 of file DDHCalBarrelAlgo.h.

References detdP1.

00068 {return detdP1[i];}

double DDHCalBarrelAlgo::getDetdP2 ( unsigned int  i  )  const [inline]

Definition at line 69 of file DDHCalBarrelAlgo.h.

References detdP2.

00069 {return detdP2[i];}

std::string DDHCalBarrelAlgo::getDetMat (  )  const [inline]

Definition at line 64 of file DDHCalBarrelAlgo.h.

References detMat.

00064 {return detMat;}

std::string DDHCalBarrelAlgo::getDetMatPl (  )  const [inline]

Definition at line 65 of file DDHCalBarrelAlgo.h.

References detMatPl.

00065 {return detMatPl;}

std::string DDHCalBarrelAlgo::getDetMatSc (  )  const [inline]

Definition at line 66 of file DDHCalBarrelAlgo.h.

References detMatSc.

00066 {return detMatSc;}

int DDHCalBarrelAlgo::getDetPosY ( unsigned int  i  )  const [inline]

Definition at line 77 of file DDHCalBarrelAlgo.h.

References detPosY.

00077 {return detPosY[i];}

double DDHCalBarrelAlgo::getDetT11 ( unsigned int  i  )  const [inline]

Definition at line 70 of file DDHCalBarrelAlgo.h.

References detT11.

00070 {return detT11[i];}

double DDHCalBarrelAlgo::getDetT12 ( unsigned int  i  )  const [inline]

Definition at line 71 of file DDHCalBarrelAlgo.h.

References detT12.

00071 {return detT12[i];}

double DDHCalBarrelAlgo::getDetT21 ( unsigned int  i  )  const [inline]

Definition at line 73 of file DDHCalBarrelAlgo.h.

References detT21.

00073 {return detT21[i];}

double DDHCalBarrelAlgo::getDetT22 ( unsigned int  i  )  const [inline]

Definition at line 74 of file DDHCalBarrelAlgo.h.

References detT22.

00074 {return detT22[i];}

double DDHCalBarrelAlgo::getDetTsc ( unsigned int  i  )  const [inline]

Definition at line 72 of file DDHCalBarrelAlgo.h.

References detTsc.

00072 {return detTsc[i];}

int DDHCalBarrelAlgo::getDetType ( unsigned int  i  )  const [inline]

Definition at line 67 of file DDHCalBarrelAlgo.h.

References detType.

00067 {return detType[i];}

double DDHCalBarrelAlgo::getDetWidth1 ( unsigned int  i  )  const [inline]

Definition at line 75 of file DDHCalBarrelAlgo.h.

References detWidth1.

00075 {return detWidth1[i];}

double DDHCalBarrelAlgo::getDetWidth2 ( unsigned int  i  )  const [inline]

Definition at line 76 of file DDHCalBarrelAlgo.h.

References detWidth2.

00076 {return detWidth2[i];}

std::string DDHCalBarrelAlgo::getGenMaterial (  )  const [inline]

Definition at line 17 of file DDHCalBarrelAlgo.h.

References genMaterial.

Referenced by constructGeneralVolume().

00017 {return genMaterial;}

int DDHCalBarrelAlgo::getLayerAbsorb ( unsigned int  i  )  const [inline]

Definition at line 39 of file DDHCalBarrelAlgo.h.

References layerAbsorb.

Referenced by constructInsideSector().

00039 {return layerAbsorb[i];}

double DDHCalBarrelAlgo::getLayerAlpha ( unsigned  i  )  const [inline]

Definition at line 36 of file DDHCalBarrelAlgo.h.

References layerAlpha.

Referenced by constructInsideSector().

00036 {return layerAlpha[i];}

double DDHCalBarrelAlgo::getLayerD1 ( unsigned  i  )  const [inline]

Definition at line 34 of file DDHCalBarrelAlgo.h.

References layerD1.

Referenced by constructInsideSector().

00034 {return layerD1[i];}

double DDHCalBarrelAlgo::getLayerD2 ( unsigned  i  )  const [inline]

Definition at line 35 of file DDHCalBarrelAlgo.h.

References layerD2.

Referenced by constructInsideSector().

00035 {return layerD2[i];}

double DDHCalBarrelAlgo::getLayerGap ( unsigned int  i  )  const [inline]

Definition at line 40 of file DDHCalBarrelAlgo.h.

References layerGap.

Referenced by constructInsideSector().

00040 {return layerGap[i];}

int DDHCalBarrelAlgo::getLayerId ( unsigned  i  )  const [inline]

Definition at line 30 of file DDHCalBarrelAlgo.h.

References layerId.

Referenced by constructInsideSector().

00030 {return layerId[i];}

std::string DDHCalBarrelAlgo::getLayerLabel ( unsigned  i  )  const [inline]

Definition at line 31 of file DDHCalBarrelAlgo.h.

References layerLabel.

Referenced by constructInsideSector().

00031 {return layerLabel[i];}

std::string DDHCalBarrelAlgo::getLayerMaterial ( unsigned  i  )  const [inline]

Definition at line 32 of file DDHCalBarrelAlgo.h.

References layerMat.

Referenced by constructInsideSector().

00032 {return layerMat[i];}

double DDHCalBarrelAlgo::getLayerT1 ( unsigned  i  )  const [inline]

Definition at line 37 of file DDHCalBarrelAlgo.h.

References layerT1.

Referenced by constructInsideSector().

00037 {return layerT1[i];}

double DDHCalBarrelAlgo::getLayerT2 ( unsigned  i  )  const [inline]

Definition at line 38 of file DDHCalBarrelAlgo.h.

References layerT2.

Referenced by constructInsideSector().

00038 {return layerT2[i];}

double DDHCalBarrelAlgo::getLayerWidth ( unsigned  i  )  const [inline]

Definition at line 33 of file DDHCalBarrelAlgo.h.

References layerWidth.

Referenced by constructInsideSector().

00033 {return layerWidth[i];}

std::string DDHCalBarrelAlgo::getMidAbsMat ( unsigned int  i  )  const [inline]

Definition at line 60 of file DDHCalBarrelAlgo.h.

References midMat.

00060 {return midMat[i];}

std::string DDHCalBarrelAlgo::getMidAbsName ( unsigned int  i  )  const [inline]

Definition at line 59 of file DDHCalBarrelAlgo.h.

References midName.

00059 {return midName[i];}

int DDHCalBarrelAlgo::getMidAbsorber (  )  const [inline]

Definition at line 58 of file DDHCalBarrelAlgo.h.

References nMidAbs.

00058 {return nMidAbs;}

double DDHCalBarrelAlgo::getMidAbsT ( unsigned int  i  )  const [inline]

Definition at line 62 of file DDHCalBarrelAlgo.h.

References midT.

00062 {return midT[i];}

double DDHCalBarrelAlgo::getMidAbsW ( unsigned int  i  )  const [inline]

Definition at line 61 of file DDHCalBarrelAlgo.h.

References midW.

00061 {return midW[i];}

double DDHCalBarrelAlgo::getMiddleD (  )  const [inline]

Definition at line 56 of file DDHCalBarrelAlgo.h.

References middleD.

00056 {return middleD;}

std::string DDHCalBarrelAlgo::getMiddleMat (  )  const [inline]

Definition at line 55 of file DDHCalBarrelAlgo.h.

References middleMat.

00055 {return middleMat;}

double DDHCalBarrelAlgo::getMiddleW (  )  const [inline]

Definition at line 57 of file DDHCalBarrelAlgo.h.

References middleW.

00057 {return middleW;}

int DDHCalBarrelAlgo::getNhalf (  )  const [inline]

Definition at line 20 of file DDHCalBarrelAlgo.h.

References nhalf.

Referenced by constructGeneralVolume().

00020 {return nhalf;}

int DDHCalBarrelAlgo::getNLayers (  )  const [inline]

Definition at line 29 of file DDHCalBarrelAlgo.h.

References nLayers.

Referenced by constructInsideSector().

00029 {return nLayers;}

int DDHCalBarrelAlgo::getNsectors (  )  const [inline]

Definition at line 18 of file DDHCalBarrelAlgo.h.

References nsectors.

Referenced by constructGeneralVolume(), and constructInsideSector().

00018 {return nsectors;}

int DDHCalBarrelAlgo::getNsectortot (  )  const [inline]

Definition at line 19 of file DDHCalBarrelAlgo.h.

References nsectortot.

Referenced by constructGeneralVolume().

00019 {return nsectortot;}

double DDHCalBarrelAlgo::getRin (  )  const [inline]

Definition at line 21 of file DDHCalBarrelAlgo.h.

References rin.

Referenced by constructGeneralVolume(), and constructInsideSector().

00021 {return rin;}

double DDHCalBarrelAlgo::getRmax ( unsigned int  i  )  const [inline]

Definition at line 26 of file DDHCalBarrelAlgo.h.

References rmax.

Referenced by constructGeneralVolume(), and constructInsideSector().

00026 {return rmax[i];}

double DDHCalBarrelAlgo::getRout (  )  const [inline]

Definition at line 22 of file DDHCalBarrelAlgo.h.

References rout.

Referenced by constructGeneralVolume().

00022 {return rout;}

int DDHCalBarrelAlgo::getRzones (  )  const [inline]

Definition at line 23 of file DDHCalBarrelAlgo.h.

References rzones.

Referenced by constructInsideSector().

00023 {return rzones;}

std::string DDHCalBarrelAlgo::getSideAbsMat ( unsigned int  i  )  const [inline]

Definition at line 47 of file DDHCalBarrelAlgo.h.

References sideAbsMat.

00047 {return sideAbsMat[i];}

std::string DDHCalBarrelAlgo::getSideAbsName ( unsigned int  i  )  const [inline]

Definition at line 46 of file DDHCalBarrelAlgo.h.

References sideAbsName.

00046 {return sideAbsName[i];}

int DDHCalBarrelAlgo::getSideAbsorber (  )  const [inline]

Definition at line 45 of file DDHCalBarrelAlgo.h.

References nSideAbs.

00045 {return nSideAbs;}

double DDHCalBarrelAlgo::getSideAbsW ( unsigned int  i  )  const [inline]

Definition at line 48 of file DDHCalBarrelAlgo.h.

References sideAbsW.

00048 {return sideAbsW[i];}

double DDHCalBarrelAlgo::getSideD ( unsigned int  i  )  const [inline]

Definition at line 43 of file DDHCalBarrelAlgo.h.

References sideD.

00043 {return sideD[i];}

std::string DDHCalBarrelAlgo::getSideMat ( unsigned int  i  )  const [inline]

Definition at line 42 of file DDHCalBarrelAlgo.h.

References sideMat.

00042 {return sideMat[i];}

double DDHCalBarrelAlgo::getSideT ( unsigned int  i  )  const [inline]

Definition at line 44 of file DDHCalBarrelAlgo.h.

References sideT.

00044 {return sideT[i];}

double DDHCalBarrelAlgo::getTanTheta ( unsigned int  i  )  const [inline]

Definition at line 24 of file DDHCalBarrelAlgo.h.

References ttheta.

Referenced by constructGeneralVolume(), and constructInsideSector().

00024 {return ttheta[i];}

double DDHCalBarrelAlgo::getTheta ( unsigned int  i  )  const [inline]

Definition at line 25 of file DDHCalBarrelAlgo.h.

References theta.

00025 {return theta[i];}

double DDHCalBarrelAlgo::getZoff ( unsigned int  i  )  const [inline]

Definition at line 27 of file DDHCalBarrelAlgo.h.

References zoff.

Referenced by constructGeneralVolume(), and constructInsideSector().

00027 {return zoff[i];}

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

Definition at line 37 of file DDHCalBarrelAlgo.cc.

References absorbD, absorbMat, absorbName, absorbT, dbl_to_int(), detdP1, detdP2, detMat, detMatPl, detMatSc, detPosY, detRot, detT11, detT12, detT21, detT22, detTsc, detType, detWidth1, detWidth2, genMaterial, i, idName, idNameSpace, idOffset, int, layerAbsorb, layerAlpha, layerD1, layerD2, layerGap, layerId, layerLabel, layerMat, layerT1, layerT2, layerWidth, LogDebug, middleD, middleMat, middleW, midMat, midName, midT, midW, nAbsorber, nhalf, nLayers, nMidAbs, DDCurrentNamespace::ns(), nsectors, nsectortot, nSideAbs, dbtoconf::parent, rin, rmax, rotHalf, rotns, rout, rzones, sideAbsMat, sideAbsName, sideAbsW, sideD, sideMat, sideT, funct::tan(), theta, ttheta, and zoff.

00041                                                                           {
00042 
00043   genMaterial = sArgs["MaterialName"];
00044   nsectors    = int (nArgs["NSector"]);
00045   nsectortot  = int (nArgs["NSectorTot"]);
00046   nhalf       = int (nArgs["NHalf"]);
00047   rin         = nArgs["RIn"];
00048   rout        = nArgs["ROut"];
00049   rzones      = int (nArgs["RZones"]);
00050   rotHalf     = sArgs["RotHalf"];
00051   rotns       = sArgs["RotNameSpace"];
00052 
00053   theta       = vArgs["Theta"];
00054   rmax        = vArgs["RMax"];
00055   zoff        = vArgs["ZOff"];
00056   int i = 0;
00057   for (i = 0; i < rzones; i++) {
00058     ttheta.push_back(tan(theta[i])); //*deg already done in XML
00059   }
00060   if (rzones > 3)
00061     rmax[2] = (zoff[3] - zoff[2]) / ttheta[2];
00062 
00063   LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: General material " 
00064                        << genMaterial << "\tSectors " << nsectors << ", " 
00065                        << nsectortot <<"\tHalves "      << nhalf 
00066                        << "\tRotation matrix " << rotns << ":" << rotHalf 
00067                        << "\n\t\t" << rin << "\t" << rout << "\t" << rzones;
00068   for (i = 0; i < rzones; i++) {
00069     LogDebug("HCalGeom") << "\tTheta[" << i << "] = " << theta[i] << "\trmax["
00070                          << i << "] = " << rmax[i] << "\tzoff[" << i << "] = "
00071                          << zoff[i];
00072   }
00074   //Layers
00075   nLayers = int(nArgs["NLayers"]);
00076   LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: Layer\t" << nLayers;
00077   layerId     = dbl_to_int (vArgs["Id"]);
00078   layerLabel  = vsArgs["LayerLabel"];
00079   layerMat    = vsArgs["LayerMat"];
00080   layerWidth  = vArgs["LayerWidth"];
00081   layerD1     = vArgs["D1"];
00082   layerD2     = vArgs["D2"];
00083   layerAlpha  = vArgs["Alpha2"]; 
00084   layerT1     = vArgs["T1"];
00085   layerT2     = vArgs["T2"];
00086   layerAbsorb = dbl_to_int(vArgs["AbsL"]);
00087   layerGap    = vArgs["Gap"];
00088   for (i = 0; i < nLayers; i++) {
00089     LogDebug("HCalGeom") << layerLabel[i] << "\t" << layerId[i] << "\t" 
00090                          << layerMat[i] << "\t" << layerWidth[i] << "\t" 
00091                          << layerD1[i] << "\t" << layerD2[i]  << "\t" 
00092                          << layerAlpha[i] << "\t" << layerT1[i] << "\t"
00093                          << layerT2[i] << "\t" << layerAbsorb[i] << "\t" 
00094                          << layerGap[i];
00095   }
00096   
00098   //Absorber Layers and middle part
00099   absorbName  = vsArgs["AbsorbName"];
00100   absorbMat   = vsArgs["AbsorbMat"];
00101   absorbD     = vArgs["AbsorbD"];
00102   absorbT     = vArgs["AbsorbT"];
00103   nAbsorber   = absorbName.size();
00104   for (i = 0; i < nAbsorber; i++) {
00105     LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: " << absorbName[i]
00106                          <<" Material " <<  absorbMat[i] << " d " << absorbD[i]
00107                          << " t " <<absorbT[i];
00108   }
00109   middleMat   = sArgs["MiddleMat"];
00110   middleD     = nArgs["MiddleD"];
00111   middleW     = nArgs["MiddleW"];
00112   LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: Middle material " 
00113                        << middleMat << " d " << middleD << " w " << middleW;
00114   midName     = vsArgs["MidAbsName"];
00115   midMat      = vsArgs["MidAbsMat"];
00116   midW        = vArgs["MidAbsW"];
00117   midT        = vArgs["MidAbsT"];
00118   nMidAbs     = midName.size();
00119   for (i = 0; i < nMidAbs; i++) {
00120     LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: " << midName[i]
00121                          << " Material " <<  midMat[i] << " W " << midW[i]
00122                          << " T " << midT[i];
00123   }
00124 
00125   //Absorber layers in the side part
00126   sideMat     = vsArgs["SideMat"];
00127   sideD       = vArgs["SideD"];
00128   sideT       = vArgs["SideT"];
00129   int nSide   = sideMat.size();
00130   for (int i = 0; i < nSide; i++) {
00131     LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: Side material " 
00132                          << sideMat[i] << " d " << sideD[i] << " t "
00133                          << sideT[i];
00134   }
00135   sideAbsName = vsArgs["SideAbsName"];
00136   sideAbsMat  = vsArgs["SideAbsMat"];
00137   sideAbsW    = vArgs["SideAbsW"];
00138   nSideAbs    = sideAbsName.size();
00139   for (i = 0; i < nSideAbs; i++) {
00140     LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: " << sideAbsName[i]
00141                          <<" Material " <<  sideAbsMat[i] << " W "
00142                          << sideAbsW[i];
00143   }
00144 
00146   // Detectors
00147 
00148   detMat   = sArgs["DetMat"];
00149   detRot   = sArgs["DetRot"];
00150   detMatPl = sArgs["DetMatPl"];
00151   detMatSc = sArgs["DetMatSc"];
00152   LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: Detector (" <<  nLayers 
00153                        << ") Rotation matrix " << rotns << ":" << detRot
00154                        << "\n\t\t" << detMat << "\t" << detMatPl  << "\t"
00155                        << detMatSc;
00156 
00157   detType   = dbl_to_int(vArgs["DetType"]);
00158   detdP1    = vArgs["DetdP1"];
00159   detdP2    = vArgs["DetdP2"];
00160   detT11    = vArgs["DetT11"];
00161   detT12    = vArgs["DetT12"];
00162   detTsc    = vArgs["DetTsc"];
00163   detT21    = vArgs["DetT21"];
00164   detT22    = vArgs["DetT22"];
00165   detWidth1 = vArgs["DetWidth1"];
00166   detWidth2 = vArgs["DetWidth2"];
00167   detPosY   = dbl_to_int(vArgs["DetPosY"]);
00168   for (i = 0; i < nLayers; i ++) {
00169     LogDebug("HCalGeom") << i+1 << "\t" << detType[i] << "\t" << detdP1[i]
00170                          << ", "  << detdP2[i] << "\t" << detT11[i] << ", " 
00171                          << detT12[i] << "\t" << detTsc[i] << "\t" << detT21[i]
00172                          <<", " << detT22[i] << "\t" << detWidth1[i] << "\t" 
00173                          << detWidth2[i] << "\t" << detPosY[i];
00174   }
00175 
00176   //  idName = parentName.name();
00177   idName      = sArgs["MotherName"];
00178   idNameSpace = DDCurrentNamespace::ns();
00179   idOffset = int (nArgs["IdOffset"]); 
00180   DDName parentName = parent().name(); 
00181   LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: Parent " << parentName
00182                        <<" idName " << idName << " NameSpace " << idNameSpace
00183                        << " Offset " << idOffset;
00184 }


Member Data Documentation

std::vector<double> DDHCalBarrelAlgo::absorbD [private]

Definition at line 169 of file DDHCalBarrelAlgo.h.

Referenced by getAbsorbD(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::absorbMat [private]

Definition at line 168 of file DDHCalBarrelAlgo.h.

Referenced by getAbsorbMat(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::absorbName [private]

Definition at line 167 of file DDHCalBarrelAlgo.h.

Referenced by getAbsorbName(), and initialize().

std::vector<double> DDHCalBarrelAlgo::absorbT [private]

Definition at line 170 of file DDHCalBarrelAlgo.h.

Referenced by getAbsorbT(), and initialize().

std::vector<double> DDHCalBarrelAlgo::detdP1 [private]

Definition at line 205 of file DDHCalBarrelAlgo.h.

Referenced by getDetdP1(), and initialize().

std::vector<double> DDHCalBarrelAlgo::detdP2 [private]

Definition at line 206 of file DDHCalBarrelAlgo.h.

Referenced by getDetdP2(), and initialize().

std::string DDHCalBarrelAlgo::detMat [private]

Definition at line 200 of file DDHCalBarrelAlgo.h.

Referenced by getDetMat(), and initialize().

std::string DDHCalBarrelAlgo::detMatPl [private]

Definition at line 202 of file DDHCalBarrelAlgo.h.

Referenced by getDetMatPl(), and initialize().

std::string DDHCalBarrelAlgo::detMatSc [private]

Definition at line 203 of file DDHCalBarrelAlgo.h.

Referenced by getDetMatSc(), and initialize().

std::vector<int> DDHCalBarrelAlgo::detPosY [private]

Definition at line 214 of file DDHCalBarrelAlgo.h.

Referenced by getDetPosY(), and initialize().

std::string DDHCalBarrelAlgo::detRot [private]

Definition at line 201 of file DDHCalBarrelAlgo.h.

Referenced by initialize().

std::vector<double> DDHCalBarrelAlgo::detT11 [private]

Definition at line 207 of file DDHCalBarrelAlgo.h.

Referenced by getDetT11(), and initialize().

std::vector<double> DDHCalBarrelAlgo::detT12 [private]

Definition at line 208 of file DDHCalBarrelAlgo.h.

Referenced by getDetT12(), and initialize().

std::vector<double> DDHCalBarrelAlgo::detT21 [private]

Definition at line 210 of file DDHCalBarrelAlgo.h.

Referenced by getDetT21(), and initialize().

std::vector<double> DDHCalBarrelAlgo::detT22 [private]

Definition at line 211 of file DDHCalBarrelAlgo.h.

Referenced by getDetT22(), and initialize().

std::vector<double> DDHCalBarrelAlgo::detTsc [private]

Definition at line 209 of file DDHCalBarrelAlgo.h.

Referenced by getDetTsc(), and initialize().

std::vector<int> DDHCalBarrelAlgo::detType [private]

Definition at line 204 of file DDHCalBarrelAlgo.h.

Referenced by getDetType(), and initialize().

std::vector<double> DDHCalBarrelAlgo::detWidth1 [private]

Definition at line 212 of file DDHCalBarrelAlgo.h.

Referenced by getDetWidth1(), and initialize().

std::vector<double> DDHCalBarrelAlgo::detWidth2 [private]

Definition at line 213 of file DDHCalBarrelAlgo.h.

Referenced by getDetWidth2(), and initialize().

std::string DDHCalBarrelAlgo::genMaterial [private]

Definition at line 114 of file DDHCalBarrelAlgo.h.

Referenced by getGenMaterial(), and initialize().

std::string DDHCalBarrelAlgo::idName [private]

Definition at line 216 of file DDHCalBarrelAlgo.h.

Referenced by constructGeneralVolume(), constructInsideSector(), and initialize().

std::string DDHCalBarrelAlgo::idNameSpace [private]

Definition at line 217 of file DDHCalBarrelAlgo.h.

Referenced by constructGeneralVolume(), constructInsideSector(), and initialize().

int DDHCalBarrelAlgo::idOffset [private]

Definition at line 218 of file DDHCalBarrelAlgo.h.

Referenced by initialize().

std::vector<int> DDHCalBarrelAlgo::layerAbsorb [private]

Definition at line 163 of file DDHCalBarrelAlgo.h.

Referenced by getLayerAbsorb(), and initialize().

std::vector<double> DDHCalBarrelAlgo::layerAlpha [private]

Definition at line 160 of file DDHCalBarrelAlgo.h.

Referenced by getLayerAlpha(), and initialize().

std::vector<double> DDHCalBarrelAlgo::layerD1 [private]

Definition at line 158 of file DDHCalBarrelAlgo.h.

Referenced by getLayerD1(), and initialize().

std::vector<double> DDHCalBarrelAlgo::layerD2 [private]

Definition at line 159 of file DDHCalBarrelAlgo.h.

Referenced by getLayerD2(), and initialize().

std::vector<double> DDHCalBarrelAlgo::layerGap [private]

Definition at line 164 of file DDHCalBarrelAlgo.h.

Referenced by getLayerGap(), and initialize().

std::vector<int> DDHCalBarrelAlgo::layerId [private]

Definition at line 154 of file DDHCalBarrelAlgo.h.

Referenced by getLayerId(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::layerLabel [private]

Definition at line 155 of file DDHCalBarrelAlgo.h.

Referenced by getLayerLabel(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::layerMat [private]

Definition at line 156 of file DDHCalBarrelAlgo.h.

Referenced by getLayerMaterial(), and initialize().

std::vector<double> DDHCalBarrelAlgo::layerT1 [private]

Definition at line 161 of file DDHCalBarrelAlgo.h.

Referenced by getLayerT1(), and initialize().

std::vector<double> DDHCalBarrelAlgo::layerT2 [private]

Definition at line 162 of file DDHCalBarrelAlgo.h.

Referenced by getLayerT2(), and initialize().

std::vector<double> DDHCalBarrelAlgo::layerWidth [private]

Definition at line 157 of file DDHCalBarrelAlgo.h.

Referenced by getLayerWidth(), and initialize().

double DDHCalBarrelAlgo::middleD [private]

Definition at line 172 of file DDHCalBarrelAlgo.h.

Referenced by getMiddleD(), and initialize().

std::string DDHCalBarrelAlgo::middleMat [private]

Definition at line 171 of file DDHCalBarrelAlgo.h.

Referenced by getMiddleMat(), and initialize().

double DDHCalBarrelAlgo::middleW [private]

Definition at line 173 of file DDHCalBarrelAlgo.h.

Referenced by getMiddleW(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::midMat [private]

Definition at line 176 of file DDHCalBarrelAlgo.h.

Referenced by getMidAbsMat(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::midName [private]

Definition at line 175 of file DDHCalBarrelAlgo.h.

Referenced by getMidAbsName(), and initialize().

std::vector<double> DDHCalBarrelAlgo::midT [private]

Definition at line 178 of file DDHCalBarrelAlgo.h.

Referenced by getMidAbsT(), and initialize().

std::vector<double> DDHCalBarrelAlgo::midW [private]

Definition at line 177 of file DDHCalBarrelAlgo.h.

Referenced by getMidAbsW(), and initialize().

int DDHCalBarrelAlgo::nAbsorber [private]

Definition at line 166 of file DDHCalBarrelAlgo.h.

Referenced by getAbsorberN(), and initialize().

int DDHCalBarrelAlgo::nhalf [private]

Definition at line 117 of file DDHCalBarrelAlgo.h.

Referenced by getNhalf(), and initialize().

int DDHCalBarrelAlgo::nLayers [private]

Definition at line 153 of file DDHCalBarrelAlgo.h.

Referenced by getNLayers(), and initialize().

int DDHCalBarrelAlgo::nMidAbs [private]

Definition at line 174 of file DDHCalBarrelAlgo.h.

Referenced by getMidAbsorber(), and initialize().

int DDHCalBarrelAlgo::nsectors [private]

Definition at line 115 of file DDHCalBarrelAlgo.h.

Referenced by getNsectors(), and initialize().

int DDHCalBarrelAlgo::nsectortot [private]

Definition at line 116 of file DDHCalBarrelAlgo.h.

Referenced by getNsectortot(), and initialize().

int DDHCalBarrelAlgo::nSideAbs [private]

Definition at line 183 of file DDHCalBarrelAlgo.h.

Referenced by getSideAbsorber(), and initialize().

double DDHCalBarrelAlgo::rin [private]

Definition at line 118 of file DDHCalBarrelAlgo.h.

Referenced by constructGeneralVolume(), constructInsideSector(), getRin(), and initialize().

std::vector<double> DDHCalBarrelAlgo::rmax [private]

Definition at line 121 of file DDHCalBarrelAlgo.h.

Referenced by getRmax(), and initialize().

std::string DDHCalBarrelAlgo::rotHalf [private]

Definition at line 124 of file DDHCalBarrelAlgo.h.

Referenced by constructGeneralVolume(), and initialize().

std::string DDHCalBarrelAlgo::rotns [private]

Definition at line 125 of file DDHCalBarrelAlgo.h.

Referenced by constructGeneralVolume(), and initialize().

double DDHCalBarrelAlgo::rout [private]

Definition at line 118 of file DDHCalBarrelAlgo.h.

Referenced by constructGeneralVolume(), constructInsideSector(), getRout(), and initialize().

int DDHCalBarrelAlgo::rzones [private]

Definition at line 119 of file DDHCalBarrelAlgo.h.

Referenced by getRzones(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::sideAbsMat [private]

Definition at line 185 of file DDHCalBarrelAlgo.h.

Referenced by getSideAbsMat(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::sideAbsName [private]

Definition at line 184 of file DDHCalBarrelAlgo.h.

Referenced by getSideAbsName(), and initialize().

std::vector<double> DDHCalBarrelAlgo::sideAbsW [private]

Definition at line 186 of file DDHCalBarrelAlgo.h.

Referenced by getSideAbsW(), and initialize().

std::vector<double> DDHCalBarrelAlgo::sideD [private]

Definition at line 181 of file DDHCalBarrelAlgo.h.

Referenced by getSideD(), and initialize().

std::vector<std::string> DDHCalBarrelAlgo::sideMat [private]

Definition at line 180 of file DDHCalBarrelAlgo.h.

Referenced by getSideMat(), and initialize().

std::vector<double> DDHCalBarrelAlgo::sideT [private]

Definition at line 182 of file DDHCalBarrelAlgo.h.

Referenced by getSideT(), and initialize().

std::vector<double> DDHCalBarrelAlgo::theta [private]

Definition at line 120 of file DDHCalBarrelAlgo.h.

Referenced by getTheta(), and initialize().

std::vector<double> DDHCalBarrelAlgo::ttheta [private]

Definition at line 123 of file DDHCalBarrelAlgo.h.

Referenced by getTanTheta(), and initialize().

std::vector<double> DDHCalBarrelAlgo::zoff [private]

Definition at line 122 of file DDHCalBarrelAlgo.h.

Referenced by getZoff(), and initialize().


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