CMS 3D CMS Logo

DDEcalBarrelAlgo.cc
Go to the documentation of this file.
1 
3 // File: DDEcalBarrelAlgo.cc
4 // Description: Geometry factory class for Ecal Barrel
6 
7 #include <cmath>
8 #include <algorithm>
9 
15 #include "CLHEP/Units/GlobalSystemOfUnits.h"
16 
17 #include <CLHEP/Geometry/Point3D.h>
18 #include <CLHEP/Geometry/Vector3D.h>
19 #include <CLHEP/Geometry/Transform3D.h>
20 #include <map>
21 #include <string>
22 #include <vector>
30 #include "CLHEP/Geometry/Transform3D.h"
31 
32 class DDEcalBarrelAlgo : public DDAlgorithm {
33 public:
35  typedef HepGeom::Point3D<double> Pt3D;
36  typedef HepGeom::Transform3D Tf3D;
37  typedef HepGeom::ReflectZ3D RfZ3D;
38  typedef HepGeom::Translate3D Tl3D;
39  typedef HepGeom::Rotate3D Ro3D;
40  typedef HepGeom::RotateZ3D RoZ3D;
41  typedef HepGeom::RotateY3D RoY3D;
42  typedef HepGeom::RotateX3D RoX3D;
43 
44  typedef CLHEP::Hep3Vector Vec3;
45  typedef CLHEP::HepRotation Rota;
46 
47  //Constructor and Destructor
49  ~DDEcalBarrelAlgo() override;
50 
51  void initialize(const DDNumericArguments& nArgs,
52  const DDVectorArguments& vArgs,
53  const DDMapArguments& mArgs,
54  const DDStringArguments& sArgs,
55  const DDStringVectorArguments& vsArgs) override;
56  void execute(DDCompactView& cpv) override;
57 
58  DDMaterial ddmat(const std::string& s) const;
59  DDName ddname(const std::string& s) const;
60  DDRotation myrot(const std::string& s, const CLHEP::HepRotation& r) const;
61  DDSolid mytrap(const std::string& s, const Trap& t) const;
62 
63  const std::string& idNameSpace() const { return m_idNameSpace; }
64 
65  // barrel parent volume
66  DDName barName() const { return ddname(m_BarName); }
67  DDMaterial barMat() const { return ddmat(m_BarMat); }
68  const std::vector<double>& vecBarZPts() const { return m_vecBarZPts; }
69  const std::vector<double>& vecBarRMin() const { return m_vecBarRMin; }
70  const std::vector<double>& vecBarRMax() const { return m_vecBarRMax; }
71  const std::vector<double>& vecBarTran() const { return m_vecBarTran; }
72  const std::vector<double>& vecBarRota() const { return m_vecBarRota; }
73  const std::vector<double>& vecBarRota2() const { return m_vecBarRota2; }
74  const std::vector<double>& vecBarRota3() const { return m_vecBarRota3; }
75  double barPhiLo() const { return m_BarPhiLo; }
76  double barPhiHi() const { return m_BarPhiHi; }
77  double barHere() const { return m_BarHere; }
78 
79  DDName spmName() const { return ddname(m_SpmName); }
80  DDMaterial spmMat() const { return ddmat(m_SpmMat); }
81  const std::vector<double>& vecSpmZPts() const { return m_vecSpmZPts; }
82  const std::vector<double>& vecSpmRMin() const { return m_vecSpmRMin; }
83  const std::vector<double>& vecSpmRMax() const { return m_vecSpmRMax; }
84  const std::vector<double>& vecSpmTran() const { return m_vecSpmTran; }
85  const std::vector<double>& vecSpmRota() const { return m_vecSpmRota; }
86  const std::vector<double>& vecSpmBTran() const { return m_vecSpmBTran; }
87  const std::vector<double>& vecSpmBRota() const { return m_vecSpmBRota; }
88  unsigned int spmNPerHalf() const { return m_SpmNPerHalf; }
89  double spmLowPhi() const { return m_SpmLowPhi; }
90  double spmDelPhi() const { return m_SpmDelPhi; }
91  double spmPhiOff() const { return m_SpmPhiOff; }
92  const std::vector<double>& vecSpmHere() const { return m_vecSpmHere; }
93  DDName spmCutName() const { return ddname(m_SpmCutName); }
94  double spmCutThick() const { return m_SpmCutThick; }
95  int spmCutShow() const { return m_SpmCutShow; }
96  double spmCutRM() const { return m_SpmCutRM; }
97  double spmCutRP() const { return m_SpmCutRP; }
98  const std::vector<double>& vecSpmCutTM() const { return m_vecSpmCutTM; }
99  const std::vector<double>& vecSpmCutTP() const { return m_vecSpmCutTP; }
100  double spmExpThick() const { return m_SpmExpThick; }
101  double spmExpWide() const { return m_SpmExpWide; }
102  double spmExpYOff() const { return m_SpmExpYOff; }
103  DDName spmSideName() const { return ddname(m_SpmSideName); }
105  double spmSideHigh() const { return m_SpmSideHigh; }
106  double spmSideThick() const { return m_SpmSideThick; }
107  double spmSideYOffM() const { return m_SpmSideYOffM; }
108  double spmSideYOffP() const { return m_SpmSideYOffP; }
109 
110  double nomCryDimAF() const { return m_NomCryDimAF; }
111  double nomCryDimLZ() const { return m_NomCryDimLZ; }
112  const std::vector<double>& vecNomCryDimBF() const { return m_vecNomCryDimBF; }
113  const std::vector<double>& vecNomCryDimCF() const { return m_vecNomCryDimCF; }
114  const std::vector<double>& vecNomCryDimAR() const { return m_vecNomCryDimAR; }
115  const std::vector<double>& vecNomCryDimBR() const { return m_vecNomCryDimBR; }
116  const std::vector<double>& vecNomCryDimCR() const { return m_vecNomCryDimCR; }
117 
118  double underAF() const { return m_UnderAF; }
119  double underLZ() const { return m_UnderLZ; }
120  double underBF() const { return m_UnderBF; }
121  double underCF() const { return m_UnderCF; }
122  double underAR() const { return m_UnderAR; }
123  double underBR() const { return m_UnderBR; }
124  double underCR() const { return m_UnderCR; }
125 
126  double wallThAlv() const { return m_WallThAlv; }
127  double wrapThAlv() const { return m_WrapThAlv; }
128  double clrThAlv() const { return m_ClrThAlv; }
129  const std::vector<double>& vecGapAlvEta() const { return m_vecGapAlvEta; }
130 
131  double wallFrAlv() const { return m_WallFrAlv; }
132  double wrapFrAlv() const { return m_WrapFrAlv; }
133  double clrFrAlv() const { return m_ClrFrAlv; }
134 
135  double wallReAlv() const { return m_WallReAlv; }
136  double wrapReAlv() const { return m_WrapReAlv; }
137  double clrReAlv() const { return m_ClrReAlv; }
138 
139  unsigned int nCryTypes() const { return m_NCryTypes; }
140  unsigned int nCryPerAlvEta() const { return m_NCryPerAlvEta; }
141 
142  const std::string& cryName() const { return m_CryName; }
143  const std::string& clrName() const { return m_ClrName; }
144  const std::string& wrapName() const { return m_WrapName; }
145  const std::string& wallName() const { return m_WallName; }
146 
147  DDMaterial cryMat() const { return ddmat(m_CryMat); }
148  DDMaterial clrMat() const { return ddmat(m_ClrMat); }
149  DDMaterial wrapMat() const { return ddmat(m_WrapMat); }
150  DDMaterial wallMat() const { return ddmat(m_WallMat); }
151 
152  DDName apdName() const { return ddname(m_APDName); }
153  double apdHere() const { return m_APDHere; }
154  DDMaterial apdMat() const { return ddmat(m_APDMat); }
155  double apdSide() const { return m_APDSide; }
156  double apdThick() const { return m_APDThick; }
157  double apdZ() const { return m_APDZ; }
158  double apdX1() const { return m_APDX1; }
159  double apdX2() const { return m_APDX2; }
160 
161  double webHere() const { return m_WebHere; }
162  const std::string& webPlName() const { return m_WebPlName; }
163  const std::string& webClrName() const { return m_WebClrName; }
164  DDMaterial webPlMat() const { return ddmat(m_WebPlMat); }
165  DDMaterial webClrMat() const { return ddmat(m_WebClrMat); }
166  const std::vector<double>& vecWebPlTh() const { return m_vecWebPlTh; }
167  const std::vector<double>& vecWebClrTh() const { return m_vecWebClrTh; }
168  const std::vector<double>& vecWebLength() const { return m_vecWebLength; }
169 
170  double ilyHere() const { return m_IlyHere; }
171  const std::string& ilyName() const { return m_IlyName; }
172  double ilyPhiLow() const { return m_IlyPhiLow; }
173  double ilyDelPhi() const { return m_IlyDelPhi; }
174  const std::vector<std::string>& vecIlyMat() const { return m_vecIlyMat; }
175  const std::vector<double>& vecIlyThick() const { return m_vecIlyThick; }
176 
177  const std::string& ilyPipeName() const { return m_IlyPipeName; }
178  double ilyPipeHere() const { return m_IlyPipeHere; }
180  double ilyPipeOD() const { return m_IlyPipeOD; }
181  double ilyPipeID() const { return m_IlyPipeID; }
182  const std::vector<double>& vecIlyPipeLength() const { return m_vecIlyPipeLength; }
183  const std::vector<double>& vecIlyPipeType() const { return m_vecIlyPipeType; }
184  const std::vector<double>& vecIlyPipePhi() const { return m_vecIlyPipePhi; }
185  const std::vector<double>& vecIlyPipeZ() const { return m_vecIlyPipeZ; }
186 
187  DDName ilyPTMName() const { return ddname(m_IlyPTMName); }
188  double ilyPTMHere() const { return m_IlyPTMHere; }
189  DDMaterial ilyPTMMat() const { return ddmat(m_IlyPTMMat); }
190  double ilyPTMWidth() const { return m_IlyPTMWidth; }
191  double ilyPTMLength() const { return m_IlyPTMLength; }
192  double ilyPTMHeight() const { return m_IlyPTMHeight; }
193  const std::vector<double>& vecIlyPTMZ() const { return m_vecIlyPTMZ; }
194  const std::vector<double>& vecIlyPTMPhi() const { return m_vecIlyPTMPhi; }
195 
197  double ilyFanOutHere() const { return m_IlyFanOutHere; }
199  double ilyFanOutWidth() const { return m_IlyFanOutWidth; }
200  double ilyFanOutLength() const { return m_IlyFanOutLength; }
201  double ilyFanOutHeight() const { return m_IlyFanOutHeight; }
202  const std::vector<double>& vecIlyFanOutZ() const { return m_vecIlyFanOutZ; }
203  const std::vector<double>& vecIlyFanOutPhi() const { return m_vecIlyFanOutPhi; }
204  DDName ilyDiffName() const { return ddname(m_IlyDiffName); }
206  double ilyDiffOff() const { return m_IlyDiffOff; }
207  double ilyDiffLength() const { return m_IlyDiffLength; }
208  DDName ilyBndlName() const { return ddname(m_IlyBndlName); }
210  double ilyBndlOff() const { return m_IlyBndlOff; }
211  double ilyBndlLength() const { return m_IlyBndlLength; }
212  DDName ilyFEMName() const { return ddname(m_IlyFEMName); }
213  DDMaterial ilyFEMMat() const { return ddmat(m_IlyFEMMat); }
214  double ilyFEMWidth() const { return m_IlyFEMWidth; }
215  double ilyFEMLength() const { return m_IlyFEMLength; }
216  double ilyFEMHeight() const { return m_IlyFEMHeight; }
217  const std::vector<double>& vecIlyFEMZ() const { return m_vecIlyFEMZ; }
218  const std::vector<double>& vecIlyFEMPhi() const { return m_vecIlyFEMPhi; }
219 
220  DDName hawRName() const { return ddname(m_HawRName); }
221  DDName fawName() const { return ddname(m_FawName); }
222  double fawHere() const { return m_FawHere; }
223  double hawRHBIG() const { return m_HawRHBIG; }
224  double hawRhsml() const { return m_HawRhsml; }
225  double hawRCutY() const { return m_HawRCutY; }
226  double hawRCutZ() const { return m_HawRCutZ; }
227  double hawRCutDelY() const { return m_HawRCutDelY; }
228  double hawYOffCry() const { return m_HawYOffCry; }
229 
230  unsigned int nFawPerSupm() const { return m_NFawPerSupm; }
231  double fawPhiOff() const { return m_FawPhiOff; }
232  double fawDelPhi() const { return m_FawDelPhi; }
233  double fawPhiRot() const { return m_FawPhiRot; }
234  double fawRadOff() const { return m_FawRadOff; }
235 
236  double gridHere() const { return m_GridHere; }
237  DDName gridName() const { return ddname(m_GridName); }
238  DDMaterial gridMat() const { return ddmat(m_GridMat); }
239  double gridThick() const { return m_GridThick; }
240 
241  double backHere() const { return m_BackHere; }
242  double backXOff() const { return m_BackXOff; }
243  double backYOff() const { return m_BackYOff; }
245  double backSideHere() const { return m_BackSideHere; }
246  double backSideLength() const { return m_BackSideLength; }
247  double backSideHeight() const { return m_BackSideHeight; }
248  double backSideWidth() const { return m_BackSideWidth; }
249  double backSideYOff1() const { return m_BackSideYOff1; }
250  double backSideYOff2() const { return m_BackSideYOff2; }
251  double backSideAngle() const { return m_BackSideAngle; }
254  double backPlateHere() const { return m_BackPlateHere; }
255  double backPlateLength() const { return m_BackPlateLength; }
256  double backPlateThick() const { return m_BackPlateThick; }
257  double backPlateWidth() const { return m_BackPlateWidth; }
260  double backPlate2Thick() const { return m_BackPlate2Thick; }
262  const std::string& grilleName() const { return m_GrilleName; }
263  double grilleThick() const { return m_GrilleThick; }
264  double grilleHere() const { return m_GrilleHere; }
265  double grilleWidth() const { return m_GrilleWidth; }
266  double grilleZSpace() const { return m_GrilleZSpace; }
267  DDMaterial grilleMat() const { return ddmat(m_GrilleMat); }
268  const std::vector<double>& vecGrilleHeight() const { return m_vecGrilleHeight; }
269  const std::vector<double>& vecGrilleZOff() const { return m_vecGrilleZOff; }
270 
273  double grEdgeSlotHere() const { return m_GrEdgeSlotHere; }
274  double grEdgeSlotHeight() const { return m_GrEdgeSlotHeight; }
275  double grEdgeSlotWidth() const { return m_GrEdgeSlotWidth; }
276  const std::string& grMidSlotName() const { return m_GrMidSlotName; }
278  double grMidSlotHere() const { return m_GrMidSlotHere; }
279  double grMidSlotWidth() const { return m_GrMidSlotWidth; }
280  double grMidSlotXOff() const { return m_GrMidSlotXOff; }
281  const std::vector<double>& vecGrMidSlotHeight() const { return m_vecGrMidSlotHeight; }
282 
283  double backPipeHere() const { return m_BackPipeHere; }
284  const std::string& backPipeName() const { return m_BackPipeName; }
285  const std::vector<double>& vecBackPipeDiam() const { return m_vecBackPipeDiam; }
286  const std::vector<double>& vecBackPipeThick() const { return m_vecBackPipeThick; }
289  double backMiscHere() const { return m_BackMiscHere; }
290  const std::vector<double>& vecBackMiscThick() const { return m_vecBackMiscThick; }
291  const std::vector<std::string>& vecBackMiscName() const { return m_vecBackMiscName; }
292  const std::vector<std::string>& vecBackMiscMat() const { return m_vecBackMiscMat; }
293  double patchPanelHere() const { return m_PatchPanelHere; }
294  const std::vector<double>& vecPatchPanelThick() const { return m_vecPatchPanelThick; }
295  const std::vector<std::string>& vecPatchPanelNames() const { return m_vecPatchPanelNames; }
296  const std::vector<std::string>& vecPatchPanelMat() const { return m_vecPatchPanelMat; }
298 
299  const std::vector<std::string>& vecBackCoolName() const { return m_vecBackCoolName; }
300  double backCoolHere() const { return m_BackCoolHere; }
301  double backCoolBarWidth() const { return m_BackCoolBarWidth; }
302  double backCoolBarHeight() const { return m_BackCoolBarHeight; }
304  double backCoolBarHere() const { return m_BackCoolBarHere; }
306  double backCoolBarThick() const { return m_BackCoolBarThick; }
309  double backCoolBarSSThick() const { return m_BackCoolBarSSThick; }
312  double backCoolBarWaThick() const { return m_BackCoolBarWaThick; }
314  double backCoolVFEHere() const { return m_BackCoolVFEHere; }
317  DDName backVFEName() const { return ddname(m_BackVFEName); }
319  const std::vector<double>& vecBackVFELyrThick() const { return m_vecBackVFELyrThick; }
320  const std::vector<std::string>& vecBackVFELyrName() const { return m_vecBackVFELyrName; }
321  const std::vector<std::string>& vecBackVFELyrMat() const { return m_vecBackVFELyrMat; }
322  const std::vector<double>& vecBackCoolNSec() const { return m_vecBackCoolNSec; }
323  const std::vector<double>& vecBackCoolSecSep() const { return m_vecBackCoolSecSep; }
324  const std::vector<double>& vecBackCoolNPerSec() const { return m_vecBackCoolNPerSec; }
325  double backCBStdSep() const { return m_BackCBStdSep; }
326 
327  double backCoolTankHere() const { return m_BackCoolTankHere; }
329  double backCoolTankWidth() const { return m_BackCoolTankWidth; }
330  double backCoolTankThick() const { return m_BackCoolTankThick; }
333  double backCoolTankWaWidth() const { return m_BackCoolTankWaWidth; }
335  const std::string& backBracketName() const { return m_BackBracketName; }
336  double backBracketHeight() const { return m_BackBracketHeight; }
338 
339  double dryAirTubeHere() const { return m_DryAirTubeHere; }
340  const std::string& dryAirTubeName() const { return m_DryAirTubeName; }
341  double mBCoolTubeNum() const { return m_MBCoolTubeNum; }
342  double dryAirTubeInnDiam() const { return m_DryAirTubeInnDiam; }
343  double dryAirTubeOutDiam() const { return m_DryAirTubeOutDiam; }
345  double mBCoolTubeHere() const { return m_MBCoolTubeHere; }
346  const std::string& mBCoolTubeName() const { return m_MBCoolTubeName; }
347  double mBCoolTubeInnDiam() const { return m_MBCoolTubeInnDiam; }
348  double mBCoolTubeOutDiam() const { return m_MBCoolTubeOutDiam; }
350  double mBManifHere() const { return m_MBManifHere; }
351  DDName mBManifName() const { return ddname(m_MBManifName); }
352  double mBManifInnDiam() const { return m_MBManifInnDiam; }
353  double mBManifOutDiam() const { return m_MBManifOutDiam; }
355  double mBLyrHere() const { return m_MBLyrHere; }
356  const std::vector<double>& vecMBLyrThick() const { return m_vecMBLyrThick; }
357  const std::vector<std::string>& vecMBLyrName() const { return m_vecMBLyrName; }
358  const std::vector<std::string>& vecMBLyrMat() const { return m_vecMBLyrMat; }
359 
360  //----------
361 
362  double pincerRodHere() const { return m_PincerRodHere; }
365  std::vector<double> vecPincerRodAzimuth() const { return m_vecPincerRodAzimuth; }
368  double pincerEnvWidth() const { return m_PincerEnvWidth; }
369  double pincerEnvHeight() const { return m_PincerEnvHeight; }
370  double pincerEnvLength() const { return m_PincerEnvLength; }
371  std::vector<double> vecPincerEnvZOff() const { return m_vecPincerEnvZOff; }
372 
375  double pincerBlkLength() const { return m_PincerBlkLength; }
376 
378  double pincerShimHeight() const { return m_PincerShimHeight; }
381  double pincerShim1Width() const { return m_PincerShim1Width; }
382  double pincerShim2Width() const { return m_PincerShim2Width; }
383 
386  double pincerCutWidth() const { return m_PincerCutWidth; }
387  double pincerCutHeight() const { return m_PincerCutHeight; }
388 
389 protected:
390 private:
391  void web(unsigned int iWeb,
392  double bWeb,
393  double BWeb,
394  double LWeb,
395  double theta,
396  const Pt3D& corner,
397  const DDLogicalPart& logPar,
398  double& zee,
399  double side,
400  double front,
401  double delta,
402  DDCompactView& cpv);
403 
404  std::string m_idNameSpace; //Namespace of this and ALL sub-parts
405 
406  // Barrel volume
407  std::string m_BarName; // Barrel volume name
408  std::string m_BarMat; // Barrel material name
409  std::vector<double> m_vecBarZPts; // Barrel list of z pts
410  std::vector<double> m_vecBarRMin; // Barrel list of rMin pts
411  std::vector<double> m_vecBarRMax; // Barrel list of rMax pts
412  std::vector<double> m_vecBarTran; // Barrel translation
413  std::vector<double> m_vecBarRota; // Barrel rotation
414  std::vector<double> m_vecBarRota2; // 2nd Barrel rotation
415  std::vector<double> m_vecBarRota3; // 2nd Barrel rotation
416  double m_BarPhiLo; // Barrel phi lo
417  double m_BarPhiHi; // Barrel phi hi
418  double m_BarHere; // Barrel presence flag
419 
420  // Supermodule volume
421  std::string m_SpmName; // Supermodule volume name
422  std::string m_SpmMat; // Supermodule material name
423  std::vector<double> m_vecSpmZPts; // Supermodule list of z pts
424  std::vector<double> m_vecSpmRMin; // Supermodule list of rMin pts
425  std::vector<double> m_vecSpmRMax; // Supermodule list of rMax pts
426  std::vector<double> m_vecSpmTran; // Supermodule translation
427  std::vector<double> m_vecSpmRota; // Supermodule rotation
428  std::vector<double> m_vecSpmBTran; // Base Supermodule translation
429  std::vector<double> m_vecSpmBRota; // Base Supermodule rotation
430  unsigned int m_SpmNPerHalf; // # Supermodules per half detector
431  double m_SpmLowPhi; // Low phi value of base supermodule
432  double m_SpmDelPhi; // Delta phi value of base supermodule
433  double m_SpmPhiOff; // Phi offset value supermodule
434  std::vector<double> m_vecSpmHere; // Bit saying if a supermodule is present or not
435  std::string m_SpmCutName; // Name of cut box
436  double m_SpmCutThick; // Box thickness
437  int m_SpmCutShow; // Non-zero means show the box on display (testing only)
438  std::vector<double> m_vecSpmCutTM; // Translation for minus phi cut box
439  std::vector<double> m_vecSpmCutTP; // Translation for plus phi cut box
440  double m_SpmCutRM; // Rotation for minus phi cut box
441  double m_SpmCutRP; // Rotation for plus phi cut box
442  double m_SpmExpThick; // Thickness (x) of supermodule expansion box
443  double m_SpmExpWide; // Width (y) of supermodule expansion box
444  double m_SpmExpYOff; // Offset (y) of supermodule expansion box
445  std::string m_SpmSideName; // Supermodule Side Plate volume name
446  std::string m_SpmSideMat; // Supermodule Side Plate material name
447  double m_SpmSideHigh; // Side plate height
448  double m_SpmSideThick; // Side plate thickness
449  double m_SpmSideYOffM; // Side plate Y offset on minus phi side
450  double m_SpmSideYOffP; // Side plate Y offset on plus phi side
451 
452  double m_NomCryDimAF; // Nominal crystal AF
453  double m_NomCryDimLZ; // Nominal crystal LZ
454  std::vector<double> m_vecNomCryDimBF; // Nominal crystal BF
455  std::vector<double> m_vecNomCryDimCF; // Nominal crystal CF
456  std::vector<double> m_vecNomCryDimAR; // Nominal crystal AR
457  std::vector<double> m_vecNomCryDimBR; // Nominal crystal BR
458  std::vector<double> m_vecNomCryDimCR; // Nominal crystal CR
459 
460  double m_UnderAF; // undershoot of AF
461  double m_UnderLZ; // undershoot of LZ
462  double m_UnderBF; // undershoot of BF
463  double m_UnderCF; // undershoot of CF
464  double m_UnderAR; // undershoot of AR
465  double m_UnderBR; // undershoot of BR
466  double m_UnderCR; // undershoot of CR
467 
468  double m_WallThAlv; // alveoli wall thickness
469  double m_WrapThAlv; // wrapping thickness
470  double m_ClrThAlv; // clearance thickness (nominal)
471  std::vector<double> m_vecGapAlvEta; // Extra clearance after each alveoli perp to crystal axis
472 
473  double m_WallFrAlv; // alveoli wall frontage
474  double m_WrapFrAlv; // wrapping frontage
475  double m_ClrFrAlv; // clearance frontage (nominal)
476 
477  double m_WallReAlv; // alveoli wall rearage
478  double m_WrapReAlv; // wrapping rearage
479  double m_ClrReAlv; // clearance rearage (nominal)
480 
481  unsigned int m_NCryTypes; // number of crystal shapes
482  unsigned int m_NCryPerAlvEta; // number of crystals in eta per alveolus
483 
484  std::string m_CryName; // string name of crystal volume
485  std::string m_ClrName; // string name of clearance volume
486  std::string m_WrapName; // string name of wrap volume
487  std::string m_WallName; // string name of wall volume
488 
489  std::string m_CryMat; // string name of crystal material
490  std::string m_ClrMat; // string name of clearance material
491  std::string m_WrapMat; // string name of wrap material
492  std::string m_WallMat; // string name of wall material
493 
495  double m_APDHere; //
497  double m_APDSide; //
498  double m_APDThick; //
499  double m_APDZ; //
500  double m_APDX1; //
501  double m_APDX2; //
502 
503  double m_WebHere; // here flag
504  std::string m_WebPlName; // string name of web plate volume
505  std::string m_WebClrName; // string name of web clearance volume
506  std::string m_WebPlMat; // string name of web material
507  std::string m_WebClrMat; // string name of web clearance material
508  std::vector<double> m_vecWebPlTh; // Thickness of web plates
509  std::vector<double> m_vecWebClrTh; // Thickness of total web clearance
510  std::vector<double> m_vecWebLength; // Length of web plate
511 
512  double m_IlyHere; // here flag
513  std::string m_IlyName; // string name of inner layer volume
514  double m_IlyPhiLow; // low phi of volumes
515  double m_IlyDelPhi; // delta phi of ily
516  std::vector<std::string> m_vecIlyMat; // materials of inner layer volumes
517  std::vector<double> m_vecIlyThick; // Thicknesses of inner layer volumes
518 
519  std::string m_IlyPipeName; // Cooling pipes
520  double m_IlyPipeHere; //
522  double m_IlyPipeOD; //
523  double m_IlyPipeID; //
524  std::vector<double> m_vecIlyPipeLength; //
525  std::vector<double> m_vecIlyPipeType; //
526  std::vector<double> m_vecIlyPipePhi; //
527  std::vector<double> m_vecIlyPipeZ; //
528 
530  double m_IlyPTMHere; //
532  double m_IlyPTMWidth; //
533  double m_IlyPTMLength; //
534  double m_IlyPTMHeight; //
535  std::vector<double> m_vecIlyPTMZ; //
536  std::vector<double> m_vecIlyPTMPhi; //
537 
539  double m_IlyFanOutHere; //
541  double m_IlyFanOutWidth; //
542  double m_IlyFanOutLength; //
543  double m_IlyFanOutHeight; //
544  std::vector<double> m_vecIlyFanOutZ; //
545  std::vector<double> m_vecIlyFanOutPhi; //
548  double m_IlyDiffOff; //
549  double m_IlyDiffLength; //
550  std::string m_IlyBndlName; // Fiber bundle
552  double m_IlyBndlOff; //
553  double m_IlyBndlLength; //
556  double m_IlyFEMWidth; //
557  double m_IlyFEMLength; //
558  double m_IlyFEMHeight; //
559  std::vector<double> m_vecIlyFEMZ; //
560  std::vector<double> m_vecIlyFEMPhi; //
561 
562  std::string m_HawRName; // string name of half-alveolar wedge
563  std::string m_FawName; // string name of full-alveolar wedge
564  double m_FawHere; // here flag
565  double m_HawRHBIG; // height at big end of half alveolar wedge
566  double m_HawRhsml; // height at small end of half alveolar wedge
567  double m_HawRCutY; // x dim of hawR cut box
568  double m_HawRCutZ; // y dim of hawR cut box
569  double m_HawRCutDelY; // y offset of hawR cut box from top of HAW
570  double m_HawYOffCry; // Y offset of crystal wrt HAW at front
571  unsigned int m_NFawPerSupm; // Number of Full Alv. Wedges per supermodule
572  double m_FawPhiOff; // Phi offset for FAW placement
573  double m_FawDelPhi; // Phi delta for FAW placement
574  double m_FawPhiRot; // Phi rotation of FAW about own axis prior to placement
575  double m_FawRadOff; // Radial offset for FAW placement
576 
577  double m_GridHere; // here flag
578  std::string m_GridName; // Grid name
579  std::string m_GridMat; // Grid material
580  double m_GridThick; // Grid Thickness
581 
582  double m_BackXOff; //
583  double m_BackYOff; //
584 
585  double m_BackHere; // here flag
587  double m_BackSideHere; //
588  double m_BackSideLength; //
589  double m_BackSideHeight; //
590  double m_BackSideWidth; //
591  double m_BackSideYOff1; //
592  double m_BackSideYOff2; //
593  double m_BackSideAngle; //
596  double m_BackPlateHere; //
597  double m_BackPlateLength; //
598  double m_BackPlateThick; //
599  double m_BackPlateWidth; //
602  double m_BackPlate2Thick; //
605  double m_GrilleHere; //
606  double m_GrilleThick; //
607  double m_GrilleWidth; //
608  double m_GrilleZSpace; //
610  std::vector<double> m_vecGrilleHeight; //
611  std::vector<double> m_vecGrilleZOff; //
612 
613  std::string m_GrEdgeSlotName; // Slots in Grille
615  double m_GrEdgeSlotHere; //
617  double m_GrEdgeSlotWidth; //
618 
619  std::string m_GrMidSlotName; // Slots in Grille
621  double m_GrMidSlotHere; //
622  double m_GrMidSlotWidth; //
623  double m_GrMidSlotXOff; //
624  std::vector<double> m_vecGrMidSlotHeight; //
625 
626  double m_BackPipeHere; // here flag
628  std::vector<double> m_vecBackPipeDiam; // pipes
629  std::vector<double> m_vecBackPipeThick; // pipes
632 
633  std::vector<std::string> m_vecBackCoolName; // cooling circuits
634  double m_BackCoolHere; // here flag
635  double m_BackCoolBarHere; // here flag
642  std::string m_BackCoolBarSSName; // cooling bar tubing
645  std::string m_BackCoolBarWaName; // cooling bar water
648  double m_BackCoolVFEHere; // here flag
653  std::vector<double> m_vecBackVFELyrThick; //
654  std::vector<std::string> m_vecBackVFELyrName; //
655  std::vector<std::string> m_vecBackVFELyrMat; //
656  std::vector<double> m_vecBackCoolNSec; //
657  std::vector<double> m_vecBackCoolSecSep; //
658  std::vector<double> m_vecBackCoolNPerSec; //
659  double m_BackMiscHere; // here flag
660  std::vector<double> m_vecBackMiscThick; // misc materials
661  std::vector<std::string> m_vecBackMiscName; //
662  std::vector<std::string> m_vecBackMiscMat; //
663  double m_BackCBStdSep; //
664 
665  double m_PatchPanelHere; // here flag
667  std::vector<double> m_vecPatchPanelThick; // patch panel materials
668  std::vector<std::string> m_vecPatchPanelNames; //
669  std::vector<std::string> m_vecPatchPanelMat; //
670 
671  double m_BackCoolTankHere; // here flag
682 
683  double m_DryAirTubeHere; // here flag
684  std::string m_DryAirTubeName; // dry air tube
685  unsigned int m_MBCoolTubeNum; //
689  double m_MBCoolTubeHere; // here flag
690  std::string m_MBCoolTubeName; // mothr bd cooling tube
694  double m_MBManifHere; // here flag
695  std::string m_MBManifName; //mother bd manif
696  double m_MBManifInnDiam; //
697  double m_MBManifOutDiam; //
699  double m_MBLyrHere; // here flag
700  std::vector<double> m_vecMBLyrThick; // mother bd lyrs
701  std::vector<std::string> m_vecMBLyrName; //
702  std::vector<std::string> m_vecMBLyrMat; //
703 
704  //-------------------------------------------------------------------
705 
706  double m_PincerRodHere; // here flag
709  std::vector<double> m_vecPincerRodAzimuth; //
710 
711  std::string m_PincerEnvName; // pincer envelope
713  double m_PincerEnvWidth; //
714  double m_PincerEnvHeight; //
715  double m_PincerEnvLength; //
716  std::vector<double> m_vecPincerEnvZOff; //
717 
718  std::string m_PincerBlkName; // pincer block
720  double m_PincerBlkLength; //
721 
728 
729  std::string m_PincerCutName; // pincer block
731  double m_PincerCutWidth; //
732  double m_PincerCutHeight; //
733 };
734 
735 namespace std {}
736 using namespace std;
737 
739  : m_idNameSpace(""),
740  m_BarName(""),
741  m_BarMat(""),
742  m_vecBarZPts(),
743  m_vecBarRMin(),
744  m_vecBarRMax(),
745  m_vecBarTran(),
746  m_vecBarRota(),
747  m_vecBarRota2(),
748  m_vecBarRota3(),
749  m_BarPhiLo(0),
750  m_BarPhiHi(0),
751  m_BarHere(0),
752  m_SpmName(""),
753  m_SpmMat(""),
754  m_vecSpmZPts(),
755  m_vecSpmRMin(),
756  m_vecSpmRMax(),
757  m_vecSpmTran(),
758  m_vecSpmRota(),
759  m_vecSpmBTran(),
760  m_vecSpmBRota(),
761  m_SpmNPerHalf(0),
762  m_SpmLowPhi(0),
763  m_SpmDelPhi(0),
764  m_SpmPhiOff(0),
765  m_vecSpmHere(),
766  m_SpmCutName(""),
767  m_SpmCutThick(0),
768  m_SpmCutShow(0),
769  m_vecSpmCutTM(),
770  m_vecSpmCutTP(),
771  m_SpmCutRM(0),
772  m_SpmCutRP(0),
773  m_SpmExpThick(0),
774  m_SpmExpWide(0),
775  m_SpmExpYOff(0),
776  m_SpmSideName(""),
777  m_SpmSideMat(""),
778  m_SpmSideHigh(0),
779  m_SpmSideThick(0),
780  m_SpmSideYOffM(0),
781  m_SpmSideYOffP(0),
782  m_NomCryDimAF(0),
783  m_NomCryDimLZ(0),
784  m_vecNomCryDimBF(),
785  m_vecNomCryDimCF(),
786  m_vecNomCryDimAR(),
787  m_vecNomCryDimBR(),
788  m_vecNomCryDimCR(),
789  m_UnderAF(0),
790  m_UnderLZ(0),
791  m_UnderBF(0),
792  m_UnderCF(0),
793  m_UnderAR(0),
794  m_UnderBR(0),
795  m_UnderCR(0),
796  m_WallThAlv(0),
797  m_WrapThAlv(0),
798  m_ClrThAlv(0),
799  m_vecGapAlvEta(),
800  m_WallFrAlv(0),
801  m_WrapFrAlv(0),
802  m_ClrFrAlv(0),
803  m_WallReAlv(0),
804  m_WrapReAlv(0),
805  m_ClrReAlv(0),
806  m_NCryTypes(0),
807  m_NCryPerAlvEta(0),
808  m_CryName(""),
809  m_ClrName(""),
810  m_WrapName(""),
811  m_WallName(""),
812  m_CryMat(""),
813  m_ClrMat(""),
814  m_WrapMat(""),
815  m_WallMat(""),
816 
817  m_APDName(""),
818  m_APDHere(0),
819  m_APDMat(""),
820  m_APDSide(0),
821  m_APDThick(0),
822  m_APDZ(0),
823  m_APDX1(0),
824  m_APDX2(0),
825 
826  m_WebHere(0),
827  m_WebPlName(""),
828  m_WebClrName(""),
829  m_WebPlMat(""),
830  m_WebClrMat(""),
831  m_vecWebPlTh(),
832  m_vecWebClrTh(),
833  m_vecWebLength(),
834  m_IlyHere(0),
835  m_IlyName(),
836  m_IlyPhiLow(0),
837  m_IlyDelPhi(0),
838  m_vecIlyMat(),
839  m_vecIlyThick(),
840  m_IlyPipeName(""),
841  m_IlyPipeHere(0),
842  m_IlyPipeMat(""),
843  m_IlyPipeOD(0),
844  m_IlyPipeID(0),
845  m_vecIlyPipeLength(),
846  m_vecIlyPipeType(),
847  m_vecIlyPipePhi(),
848  m_vecIlyPipeZ(),
849  m_IlyPTMName(""),
850  m_IlyPTMHere(0),
851  m_IlyPTMMat(""),
852  m_IlyPTMWidth(0),
853  m_IlyPTMLength(0),
854  m_IlyPTMHeight(0),
855  m_vecIlyPTMZ(),
856  m_vecIlyPTMPhi(),
857  m_IlyFanOutName(""),
858  m_IlyFanOutHere(0),
859  m_IlyFanOutMat(""),
860  m_IlyFanOutWidth(0),
861  m_IlyFanOutLength(0),
862  m_IlyFanOutHeight(0),
863  m_vecIlyFanOutZ(),
864  m_vecIlyFanOutPhi(),
865  m_IlyDiffName(""),
866  m_IlyDiffMat(""),
867  m_IlyDiffOff(0),
868  m_IlyDiffLength(0),
869  m_IlyBndlName(""),
870  m_IlyBndlMat(""),
871  m_IlyBndlOff(0),
872  m_IlyBndlLength(0),
873  m_IlyFEMName(""),
874  m_IlyFEMMat(""),
875  m_IlyFEMWidth(0),
876  m_IlyFEMLength(0),
877  m_IlyFEMHeight(0),
878  m_vecIlyFEMZ(),
879  m_vecIlyFEMPhi(),
880  m_HawRName(""),
881  m_FawName(""),
882  m_FawHere(0),
883  m_HawRHBIG(0),
884  m_HawRhsml(0),
885  m_HawRCutY(0),
886  m_HawRCutZ(0),
887  m_HawRCutDelY(0),
888  m_HawYOffCry(0),
889  m_NFawPerSupm(0),
890  m_FawPhiOff(0),
891  m_FawDelPhi(0),
892  m_FawPhiRot(0),
893  m_FawRadOff(0),
894  m_GridHere(0),
895  m_GridName(""),
896  m_GridMat(""),
897  m_GridThick(0),
898  m_BackXOff(0),
899  m_BackYOff(0),
900  m_BackHere(0),
901  m_BackSideName(""),
902  m_BackSideHere(0),
903  m_BackSideLength(0),
904  m_BackSideHeight(0),
905  m_BackSideWidth(0),
906  m_BackSideYOff1(0),
907  m_BackSideYOff2(0),
908  m_BackSideAngle(0),
909  m_BackSideMat(""),
910  m_BackPlateName(""),
911  m_BackPlateHere(0),
912  m_BackPlateLength(0),
913  m_BackPlateThick(0),
914  m_BackPlateWidth(0),
915  m_BackPlateMat(""),
916  m_BackPlate2Name(""),
917  m_BackPlate2Thick(0),
918  m_BackPlate2Mat(""),
919  m_GrilleName(""),
920  m_GrilleHere(0),
921  m_GrilleThick(0),
922  m_GrilleWidth(0),
923  m_GrilleZSpace(0),
924  m_GrilleMat(""),
925  m_vecGrilleHeight(),
926  m_vecGrilleZOff(),
927  m_GrEdgeSlotName(""),
928  m_GrEdgeSlotMat(""),
929  m_GrEdgeSlotHere(0),
930  m_GrEdgeSlotHeight(0),
931  m_GrEdgeSlotWidth(0),
932  m_GrMidSlotName(""),
933  m_GrMidSlotMat(""),
934  m_GrMidSlotHere(0),
935  m_GrMidSlotWidth(0),
936  m_GrMidSlotXOff(0),
937  m_vecGrMidSlotHeight(),
938  m_BackPipeHere(0),
939  m_BackPipeName(""),
940  m_vecBackPipeDiam(),
941  m_vecBackPipeThick(),
942  m_BackPipeMat(""),
943  m_BackPipeWaterMat(""),
944 
945  m_vecBackCoolName(),
946  m_BackCoolHere(0),
947  m_BackCoolBarHere(0),
948  m_BackCoolBarWidth(0),
949  m_BackCoolBarHeight(0),
950  m_BackCoolMat(""),
951  m_BackCoolBarName(""),
952  m_BackCoolBarThick(0),
953  m_BackCoolBarMat(""),
954  m_BackCoolBarSSName(""),
955  m_BackCoolBarSSThick(0),
956  m_BackCoolBarSSMat(""),
957  m_BackCoolBarWaName(""),
958  m_BackCoolBarWaThick(0),
959  m_BackCoolBarWaMat(""),
960  m_BackCoolVFEHere(0),
961  m_BackCoolVFEName(""),
962  m_BackCoolVFEMat(""),
963  m_BackVFEName(""),
964  m_BackVFEMat(""),
965  m_vecBackVFELyrThick(),
966  m_vecBackVFELyrName(),
967  m_vecBackVFELyrMat(),
968  m_vecBackCoolNSec(),
969  m_vecBackCoolSecSep(),
970  m_vecBackCoolNPerSec(),
971 
972  m_BackMiscHere(0),
973  m_vecBackMiscThick(),
974  m_vecBackMiscName(),
975  m_vecBackMiscMat(),
976  m_BackCBStdSep(0),
977  m_PatchPanelHere(0),
978  m_PatchPanelName(""),
979  m_vecPatchPanelThick(),
980  m_vecPatchPanelNames(),
981  m_vecPatchPanelMat(),
982  m_BackCoolTankHere(0),
983  m_BackCoolTankName(""),
984  m_BackCoolTankWidth(0),
985  m_BackCoolTankThick(0),
986  m_BackCoolTankMat(""),
987  m_BackCoolTankWaName(""),
988  m_BackCoolTankWaWidth(0),
989  m_BackCoolTankWaMat(""),
990  m_BackBracketName(""),
991  m_BackBracketHeight(0),
992  m_BackBracketMat(""),
993 
994  m_DryAirTubeHere(0),
995  m_DryAirTubeName(""),
996  m_MBCoolTubeNum(0),
997  m_DryAirTubeInnDiam(0),
998  m_DryAirTubeOutDiam(0),
999  m_DryAirTubeMat(""),
1000  m_MBCoolTubeHere(0),
1001  m_MBCoolTubeName(""),
1002  m_MBCoolTubeInnDiam(0),
1003  m_MBCoolTubeOutDiam(0),
1004  m_MBCoolTubeMat(""),
1005  m_MBManifHere(0),
1006  m_MBManifName(""),
1007  m_MBManifInnDiam(0),
1008  m_MBManifOutDiam(0),
1009  m_MBManifMat(""),
1010  m_MBLyrHere(0),
1011  m_vecMBLyrThick(0),
1012  m_vecMBLyrName(),
1013  m_vecMBLyrMat(),
1014 
1015  m_PincerRodHere(0),
1016  m_PincerRodName(""),
1017  m_PincerRodMat(""),
1018  m_vecPincerRodAzimuth(),
1019  m_PincerEnvName(""),
1020  m_PincerEnvMat(""),
1021  m_PincerEnvWidth(0),
1022  m_PincerEnvHeight(0),
1023  m_PincerEnvLength(0),
1024  m_vecPincerEnvZOff(),
1025  m_PincerBlkName(""),
1026  m_PincerBlkMat(""),
1027  m_PincerBlkLength(0),
1028  m_PincerShim1Name(""),
1029  m_PincerShimHeight(0),
1030  m_PincerShim2Name(""),
1031  m_PincerShimMat(""),
1032  m_PincerShim1Width(0),
1033  m_PincerShim2Width(0),
1034  m_PincerCutName(""),
1035  m_PincerCutMat(""),
1036  m_PincerCutWidth(0),
1037  m_PincerCutHeight(0)
1038 
1039 {
1040  LogDebug("EcalGeom") << "DDEcalBarrelAlgo info: Creating an instance";
1041 }
1042 
1044 
1046  const DDVectorArguments& vArgs,
1047  const DDMapArguments& /*mArgs*/,
1048  const DDStringArguments& sArgs,
1049  const DDStringVectorArguments& vsArgs) {
1050  LogDebug("EcalGeom") << "DDEcalBarrelAlgo info: Initialize";
1052  // TRICK!
1053  m_idNameSpace = parent().name().ns();
1054  // barrel parent volume
1055  m_BarName = sArgs["BarName"];
1056  m_BarMat = sArgs["BarMat"];
1057  m_vecBarZPts = vArgs["BarZPts"];
1058  m_vecBarRMin = vArgs["BarRMin"];
1059  m_vecBarRMax = vArgs["BarRMax"];
1060  m_vecBarTran = vArgs["BarTran"];
1061  m_vecBarRota = vArgs["BarRota"];
1062  m_vecBarRota2 = vArgs["BarRota2"];
1063  m_vecBarRota3 = vArgs["BarRota3"];
1064  m_BarPhiLo = nArgs["BarPhiLo"];
1065  m_BarPhiHi = nArgs["BarPhiHi"];
1066  m_BarHere = nArgs["BarHere"];
1067 
1068  m_SpmName = sArgs["SpmName"];
1069  m_SpmMat = sArgs["SpmMat"];
1070  m_vecSpmZPts = vArgs["SpmZPts"];
1071  m_vecSpmRMin = vArgs["SpmRMin"];
1072  m_vecSpmRMax = vArgs["SpmRMax"];
1073  m_vecSpmTran = vArgs["SpmTran"];
1074  m_vecSpmRota = vArgs["SpmRota"];
1075  m_vecSpmBTran = vArgs["SpmBTran"];
1076  m_vecSpmBRota = vArgs["SpmBRota"];
1077  m_SpmNPerHalf = static_cast<unsigned int>(nArgs["SpmNPerHalf"]);
1078  m_SpmLowPhi = nArgs["SpmLowPhi"];
1079  m_SpmDelPhi = nArgs["SpmDelPhi"];
1080  m_SpmPhiOff = nArgs["SpmPhiOff"];
1081  m_vecSpmHere = vArgs["SpmHere"];
1082  m_SpmCutName = sArgs["SpmCutName"];
1083  m_SpmCutThick = nArgs["SpmCutThick"];
1084  m_SpmCutShow = int(nArgs["SpmCutShow"]);
1085  m_vecSpmCutTM = vArgs["SpmCutTM"];
1086  m_vecSpmCutTP = vArgs["SpmCutTP"];
1087  m_SpmCutRM = nArgs["SpmCutRM"];
1088  m_SpmCutRP = nArgs["SpmCutRP"];
1089  m_SpmExpThick = nArgs["SpmExpThick"];
1090  m_SpmExpWide = nArgs["SpmExpWide"];
1091  m_SpmExpYOff = nArgs["SpmExpYOff"];
1092  m_SpmSideName = sArgs["SpmSideName"];
1093  m_SpmSideMat = sArgs["SpmSideMat"];
1094  m_SpmSideHigh = nArgs["SpmSideHigh"];
1095  m_SpmSideThick = nArgs["SpmSideThick"];
1096  m_SpmSideYOffM = nArgs["SpmSideYOffM"];
1097  m_SpmSideYOffP = nArgs["SpmSideYOffP"];
1098 
1099  m_NomCryDimAF = nArgs["NomCryDimAF"];
1100  m_NomCryDimLZ = nArgs["NomCryDimLZ"];
1101  m_vecNomCryDimBF = vArgs["NomCryDimBF"];
1102  m_vecNomCryDimCF = vArgs["NomCryDimCF"];
1103  m_vecNomCryDimAR = vArgs["NomCryDimAR"];
1104  m_vecNomCryDimBR = vArgs["NomCryDimBR"];
1105  m_vecNomCryDimCR = vArgs["NomCryDimCR"];
1106 
1107  m_UnderAF = nArgs["UnderAF"];
1108  m_UnderLZ = nArgs["UnderLZ"];
1109  m_UnderBF = nArgs["UnderBF"];
1110  m_UnderCF = nArgs["UnderCF"];
1111  m_UnderAR = nArgs["UnderAR"];
1112  m_UnderBR = nArgs["UnderBR"];
1113  m_UnderCR = nArgs["UnderCR"];
1114 
1115  m_WallThAlv = nArgs["WallThAlv"];
1116  m_WrapThAlv = nArgs["WrapThAlv"];
1117  m_ClrThAlv = nArgs["ClrThAlv"];
1118  m_vecGapAlvEta = vArgs["GapAlvEta"];
1119 
1120  m_WallFrAlv = nArgs["WallFrAlv"];
1121  m_WrapFrAlv = nArgs["WrapFrAlv"];
1122  m_ClrFrAlv = nArgs["ClrFrAlv"];
1123 
1124  m_WallReAlv = nArgs["WallReAlv"];
1125  m_WrapReAlv = nArgs["WrapReAlv"];
1126  m_ClrReAlv = nArgs["ClrReAlv"];
1127 
1128  m_NCryTypes = static_cast<unsigned int>(nArgs["NCryTypes"]);
1129  m_NCryPerAlvEta = static_cast<unsigned int>(nArgs["NCryPerAlvEta"]);
1130 
1131  m_CryName = sArgs["CryName"];
1132  m_ClrName = sArgs["ClrName"];
1133  m_WrapName = sArgs["WrapName"];
1134  m_WallName = sArgs["WallName"];
1135 
1136  m_CryMat = sArgs["CryMat"];
1137  m_ClrMat = sArgs["ClrMat"];
1138  m_WrapMat = sArgs["WrapMat"];
1139  m_WallMat = sArgs["WallMat"];
1140 
1141  m_APDName = sArgs["APDName"];
1142  m_APDHere = nArgs["APDHere"];
1143  m_APDMat = sArgs["APDMat"];
1144  m_APDSide = nArgs["APDSide"];
1145  m_APDThick = nArgs["APDThick"];
1146  m_APDZ = nArgs["APDZ"];
1147  m_APDX1 = nArgs["APDX1"];
1148  m_APDX2 = nArgs["APDX2"];
1149 
1150  m_WebHere = nArgs["WebHere"];
1151  m_WebPlName = sArgs["WebPlName"];
1152  m_WebClrName = sArgs["WebClrName"];
1153  m_WebPlMat = sArgs["WebPlMat"];
1154  m_WebClrMat = sArgs["WebClrMat"];
1155  m_vecWebPlTh = vArgs["WebPlTh"];
1156  m_vecWebClrTh = vArgs["WebClrTh"];
1157  m_vecWebLength = vArgs["WebLength"];
1158 
1159  m_IlyHere = nArgs["IlyHere"];
1160  m_IlyName = sArgs["IlyName"];
1161  m_IlyPhiLow = nArgs["IlyPhiLow"];
1162  m_IlyDelPhi = nArgs["IlyDelPhi"];
1163  m_vecIlyMat = vsArgs["IlyMat"];
1164  m_vecIlyThick = vArgs["IlyThick"];
1165 
1166  m_IlyPipeName = sArgs["IlyPipeName"];
1167  m_IlyPipeHere = nArgs["IlyPipeHere"];
1168  m_IlyPipeMat = sArgs["IlyPipeMat"];
1169  m_IlyPipeOD = nArgs["IlyPipeOD"];
1170  m_IlyPipeID = nArgs["IlyPipeID"];
1171  m_vecIlyPipeLength = vArgs["IlyPipeLength"];
1172  m_vecIlyPipeType = vArgs["IlyPipeType"];
1173  m_vecIlyPipePhi = vArgs["IlyPipePhi"];
1174  m_vecIlyPipeZ = vArgs["IlyPipeZ"];
1175 
1176  m_IlyPTMName = sArgs["IlyPTMName"];
1177  m_IlyPTMHere = nArgs["IlyPTMHere"];
1178  m_IlyPTMMat = sArgs["IlyPTMMat"];
1179  m_IlyPTMWidth = nArgs["IlyPTMWidth"];
1180  m_IlyPTMLength = nArgs["IlyPTMLength"];
1181  m_IlyPTMHeight = nArgs["IlyPTMHeight"];
1182  m_vecIlyPTMZ = vArgs["IlyPTMZ"];
1183  m_vecIlyPTMPhi = vArgs["IlyPTMPhi"];
1184 
1185  m_IlyFanOutName = sArgs["IlyFanOutName"];
1186  m_IlyFanOutHere = nArgs["IlyFanOutHere"];
1187  m_IlyFanOutMat = sArgs["IlyFanOutMat"];
1188  m_IlyFanOutWidth = nArgs["IlyFanOutWidth"];
1189  m_IlyFanOutLength = nArgs["IlyFanOutLength"];
1190  m_IlyFanOutHeight = nArgs["IlyFanOutHeight"];
1191  m_vecIlyFanOutZ = vArgs["IlyFanOutZ"];
1192  m_vecIlyFanOutPhi = vArgs["IlyFanOutPhi"];
1193  m_IlyDiffName = sArgs["IlyDiffName"];
1194  m_IlyDiffMat = sArgs["IlyDiffMat"];
1195  m_IlyDiffOff = nArgs["IlyDiffOff"];
1196  m_IlyDiffLength = nArgs["IlyDiffLength"];
1197  m_IlyBndlName = sArgs["IlyBndlName"];
1198  m_IlyBndlMat = sArgs["IlyBndlMat"];
1199  m_IlyBndlOff = nArgs["IlyBndlOff"];
1200  m_IlyBndlLength = nArgs["IlyBndlLength"];
1201  m_IlyFEMName = sArgs["IlyFEMName"];
1202  m_IlyFEMMat = sArgs["IlyFEMMat"];
1203  m_IlyFEMWidth = nArgs["IlyFEMWidth"];
1204  m_IlyFEMLength = nArgs["IlyFEMLength"];
1205  m_IlyFEMHeight = nArgs["IlyFEMHeight"];
1206  m_vecIlyFEMZ = vArgs["IlyFEMZ"];
1207  m_vecIlyFEMPhi = vArgs["IlyFEMPhi"];
1208 
1209  m_HawRName = sArgs["HawRName"];
1210  m_FawName = sArgs["FawName"];
1211  m_FawHere = nArgs["FawHere"];
1212  m_HawRHBIG = nArgs["HawRHBIG"];
1213  m_HawRhsml = nArgs["HawRhsml"];
1214  m_HawRCutY = nArgs["HawRCutY"];
1215  m_HawRCutZ = nArgs["HawRCutZ"];
1216  m_HawRCutDelY = nArgs["HawRCutDelY"];
1217  m_HawYOffCry = nArgs["HawYOffCry"];
1218 
1219  m_NFawPerSupm = static_cast<unsigned int>(nArgs["NFawPerSupm"]);
1220  m_FawPhiOff = nArgs["FawPhiOff"];
1221  m_FawDelPhi = nArgs["FawDelPhi"];
1222  m_FawPhiRot = nArgs["FawPhiRot"];
1223  m_FawRadOff = nArgs["FawRadOff"];
1224 
1225  m_GridHere = nArgs["GridHere"];
1226  m_GridName = sArgs["GridName"];
1227  m_GridMat = sArgs["GridMat"];
1228  m_GridThick = nArgs["GridThick"];
1229 
1230  m_BackHere = nArgs["BackHere"];
1231  m_BackXOff = nArgs["BackXOff"];
1232  m_BackYOff = nArgs["BackYOff"];
1233  m_BackSideName = sArgs["BackSideName"];
1234  m_BackSideHere = nArgs["BackSideHere"];
1235  m_BackSideLength = nArgs["BackSideLength"];
1236  m_BackSideHeight = nArgs["BackSideHeight"];
1237  m_BackSideWidth = nArgs["BackSideWidth"];
1238  m_BackSideYOff1 = nArgs["BackSideYOff1"];
1239  m_BackSideYOff2 = nArgs["BackSideYOff2"];
1240  m_BackSideAngle = nArgs["BackSideAngle"];
1241  m_BackSideMat = sArgs["BackSideMat"];
1242  m_BackPlateName = sArgs["BackPlateName"];
1243  m_BackPlateHere = nArgs["BackPlateHere"];
1244  m_BackPlateLength = nArgs["BackPlateLength"];
1245  m_BackPlateThick = nArgs["BackPlateThick"];
1246  m_BackPlateWidth = nArgs["BackPlateWidth"];
1247  m_BackPlateMat = sArgs["BackPlateMat"];
1248  m_BackPlate2Name = sArgs["BackPlate2Name"];
1249  m_BackPlate2Thick = nArgs["BackPlate2Thick"];
1250  m_BackPlate2Mat = sArgs["BackPlate2Mat"];
1251  m_GrilleName = sArgs["GrilleName"];
1252  m_GrilleHere = nArgs["GrilleHere"];
1253  m_GrilleThick = nArgs["GrilleThick"];
1254  m_GrilleWidth = nArgs["GrilleWidth"];
1255  m_GrilleZSpace = nArgs["GrilleZSpace"];
1256  m_GrilleMat = sArgs["GrilleMat"];
1257  m_vecGrilleHeight = vArgs["GrilleHeight"];
1258  m_vecGrilleZOff = vArgs["GrilleZOff"];
1259 
1260  m_GrEdgeSlotName = sArgs["GrEdgeSlotName"];
1261  m_GrEdgeSlotMat = sArgs["GrEdgeSlotMat"];
1262  m_GrEdgeSlotHere = nArgs["GrEdgeSlotHere"];
1263  m_GrEdgeSlotHeight = nArgs["GrEdgeSlotHeight"];
1264  m_GrEdgeSlotWidth = nArgs["GrEdgeSlotWidth"];
1265  m_GrMidSlotName = sArgs["GrMidSlotName"];
1266  m_GrMidSlotMat = sArgs["GrMidSlotMat"];
1267  m_GrMidSlotHere = nArgs["GrMidSlotHere"];
1268  m_GrMidSlotWidth = nArgs["GrMidSlotWidth"];
1269  m_GrMidSlotXOff = nArgs["GrMidSlotXOff"];
1270  m_vecGrMidSlotHeight = vArgs["GrMidSlotHeight"];
1271 
1272  m_BackPipeHere = nArgs["BackPipeHere"];
1273  m_BackPipeName = sArgs["BackPipeName"];
1274  m_vecBackPipeDiam = vArgs["BackPipeDiam"];
1275  m_vecBackPipeThick = vArgs["BackPipeThick"];
1276  m_BackPipeMat = sArgs["BackPipeMat"];
1277  m_BackPipeWaterMat = sArgs["BackPipeWaterMat"];
1278 
1279  m_BackCoolHere = nArgs["BackCoolHere"];
1280  m_vecBackCoolName = vsArgs["BackCoolName"];
1281  m_BackCoolBarHere = nArgs["BackCoolBarHere"];
1282  m_BackCoolBarWidth = nArgs["BackCoolBarWidth"];
1283  m_BackCoolBarHeight = nArgs["BackCoolBarHeight"];
1284  m_BackCoolMat = sArgs["BackCoolMat"];
1285  m_BackCoolBarName = sArgs["BackCoolBarName"];
1286  m_BackCoolBarThick = nArgs["BackCoolBarThick"];
1287  m_BackCoolBarMat = sArgs["BackCoolBarMat"];
1288  m_BackCoolBarSSName = sArgs["BackCoolBarSSName"];
1289  m_BackCoolBarSSThick = nArgs["BackCoolBarSSThick"];
1290  m_BackCoolBarSSMat = sArgs["BackCoolBarSSMat"];
1291  m_BackCoolBarWaName = sArgs["BackCoolBarWaName"];
1292  m_BackCoolBarWaThick = nArgs["BackCoolBarWaThick"];
1293  m_BackCoolBarWaMat = sArgs["BackCoolBarWaMat"];
1294  m_BackCoolVFEHere = nArgs["BackCoolVFEHere"];
1295  m_BackCoolVFEName = sArgs["BackCoolVFEName"];
1296  m_BackCoolVFEMat = sArgs["BackCoolVFEMat"];
1297  m_BackVFEName = sArgs["BackVFEName"];
1298  m_BackVFEMat = sArgs["BackVFEMat"];
1299  m_vecBackVFELyrThick = vArgs["BackVFELyrThick"];
1300  m_vecBackVFELyrName = vsArgs["BackVFELyrName"];
1301  m_vecBackVFELyrMat = vsArgs["BackVFELyrMat"];
1302  m_vecBackCoolNSec = vArgs["BackCoolNSec"];
1303  m_vecBackCoolSecSep = vArgs["BackCoolSecSep"];
1304  m_vecBackCoolNPerSec = vArgs["BackCoolNPerSec"];
1305  m_BackCBStdSep = nArgs["BackCBStdSep"];
1306 
1307  m_BackMiscHere = nArgs["BackMiscHere"];
1308  m_vecBackMiscThick = vArgs["BackMiscThick"];
1309  m_vecBackMiscName = vsArgs["BackMiscName"];
1310  m_vecBackMiscMat = vsArgs["BackMiscMat"];
1311  m_PatchPanelHere = nArgs["PatchPanelHere"];
1312  m_vecPatchPanelThick = vArgs["PatchPanelThick"];
1313  m_vecPatchPanelNames = vsArgs["PatchPanelNames"];
1314  m_vecPatchPanelMat = vsArgs["PatchPanelMat"];
1315  m_PatchPanelName = sArgs["PatchPanelName"];
1316 
1317  m_BackCoolTankHere = nArgs["BackCoolTankHere"];
1318  m_BackCoolTankName = sArgs["BackCoolTankName"];
1319  m_BackCoolTankWidth = nArgs["BackCoolTankWidth"];
1320  m_BackCoolTankThick = nArgs["BackCoolTankThick"];
1321  m_BackCoolTankMat = sArgs["BackCoolTankMat"];
1322  m_BackCoolTankWaName = sArgs["BackCoolTankWaName"];
1323  m_BackCoolTankWaWidth = nArgs["BackCoolTankWaWidth"];
1324  m_BackCoolTankWaMat = sArgs["BackCoolTankWaMat"];
1325  m_BackBracketName = sArgs["BackBracketName"];
1326  m_BackBracketHeight = nArgs["BackBracketHeight"];
1327  m_BackBracketMat = sArgs["BackBracketMat"];
1328 
1329  m_DryAirTubeHere = nArgs["DryAirTubeHere"];
1330  m_DryAirTubeName = sArgs["DryAirTubeName"];
1331  m_MBCoolTubeNum = static_cast<unsigned int>(nArgs["MBCoolTubeNum"]);
1332  m_DryAirTubeInnDiam = nArgs["DryAirTubeInnDiam"];
1333  m_DryAirTubeOutDiam = nArgs["DryAirTubeOutDiam"];
1334  m_DryAirTubeMat = sArgs["DryAirTubeMat"];
1335  m_MBCoolTubeHere = nArgs["MBCoolTubeHere"];
1336  m_MBCoolTubeName = sArgs["MBCoolTubeName"];
1337  m_MBCoolTubeInnDiam = nArgs["MBCoolTubeInnDiam"];
1338  m_MBCoolTubeOutDiam = nArgs["MBCoolTubeOutDiam"];
1339  m_MBCoolTubeMat = sArgs["MBCoolTubeMat"];
1340  m_MBManifHere = nArgs["MBManifHere"];
1341  m_MBManifName = sArgs["MBManifName"];
1342  m_MBManifInnDiam = nArgs["MBManifInnDiam"];
1343  m_MBManifOutDiam = nArgs["MBManifOutDiam"];
1344  m_MBManifMat = sArgs["MBManifMat"];
1345  m_MBLyrHere = nArgs["MBLyrHere"];
1346  m_vecMBLyrThick = vArgs["MBLyrThick"];
1347  m_vecMBLyrName = vsArgs["MBLyrName"];
1348  m_vecMBLyrMat = vsArgs["MBLyrMat"];
1349 
1350  m_PincerRodHere = nArgs["PincerRodHere"];
1351  m_PincerRodName = sArgs["PincerRodName"];
1352  m_PincerRodMat = sArgs["PincerRodMat"];
1353  m_vecPincerRodAzimuth = vArgs["PincerRodAzimuth"];
1354  m_PincerEnvName = sArgs["PincerEnvName"];
1355  m_PincerEnvMat = sArgs["PincerEnvMat"];
1356  m_PincerEnvWidth = nArgs["PincerEnvWidth"];
1357  m_PincerEnvHeight = nArgs["PincerEnvHeight"];
1358  m_PincerEnvLength = nArgs["PincerEnvLength"];
1359  m_vecPincerEnvZOff = vArgs["PincerEnvZOff"];
1360  m_PincerBlkName = sArgs["PincerBlkName"];
1361  m_PincerBlkMat = sArgs["PincerBlkMat"];
1362  m_PincerBlkLength = nArgs["PincerBlkLength"];
1363  m_PincerShim1Name = sArgs["PincerShim1Name"];
1364  m_PincerShimHeight = nArgs["PincerShimHeight"];
1365  m_PincerShim2Name = sArgs["PincerShim2Name"];
1366  m_PincerShimMat = sArgs["PincerShimMat"];
1367  m_PincerShim1Width = nArgs["PincerShim1Width"];
1368  m_PincerShim2Width = nArgs["PincerShim2Width"];
1369  m_PincerCutName = sArgs["PincerCutName"];
1370  m_PincerCutMat = sArgs["PincerCutMat"];
1371  m_PincerCutWidth = nArgs["PincerCutWidth"];
1372  m_PincerCutHeight = nArgs["PincerCutHeight"];
1373 
1374  LogDebug("EcalGeom") << "DDEcalBarrelAlgo info: end initialize";
1375 }
1376 
1378 // DDEcalBarrelAlgo methods...
1380 
1382  LogDebug("EcalGeom") << "******** DDEcalBarrelAlgo execute!" << std::endl;
1383 
1384  if (barHere() != 0) {
1385  const unsigned int copyOne(1);
1386  const unsigned int copyTwo(2);
1387  // Barrel parent volume----------------------------------------------------------
1388  cpv.position(
1390  barMat(),
1393  parent().name(),
1394  copyOne,
1395  DDTranslation(vecBarTran()[0], vecBarTran()[1], vecBarTran()[2]),
1396  myrot(barName().name() + "Rot",
1397  Rota(Vec3(vecBarRota3()[0], vecBarRota3()[1], vecBarRota3()[2]), vecBarRota3()[3]) *
1398  Rota(Vec3(vecBarRota2()[0], vecBarRota2()[1], vecBarRota2()[2]), vecBarRota2()[3]) *
1399  Rota(Vec3(vecBarRota()[0], vecBarRota()[1], vecBarRota()[2]), vecBarRota()[3])));
1400  // End Barrel parent volume----------------------------------------------------------
1401 
1402  // Supermodule parent------------------------------------------------------------
1403 
1404  const DDName spmcut1ddname((0 != spmCutShow()) ? spmName() : ddname(m_SpmName + "CUT1"));
1405  const DDSolid ddspm(
1407 
1408  const unsigned int indx(vecSpmRMax().size() / 2);
1409 
1410  // Deal with the cut boxes first
1411  const DDSolid spmCutBox(DDSolidFactory::box(spmCutName(),
1412  1.05 * (vecSpmRMax()[indx] - vecSpmRMin()[indx]) / 2.,
1413  spmCutThick() / 2.,
1414  fabs(vecSpmZPts().back() - vecSpmZPts().front()) / 2. + 1 * mm));
1415  const std::vector<double>& cutBoxParms(spmCutBox.parameters());
1416  const DDLogicalPart spmCutLog(spmCutName(), spmMat(), spmCutBox);
1417 
1418  // Now the expansion box
1419  const double xExp(spmExpThick() / 2.);
1420  const double yExp(spmExpWide() / 2.);
1421  const double zExp(fabs(vecSpmZPts().back() - vecSpmZPts().front()) / 2.);
1422  const DDName expName(m_SpmName + "EXP");
1423  const DDSolid spmExpBox(DDSolidFactory::box(expName, xExp, yExp, zExp));
1424  const DDTranslation expTra(vecSpmRMax().back() - xExp, spmExpYOff(), vecSpmZPts().front() + zExp);
1425  const DDLogicalPart expLog(expName, spmMat(), spmExpBox);
1426 
1427  // Supermodule side platess
1428  const DDSolid sideSolid(DDSolidFactory::box(
1429  spmSideName(), spmSideHigh() / 2., spmSideThick() / 2., fabs(vecSpmZPts()[1] - vecSpmZPts()[0]) / 2.));
1430  const std::vector<double>& sideParms(sideSolid.parameters());
1431  const DDLogicalPart sideLog(spmSideName(), spmSideMat(), sideSolid);
1432 
1433  DDSolid temp1;
1434  DDSolid temp2;
1435  for (unsigned int icopy(1); icopy <= 2; ++icopy) {
1436  const std::vector<double>& tvec(1 == icopy ? vecSpmCutTM() : vecSpmCutTP());
1437  const double rang(1 == icopy ? spmCutRM() : spmCutRP());
1438 
1439  const Tl3D tr(tvec[0], tvec[1], tvec[2]);
1440  const RoZ3D ro(rang);
1441  const Tf3D alltrot(
1442  RoZ3D(1 == icopy ? spmLowPhi() : spmLowPhi() + spmDelPhi()) *
1443  Tl3D((vecSpmRMax()[indx] + vecSpmRMin()[indx]) / 2., 0, (vecSpmZPts().front() + vecSpmZPts().back()) / 2.) *
1444  tr * ro);
1445 
1446  const DDRotation ddrot(myrot(spmCutName().name() + std::to_string(icopy), alltrot.getRotation()));
1447  const DDTranslation ddtra(alltrot.getTranslation());
1448 
1449  const Tl3D trSide(tvec[0],
1450  tvec[1] + (1 == icopy ? 1. : -1.) * (cutBoxParms[1] + sideParms[1]) +
1451  (1 == icopy ? spmSideYOffM() : spmSideYOffP()),
1452  tvec[2]);
1453  const RoZ3D roSide(rang);
1454  const Tf3D sideRot(RoZ3D(1 == icopy ? spmLowPhi() : spmLowPhi() + spmDelPhi()) *
1455  Tl3D(vecSpmRMin().front() + sideParms[0], 0, vecSpmZPts().front() + sideParms[2]) * trSide *
1456  roSide);
1457 
1458  const DDRotation sideddrot(myrot(spmSideName().name() + std::to_string(icopy), sideRot.getRotation()));
1459  const DDTranslation sideddtra(sideRot.getTranslation());
1460 
1461  cpv.position(sideLog, spmName(), icopy, sideddtra, sideddrot);
1462 
1463  if (0 != spmCutShow()) // do this if we are "showing" the boxes
1464  {
1465  cpv.position(spmCutLog, spmName(), icopy, ddtra, ddrot);
1466  } else // do this if we are subtracting the boxes
1467  {
1468  if (1 == icopy) {
1469  temp1 = DDSolidFactory::subtraction(DDName(m_SpmName + "_T1"), spmcut1ddname, spmCutBox, ddtra, ddrot);
1470  } else {
1471  temp2 = DDSolidFactory::subtraction(spmName(), temp1, spmCutBox, ddtra, ddrot);
1472  }
1473  }
1474  }
1475 
1476  const DDLogicalPart spmLog(spmName(), spmMat(), ((0 != spmCutShow()) ? ddspm : temp2));
1477 
1478  const double dphi(360. * deg / (1. * spmNPerHalf()));
1479  for (unsigned int iphi(0); iphi < 2 * spmNPerHalf(); ++iphi) {
1480  const double phi(iphi * dphi + spmPhiOff()); //- 0.000130/deg ) ;
1481 
1482  // this base rotation includes the base translation & rotation
1483  // plus flipping for the negative z hemisphere, plus
1484  // the phi rotation for this module
1485  const Tf3D rotaBase(RoZ3D(phi) * (iphi < spmNPerHalf() ? Ro3D() : RoX3D(180. * deg)) *
1486  Ro3D(vecSpmBRota()[3], Vec3(vecSpmBRota()[0], vecSpmBRota()[1], vecSpmBRota()[2])) *
1487  Tl3D(Vec3(vecSpmBTran()[0], vecSpmBTran()[1], vecSpmBTran()[2])));
1488 
1489  // here the individual rotations & translations of the supermodule
1490  // are implemented on top of the overall "base" rotation & translation
1491 
1492  const unsigned int offr(4 * iphi);
1493  const unsigned int offt(3 * iphi);
1494 
1495  const Ro3D r1(vecSpmRota()[offr + 3],
1496  Vec3(vecSpmRota()[offr + 0], vecSpmRota()[offr + 1], vecSpmRota()[offr + 2]));
1497 
1498  const Tf3D rotaExtra(r1 * Tl3D(Vec3(vecSpmTran()[offt + 0], vecSpmTran()[offt + 1], vecSpmTran()[offt + 2])));
1499 
1500  const Tf3D both(rotaExtra * rotaBase);
1501 
1502  const DDRotation rota(myrot(spmName().name() + std::to_string(phi / deg), both.getRotation()));
1503 
1504  if (vecSpmHere()[iphi] != 0) {
1505  // convert from CLHEP to DDTranslation & etc. -- Michael Case
1506  DDTranslation myTran(both.getTranslation().x(), both.getTranslation().y(), both.getTranslation().z());
1507  cpv.position(spmLog, barName(), iphi + 1, myTran, rota);
1508  }
1509  }
1510  // End Supermodule parent------------------------------------------------------------
1511 
1512  // Begin Inner Layer volumes---------------------------------------------------------
1513  const double ilyLength(vecSpmZPts()[1] - vecSpmZPts()[0]);
1514  double ilyRMin(vecSpmRMin()[0]);
1515  double ilyThick(0);
1516  for (unsigned int ilyx(0); ilyx != vecIlyThick().size(); ++ilyx) {
1517  ilyThick += vecIlyThick()[ilyx];
1518  }
1519  const DDName ilyDDName(ddname(ilyName()));
1520  const DDSolid ilySolid(
1521  DDSolidFactory::tubs(ilyDDName, ilyLength / 2, ilyRMin, ilyRMin + ilyThick, ilyPhiLow(), ilyDelPhi()));
1522  const DDLogicalPart ilyLog(ilyDDName, spmMat(), ilySolid);
1523  cpv.position(ilyLog, spmLog, copyOne, DDTranslation(0, 0, ilyLength / 2), DDRotation());
1524 
1525  DDLogicalPart ilyPipeLog[200];
1526 
1527  if (0 != ilyPipeHere()) {
1528  for (unsigned int iPipeType(0); iPipeType != vecIlyPipeLength().size(); ++iPipeType) {
1529  const DDName pName(ddname(ilyPipeName() + "_" + std::to_string(iPipeType + 1)));
1530 
1531  DDSolid ilyPipeSolid(
1532  DDSolidFactory::tubs(pName, vecIlyPipeLength()[iPipeType] / 2., 0, ilyPipeOD() / 2, 0 * deg, 360 * deg));
1533  ilyPipeLog[iPipeType] = DDLogicalPart(pName, ilyPipeMat(), ilyPipeSolid);
1534 
1535  const DDName pWaName(ddname(ilyPipeName() + "Wa_" + std::to_string(iPipeType + 1)));
1536  DDSolid ilyPipeWaSolid(
1537  DDSolidFactory::tubs(pWaName, vecIlyPipeLength()[iPipeType] / 2., 0, ilyPipeID() / 2, 0 * deg, 360 * deg));
1538  const DDLogicalPart ilyPipeWaLog(pWaName, backPipeWaterMat(), ilyPipeWaSolid);
1539 
1540  cpv.position(ilyPipeWaLog, pName, copyOne, DDTranslation(0, 0, 0), DDRotation());
1541  }
1542  }
1543 
1544  DDSolid ilyPTMSolid(
1546  const DDLogicalPart ilyPTMLog(ilyPTMName(), ilyPTMMat(), ilyPTMSolid);
1547 
1548  DDSolid ilyFanOutSolid(
1550  const DDLogicalPart ilyFanOutLog(ilyFanOutName(), ilyFanOutMat(), ilyFanOutSolid);
1551 
1552  DDSolid ilyFEMSolid(
1554  const DDLogicalPart ilyFEMLog(ilyFEMName(), ilyFEMMat(), ilyFEMSolid);
1555 
1556  DDSolid ilyDiffSolid(
1558  const DDLogicalPart ilyDiffLog(ilyDiffName(), ilyDiffMat(), ilyDiffSolid);
1559 
1560  DDSolid ilyBndlSolid(
1562  const DDLogicalPart ilyBndlLog(ilyBndlName(), ilyBndlMat(), ilyBndlSolid);
1563  cpv.position(ilyDiffLog,
1564  ilyFanOutName(),
1565  copyOne,
1566  DDTranslation(0, 0, -ilyFanOutLength() / 2 + ilyDiffLength() / 2 + ilyDiffOff()),
1567  DDRotation());
1568  cpv.position(ilyBndlLog,
1569  ilyFanOutName(),
1570  copyOne,
1571  DDTranslation(0, 0, -ilyFanOutLength() / 2 + ilyBndlLength() / 2 + ilyBndlOff()),
1572  DDRotation());
1573 
1574  for (unsigned int ily(0); ily != vecIlyThick().size(); ++ily) {
1575  const double ilyRMax(ilyRMin + vecIlyThick()[ily]);
1576  const DDName xilyName(ddname(ilyName() + std::to_string(ily)));
1577  const DDSolid xilySolid(
1578  DDSolidFactory::tubs(xilyName, ilyLength / 2, ilyRMin, ilyRMax, ilyPhiLow(), ilyDelPhi()));
1579 
1580  const DDLogicalPart xilyLog(xilyName, ddmat(vecIlyMat()[ily]), xilySolid);
1581 
1582  if (0 != ilyHere()) {
1583  cpv.position(xilyLog, ilyLog, copyOne, DDTranslation(0, 0, 0), DDRotation());
1584 
1585  unsigned int copyNum[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
1586 
1587  if (10 * mm < vecIlyThick()[ily] && vecIlyThick().size() != (ily + 1) && 0 != ilyPipeHere()) {
1588  if (0 != ilyPTMHere()) {
1589  unsigned int ptmCopy(0);
1590  for (unsigned int ilyPTM(0); ilyPTM != vecIlyPTMZ().size(); ++ilyPTM) {
1591  const double radius(ilyRMax - 1 * mm - ilyPTMHeight() / 2.);
1592  const double phi(vecIlyPTMPhi()[ilyPTM]);
1593  const double yy(radius * sin(phi));
1594  const double xx(radius * cos(phi));
1595  ++ptmCopy;
1596  cpv.position(ilyPTMLog,
1597  xilyLog,
1598  ptmCopy,
1599  DDTranslation(xx, yy, vecIlyPTMZ()[ilyPTM] - ilyLength / 2),
1600  myrot(ilyPTMLog.name().name() + "_rot" + std::to_string(ptmCopy), CLHEP::HepRotationZ(phi)));
1601  }
1602  }
1603  if (0 != ilyFanOutHere()) {
1604  unsigned int fanOutCopy(0);
1605  for (unsigned int ilyFO(0); ilyFO != vecIlyFanOutZ().size(); ++ilyFO) {
1606  const double radius(ilyRMax - 1 * mm - ilyFanOutHeight() / 2.);
1607  const double phi(vecIlyFanOutPhi()[ilyFO]);
1608  const double yy(radius * sin(phi));
1609  const double xx(radius * cos(phi));
1610  ++fanOutCopy;
1611  cpv.position(ilyFanOutLog,
1612  xilyLog,
1613  fanOutCopy,
1614  DDTranslation(xx, yy, vecIlyFanOutZ()[ilyFO] - ilyLength / 2),
1615  myrot(ilyFanOutLog.name().name() + "_rot" + std::to_string(fanOutCopy),
1616  CLHEP::HepRotationZ(phi) * CLHEP::HepRotationY(180 * deg)));
1617  }
1618  unsigned int femCopy(0);
1619  for (unsigned int ilyFEM(0); ilyFEM != vecIlyFEMZ().size(); ++ilyFEM) {
1620  const double radius(ilyRMax - 1 * mm - ilyFEMHeight() / 2.);
1621  const double phi(vecIlyFEMPhi()[ilyFEM]);
1622  const double yy(radius * sin(phi));
1623  const double xx(radius * cos(phi));
1624  ++femCopy;
1625  cpv.position(ilyFEMLog,
1626  xilyLog,
1627  femCopy,
1628  DDTranslation(xx, yy, vecIlyFEMZ()[ilyFEM] - ilyLength / 2),
1629  myrot(ilyFEMLog.name().name() + "_rot" + std::to_string(femCopy), CLHEP::HepRotationZ(phi)));
1630  }
1631  }
1632  for (unsigned int iPipe(0); iPipe != vecIlyPipePhi().size(); ++iPipe) {
1633  const unsigned int type(static_cast<unsigned int>(round(vecIlyPipeType()[iPipe])));
1634  // std::cout<<" iPipe, type= " << iPipe << ", " << type << std::endl ;
1635  const double zz(-ilyLength / 2 + vecIlyPipeZ()[iPipe] + (9 > type ? vecIlyPipeLength()[type] / 2. : 0));
1636 
1637  for (unsigned int ly(0); ly != 2; ++ly) {
1638  const double radius(0 == ly ? ilyRMin + ilyPipeOD() / 2. + 1 * mm : ilyRMax - ilyPipeOD() / 2. - 1 * mm);
1639  const double phi(vecIlyPipePhi()[iPipe]);
1640  const double yy(radius * sin(phi));
1641  const double xx(radius * cos(phi));
1642  ++copyNum[type],
1643  cpv.position(
1644  ilyPipeLog[type],
1645  xilyLog,
1646  copyNum[type],
1647  DDTranslation(xx, yy, zz),
1648  (9 > type ? DDRotation()
1649  : myrot(ilyPipeLog[type].name().name() + "_rot" + std::to_string(copyNum[type]),
1650  Rota(Vec3(xx, yy, 0), 90 * deg))));
1651  }
1652  }
1653  }
1654  }
1655  ilyRMin = ilyRMax;
1656  }
1657  // End Inner Layer volumes---------------------------------------------------------
1658 
1659  const DDName clyrName(DDName("ECLYR"));
1660  std::vector<double> cri;
1661  std::vector<double> cro;
1662  std::vector<double> czz;
1663  czz.emplace_back(vecSpmZPts()[1]);
1664  cri.emplace_back(vecSpmRMin()[0]);
1665  cro.emplace_back(vecSpmRMin()[0] + 25 * mm);
1666  czz.emplace_back(vecSpmZPts()[2]);
1667  cri.emplace_back(vecSpmRMin()[2]);
1668  cro.emplace_back(vecSpmRMin()[2] + 10 * mm);
1669  const DDSolid clyrSolid(DDSolidFactory::polycone(clyrName, -9.5 * deg, 19 * deg, czz, cri, cro));
1670  const DDLogicalPart clyrLog(clyrName, ddmat(vecIlyMat()[4]), clyrSolid);
1671  cpv.position(clyrLog, spmLog, copyOne, DDTranslation(0, 0, 0), DDRotation());
1672 
1673  // Begin Alveolar Wedge parent ------------------------------------------------------
1674  //----------------
1675 
1676  // the next few lines accumulate dimensions appropriate to crystal type 1
1677  // which we use to set some of the features of the half-alveolar wedge (hawR).
1678 
1679  // const double ANom1 ( vecNomCryDimAR()[0] ) ;
1680  const double BNom1(vecNomCryDimCR()[0]);
1681  const double bNom1(vecNomCryDimCF()[0]);
1682  // const double HNom1 ( vecNomCryDimBR()[0] ) ;
1683  // const double hNom1 ( vecNomCryDimBF()[0] ) ;
1684  const double sWall1(wallThAlv());
1685  const double fWall1(wallFrAlv());
1686  // const double rWall1( wallReAlv() ) ;
1687  const double sWrap1(wrapThAlv());
1688  const double fWrap1(wrapFrAlv());
1689  // const double rWrap1( wrapReAlv() ) ;
1690  const double sClr1(clrThAlv());
1691  const double fClr1(clrFrAlv());
1692  // const double rClr1 ( clrReAlv() ) ;
1693  const double LNom1(nomCryDimLZ());
1694  const double beta1(atan((BNom1 - bNom1) / LNom1));
1695  // const double cosbeta1 ( cos( beta1 ) ) ;
1696  const double sinbeta1(sin(beta1));
1697 
1698  const double tana_hawR((BNom1 - bNom1) / LNom1);
1699 
1700  const double H_hawR(hawRHBIG());
1701  const double h_hawR(hawRhsml());
1702  const double a_hawR(bNom1 + sClr1 + 2 * sWrap1 + 2 * sWall1 - sinbeta1 * (fClr1 + fWrap1 + fWall1));
1703  const double B_hawR(a_hawR + H_hawR * tana_hawR);
1704  const double b_hawR(a_hawR + h_hawR * tana_hawR);
1705  const double L_hawR(vecSpmZPts()[2]);
1706 
1707  const Trap trapHAWR(a_hawR / 2., //double aHalfLengthXNegZLoY , // bl1, A/2
1708  a_hawR / 2., //double aHalfLengthXPosZLoY , // bl2, a/2
1709  b_hawR / 2., //double aHalfLengthXPosZHiY , // tl2, b/2
1710  H_hawR / 2., //double aHalfLengthYNegZ , // h1, H/2
1711  h_hawR / 2., //double aHalfLengthYPosZ , // h2, h/2
1712  L_hawR / 2., //double aHalfLengthZ , // dz, L/2
1713  90 * deg, //double aAngleAD , // alfa1
1714  0, //double aCoord15X , // x15
1715  0 //double aCoord15Y // y15
1716  );
1717 
1718  const DDName hawRName1(ddname(hawRName().name() + "1"));
1719  const DDSolid hawRSolid1(mytrap(hawRName1.name(), trapHAWR));
1720  const DDLogicalPart hawRLog1(hawRName1, spmMat(), hawRSolid1);
1721 
1722  const double al1_fawR(atan((B_hawR - a_hawR) / H_hawR) + M_PI_2);
1723 
1724  // here is trap for Full Alveolar Wedge
1725  const Trap trapFAW(a_hawR, //double aHalfLengthXNegZLoY , // bl1, A/2
1726  a_hawR, //double aHalfLengthXPosZLoY , // bl2, a/2
1727  b_hawR, //double aHalfLengthXPosZHiY , // tl2, b/2
1728  H_hawR / 2., //double aHalfLengthYNegZ , // h1, H/2
1729  h_hawR / 2., //double aHalfLengthYPosZ , // h2, h/2
1730  L_hawR / 2., //double aHalfLengthZ , // dz, L/2
1731  al1_fawR, //double aAngleAD , // alfa1
1732  0, //double aCoord15X , // x15
1733  0 //double aCoord15Y // y15
1734  );
1735 
1736  const DDName fawName1(ddname(fawName().name() + "1"));
1737  const DDSolid fawSolid1(mytrap(fawName1.name(), trapFAW));
1738  const DDLogicalPart fawLog1(fawName1, spmMat(), fawSolid1);
1739 
1740  const Trap::VertexList vHAW(trapHAWR.vertexList());
1741  const Trap::VertexList vFAW(trapFAW.vertexList());
1742 
1743  const double hawBoxClr(1 * mm);
1744 
1745  // HAW cut box to cut off back end of wedge
1746  const DDName hawCutName(ddname(hawRName().name() + "CUTBOX"));
1747  const DDSolid hawCutBox(DDSolidFactory::box(hawCutName, b_hawR / 2 + hawBoxClr, hawRCutY() / 2, hawRCutZ() / 2));
1748  const std::vector<double>& hawBoxParms(hawCutBox.parameters());
1749  const DDLogicalPart hawCutLog(hawCutName, spmMat(), hawCutBox);
1750 
1751  const Pt3D b1(hawBoxParms[0], hawBoxParms[1], hawBoxParms[2]);
1752  const Pt3D b2(-hawBoxParms[0], hawBoxParms[1], hawBoxParms[2]);
1753  const Pt3D b3(-hawBoxParms[0], hawBoxParms[1], -hawBoxParms[2]);
1754 
1755  const double zDel(sqrt(4 * hawBoxParms[2] * hawBoxParms[2] - (h_hawR - hawRCutDelY()) * (h_hawR - hawRCutDelY())));
1756 
1757  const Tf3D hawCutForm(b1,
1758  b2,
1759  b3,
1760  vHAW[2] + Pt3D(hawBoxClr, -hawRCutDelY(), 0),
1761  vHAW[1] + Pt3D(-hawBoxClr, -hawRCutDelY(), 0),
1762  Pt3D(vHAW[0].x() - hawBoxClr, vHAW[0].y(), vHAW[0].z() - zDel));
1763 
1764  const DDSolid hawRSolid(DDSolidFactory::subtraction(
1765  hawRName(),
1766  hawRSolid1,
1767  hawCutBox,
1768  DDTranslation(
1769  hawCutForm.getTranslation().x(), hawCutForm.getTranslation().y(), hawCutForm.getTranslation().z()),
1770  myrot(hawCutName.name() + "R", hawCutForm.getRotation())));
1771  const DDLogicalPart hawRLog(hawRName(), spmMat(), hawRSolid);
1772 
1773  // FAW cut box to cut off back end of wedge
1774  const DDName fawCutName(ddname(fawName().name() + "CUTBOX"));
1775  const DDSolid fawCutBox(DDSolidFactory::box(fawCutName, 2 * hawBoxParms[0], hawBoxParms[1], hawBoxParms[2]));
1776 
1777  const std::vector<double>& fawBoxParms(fawCutBox.parameters());
1778  const DDLogicalPart fawCutLog(fawCutName, spmMat(), fawCutBox);
1779 
1780  const Pt3D bb1(fawBoxParms[0], fawBoxParms[1], fawBoxParms[2]);
1781  const Pt3D bb2(-fawBoxParms[0], fawBoxParms[1], fawBoxParms[2]);
1782  const Pt3D bb3(-fawBoxParms[0], fawBoxParms[1], -fawBoxParms[2]);
1783 
1784  const Tf3D fawCutForm(bb1,
1785  bb2,
1786  bb3,
1787  vFAW[2] + Pt3D(2 * hawBoxClr, -5 * mm, 0),
1788  vFAW[1] + Pt3D(-2 * hawBoxClr, -5 * mm, 0),
1789  Pt3D(vFAW[1].x() - 2 * hawBoxClr, vFAW[1].y() - trapFAW.h(), vFAW[1].z() - zDel));
1790 
1791  const DDSolid fawSolid(DDSolidFactory::subtraction(
1792  fawName(),
1793  fawSolid1,
1794  fawCutBox,
1795  DDTranslation(
1796  fawCutForm.getTranslation().x(), fawCutForm.getTranslation().y(), fawCutForm.getTranslation().z()),
1797  myrot(fawCutName.name() + "R", fawCutForm.getRotation())));
1798  const DDLogicalPart fawLog(fawName(), spmMat(), fawSolid);
1799 
1800  const Tf3D hawRform(vHAW[3],
1801  vHAW[0],
1802  vHAW[1], // HAW inside FAW
1803  vFAW[3],
1804  0.5 * (vFAW[0] + vFAW[3]),
1805  0.5 * (vFAW[1] + vFAW[2]));
1806  cpv.position(
1807  hawRLog,
1808  fawLog,
1809  copyOne,
1810  DDTranslation(hawRform.getTranslation().x(), hawRform.getTranslation().y(), hawRform.getTranslation().z()),
1811  myrot(hawRName().name() + "R", hawRform.getRotation()));
1812 
1813  cpv.position(
1814  hawRLog,
1815  fawLog,
1816  copyTwo,
1817  DDTranslation(-hawRform.getTranslation().x(), -hawRform.getTranslation().y(), -hawRform.getTranslation().z()),
1818  myrot(hawRName().name() + "RotRefl",
1819  CLHEP::HepRotationY(180 * deg) * // rotate about Y after refl thru Z
1820  CLHEP::HepRep3x3(1, 0, 0, 0, 1, 0, 0, 0, -1)));
1821 
1822  /* this for display of haw cut box instead of subtraction
1823  cpv.position( hawCutLog,
1824  hawRName,
1825  copyOne,
1826  hawCutForm.getTranslation(),
1827  myrot( hawCutName.name()+"R",
1828  hawCutForm.getRotation() ) ) ;
1829 */
1830 
1831  for (unsigned int iPhi(1); iPhi <= nFawPerSupm(); ++iPhi) {
1832  const double rPhi(fawPhiOff() + (iPhi - 0.5) * fawDelPhi());
1833 
1834  const Tf3D fawform(RoZ3D(rPhi) * Tl3D(fawRadOff() + (trapFAW.H() + trapFAW.h()) / 4, 0, trapFAW.L() / 2) *
1835  RoZ3D(-90 * deg + fawPhiRot()));
1836  if (fawHere())
1837  cpv.position(
1838  fawLog,
1839  spmLog,
1840  iPhi,
1841  DDTranslation(fawform.getTranslation().x(), fawform.getTranslation().y(), fawform.getTranslation().z()),
1842  myrot(fawName().name() + "_Rot" + std::to_string(iPhi), fawform.getRotation()));
1843  }
1844 
1845  // End Alveolar Wedge parent ------------------------------------------------------
1846 
1847  // Begin Grid + Tablet insertion
1848 
1849  const double h_Grid(gridThick());
1850 
1851  const Trap trapGrid((B_hawR - h_Grid * (B_hawR - a_hawR) / H_hawR) / 2, // bl1, A/2
1852  (b_hawR - h_Grid * (B_hawR - a_hawR) / H_hawR) / 2, // bl2, a/2
1853  b_hawR / 2., // tl2, b/2
1854  h_Grid / 2., // h1, H/2
1855  h_Grid / 2., // h2, h/2
1856  (L_hawR - 8 * cm) / 2., // dz, L/2
1857  90 * deg, // alfa1
1858  0, // x15
1859  H_hawR - h_hawR // y15
1860  );
1861 
1862  const DDSolid gridSolid(mytrap(gridName().name(), trapGrid));
1863  const DDLogicalPart gridLog(gridName(), gridMat(), gridSolid);
1864 
1865  const Trap::VertexList vGrid(trapGrid.vertexList());
1866 
1867  const Tf3D gridForm(vGrid[4],
1868  vGrid[5],
1869  vGrid[6], // Grid inside HAW
1870  vHAW[5] - Pt3D(0, h_Grid, 0),
1871  vHAW[5],
1872  vHAW[6]);
1873 
1874  if (0 != gridHere())
1875  cpv.position(
1876  gridLog,
1877  hawRLog,
1878  copyOne,
1879  DDTranslation(gridForm.getTranslation().x(), gridForm.getTranslation().y(), gridForm.getTranslation().z()),
1880  myrot(gridName().name() + "R", gridForm.getRotation()));
1881 
1882  // End Grid + Tablet insertion
1883 
1884  // begin filling Wedge with crystal plus supports --------------------------
1885 
1886  const double aNom(nomCryDimAF());
1887  const double LNom(nomCryDimLZ());
1888 
1889  const double AUnd(underAR());
1890  const double aUnd(underAF());
1891  // const double BUnd ( underCR() ) ;
1892  const double bUnd(underCF());
1893  const double HUnd(underBR());
1894  const double hUnd(underBF());
1895  const double LUnd(underLZ());
1896 
1897  const double sWall(wallThAlv());
1898  const double sWrap(wrapThAlv());
1899  const double sClr(clrThAlv());
1900 
1901  const double fWall(wallFrAlv());
1902  const double fWrap(wrapFrAlv());
1903  const double fClr(clrFrAlv());
1904 
1905  const double rWall(wallReAlv());
1906  const double rWrap(wrapReAlv());
1907  const double rClr(clrReAlv());
1908 
1909  // theta is angle in yz plane between z axis & leading edge of crystal
1910  double theta(90 * deg);
1911  double zee(0 * mm);
1912  double side(0 * mm);
1913  double zeta(0 * deg); // increment in theta for last crystal
1914 
1915  for (unsigned int cryType(1); cryType <= nCryTypes(); ++cryType) {
1916  const std::string sType("_" + std::string(10 > cryType ? "0" : "") + std::to_string(cryType));
1917 
1918  LogDebug("EcalGeom") << "Crytype=" << cryType;
1919  const double ANom(vecNomCryDimAR()[cryType - 1]);
1920  const double BNom(vecNomCryDimCR()[cryType - 1]);
1921  const double bNom(vecNomCryDimCF()[cryType - 1]);
1922  const double HNom(vecNomCryDimBR()[cryType - 1]);
1923  const double hNom(vecNomCryDimBF()[cryType - 1]);
1924 
1925  const double alfCry(90 * deg + atan((bNom - bUnd - aNom + aUnd) / (hNom - hUnd)));
1926 
1927  const Trap trapCry((ANom - AUnd) / 2., //double aHalfLengthXNegZLoY , // bl1, A/2
1928  (aNom - aUnd) / 2., //double aHalfLengthXPosZLoY , // bl2, a/2
1929  (bNom - bUnd) / 2., //double aHalfLengthXPosZHiY , // tl2, b/2
1930  (HNom - HUnd) / 2., //double aHalfLengthYNegZ , // h1, H/2
1931  (hNom - hUnd) / 2., //double aHalfLengthYPosZ , // h2, h/2
1932  (LNom - LUnd) / 2., //double aHalfLengthZ , // dz, L/2
1933  alfCry, //double aAngleAD , // alfa1
1934  aNom - aUnd - ANom + AUnd, //double aCoord15X , // x15
1935  hNom - hUnd - HNom + HUnd //double aCoord15Y // y15
1936  );
1937 
1938  const DDName cryDDName(cryName() + sType);
1939  const DDSolid crySolid(mytrap(cryDDName.name(), trapCry));
1940  const DDLogicalPart cryLog(cryDDName, cryMat(), crySolid);
1941 
1942  //++++++++++++++++++++++++++++++++++ APD ++++++++++++++++++++++++++++++++++
1943 
1944  const DDName apdDDName(apdName().name() + sType);
1945 
1946  const Trap trapAPD(apdSide() / 2., //double aHalfLengthXNegZLoY , // bl1, A/2
1947  apdSide() / 2., //double aHalfLengthXPosZLoY , // bl2, a/2
1948  apdSide() / 2., //double aHalfLengthXPosZHiY , // tl2, b/2
1949  apdSide() / 2., //double aHalfLengthYNegZ , // h1, H/2
1950  apdSide() / 2., //double aHalfLengthYPosZ , // h2, h/2
1951  apdThick() / 2., // dz, L/2
1952  90 * deg, //double aAngleAD , // alfa1
1953  0, //double aCoord15X , // x15
1954  0 //double aCoord15Y // y15
1955  );
1956 
1957  // DDSolid apdSolid ( DDSolidFactory::box( apdDDName,
1958  // apdSide()/2.,
1959  // apdSide()/2.,
1960  // apdThick()/2. ) ) ;
1961  const DDSolid apdSolid(mytrap(apdDDName.name(), trapAPD));
1962  const DDLogicalPart apdLog(apdDDName, apdMat(), apdSolid);
1963 
1964  unsigned int copyAPD(0);
1965  //++++++++++++++++++++++++++++++++++ END APD ++++++++++++++++++++++++++++++++++
1966 
1967  const double delta(atan((HNom - hNom) / LNom));
1968  //unused const double cosdelta ( cos( delta ) ) ;
1969  const double sindelta(sin(delta));
1970 
1971  const double gamma(atan((ANom - aNom) / LNom));
1972  //unused const double cosgamma ( cos( gamma ) ) ;
1973  const double singamma(sin(gamma));
1974 
1975  const double beta(atan((BNom - bNom) / LNom));
1976  //unused const double cosbeta ( cos( beta ) ) ;
1977  const double sinbeta(sin(beta));
1978 
1979  // Now clearance trap
1980  const double alfClr(90 * deg + atan((bNom - aNom) / (hNom + sClr)));
1981 
1982  const Trap trapClr((ANom + sClr + rClr * singamma) / 2., //double aHalfLengthXNegZLoY , // bl1, A/2
1983  (aNom + sClr - fClr * singamma) / 2., //double aHalfLengthXPosZLoY , // bl2, a/2
1984  (bNom + sClr - fClr * sinbeta) / 2., //double aHalfLengthXPosZHiY , // tl2, b/2
1985  (HNom + sClr + rClr * sindelta) / 2., //double aHalfLengthYNegZ , // h1, H/2
1986  (hNom + sClr - fClr * sindelta) / 2., //double aHalfLengthYPosZ , // h2, h/2
1987  (LNom + fClr + rClr) / 2., // dz, L/2
1988  alfClr, //double aAngleAD , // alfa1
1989  aNom - ANom, //double aCoord15X , // x15
1990  hNom - HNom //double aCoord15Y // y15
1991  );
1992 
1993  const DDName clrDDName(clrName() + sType);
1994  const DDSolid clrSolid(mytrap(clrDDName.name(), trapClr));
1995  const DDLogicalPart clrLog(clrDDName, clrMat(), clrSolid);
1996 
1997  // Now wrap trap
1998 
1999  const double alfWrap(90 * deg + atan((bNom - aNom) / (hNom + sClr + 2 * sWrap)));
2000 
2001  const Trap trapWrap((trapClr.A() + 2 * sWrap + rWrap * singamma) / 2, // bl1, A/2
2002  (trapClr.a() + 2 * sWrap - fWrap * singamma) / 2, // bl2, a/2
2003  (trapClr.b() + 2 * sWrap - fWrap * sinbeta) / 2, // tl2, b/2
2004  (trapClr.H() + 2 * sWrap + rWrap * sindelta) / 2, // h1, H/2
2005  (trapClr.h() + 2 * sWrap - fWrap * sindelta) / 2, // h2, h/2
2006  (trapClr.L() + fWrap + rWrap) / 2., // dz, L/2
2007  alfWrap, //double aAngleAD , // alfa1
2008  aNom - ANom - (cryType > 9 ? 0 : 0.020 * mm),
2009  hNom - HNom //double aCoord15Y // y15
2010  );
2011 
2012  const DDName wrapDDName(wrapName() + sType);
2013  const DDSolid wrapSolid(mytrap(wrapDDName.name(), trapWrap));
2014  const DDLogicalPart wrapLog(wrapDDName, wrapMat(), wrapSolid);
2015 
2016  // Now wall trap
2017 
2018  const double alfWall(90 * deg + atan((bNom - aNom) / (hNom + sClr + 2 * sWrap + 2 * sWall)));
2019 
2020  const Trap trapWall((trapWrap.A() + 2 * sWall + rWall * singamma) / 2, // A/2
2021  (trapWrap.a() + 2 * sWall - fWall * singamma) / 2, // a/2
2022  (trapWrap.b() + 2 * sWall - fWall * sinbeta) / 2, // b/2
2023  (trapWrap.H() + 2 * sWall + rWall * sindelta) / 2, // H/2
2024  (trapWrap.h() + 2 * sWall - fWall * sindelta) / 2, // h/2
2025  (trapWrap.L() + fWall + rWall) / 2., // L/2
2026  alfWall, // alfa1
2027  aNom - ANom - (cryType < 10 ? 0.150 * mm : 0.100 * mm),
2028  hNom - HNom // y15
2029  );
2030 
2031  const DDName wallDDName(wallName() + sType);
2032  const DDSolid wallSolid(mytrap(wallDDName.name(), trapWall));
2033  const DDLogicalPart wallLog(wallDDName, wallMat(), wallSolid);
2034 
2035  /* std::cout << "Traps:\n a: "
2036  << trapCry.a() << ", "
2037  << trapClr.a() << ", "
2038  << trapWrap.a() << ", "
2039  << trapWall.a() << "\n b: "
2040  << trapCry.b() << ", "
2041  << trapClr.b() << ", "
2042  << trapWrap.b() << ", "
2043  << trapWall.b() << "\n A: "
2044  << trapCry.A() << ", "
2045  << trapClr.A() << ", "
2046  << trapWrap.A() << ", "
2047  << trapWall.A() << "\n B: "
2048  << trapCry.B() << ", "
2049  << trapClr.B() << ", "
2050  << trapWrap.B() << ", "
2051  << trapWall.B() << "\n h: "
2052  << trapCry.h() << ", "
2053  << trapClr.h() << ", "
2054  << trapWrap.h() << ", "
2055  << trapWall.h() << "\n H: "
2056  << trapCry.H() << ", "
2057  << trapClr.H() << ", "
2058  << trapWrap.H() << ", "
2059  << trapWall.H() << "\n a1: "
2060  << trapCry.a1()/deg << ", "
2061  << trapClr.a1()/deg << ", "
2062  << trapWrap.a1()/deg << ", "
2063  << trapWall.a1()/deg << "\n a4: "
2064  << trapCry.a4()/deg << ", "
2065  << trapClr.a4()/deg << ", "
2066  << trapWrap.a4()/deg << ", "
2067  << trapWall.a4()/deg << "\n x15: "
2068  << trapCry.x15() << ", "
2069  << trapClr.x15() << ", "
2070  << trapWrap.x15() << ", "
2071  << trapWall.x15() << "\n y15: "
2072  << trapCry.y15() << ", "
2073  << trapClr.y15() << ", "
2074  << trapWrap.y15() << ", "
2075  << trapWall.y15()
2076  << std::endl ;
2077 */
2078  // Now for placement of cry within clr
2079  const Vec3 cryToClr(0, 0, (rClr - fClr) / 2);
2080 
2081  cpv.position(cryLog,
2082  clrLog,
2083  copyOne,
2084  DDTranslation(0, 0, (rClr - fClr) / 2), //SAME as cryToClr above.
2085  DDRotation());
2086 
2087  if (0 != apdHere()) {
2088  cpv.position(
2089  apdLog,
2090  clrLog,
2091  ++copyAPD,
2092  DDTranslation(
2093  +trapCry.bl1() - apdX1(), +trapCry.h1() - apdZ(), -trapCry.dz() - apdThick() / 2. + (rClr - fClr) / 2.),
2094  DDRotation());
2095  cpv.position(
2096  apdLog,
2097  clrLog,
2098  ++copyAPD,
2099  DDTranslation(
2100  +trapCry.bl1() - apdX2(), +trapCry.h1() - apdZ(), -trapCry.dz() - apdThick() / 2. + (rClr - fClr) / 2.),
2101  DDRotation());
2102  }
2103 
2104  const Vec3 clrToWrap(0, 0, (rWrap - fWrap) / 2);
2105 
2106  cpv.position(clrLog,
2107  wrapLog,
2108  copyOne,
2109  DDTranslation(0, 0, (rWrap - fWrap) / 2), //SAME as cryToWrap
2110  DDRotation());
2111 
2112  // Now for placement of clr within wall
2113  const Vec3 wrapToWall1(0, 0, (rWall - fWall) / 2);
2114  const Vec3 wrapToWall(Vec3((cryType > 9 ? 0 : 0.005 * mm), 0, 0) + wrapToWall1);
2115 
2116  cpv.position(wrapLog,
2117  wallLog,
2118  copyOne,
2119  DDTranslation(Vec3((cryType > 9 ? 0 : 0.005 * mm), 0, 0) + wrapToWall1), //SAME as wrapToWall
2120  DDRotation());
2121 
2122  const Trap::VertexList vWall(trapWall.vertexList());
2123  const Trap::VertexList vCry(trapCry.vertexList());
2124 
2125  const double sidePrime((trapWall.a() - trapCry.a()) / 2);
2126  const double frontPrime(fWall + fWrap + fClr + LUnd / 2);
2127 
2128  // define web plates with clearance ===========================================
2129 
2130  if (1 == cryType) // first web plate: inside clearance volume
2131  {
2132  web(0,
2133  trapWall.b(),
2134  trapWall.B(),
2135  trapWall.L(),
2136  theta,
2137  vHAW[4] + Pt3D(0, hawYOffCry(), 0),
2138  hawRLog,
2139  zee,
2140  sidePrime,
2141  frontPrime,
2142  delta,
2143  cpv);
2144  zee += vecGapAlvEta()[0];
2145  }
2146 
2147  for (unsigned int etaAlv(1); etaAlv <= nCryPerAlvEta(); ++etaAlv) {
2148  LogDebug("EcalGeom") << "theta=" << theta / deg << ", sidePrime=" << sidePrime << ", frontPrime=" << frontPrime
2149  << ", zeta=" << zeta << ", delta=" << delta << ", zee=" << zee;
2150 
2151  zee += 0.075 * mm + (side * cos(zeta) + trapWall.h() - sidePrime) / sin(theta);
2152 
2153  LogDebug("EcalGeom") << "New zee=" << zee;
2154 
2155  // make transform for placing enclosed crystal
2156 
2157  const Pt3D trap2(vCry[2] + cryToClr + clrToWrap + wrapToWall);
2158 
2159  const Pt3D trap3(trap2 + Pt3D(0, -trapCry.h(), 0));
2160  const Pt3D trap1(trap3 + Pt3D(-trapCry.a(), 0, 0));
2161 
2162  const Pt3D wedge3(vHAW[4] + Pt3D(sidePrime, hawYOffCry(), zee));
2163  const Pt3D wedge2(wedge3 + Pt3D(0, trapCry.h() * cos(theta), -trapCry.h() * sin(theta)));
2164  const Pt3D wedge1(wedge3 + Pt3D(trapCry.a(), 0, 0));
2165 
2166  const Tf3D tForm1(trap1, trap2, trap3, wedge1, wedge2, wedge3);
2167 
2168  const double xx(0.050 * mm);
2169 
2170  const Tf3D tForm(HepGeom::Translate3D(xx, 0, 0) * tForm1);
2171 
2172  cpv.position(wallLog,
2173  hawRLog,
2174  etaAlv,
2175  DDTranslation(tForm.getTranslation().x(), tForm.getTranslation().y(), tForm.getTranslation().z()),
2176  myrot(wallLog.name().name() + "_" + std::to_string(etaAlv), tForm.getRotation()));
2177 
2178  theta -= delta;
2179  side = sidePrime;
2180  zeta = delta;
2181  }
2182  if (5 == cryType || 9 == cryType || 13 == cryType || 17 == cryType) // web plates
2183  {
2184  const unsigned int webIndex(cryType / 4);
2185  zee += 0.5 * vecGapAlvEta()[cryType] / sin(theta);
2186  web(webIndex,
2187  trapWall.a(),
2188  trapWall.A(),
2189  trapWall.L(),
2190  theta,
2191  vHAW[4] + Pt3D(0, hawYOffCry(), 0),
2192  hawRLog,
2193  zee,
2194  sidePrime,
2195  frontPrime,
2196  delta,
2197  cpv);
2198  zee += 0.5 * vecGapAlvEta()[cryType] / sin(theta);
2199  } else {
2200  if (17 != cryType)
2201  zee += vecGapAlvEta()[cryType] / sin(theta);
2202  }
2203  }
2204  // END filling Wedge with crystal plus supports --------------------------
2205 
2206  //------------------------------------------------------------------------
2207  //------------------------------------------------------------------------
2208  //------------------------------------------------------------------------
2209  //------------------------------------------------------------------------
2210  //**************** Material at outer radius of supermodule ***************
2211  //------------------------------------------------------------------------
2212  //------------------------------------------------------------------------
2213  //------------------------------------------------------------------------
2214  //------------------------------------------------------------------------
2215 
2216  if (0 != backHere()) {
2222 
2223  const DDTranslation outtra(backXOff() + backSideHeight() / 2, backYOff(), backSideLength() / 2);
2224 
2225  const double realBPthick(backPlateThick() + backPlate2Thick());
2226 
2227  DDSolid backPlateSolid(
2228  DDSolidFactory::box(backPlateName(), backPlateWidth() / 2., realBPthick / 2., backPlateLength() / 2.));
2229  const std::vector<double>& backPlateParms(backPlateSolid.parameters());
2230  const DDLogicalPart backPlateLog(backPlateName(), backPlateMat(), backPlateSolid);
2231 
2232  const DDTranslation backPlateTra(
2233  backSideHeight() / 2 + backPlateParms[1], 0 * mm, backPlateParms[2] - backSideLength() / 2);
2234 
2235  DDSolid backPlate2Solid(
2237 
2238  const DDLogicalPart backPlate2Log(backPlate2Name(), backPlate2Mat(), backPlate2Solid);
2239 
2240  const DDTranslation backPlate2Tra(0, -backPlateParms[1] + backPlate2Thick() / 2., 0);
2241  if (0 != backPlateHere()) {
2242  cpv.position(backPlate2Log, backPlateName(), copyOne, backPlate2Tra, DDRotation());
2243 
2244  cpv.position(backPlateLog,
2245  spmName(),
2246  copyOne,
2247  outtra + backPlateTra,
2248  myrot(backPlateName().name() + "Rot5", CLHEP::HepRotationZ(270 * deg)));
2249  }
2255 
2261 
2262  const Trap trapBS(backSideWidth() / 2., //double aHalfLengthXNegZLoY , // bl1, A/2
2263  backSideWidth() / 2., //double aHalfLengthXPosZLoY , // bl2, a/2
2264  backSideWidth() / 4., //double aHalfLengthXPosZHiY , // tl2, b/2
2265  backSideHeight() / 2., //double aHalfLengthYNegZ , // h1, H/2
2266  backSideHeight() / 2., //double aHalfLengthYPosZ , // h2, h/2
2267  backSideLength() / 2., //double aHalfLengthZ , // dz, L/2
2268  backSideAngle(), //double aAngleAD , // alfa1
2269  0, //double aCoord15X , // x15
2270  0 //double aCoord15Y // y15
2271  );
2272 
2273  const DDSolid backSideSolid(mytrap(backSideName().name(), trapBS));
2274  const DDLogicalPart backSideLog(backSideName(), backSideMat(), backSideSolid);
2275 
2276  const DDTranslation backSideTra1(0 * mm, backPlateWidth() / 2 + backSideYOff1(), 1 * mm);
2277  if (0 != backSideHere()) {
2278  cpv.position(
2279  backSideLog,
2280  spmName(),
2281  copyOne,
2282  outtra + backSideTra1,
2283  myrot(backSideName().name() + "Rot8", CLHEP::HepRotationX(180 * deg) * CLHEP::HepRotationZ(90 * deg)));
2284 
2285  const DDTranslation backSideTra2(0 * mm, -backPlateWidth() / 2 + backSideYOff2(), 1 * mm);
2286  cpv.position(backSideLog,
2287  spmName(),
2288  copyTwo,
2289  outtra + backSideTra2,
2290  myrot(backSideName().name() + "Rot9", CLHEP::HepRotationZ(90 * deg)));
2291  }
2297 
2298  //=====================
2299  const double backCoolWidth(backCoolBarWidth() + 2. * backCoolTankWidth());
2300 
2306 
2307  const double manifCut(2 * mm);
2308 
2309  DDSolid mBManifSolid(DDSolidFactory::tubs(
2310  mBManifName(), backCoolWidth / 2. - manifCut, 0, mBManifOutDiam() / 2, 0 * deg, 360 * deg));
2311  const DDLogicalPart mBManifLog(mBManifName(), mBManifMat(), mBManifSolid);
2312 
2313  const DDName mBManifWaName(ddname(mBManifName().name() + "Wa"));
2314  DDSolid mBManifWaSolid(DDSolidFactory::tubs(
2315  mBManifWaName, backCoolWidth / 2. - manifCut, 0, mBManifInnDiam() / 2, 0 * deg, 360 * deg));
2316  const DDLogicalPart mBManifWaLog(mBManifWaName, backPipeWaterMat(), mBManifWaSolid);
2317  cpv.position(mBManifWaLog, mBManifName(), copyOne, DDTranslation(0, 0, 0), DDRotation());
2318 
2324  //=====================
2325 
2331  const double deltaY(-5 * mm);
2332 
2333  DDSolid grEdgeSlotSolid(
2335  const DDLogicalPart grEdgeSlotLog(grEdgeSlotName(), grEdgeSlotMat(), grEdgeSlotSolid);
2336 
2337  unsigned int edgeSlotCopy(0);
2338  unsigned int midSlotCopy(0);
2339 
2340  DDLogicalPart grMidSlotLog[4];
2341 
2342  for (unsigned int iGr(0); iGr != vecGrilleHeight().size(); ++iGr) {
2343  DDName gName(ddname(grilleName() + std::to_string(iGr)));
2344  DDSolid grilleSolid(
2345  DDSolidFactory::box(gName, vecGrilleHeight()[iGr] / 2., backCoolWidth / 2., grilleThick() / 2.));
2346  const DDLogicalPart grilleLog(gName, grilleMat(), grilleSolid);
2347 
2348  const DDTranslation grilleTra(-realBPthick / 2 - vecGrilleHeight()[iGr] / 2,
2349  deltaY,
2350  vecGrilleZOff()[iGr] + grilleThick() / 2 - backSideLength() / 2);
2351  const DDTranslation gTra(outtra + backPlateTra + grilleTra);
2352 
2353  if (0 != grMidSlotHere() && 0 != iGr) {
2354  if (0 == (iGr - 1) % 2) {
2355  DDName mName(ddname(grMidSlotName() + std::to_string(iGr / 2)));
2356  DDSolid grMidSlotSolid(DDSolidFactory::box(
2357  mName, vecGrMidSlotHeight()[(iGr - 1) / 2] / 2., grMidSlotWidth() / 2., grilleThick() / 2.));
2358  grMidSlotLog[(iGr - 1) / 2] = DDLogicalPart(mName, grMidSlotMat(), grMidSlotSolid);
2359  }
2360  cpv.position(grMidSlotLog[(iGr - 1) / 2],
2361  gName,
2362  ++midSlotCopy,
2363  DDTranslation(
2364  vecGrilleHeight()[iGr] / 2. - vecGrMidSlotHeight()[(iGr - 1) / 2] / 2., +grMidSlotXOff(), 0),
2365  DDRotation());
2366  cpv.position(grMidSlotLog[(iGr - 1) / 2],
2367  gName,
2368  ++midSlotCopy,
2369  DDTranslation(
2370  vecGrilleHeight()[iGr] / 2. - vecGrMidSlotHeight()[(iGr - 1) / 2] / 2., -grMidSlotXOff(), 0),
2371  DDRotation());
2372  }
2373 
2374  if (0 != grEdgeSlotHere() && 0 != iGr) {
2375  cpv.position(
2376  grEdgeSlotLog,
2377  gName,
2378  ++edgeSlotCopy,
2379  DDTranslation(
2380  vecGrilleHeight()[iGr] / 2. - grEdgeSlotHeight() / 2., backCoolWidth / 2 - grEdgeSlotWidth() / 2., 0),
2381  DDRotation());
2382  cpv.position(grEdgeSlotLog,
2383  gName,
2384  ++edgeSlotCopy,
2385  DDTranslation(vecGrilleHeight()[iGr] / 2. - grEdgeSlotHeight() / 2.,
2386  -backCoolWidth / 2 + grEdgeSlotWidth() / 2.,
2387  0),
2388  DDRotation());
2389  }
2390  if (0 != grilleHere())
2391  cpv.position(grilleLog, spmName(), iGr, gTra, DDRotation());
2392 
2393  if ((0 != iGr % 2) && (0 != mBManifHere())) {
2394  cpv.position(mBManifLog,
2395  spmName(),
2396  iGr,
2397  gTra - DDTranslation(-mBManifOutDiam() / 2. + vecGrilleHeight()[iGr] / 2.,
2398  manifCut,
2399  grilleThick() / 2. + 3 * mBManifOutDiam() / 2.),
2400  myrot(mBManifName().name() + "R1", CLHEP::HepRotationX(90 * deg)));
2401  cpv.position(mBManifLog,
2402  spmName(),
2403  iGr - 1,
2404  gTra - DDTranslation(-3 * mBManifOutDiam() / 2. + vecGrilleHeight()[iGr] / 2.,
2405  manifCut,
2406  grilleThick() / 2 + 3 * mBManifOutDiam() / 2.),
2407  myrot(mBManifName().name() + "R2", CLHEP::HepRotationX(90 * deg)));
2408  }
2409  }
2410 
2416 
2422 
2423  DDSolid backCoolBarSolid(DDSolidFactory::box(
2425  const DDLogicalPart backCoolBarLog(backCoolBarName(), backCoolBarMat(), backCoolBarSolid);
2426 
2427  DDSolid backCoolBarSSSolid(DDSolidFactory::box(
2429  const DDLogicalPart backCoolBarSSLog(backCoolBarSSName(), backCoolBarSSMat(), backCoolBarSSSolid);
2430  const DDTranslation backCoolBarSSTra(0, 0, 0);
2431  cpv.position(backCoolBarSSLog, backCoolBarName(), copyOne, backCoolBarSSTra, DDRotation());
2432 
2433  DDSolid backCoolBarWaSolid(DDSolidFactory::box(
2435  const DDLogicalPart backCoolBarWaLog(backCoolBarWaName(), backCoolBarWaMat(), backCoolBarWaSolid);
2436  const DDTranslation backCoolBarWaTra(0, 0, 0);
2437  cpv.position(backCoolBarWaLog, backCoolBarSSName(), copyOne, backCoolBarWaTra, DDRotation());
2438 
2444 
2450 
2451  double thickVFE(0);
2452  for (unsigned int iLyr(0); iLyr != vecBackVFELyrThick().size(); ++iLyr) {
2453  thickVFE += vecBackVFELyrThick()[iLyr];
2454  }
2455  DDSolid backVFESolid(
2456  DDSolidFactory::box(backVFEName(), backCoolBarHeight() / 2., backCoolBarWidth() / 2., thickVFE / 2.));
2457  const DDLogicalPart backVFELog(backVFEName(), backVFEMat(), backVFESolid);
2458  DDTranslation offTra(0, 0, -thickVFE / 2);
2459  for (unsigned int iLyr(0); iLyr != vecBackVFELyrThick().size(); ++iLyr) {
2460  DDSolid backVFELyrSolid(DDSolidFactory::box(ddname(vecBackVFELyrName()[iLyr]),
2461  backCoolBarHeight() / 2.,
2462  backCoolBarWidth() / 2.,
2463  vecBackVFELyrThick()[iLyr] / 2.));
2464  const DDLogicalPart backVFELyrLog(
2465  ddname(vecBackVFELyrName()[iLyr]), ddmat(vecBackVFELyrMat()[iLyr]), backVFELyrSolid);
2466  const DDTranslation backVFELyrTra(0, 0, vecBackVFELyrThick()[iLyr] / 2);
2467  cpv.position(backVFELyrLog, backVFEName(), copyOne, backVFELyrTra + offTra, DDRotation());
2468  offTra += 2 * backVFELyrTra;
2469  }
2470 
2476 
2482 
2483  const double halfZCoolVFE(thickVFE + backCoolBarThick() / 2.);
2484  DDSolid backCoolVFESolid(
2485  DDSolidFactory::box(backCoolVFEName(), backCoolBarHeight() / 2., backCoolBarWidth() / 2., halfZCoolVFE));
2486  const DDLogicalPart backCoolVFELog(backCoolVFEName(), backCoolVFEMat(), backCoolVFESolid);
2487  if (0 != backCoolBarHere())
2488  cpv.position(backCoolBarLog, backCoolVFEName(), copyOne, DDTranslation(), DDRotation());
2489  if (0 != backCoolVFEHere())
2490  cpv.position(backVFELog,
2491  backCoolVFEName(),
2492  copyOne,
2493  DDTranslation(0, 0, backCoolBarThick() / 2. + thickVFE / 2.),
2494  DDRotation());
2495  cpv.position(backVFELog,
2496  backCoolVFEName(),
2497  copyTwo,
2498  DDTranslation(0, 0, -backCoolBarThick() / 2. - thickVFE / 2.),
2499  myrot(backVFEName().name() + "Flip", CLHEP::HepRotationX(180 * deg)));
2500 
2506 
2512  unsigned int iCVFECopy(1);
2513  unsigned int iSep(0);
2514  unsigned int iNSec(0);
2515  const unsigned int nMisc(vecBackMiscThick().size() / 4);
2516  for (unsigned int iMod(0); iMod != 4; ++iMod) {
2517  const double pipeLength(vecGrilleZOff()[2 * iMod + 1] - vecGrilleZOff()[2 * iMod] - grilleThick() - 3 * mm);
2518 
2519  const double pipeZPos(vecGrilleZOff()[2 * iMod + 1] - pipeLength / 2 - 1.5 * mm);
2520 
2521  // accumulate total height of parent volume
2522 
2523  double backCoolHeight(backCoolBarHeight() + mBCoolTubeOutDiam());
2524  for (unsigned int iMisc(0); iMisc != nMisc; ++iMisc) {
2525  backCoolHeight += vecBackMiscThick()[iMod * nMisc + iMisc];
2526  }
2527  double bottomThick(mBCoolTubeOutDiam());
2528  for (unsigned int iMB(0); iMB != vecMBLyrThick().size(); ++iMB) {
2529  backCoolHeight += vecMBLyrThick()[iMB];
2530  bottomThick += vecMBLyrThick()[iMB];
2531  }
2532 
2533  DDName backCName(ddname(vecBackCoolName()[iMod]));
2534  const double halfZBCool((pipeLength - 2 * mBManifOutDiam() - grilleZSpace()) / 2);
2535  DDSolid backCoolSolid(DDSolidFactory::box(backCName, backCoolHeight / 2., backCoolWidth / 2., halfZBCool));
2536  const DDLogicalPart backCoolLog(backCName, spmMat(), backCoolSolid);
2537 
2538  const DDTranslation bCoolTra(
2539  -realBPthick / 2 + backCoolHeight / 2 - vecGrilleHeight()[2 * iMod],
2540  deltaY,
2541  vecGrilleZOff()[2 * iMod] + grilleThick() + grilleZSpace() + halfZBCool - backSideLength() / 2);
2542  if (0 != backCoolHere())
2543  cpv.position(backCoolLog, spmName(), iMod + 1, outtra + backPlateTra + bCoolTra, DDRotation());
2544 
2545  //===
2546  const double backCoolTankHeight(backCoolBarHeight()); // - backBracketHeight() ) ;
2547 
2548  const double halfZTank(halfZBCool - 5 * cm);
2549 
2550  DDName bTankName(ddname(backCoolTankName() + std::to_string(iMod + 1)));
2551  DDSolid backCoolTankSolid(
2552  DDSolidFactory::box(bTankName, backCoolTankHeight / 2., backCoolTankWidth() / 2., halfZTank));
2553  const DDLogicalPart backCoolTankLog(bTankName, backCoolTankMat(), backCoolTankSolid);
2554  if (0 != backCoolTankHere())
2555  cpv.position(backCoolTankLog,
2556  backCName,
2557  copyOne,
2558  DDTranslation(-backCoolHeight / 2 + backCoolTankHeight / 2. + bottomThick,
2559  backCoolBarWidth() / 2. + backCoolTankWidth() / 2.,
2560  0),
2561  DDRotation());
2562 
2563  DDName bTankWaName(ddname(backCoolTankWaName() + std::to_string(iMod + 1)));
2564  DDSolid backCoolTankWaSolid(DDSolidFactory::box(bTankWaName,
2565  backCoolTankHeight / 2. - backCoolTankThick() / 2.,
2566  backCoolTankWaWidth() / 2.,
2567  halfZTank - backCoolTankThick() / 2.));
2568  const DDLogicalPart backCoolTankWaLog(bTankWaName, backCoolTankWaMat(), backCoolTankWaSolid);
2569  cpv.position(backCoolTankWaLog, bTankName, copyOne, DDTranslation(0, 0, 0), DDRotation());
2570 
2571  DDName bBracketName(ddname(backBracketName() + std::to_string(iMod + 1)));
2572  DDSolid backBracketSolid(
2573  DDSolidFactory::box(bBracketName, backBracketHeight() / 2., backCoolTankWidth() / 2., halfZTank));
2574  const DDLogicalPart backBracketLog(bBracketName, backBracketMat(), backBracketSolid);
2575  if (0 != backCoolTankHere())
2576  cpv.position(backBracketLog,
2577  backCName,
2578  copyOne,
2579  DDTranslation(backCoolBarHeight() - backCoolHeight / 2. - backBracketHeight() / 2. + bottomThick,
2580  -backCoolBarWidth() / 2. - backCoolTankWidth() / 2.,
2581  0),
2582  DDRotation());
2583 
2584  /* cpv.position( backBracketLog,
2585  backCName,
2586  copyTwo,
2587  DDTranslation( backCoolBarHeight() - backCoolHeight/2. - backBracketHeight()/2.,
2588  backCoolBarWidth()/2. + backCoolTankWidth()/2., 0),
2589  DDRotation() ) ;*/
2590 
2591  //===
2592 
2593  DDTranslation bSumTra(backCoolBarHeight() - backCoolHeight / 2. + bottomThick, 0, 0);
2594  for (unsigned int j(0); j != nMisc; ++j) // loop over miscellaneous layers
2595  {
2596  const DDName bName(ddname(vecBackMiscName()[iMod * nMisc + j]));
2597 
2598  DDSolid bSolid(DDSolidFactory::box(bName,
2599  vecBackMiscThick()[iMod * nMisc + j] / 2,
2601  halfZBCool));
2602 
2603  const DDLogicalPart bLog(bName, ddmat(vecBackMiscMat()[iMod * nMisc + j]), bSolid);
2604 
2605  const DDTranslation bTra(vecBackMiscThick()[iMod * nMisc + j] / 2, 0 * mm, 0 * mm);
2606 
2607  if (0 != backMiscHere())
2608  cpv.position(bLog, backCName, copyOne, bSumTra + bTra, DDRotation());
2609 
2610  bSumTra += 2 * bTra;
2611  }
2612 
2613  const double bHalfWidth(backCoolBarWidth() / 2. + backCoolTankWidth());
2614 
2615  if (0 != mBLyrHere()) {
2616  DDTranslation mTra(-backCoolHeight / 2. + mBCoolTubeOutDiam(), 0, 0);
2617  for (unsigned int j(0); j != vecMBLyrThick().size(); ++j) // loop over MB layers
2618  {
2619  const DDName mName(ddname(vecMBLyrName()[j] + "_" + std::to_string(iMod + 1)));
2620 
2621  DDSolid mSolid(DDSolidFactory::box(mName, vecMBLyrThick()[j] / 2, bHalfWidth, halfZBCool));
2622 
2623  const DDLogicalPart mLog(mName, ddmat(vecMBLyrMat()[j]), mSolid);
2624 
2625  mTra += DDTranslation(vecMBLyrThick()[j] / 2.0, 0 * mm, 0 * mm);
2626  cpv.position(mLog, backCName, copyOne, mTra, DDRotation());
2627  mTra += DDTranslation(vecMBLyrThick()[j] / 2.0, 0 * mm, 0 * mm);
2628  }
2629  }
2630 
2631  if (0 != mBCoolTubeHere()) {
2632  const DDName mBName(ddname(mBCoolTubeName() + "_" + std::to_string(iMod + 1)));
2633 
2634  DDSolid mBCoolTubeSolid(
2635  DDSolidFactory::tubs(mBName, halfZBCool, 0, mBCoolTubeOutDiam() / 2, 0 * deg, 360 * deg));
2636  const DDLogicalPart mBLog(mBName, mBCoolTubeMat(), mBCoolTubeSolid);
2637 
2638  const DDName mBWaName(ddname(mBCoolTubeName() + "Wa_" + std::to_string(iMod + 1)));
2639  DDSolid mBCoolTubeWaSolid(
2640  DDSolidFactory::tubs(mBWaName, halfZBCool, 0, mBCoolTubeInnDiam() / 2, 0 * deg, 360 * deg));
2641  const DDLogicalPart mBWaLog(mBWaName, backPipeWaterMat(), mBCoolTubeWaSolid);
2642  cpv.position(mBWaLog, mBName, copyOne, DDTranslation(0, 0, 0), DDRotation());
2643 
2644  for (unsigned int j(0); j != mBCoolTubeNum(); ++j) // loop over all MB cooling circuits
2645  {
2646  cpv.position(
2647  mBLog,
2648  backCName,
2649  2 * j + 1,
2650  DDTranslation(
2651  -backCoolHeight / 2.0 + mBCoolTubeOutDiam() / 2., -bHalfWidth + (j + 1) * bHalfWidth / 5, 0),
2652  DDRotation());
2653  }
2654  }
2655 
2661  if (0 != backPipeHere() && 0 != iMod) {
2662  DDName bPipeName(ddname(backPipeName() + "_" + std::to_string(iMod + 1)));
2663  DDName bInnerName(ddname(backPipeName() + "_H2O_" + std::to_string(iMod + 1)));
2664 
2665  DDSolid backPipeSolid(
2666  DDSolidFactory::tubs(bPipeName, pipeLength / 2, 0 * mm, vecBackPipeDiam()[iMod] / 2, 0 * deg, 360 * deg));
2667 
2668  DDSolid backInnerSolid(DDSolidFactory::tubs(bInnerName,
2669  pipeLength / 2,
2670  0 * mm,
2671  vecBackPipeDiam()[iMod] / 2 - vecBackPipeThick()[iMod],
2672  0 * deg,
2673  360 * deg));
2674 
2675  const DDLogicalPart backPipeLog(bPipeName, backPipeMat(), backPipeSolid);
2676 
2677  const DDLogicalPart backInnerLog(bInnerName, backPipeWaterMat(), backInnerSolid);
2678 
2679  const DDTranslation bPipeTra1(
2680  backXOff() + backSideHeight() - 0.7 * vecBackPipeDiam()[iMod],
2681  backYOff() + backPlateWidth() / 2 - backSideWidth() - 0.7 * vecBackPipeDiam()[iMod],
2682  pipeZPos);
2683 
2684  cpv.position(backPipeLog, spmName(), copyOne, bPipeTra1, DDRotation());
2685 
2686  const DDTranslation bPipeTra2(bPipeTra1.x(),
2687  backYOff() - backPlateWidth() / 2 + backSideWidth() + vecBackPipeDiam()[iMod],
2688  bPipeTra1.z());
2689 
2690  cpv.position(backPipeLog, spmName(), copyTwo, bPipeTra2, DDRotation());
2691 
2692  cpv.position(backInnerLog, bPipeName, copyOne, DDTranslation(), DDRotation());
2693  }
2699 
2700  //=================================================
2701 
2702  if (0 != dryAirTubeHere()) {
2703  DDName dryAirTubName(ddname(dryAirTubeName() + std::to_string(iMod + 1)));
2704 
2705  DDSolid dryAirTubeSolid(DDSolidFactory::tubs(
2706  dryAirTubName, pipeLength / 2, dryAirTubeInnDiam() / 2, dryAirTubeOutDiam() / 2, 0 * deg, 360 * deg));
2707 
2708  const DDLogicalPart dryAirTubeLog(dryAirTubName, dryAirTubeMat(), dryAirTubeSolid);
2709 
2710  const DDTranslation dryAirTubeTra1(
2711  backXOff() + backSideHeight() - 0.7 * dryAirTubeOutDiam() - vecBackPipeDiam()[iMod],
2712  backYOff() + backPlateWidth() / 2 - backSideWidth() - 1.2 * dryAirTubeOutDiam(),
2713  pipeZPos);
2714 
2715  cpv.position(dryAirTubeLog, spmName(), copyOne, dryAirTubeTra1, DDRotation());
2716 
2717  const DDTranslation dryAirTubeTra2(
2718  dryAirTubeTra1.x(),
2719  backYOff() - backPlateWidth() / 2 + backSideWidth() + 0.7 * dryAirTubeOutDiam(),
2720  dryAirTubeTra1.z());
2721 
2722  cpv.position(dryAirTubeLog, spmName(), copyTwo, dryAirTubeTra2, DDRotation());
2723  }
2724  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2725 
2731 
2732  DDTranslation cTra(backCoolBarHeight() / 2. - backCoolHeight / 2. + bottomThick, 0, -halfZTank + halfZCoolVFE);
2733  const unsigned int numSec(static_cast<unsigned int>(vecBackCoolNSec()[iMod]));
2734  for (unsigned int jSec(0); jSec != numSec; ++jSec) {
2735  const unsigned int nMax(static_cast<unsigned int>(vecBackCoolNPerSec()[iNSec++]));
2736  for (unsigned int iBar(0); iBar != nMax; ++iBar) {
2737  cpv.position(backCoolVFELog, backCName, iCVFECopy++, cTra, DDRotation());
2738  cTra += DDTranslation(0, 0, backCBStdSep());
2739  }
2740  cTra -= DDTranslation(0, 0, backCBStdSep()); // backspace to previous
2741  if (jSec != numSec - 1)
2742  cTra += DDTranslation(0, 0, vecBackCoolSecSep()[iSep++]); // now take atypical step
2743  }
2749  }
2750 
2756 
2762 
2763  double patchHeight(0);
2764  for (unsigned int iPatch(0); iPatch != vecPatchPanelThick().size(); ++iPatch) {
2765  patchHeight += vecPatchPanelThick()[iPatch];
2766  }
2767 
2769  patchHeight / 2.,
2770  backCoolBarWidth() / 2.,
2771  (vecSpmZPts().back() - vecGrilleZOff().back() - grilleThick()) / 2));
2772 
2773  const std::vector<double>& patchParms(patchSolid.parameters());
2774 
2775  const DDLogicalPart patchLog(patchPanelName(), spmMat(), patchSolid);
2776 
2777  const DDTranslation patchTra(backXOff() + 4 * mm, 0 * mm, vecGrilleZOff().back() + grilleThick() + patchParms[2]);
2778  if (0 != patchPanelHere())
2779  cpv.position(patchLog, spmName(), copyOne, patchTra, DDRotation());
2780 
2781  DDTranslation pTra(-patchParms[0], 0, 0);
2782 
2783  for (unsigned int j(0); j != vecPatchPanelNames().size(); ++j) {
2784  const DDName pName(ddname(vecPatchPanelNames()[j]));
2785 
2786  DDSolid pSolid(DDSolidFactory::box(pName, vecPatchPanelThick()[j] / 2., patchParms[1], patchParms[2]));
2787 
2788  const DDLogicalPart pLog(pName, ddmat(vecPatchPanelMat()[j]), pSolid);
2789 
2790  pTra += DDTranslation(vecPatchPanelThick()[j] / 2, 0 * mm, 0 * mm);
2791 
2792  cpv.position(pLog, patchPanelName(), copyOne, pTra, DDRotation());
2793 
2794  pTra += DDTranslation(vecPatchPanelThick()[j] / 2, 0 * mm, 0 * mm);
2795  }
2801 
2807 
2808  if (0 != pincerRodHere()) {
2809  // Make hierarchy of rods, envelopes, blocks, shims, and cutouts
2810 
2811  DDSolid rodSolid(
2812  DDSolidFactory::box(pincerRodName(), pincerEnvWidth() / 2., pincerEnvHeight() / 2., ilyLength / 2));
2813  const DDLogicalPart rodLog(pincerRodName(), pincerRodMat(), rodSolid);
2814 
2815  DDSolid envSolid(
2817  const DDLogicalPart envLog(pincerEnvName(), pincerEnvMat(), envSolid);
2818  const std::vector<double>& envParms(envSolid.parameters());
2819 
2820  DDSolid blkSolid(
2822  const DDLogicalPart blkLog(pincerBlkName(), pincerBlkMat(), blkSolid);
2823  const std::vector<double>& blkParms(blkSolid.parameters());
2824  cpv.position(blkLog,
2825  pincerEnvName(),
2826  copyOne,
2827  DDTranslation(0, 0, pincerEnvLength() / 2 - pincerBlkLength() / 2),
2828  DDRotation());
2829 
2830  DDSolid cutSolid(
2832  const DDLogicalPart cutLog(pincerCutName(), pincerCutMat(), cutSolid);
2833  const std::vector<double>& cutParms(cutSolid.parameters());
2834  cpv.position(
2835  cutLog,
2836  pincerBlkName(),
2837  copyOne,
2838  DDTranslation(
2839  +blkParms[0] - cutParms[0] - pincerShim1Width() + pincerShim2Width(), -blkParms[1] + cutParms[1], 0),
2840  DDRotation());
2841 
2842  DDSolid shim2Solid(DDSolidFactory::box(
2844  const DDLogicalPart shim2Log(pincerShim2Name(), pincerShimMat(), shim2Solid);
2845  const std::vector<double>& shim2Parms(shim2Solid.parameters());
2846  cpv.position(shim2Log,
2847  pincerCutName(),
2848  copyOne,
2849  DDTranslation(+cutParms[0] - shim2Parms[0], -cutParms[1] + shim2Parms[1], 0),
2850  DDRotation());
2851 
2853  pincerShim1Width() / 2.,
2854  pincerShimHeight() / 2.,
2855  (pincerEnvLength() - pincerBlkLength()) / 2));
2856 
2857  const DDLogicalPart shim1Log(pincerShim1Name(), pincerShimMat(), shim1Solid);
2858  const std::vector<double>& shim1Parms(shim1Solid.parameters());
2859  cpv.position(
2860  shim1Log,
2861  pincerEnvName(),
2862  copyOne,
2863  DDTranslation(+envParms[0] - shim1Parms[0], -envParms[1] + shim1Parms[1], -envParms[2] + shim1Parms[2]),
2864  DDRotation());
2865 
2866  for (unsigned int iEnv(0); iEnv != vecPincerEnvZOff().size(); ++iEnv) {
2867  cpv.position(envLog,
2868  pincerRodName(),
2869  1 + iEnv,
2870  DDTranslation(0, 0, -ilyLength / 2. + vecPincerEnvZOff()[iEnv] - pincerEnvLength() / 2.),
2871  DDRotation());
2872  }
2873 
2874  // Place the rods
2875  // const double radius ( fawRadOff() - pincerEnvHeight()/2 -1*mm ) ;
2876  const double radius(ilyRMin - pincerEnvHeight() / 2 - 1 * mm);
2877 
2878  const DDName xilyName(ddname(ilyName() + std::to_string(vecIlyMat().size() - 1)));
2879 
2880  for (unsigned int iRod(0); iRod != vecPincerRodAzimuth().size(); ++iRod) {
2881  const DDTranslation rodTra(
2882  radius * cos(vecPincerRodAzimuth()[iRod]), radius * sin(vecPincerRodAzimuth()[iRod]), 0);
2883 
2884  cpv.position(rodLog,
2885  xilyName,
2886  1 + iRod,
2887  rodTra,
2888  myrot(pincerRodName().name() + std::to_string(iRod),
2889  CLHEP::HepRotationZ(90 * deg + vecPincerRodAzimuth()[iRod])));
2890  }
2891  }
2897  }
2898  }
2899 
2900  LogDebug("EcalGeom") << "******** DDEcalBarrelAlgo test: end it...";
2901 }
2902 
2904 DDRotation DDEcalBarrelAlgo::myrot(const std::string& s, const CLHEP::HepRotation& r) const {
2905  return DDrot(
2906  ddname(m_idNameSpace + ":" + s),
2907  std::make_unique<DDRotationMatrix>(r.xx(), r.xy(), r.xz(), r.yx(), r.yy(), r.yz(), r.zx(), r.zy(), r.zz()));
2908 }
2909 
2911 
2913  const pair<std::string, std::string> temp(DDSplit(s));
2914  if (temp.second.empty()) {
2915  return DDName(temp.first, m_idNameSpace);
2916  } else {
2917  return DDName(temp.first, temp.second);
2918  }
2919 }
2920 
2922  return DDSolidFactory::trap(
2923  ddname(s), t.dz(), t.theta(), t.phi(), t.h1(), t.bl1(), t.tl1(), t.alp1(), t.h2(), t.bl2(), t.tl2(), t.alp2());
2924 }
2925 
2926 void DDEcalBarrelAlgo::web(unsigned int iWeb,
2927  double bWeb,
2928  double BWeb,
2929  double LWeb,
2930  double theta,
2931  const HepGeom::Point3D<double>& corner,
2932  const DDLogicalPart& logPar,
2933  double& zee,
2934  double side,
2935  double front,
2936  double delta,
2937  DDCompactView& cpv) {
2938  const unsigned int copyOne(1);
2939 
2940  const double LWebx(vecWebLength()[iWeb]);
2941 
2942  const double BWebx(bWeb + (BWeb - bWeb) * LWebx / LWeb);
2943 
2944  const double thick(vecWebPlTh()[iWeb] + vecWebClrTh()[iWeb]);
2945  const Trap trapWebClr(BWebx / 2, // A/2
2946  bWeb / 2, // a/2
2947  bWeb / 2, // b/2
2948  thick / 2, // H/2
2949  thick / 2, // h/2
2950  LWebx / 2, // L/2
2951  90 * deg, // alfa1
2952  bWeb - BWebx, // x15
2953  0 // y15
2954  );
2955  const DDName webClrDDName(webClrName() + std::to_string(iWeb));
2956  const DDSolid webClrSolid(mytrap(webClrDDName.name(), trapWebClr));
2957  const DDLogicalPart webClrLog(webClrDDName, webClrMat(), webClrSolid);
2958 
2959  const Trap trapWebPl(trapWebClr.A() / 2, // A/2
2960  trapWebClr.a() / 2, // a/2
2961  trapWebClr.b() / 2, // b/2
2962  vecWebPlTh()[iWeb] / 2, // H/2
2963  vecWebPlTh()[iWeb] / 2, // h/2
2964  trapWebClr.L() / 2., // L/2
2965  90 * deg, // alfa1
2966  trapWebClr.b() - trapWebClr.B(), // x15
2967  0 // y15
2968  );
2969  const DDName webPlDDName(webPlName() + std::to_string(iWeb));
2970  const DDSolid webPlSolid(mytrap(webPlDDName.fullname(), trapWebPl));
2971  const DDLogicalPart webPlLog(webPlDDName, webPlMat(), webPlSolid);
2972 
2973  cpv.position(webPlLog, // place plate inside clearance volume
2974  webClrDDName,
2975  copyOne,
2976  DDTranslation(0, 0, 0),
2977  DDRotation());
2978 
2979  const Trap::VertexList vWeb(trapWebClr.vertexList());
2980 
2981  zee += trapWebClr.h() / sin(theta);
2982 
2983  const double beta(theta + delta);
2984 
2985  const double zWeb(zee - front * cos(beta) + side * sin(beta));
2986  const double yWeb(front * sin(beta) + side * cos(beta));
2987 
2988  const Pt3D wedge3(corner + Pt3D(0, -yWeb, zWeb));
2989  const Pt3D wedge2(wedge3 + Pt3D(0, trapWebClr.h() * cos(theta), -trapWebClr.h() * sin(theta)));
2990  const Pt3D wedge1(wedge3 + Pt3D(trapWebClr.a(), 0, 0));
2991 
2992  LogDebug("EcalGeom") << "trap1=" << vWeb[0] << ", trap2=" << vWeb[2] << ", trap3=" << vWeb[3];
2993 
2994  LogDebug("EcalGeom") << "wedge1=" << wedge1 << ", wedge2=" << wedge2 << ", wedge3=" << wedge3;
2995 
2996  const Tf3D tForm(vWeb[0], vWeb[2], vWeb[3], wedge1, wedge2, wedge3);
2997 
2998  if (0 != webHere())
2999  cpv.position(webClrLog,
3000  logPar,
3001  copyOne,
3002  DDTranslation(tForm.getTranslation().x(), tForm.getTranslation().y(), tForm.getTranslation().z()),
3003  myrot(webClrLog.name().name() + std::to_string(iWeb), tForm.getRotation()));
3004 }
3005 
3007 
3008 DEFINE_EDM_PLUGIN(DDAlgorithmFactory, DDEcalBarrelAlgo, "ecal:DDEcalBarrelAlgo");
DDEcalBarrelAlgo::backCoolBarHere
double backCoolBarHere() const
Definition: DDEcalBarrelAlgo.cc:304
DDEcalBarrelAlgo::m_BackYOff
double m_BackYOff
Definition: DDEcalBarrelAlgo.cc:583
DDEcalBarrelAlgo::wallFrAlv
double wallFrAlv() const
Definition: DDEcalBarrelAlgo.cc:131
DDEcalBarrelAlgo::vecWebClrTh
const std::vector< double > & vecWebClrTh() const
Definition: DDEcalBarrelAlgo.cc:167
DDEcalBarrelAlgo::m_IlyFanOutLength
double m_IlyFanOutLength
Definition: DDEcalBarrelAlgo.cc:542
DDEcalBarrelAlgo::m_idNameSpace
std::string m_idNameSpace
Definition: DDEcalBarrelAlgo.cc:404
DDEcalBarrelAlgo::m_NFawPerSupm
unsigned int m_NFawPerSupm
Definition: DDEcalBarrelAlgo.cc:571
DDEcalBarrelAlgo::m_vecIlyFEMPhi
std::vector< double > m_vecIlyFEMPhi
Definition: DDEcalBarrelAlgo.cc:560
DDEcalBarrelAlgo::RoY3D
HepGeom::RotateY3D RoY3D
Definition: DDEcalBarrelAlgo.cc:41
DDEcalBarrelAlgo::ilyPipeID
double ilyPipeID() const
Definition: DDEcalBarrelAlgo.cc:181
DDEcalBarrelAlgo::m_vecBackCoolNPerSec
std::vector< double > m_vecBackCoolNPerSec
Definition: DDEcalBarrelAlgo.cc:658
DDEcalBarrelAlgo::m_GrilleMat
std::string m_GrilleMat
Definition: DDEcalBarrelAlgo.cc:609
DDEcalBarrelAlgo::wallThAlv
double wallThAlv() const
Definition: DDEcalBarrelAlgo.cc:126
DDEcalBarrelAlgo::ilyPTMName
DDName ilyPTMName() const
Definition: DDEcalBarrelAlgo.cc:187
DDEcalBarrelAlgo::mBCoolTubeHere
double mBCoolTubeHere() const
Definition: DDEcalBarrelAlgo.cc:345
DDEcalBarrelAlgo::backCoolTankName
const std::string & backCoolTankName() const
Definition: DDEcalBarrelAlgo.cc:328
DDEcalBarrelAlgo::m_BackCoolTankName
std::string m_BackCoolTankName
Definition: DDEcalBarrelAlgo.cc:672
DDEcalBarrelAlgo::m_GrMidSlotMat
std::string m_GrMidSlotMat
Definition: DDEcalBarrelAlgo.cc:620
DDEcalBarrelAlgo::ilyBndlName
DDName ilyBndlName() const
Definition: DDEcalBarrelAlgo.cc:208
DDEcalBarrelAlgo::backSideMat
DDMaterial backSideMat() const
Definition: DDEcalBarrelAlgo.cc:252
DDEcalBarrelAlgo::m_SpmCutName
std::string m_SpmCutName
Definition: DDEcalBarrelAlgo.cc:435
DDEcalBarrelAlgo::ilyFanOutMat
DDMaterial ilyFanOutMat() const
Definition: DDEcalBarrelAlgo.cc:198
DDEcalBarrelAlgo::m_SpmCutShow
int m_SpmCutShow
Definition: DDEcalBarrelAlgo.cc:437
DDEcalBarrelAlgo::ilyName
const std::string & ilyName() const
Definition: DDEcalBarrelAlgo.cc:171
DDEcalBarrelAlgo::m_vecSpmBTran
std::vector< double > m_vecSpmBTran
Definition: DDEcalBarrelAlgo.cc:428
DDAxes::y
DDEcalBarrelAlgo::grMidSlotWidth
double grMidSlotWidth() const
Definition: DDEcalBarrelAlgo.cc:279
DDEcalBarrelAlgo::backCoolTankMat
DDMaterial backCoolTankMat() const
Definition: DDEcalBarrelAlgo.cc:331
DDEcalBarrelAlgo::m_GrilleName
std::string m_GrilleName
Definition: DDEcalBarrelAlgo.cc:604
DDEcalBarrelAlgo::vecIlyPTMPhi
const std::vector< double > & vecIlyPTMPhi() const
Definition: DDEcalBarrelAlgo.cc:194
DDEcalBarrelAlgo::backCoolBarSSMat
DDMaterial backCoolBarSSMat() const
Definition: DDEcalBarrelAlgo.cc:310
DDEcalBarrelAlgo::vecBackVFELyrThick
const std::vector< double > & vecBackVFELyrThick() const
Definition: DDEcalBarrelAlgo.cc:319
DDEcalBarrelAlgo::nFawPerSupm
unsigned int nFawPerSupm() const
Definition: DDEcalBarrelAlgo.cc:230
DDEcalBarrelAlgo::m_vecNomCryDimCF
std::vector< double > m_vecNomCryDimCF
Definition: DDEcalBarrelAlgo.cc:455
DDEcalBarrelAlgo::m_vecNomCryDimCR
std::vector< double > m_vecNomCryDimCR
Definition: DDEcalBarrelAlgo.cc:458
DDEcalBarrelAlgo::m_vecNomCryDimBR
std::vector< double > m_vecNomCryDimBR
Definition: DDEcalBarrelAlgo.cc:457
DDCurrentNamespace.h
DDEcalBarrelAlgo::gridName
DDName gridName() const
Definition: DDEcalBarrelAlgo.cc:237
geometryCSVtoXML.zz
zz
Definition: geometryCSVtoXML.py:19
DDEcalBarrelAlgo::gridThick
double gridThick() const
Definition: DDEcalBarrelAlgo.cc:239
DDEcalBarrelAlgo::m_BackPlateWidth
double m_BackPlateWidth
Definition: DDEcalBarrelAlgo.cc:599
DDEcalBarrelAlgo::m_GrMidSlotXOff
double m_GrMidSlotXOff
Definition: DDEcalBarrelAlgo.cc:623
DDTransform.h
DDEcalBarrelAlgo::m_IlyName
std::string m_IlyName
Definition: DDEcalBarrelAlgo.cc:513
DDEcalBarrelAlgo::hawRHBIG
double hawRHBIG() const
Definition: DDEcalBarrelAlgo.cc:223
MessageLogger.h
DDEcalBarrelAlgo::fawHere
double fawHere() const
Definition: DDEcalBarrelAlgo.cc:222
DDEcalBarrelAlgo::m_PincerEnvMat
std::string m_PincerEnvMat
Definition: DDEcalBarrelAlgo.cc:712
DDEcalBarrelAlgo::m_PincerCutMat
std::string m_PincerCutMat
Definition: DDEcalBarrelAlgo.cc:730
DDEcalBarrelAlgo::ilyPipeHere
double ilyPipeHere() const
Definition: DDEcalBarrelAlgo.cc:178
DDEcalBarrelAlgo::m_PatchPanelHere
double m_PatchPanelHere
Definition: DDEcalBarrelAlgo.cc:665
DDEcalBarrelAlgo::m_WallFrAlv
double m_WallFrAlv
Definition: DDEcalBarrelAlgo.cc:473
DDrot
DDRotation DDrot(const DDName &name, std::unique_ptr< DDRotationMatrix > rot)
Definition of a uniquely identifiable rotation matrix named by DDName name.
Definition: DDRotation.cc:67
DDEcalBarrelAlgo::m_BackCoolVFEMat
std::string m_BackCoolVFEMat
Definition: DDEcalBarrelAlgo.cc:650
EcalTrapezoidParameters
Definition: EcalTrapezoidParameters.h:62
DDEcalBarrelAlgo::backSideHeight
double backSideHeight() const
Definition: DDEcalBarrelAlgo.cc:247
DDEcalBarrelAlgo::grilleHere
double grilleHere() const
Definition: DDEcalBarrelAlgo.cc:264
DDEcalBarrelAlgo::m_BackCoolBarThick
double m_BackCoolBarThick
Definition: DDEcalBarrelAlgo.cc:640
DDEcalBarrelAlgo::m_vecMBLyrThick
std::vector< double > m_vecMBLyrThick
Definition: DDEcalBarrelAlgo.cc:700
DDEcalBarrelAlgo::m_SpmCutThick
double m_SpmCutThick
Definition: DDEcalBarrelAlgo.cc:436
DDEcalBarrelAlgo::m_vecIlyMat
std::vector< std::string > m_vecIlyMat
Definition: DDEcalBarrelAlgo.cc:516
DDEcalBarrelAlgo::grMidSlotHere
double grMidSlotHere() const
Definition: DDEcalBarrelAlgo.cc:278
DDEcalBarrelAlgo::pincerShimMat
DDMaterial pincerShimMat() const
Definition: DDEcalBarrelAlgo.cc:380
DDEcalBarrelAlgo::m_WebHere
double m_WebHere
Definition: DDEcalBarrelAlgo.cc:503
DDEcalBarrelAlgo::m_IlyFanOutMat
std::string m_IlyFanOutMat
Definition: DDEcalBarrelAlgo.cc:540
DDEcalBarrelAlgo::m_IlyDelPhi
double m_IlyDelPhi
Definition: DDEcalBarrelAlgo.cc:515
DDEcalBarrelAlgo::m_IlyPTMMat
std::string m_IlyPTMMat
Definition: DDEcalBarrelAlgo.cc:531
DDEcalBarrelAlgo::m_NCryTypes
unsigned int m_NCryTypes
Definition: DDEcalBarrelAlgo.cc:481
DDEcalBarrelAlgo::backPlateLength
double backPlateLength() const
Definition: DDEcalBarrelAlgo.cc:255
DDEcalBarrelAlgo::m_PincerBlkMat
std::string m_PincerBlkMat
Definition: DDEcalBarrelAlgo.cc:719
DDEcalBarrelAlgo::vecBarZPts
const std::vector< double > & vecBarZPts() const
Definition: DDEcalBarrelAlgo.cc:68
DDEcalBarrelAlgo::m_SpmCutRP
double m_SpmCutRP
Definition: DDEcalBarrelAlgo.cc:441
DDEcalBarrelAlgo::m_MBManifOutDiam
double m_MBManifOutDiam
Definition: DDEcalBarrelAlgo.cc:697
DDEcalBarrelAlgo::vecNomCryDimBF
const std::vector< double > & vecNomCryDimBF() const
Definition: DDEcalBarrelAlgo.cc:112
DDEcalBarrelAlgo::fawName
DDName fawName() const
Definition: DDEcalBarrelAlgo.cc:221
DDEcalBarrelAlgo::pincerRodName
DDName pincerRodName() const
Definition: DDEcalBarrelAlgo.cc:363
DDEcalBarrelAlgo::wallReAlv
double wallReAlv() const
Definition: DDEcalBarrelAlgo.cc:135
DDName
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
DDEcalBarrelAlgo::mBCoolTubeInnDiam
double mBCoolTubeInnDiam() const
Definition: DDEcalBarrelAlgo.cc:347
DDEcalBarrelAlgo::m_vecBackPipeThick
std::vector< double > m_vecBackPipeThick
Definition: DDEcalBarrelAlgo.cc:629
DDEcalBarrelAlgo::spmSideMat
DDMaterial spmSideMat() const
Definition: DDEcalBarrelAlgo.cc:104
DDEcalBarrelAlgo::ilyFanOutHeight
double ilyFanOutHeight() const
Definition: DDEcalBarrelAlgo.cc:201
DDEcalBarrelAlgo::spmName
DDName spmName() const
Definition: DDEcalBarrelAlgo.cc:79
DDEcalBarrelAlgo::backSideAngle
double backSideAngle() const
Definition: DDEcalBarrelAlgo.cc:251
DDEcalBarrelAlgo::m_UnderBF
double m_UnderBF
Definition: DDEcalBarrelAlgo.cc:462
DDEcalBarrelAlgo::m_PincerBlkName
std::string m_PincerBlkName
Definition: DDEcalBarrelAlgo.cc:718
DDEcalBarrelAlgo::m_vecIlyFEMZ
std::vector< double > m_vecIlyFEMZ
Definition: DDEcalBarrelAlgo.cc:559
DDEcalBarrelAlgo::ilyPipeMat
DDMaterial ilyPipeMat() const
Definition: DDEcalBarrelAlgo.cc:179
DDEcalBarrelAlgo::m_APDMat
std::string m_APDMat
Definition: DDEcalBarrelAlgo.cc:496
DDEcalBarrelAlgo::m_FawDelPhi
double m_FawDelPhi
Definition: DDEcalBarrelAlgo.cc:573
EcalTrapezoidParameters::bl1
TPFloat bl1() const
Definition: EcalTrapezoidParameters.cc:147
DDEcalBarrelAlgo::m_BackSideYOff2
double m_BackSideYOff2
Definition: DDEcalBarrelAlgo.cc:592
DDEcalBarrelAlgo::m_MBCoolTubeMat
std::string m_MBCoolTubeMat
Definition: DDEcalBarrelAlgo.cc:693
DDEcalBarrelAlgo::grEdgeSlotHeight
double grEdgeSlotHeight() const
Definition: DDEcalBarrelAlgo.cc:274
DDEcalBarrelAlgo::m_BackCoolBarWaMat
std::string m_BackCoolBarWaMat
Definition: DDEcalBarrelAlgo.cc:647
DDEcalBarrelAlgo::wallMat
DDMaterial wallMat() const
Definition: DDEcalBarrelAlgo.cc:150
DDEcalBarrelAlgo::vecIlyFanOutZ
const std::vector< double > & vecIlyFanOutZ() const
Definition: DDEcalBarrelAlgo.cc:202
zMuMuMuonUserData.beta
beta
Definition: zMuMuMuonUserData.py:10
DDEcalBarrelAlgo::m_IlyDiffLength
double m_IlyDiffLength
Definition: DDEcalBarrelAlgo.cc:549
DDEcalBarrelAlgo::m_IlyFEMName
std::string m_IlyFEMName
Definition: DDEcalBarrelAlgo.cc:554
DDEcalBarrelAlgo::ilyDiffName
DDName ilyDiffName() const
Definition: DDEcalBarrelAlgo.cc:204
DDEcalBarrelAlgo::webHere
double webHere() const
Definition: DDEcalBarrelAlgo.cc:161
DDEcalBarrelAlgo::spmCutRM
double spmCutRM() const
Definition: DDEcalBarrelAlgo.cc:96
DDEcalBarrelAlgo::webPlMat
DDMaterial webPlMat() const
Definition: DDEcalBarrelAlgo.cc:164
DDEcalBarrelAlgo::hawRhsml
double hawRhsml() const
Definition: DDEcalBarrelAlgo.cc:224
DDEcalBarrelAlgo::m_MBManifHere
double m_MBManifHere
Definition: DDEcalBarrelAlgo.cc:694
DDEcalBarrelAlgo::ilyDiffOff
double ilyDiffOff() const
Definition: DDEcalBarrelAlgo.cc:206
DDEcalBarrelAlgo::backCoolTankThick
double backCoolTankThick() const
Definition: DDEcalBarrelAlgo.cc:330
DDSplit.h
DDEcalBarrelAlgo::m_CryMat
std::string m_CryMat
Definition: DDEcalBarrelAlgo.cc:489
DDEcalBarrelAlgo::m_UnderAF
double m_UnderAF
Definition: DDEcalBarrelAlgo.cc:460
DDEcalBarrelAlgo::vecSpmRota
const std::vector< double > & vecSpmRota() const
Definition: DDEcalBarrelAlgo.cc:85
DDEcalBarrelAlgo::m_HawRName
std::string m_HawRName
Definition: DDEcalBarrelAlgo.cc:562
DDEcalBarrelAlgo::clrFrAlv
double clrFrAlv() const
Definition: DDEcalBarrelAlgo.cc:133
DDEcalBarrelAlgo::m_vecWebPlTh
std::vector< double > m_vecWebPlTh
Definition: DDEcalBarrelAlgo.cc:508
EcalTrapezoidParameters::vertexList
VertexList vertexList() const
Definition: EcalTrapezoidParameters.cc:175
DDEcalBarrelAlgo::m_IlyBndlLength
double m_IlyBndlLength
Definition: DDEcalBarrelAlgo.cc:553
DDEcalBarrelAlgo::m_vecIlyPipeType
std::vector< double > m_vecIlyPipeType
Definition: DDEcalBarrelAlgo.cc:525
DDEcalBarrelAlgo::dryAirTubeMat
DDMaterial dryAirTubeMat() const
Definition: DDEcalBarrelAlgo.cc:344
DDEcalBarrelAlgo::m_vecMBLyrMat
std::vector< std::string > m_vecMBLyrMat
Definition: DDEcalBarrelAlgo.cc:702
DDEcalBarrelAlgo::spmCutRP
double spmCutRP() const
Definition: DDEcalBarrelAlgo.cc:97
DDEcalBarrelAlgo::m_BackCoolTankWidth
double m_BackCoolTankWidth
Definition: DDEcalBarrelAlgo.cc:673
DDEcalBarrelAlgo::pincerShim1Width
double pincerShim1Width() const
Definition: DDEcalBarrelAlgo.cc:381
DDEcalBarrelAlgo::m_WebClrName
std::string m_WebClrName
Definition: DDEcalBarrelAlgo.cc:505
distTCMET_cfi.corner
corner
Definition: distTCMET_cfi.py:38
DDEcalBarrelAlgo::m_SpmSideYOffP
double m_SpmSideYOffP
Definition: DDEcalBarrelAlgo.cc:450
DDEcalBarrelAlgo::m_BackVFEMat
std::string m_BackVFEMat
Definition: DDEcalBarrelAlgo.cc:652
DDEcalBarrelAlgo::vecBarRMin
const std::vector< double > & vecBarRMin() const
Definition: DDEcalBarrelAlgo.cc:69
reco::HaloData::both
Definition: HaloData.h:14
DDEcalBarrelAlgo::m_UnderLZ
double m_UnderLZ
Definition: DDEcalBarrelAlgo.cc:461
DDEcalBarrelAlgo::vecBarRota
const std::vector< double > & vecBarRota() const
Definition: DDEcalBarrelAlgo.cc:72
DDEcalBarrelAlgo::vecSpmZPts
const std::vector< double > & vecSpmZPts() const
Definition: DDEcalBarrelAlgo.cc:81
DDEcalBarrelAlgo::patchPanelHere
double patchPanelHere() const
Definition: DDEcalBarrelAlgo.cc:293
DDEcalBarrelAlgo::m_HawRCutZ
double m_HawRCutZ
Definition: DDEcalBarrelAlgo.cc:568
DDEcalBarrelAlgo::backCoolTankWaWidth
double backCoolTankWaWidth() const
Definition: DDEcalBarrelAlgo.cc:333
DDEcalBarrelAlgo::vecNomCryDimCR
const std::vector< double > & vecNomCryDimCR() const
Definition: DDEcalBarrelAlgo.cc:116
CustomPhysics_cfi.gamma
gamma
Definition: CustomPhysics_cfi.py:17
DDEcalBarrelAlgo::ilyPTMWidth
double ilyPTMWidth() const
Definition: DDEcalBarrelAlgo.cc:190
DDEcalBarrelAlgo::backVFEName
DDName backVFEName() const
Definition: DDEcalBarrelAlgo.cc:317
DDEcalBarrelAlgo::m_BackCoolBarMat
std::string m_BackCoolBarMat
Definition: DDEcalBarrelAlgo.cc:641
DDEcalBarrelAlgo::m_MBManifName
std::string m_MBManifName
Definition: DDEcalBarrelAlgo.cc:695
DDEcalBarrelAlgo::apdMat
DDMaterial apdMat() const
Definition: DDEcalBarrelAlgo.cc:154
DDEcalBarrelAlgo::vecPincerEnvZOff
std::vector< double > vecPincerEnvZOff() const
Definition: DDEcalBarrelAlgo.cc:371
DDEcalBarrelAlgo::spmExpWide
double spmExpWide() const
Definition: DDEcalBarrelAlgo.cc:101
DDEcalBarrelAlgo::spmCutShow
int spmCutShow() const
Definition: DDEcalBarrelAlgo.cc:95
DDEcalBarrelAlgo::vecIlyPipePhi
const std::vector< double > & vecIlyPipePhi() const
Definition: DDEcalBarrelAlgo.cc:184
DDEcalBarrelAlgo::m_ClrFrAlv
double m_ClrFrAlv
Definition: DDEcalBarrelAlgo.cc:475
DDEcalBarrelAlgo::ddmat
DDMaterial ddmat(const std::string &s) const
Definition: DDEcalBarrelAlgo.cc:2910
DDEcalBarrelAlgo::m_WallReAlv
double m_WallReAlv
Definition: DDEcalBarrelAlgo.cc:477
DDEcalBarrelAlgo::pincerBlkMat
DDMaterial pincerBlkMat() const
Definition: DDEcalBarrelAlgo.cc:374
DDEcalBarrelAlgo::ilyFEMMat
DDMaterial ilyFEMMat() const
Definition: DDEcalBarrelAlgo.cc:213
DDEcalBarrelAlgo::apdHere
double apdHere() const
Definition: DDEcalBarrelAlgo.cc:153
DDEcalBarrelAlgo::vecGrilleHeight
const std::vector< double > & vecGrilleHeight() const
Definition: DDEcalBarrelAlgo.cc:268
DDEcalBarrelAlgo::grEdgeSlotName
DDName grEdgeSlotName() const
Definition: DDEcalBarrelAlgo.cc:271
DDEcalBarrelAlgo::m_DryAirTubeOutDiam
double m_DryAirTubeOutDiam
Definition: DDEcalBarrelAlgo.cc:687
DDEcalBarrelAlgo::m_SpmLowPhi
double m_SpmLowPhi
Definition: DDEcalBarrelAlgo.cc:431
DDAxes::x
DDEcalBarrelAlgo::m_GrilleHere
double m_GrilleHere
Definition: DDEcalBarrelAlgo.cc:605
DDEcalBarrelAlgo::mBCoolTubeName
const std::string & mBCoolTubeName() const
Definition: DDEcalBarrelAlgo.cc:346
DDEcalBarrelAlgo::vecPatchPanelNames
const std::vector< std::string > & vecPatchPanelNames() const
Definition: DDEcalBarrelAlgo.cc:295
DDEcalBarrelAlgo::m_MBCoolTubeHere
double m_MBCoolTubeHere
Definition: DDEcalBarrelAlgo.cc:689
DDEcalBarrelAlgo::underBF
double underBF() const
Definition: DDEcalBarrelAlgo.cc:120
DDEcalBarrelAlgo::m_BackSideHeight
double m_BackSideHeight
Definition: DDEcalBarrelAlgo.cc:589
DDEcalBarrelAlgo::m_BackCoolVFEHere
double m_BackCoolVFEHere
Definition: DDEcalBarrelAlgo.cc:648
DDEcalBarrelAlgo::webClrMat
DDMaterial webClrMat() const
Definition: DDEcalBarrelAlgo.cc:165
DDEcalBarrelAlgo::pincerShim2Width
double pincerShim2Width() const
Definition: DDEcalBarrelAlgo.cc:382
DDEcalBarrelAlgo::spmDelPhi
double spmDelPhi() const
Definition: DDEcalBarrelAlgo.cc:90
DDEcalBarrelAlgo::m_BackBracketHeight
double m_BackBracketHeight
Definition: DDEcalBarrelAlgo.cc:680
DDEcalBarrelAlgo::m_IlyPipeMat
std::string m_IlyPipeMat
Definition: DDEcalBarrelAlgo.cc:521
DDEcalBarrelAlgo::mBManifMat
DDMaterial mBManifMat() const
Definition: DDEcalBarrelAlgo.cc:354
DDEcalBarrelAlgo::m_WrapMat
std::string m_WrapMat
Definition: DDEcalBarrelAlgo.cc:491
DDEcalBarrelAlgo::ilyFanOutWidth
double ilyFanOutWidth() const
Definition: DDEcalBarrelAlgo.cc:199
DDEcalBarrelAlgo::wrapReAlv
double wrapReAlv() const
Definition: DDEcalBarrelAlgo.cc:136
b2
static constexpr float b2
Definition: L1EGammaCrystalsEmulatorProducer.cc:83
DDEcalBarrelAlgo::barPhiHi
double barPhiHi() const
Definition: DDEcalBarrelAlgo.cc:76
DDEcalBarrelAlgo::underLZ
double underLZ() const
Definition: DDEcalBarrelAlgo.cc:119
DDEcalBarrelAlgo::mBManifOutDiam
double mBManifOutDiam() const
Definition: DDEcalBarrelAlgo.cc:353
DDEcalBarrelAlgo::clrMat
DDMaterial clrMat() const
Definition: DDEcalBarrelAlgo.cc:148
DDEcalBarrelAlgo::m_IlyPTMLength
double m_IlyPTMLength
Definition: DDEcalBarrelAlgo.cc:533
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
DDEcalBarrelAlgo::backCoolBarHeight
double backCoolBarHeight() const
Definition: DDEcalBarrelAlgo.cc:302
DDEcalBarrelAlgo::m_PatchPanelName
std::string m_PatchPanelName
Definition: DDEcalBarrelAlgo.cc:666
DDEcalBarrelAlgo::m_vecNomCryDimBF
std::vector< double > m_vecNomCryDimBF
Definition: DDEcalBarrelAlgo.cc:454
DDEcalBarrelAlgo::m_PincerShimHeight
double m_PincerShimHeight
Definition: DDEcalBarrelAlgo.cc:723
DDEcalBarrelAlgo::m_BackCoolTankWaMat
std::string m_BackCoolTankWaMat
Definition: DDEcalBarrelAlgo.cc:678
DDEcalBarrelAlgo::spmSideYOffP
double spmSideYOffP() const
Definition: DDEcalBarrelAlgo.cc:108
DDEcalBarrelAlgo::m_IlyFanOutWidth
double m_IlyFanOutWidth
Definition: DDEcalBarrelAlgo.cc:541
DDEcalBarrelAlgo::Tf3D
HepGeom::Transform3D Tf3D
Definition: DDEcalBarrelAlgo.cc:36
DDEcalBarrelAlgo::m_vecIlyThick
std::vector< double > m_vecIlyThick
Definition: DDEcalBarrelAlgo.cc:517
DDEcalBarrelAlgo::apdName
DDName apdName() const
Definition: DDEcalBarrelAlgo.cc:152
DDEcalBarrelAlgo::m_IlyDiffOff
double m_IlyDiffOff
Definition: DDEcalBarrelAlgo.cc:548
EcalTrapezoidParameters::a
TPFloat a() const
Definition: EcalTrapezoidParameters.cc:164
DDEcalBarrelAlgo::m_IlyPipeOD
double m_IlyPipeOD
Definition: DDEcalBarrelAlgo.cc:522
DDEcalBarrelAlgo::ilyFEMHeight
double ilyFEMHeight() const
Definition: DDEcalBarrelAlgo.cc:216
DDEcalBarrelAlgo::backCoolBarWaName
DDName backCoolBarWaName() const
Definition: DDEcalBarrelAlgo.cc:311
DDEcalBarrelAlgo::barName
DDName barName() const
Definition: DDEcalBarrelAlgo.cc:66
DDEcalBarrelAlgo::m_vecSpmHere
std::vector< double > m_vecSpmHere
Definition: DDEcalBarrelAlgo.cc:434
DDEcalBarrelAlgo::vecPincerRodAzimuth
std::vector< double > vecPincerRodAzimuth() const
Definition: DDEcalBarrelAlgo.cc:365
DDEcalBarrelAlgo::m_PincerCutHeight
double m_PincerCutHeight
Definition: DDEcalBarrelAlgo.cc:732
DDEcalBarrelAlgo::clrReAlv
double clrReAlv() const
Definition: DDEcalBarrelAlgo.cc:137
DDEcalBarrelAlgo::vecIlyPipeType
const std::vector< double > & vecIlyPipeType() const
Definition: DDEcalBarrelAlgo.cc:183
DDEcalBarrelAlgo::m_BackSideLength
double m_BackSideLength
Definition: DDEcalBarrelAlgo.cc:588
DDEcalBarrelAlgo::DDEcalBarrelAlgo
DDEcalBarrelAlgo()
Definition: DDEcalBarrelAlgo.cc:738
DDEcalBarrelAlgo::m_vecBarRMin
std::vector< double > m_vecBarRMin
Definition: DDEcalBarrelAlgo.cc:410
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
DDEcalBarrelAlgo::m_BackCoolTankWaWidth
double m_BackCoolTankWaWidth
Definition: DDEcalBarrelAlgo.cc:677
DDEcalBarrelAlgo::pincerEnvMat
DDMaterial pincerEnvMat() const
Definition: DDEcalBarrelAlgo.cc:367
DDEcalBarrelAlgo::pincerShim1Name
DDName pincerShim1Name() const
Definition: DDEcalBarrelAlgo.cc:377
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
Pt3D
CaloCellGeometry::Pt3D Pt3D
Definition: CaloCellGeometry.cc:5
DDEcalBarrelAlgo::backPlateWidth
double backPlateWidth() const
Definition: DDEcalBarrelAlgo.cc:257
DDEcalBarrelAlgo::m_APDSide
double m_APDSide
Definition: DDEcalBarrelAlgo.cc:497
DDEcalBarrelAlgo::m_SpmCutRM
double m_SpmCutRM
Definition: DDEcalBarrelAlgo.cc:440
DDEcalBarrelAlgo::m_UnderCR
double m_UnderCR
Definition: DDEcalBarrelAlgo.cc:466
DDEcalBarrelAlgo::m_vecBarRota3
std::vector< double > m_vecBarRota3
Definition: DDEcalBarrelAlgo.cc:415
DDEcalBarrelAlgo::m_BackPlateMat
std::string m_BackPlateMat
Definition: DDEcalBarrelAlgo.cc:600
DDEcalBarrelAlgo::m_BackCoolTankWaName
std::string m_BackCoolTankWaName
Definition: DDEcalBarrelAlgo.cc:676
DDEcalBarrelAlgo::m_SpmName
std::string m_SpmName
Definition: DDEcalBarrelAlgo.cc:421
DDEcalBarrelAlgo::m_vecBarTran
std::vector< double > m_vecBarTran
Definition: DDEcalBarrelAlgo.cc:412
b1
static constexpr float b1
Definition: L1EGammaCrystalsEmulatorProducer.cc:83
DDEcalBarrelAlgo::backPipeHere
double backPipeHere() const
Definition: DDEcalBarrelAlgo.cc:283
DDEcalBarrelAlgo::m_SpmSideHigh
double m_SpmSideHigh
Definition: DDEcalBarrelAlgo.cc:447
DDEcalBarrelAlgo::hawYOffCry
double hawYOffCry() const
Definition: DDEcalBarrelAlgo.cc:228
DDEcalBarrelAlgo::m_vecIlyFanOutZ
std::vector< double > m_vecIlyFanOutZ
Definition: DDEcalBarrelAlgo.cc:544
DDEcalBarrelAlgo::fawDelPhi
double fawDelPhi() const
Definition: DDEcalBarrelAlgo.cc:232
alignCSCRings.s
s
Definition: alignCSCRings.py:92
DDEcalBarrelAlgo::grMidSlotXOff
double grMidSlotXOff() const
Definition: DDEcalBarrelAlgo.cc:280
DDEcalBarrelAlgo::m_FawPhiOff
double m_FawPhiOff
Definition: DDEcalBarrelAlgo.cc:572
DDEcalBarrelAlgo::backCoolBarSSName
DDName backCoolBarSSName() const
Definition: DDEcalBarrelAlgo.cc:308
DDMaterial
DDMaterial is used to define and access material information.
Definition: DDMaterial.h:45
DDSolidFactory::subtraction
static DDSolid subtraction(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
Definition: DDSolid.cc:585
DDEcalBarrelAlgo::m_vecIlyFanOutPhi
std::vector< double > m_vecIlyFanOutPhi
Definition: DDEcalBarrelAlgo.cc:545
DDEcalBarrelAlgo::m_PincerEnvName
std::string m_PincerEnvName
Definition: DDEcalBarrelAlgo.cc:711
DDEcalBarrelAlgo::apdX1
double apdX1() const
Definition: DDEcalBarrelAlgo.cc:158
DDEcalBarrelAlgo
Definition: DDEcalBarrelAlgo.cc:32
DDEcalBarrelAlgo::m_SpmMat
std::string m_SpmMat
Definition: DDEcalBarrelAlgo.cc:422
DDEcalBarrelAlgo::mBManifName
DDName mBManifName() const
Definition: DDEcalBarrelAlgo.cc:351
DDEcalBarrelAlgo::m_BarPhiLo
double m_BarPhiLo
Definition: DDEcalBarrelAlgo.cc:416
DDEcalBarrelAlgo::backCoolBarName
DDName backCoolBarName() const
Definition: DDEcalBarrelAlgo.cc:305
DDEcalBarrelAlgo::grMidSlotMat
DDMaterial grMidSlotMat() const
Definition: DDEcalBarrelAlgo.cc:277
EcalTrapezoidParameters::B
TPFloat B() const
Definition: EcalTrapezoidParameters.cc:170
DDEcalBarrelAlgo::backCoolTankWaName
const std::string & backCoolTankWaName() const
Definition: DDEcalBarrelAlgo.cc:332
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
DDEcalBarrelAlgo::vecSpmCutTP
const std::vector< double > & vecSpmCutTP() const
Definition: DDEcalBarrelAlgo.cc:99
DDEcalBarrelAlgo::m_IlyDiffName
std::string m_IlyDiffName
Definition: DDEcalBarrelAlgo.cc:546
DDEcalBarrelAlgo::m_ClrReAlv
double m_ClrReAlv
Definition: DDEcalBarrelAlgo.cc:479
DDEcalBarrelAlgo::backCoolBarWaThick
double backCoolBarWaThick() const
Definition: DDEcalBarrelAlgo.cc:312
DDEcalBarrelAlgo::m_SpmSideMat
std::string m_SpmSideMat
Definition: DDEcalBarrelAlgo.cc:446
DDEcalBarrelAlgo::backPlateHere
double backPlateHere() const
Definition: DDEcalBarrelAlgo.cc:254
DDEcalBarrelAlgo::vecBackVFELyrMat
const std::vector< std::string > & vecBackVFELyrMat() const
Definition: DDEcalBarrelAlgo.cc:321
DDEcalBarrelAlgo::m_vecWebLength
std::vector< double > m_vecWebLength
Definition: DDEcalBarrelAlgo.cc:510
DDEcalBarrelAlgo::m_PincerEnvWidth
double m_PincerEnvWidth
Definition: DDEcalBarrelAlgo.cc:713
DDEcalBarrelAlgo::m_MBCoolTubeNum
unsigned int m_MBCoolTubeNum
Definition: DDEcalBarrelAlgo.cc:685
DDEcalBarrelAlgo::m_IlyFEMWidth
double m_IlyFEMWidth
Definition: DDEcalBarrelAlgo.cc:556
DDEcalBarrelAlgo::m_GrMidSlotWidth
double m_GrMidSlotWidth
Definition: DDEcalBarrelAlgo.cc:622
DDEcalBarrelAlgo::webClrName
const std::string & webClrName() const
Definition: DDEcalBarrelAlgo.cc:163
DDEcalBarrelAlgo::m_BackPlateThick
double m_BackPlateThick
Definition: DDEcalBarrelAlgo.cc:598
DDEcalBarrelAlgo::m_APDThick
double m_APDThick
Definition: DDEcalBarrelAlgo.cc:498
DDEcalBarrelAlgo::m_IlyFanOutHere
double m_IlyFanOutHere
Definition: DDEcalBarrelAlgo.cc:539
DDEcalBarrelAlgo::m_BackCBStdSep
double m_BackCBStdSep
Definition: DDEcalBarrelAlgo.cc:663
DDTranslation
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
DDEcalBarrelAlgo::m_vecSpmRMax
std::vector< double > m_vecSpmRMax
Definition: DDEcalBarrelAlgo.cc:425
DDEcalBarrelAlgo::hawRCutY
double hawRCutY() const
Definition: DDEcalBarrelAlgo.cc:225
DDEcalBarrelAlgo::vecIlyThick
const std::vector< double > & vecIlyThick() const
Definition: DDEcalBarrelAlgo.cc:175
DDEcalBarrelAlgo::m_PincerBlkLength
double m_PincerBlkLength
Definition: DDEcalBarrelAlgo.cc:720
DDEcalBarrelAlgo::pincerEnvName
DDName pincerEnvName() const
Definition: DDEcalBarrelAlgo.cc:366
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDEcalBarrelAlgo::m_IlyFEMHeight
double m_IlyFEMHeight
Definition: DDEcalBarrelAlgo.cc:558
DDCompactView
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
DDEcalBarrelAlgo::RfZ3D
HepGeom::ReflectZ3D RfZ3D
Definition: DDEcalBarrelAlgo.cc:37
DDEcalBarrelAlgo::vecBackMiscMat
const std::vector< std::string > & vecBackMiscMat() const
Definition: DDEcalBarrelAlgo.cc:292
DDEcalBarrelAlgo::m_GrEdgeSlotName
std::string m_GrEdgeSlotName
Definition: DDEcalBarrelAlgo.cc:613
DDEcalBarrelAlgo::m_GrEdgeSlotHeight
double m_GrEdgeSlotHeight
Definition: DDEcalBarrelAlgo.cc:616
DDEcalBarrelAlgo::m_vecIlyPTMPhi
std::vector< double > m_vecIlyPTMPhi
Definition: DDEcalBarrelAlgo.cc:536
DDEcalBarrelAlgo::m_GrilleZSpace
double m_GrilleZSpace
Definition: DDEcalBarrelAlgo.cc:608
DDBase::name
const N & name() const
Definition: DDBase.h:59
DDEcalBarrelAlgo::pincerCutWidth
double pincerCutWidth() const
Definition: DDEcalBarrelAlgo.cc:386
DDAxes::z
DDEcalBarrelAlgo::spmCutThick
double spmCutThick() const
Definition: DDEcalBarrelAlgo.cc:94
DDEcalBarrelAlgo::execute
void execute(DDCompactView &cpv) override
Definition: DDEcalBarrelAlgo.cc:1381
DDEcalBarrelAlgo::m_vecMBLyrName
std::vector< std::string > m_vecMBLyrName
Definition: DDEcalBarrelAlgo.cc:701
DDEcalBarrelAlgo::m_vecIlyPipeLength
std::vector< double > m_vecIlyPipeLength
Definition: DDEcalBarrelAlgo.cc:524
DDEcalBarrelAlgo::pincerEnvWidth
double pincerEnvWidth() const
Definition: DDEcalBarrelAlgo.cc:368
DDEcalBarrelAlgo::m_APDX1
double m_APDX1
Definition: DDEcalBarrelAlgo.cc:500
DDEcalBarrelAlgo::vecNomCryDimAR
const std::vector< double > & vecNomCryDimAR() const
Definition: DDEcalBarrelAlgo.cc:114
DDEcalBarrelAlgo::m_IlyPipeHere
double m_IlyPipeHere
Definition: DDEcalBarrelAlgo.cc:520
DDEcalBarrelAlgo::m_MBCoolTubeInnDiam
double m_MBCoolTubeInnDiam
Definition: DDEcalBarrelAlgo.cc:691
DDEcalBarrelAlgo::underCR
double underCR() const
Definition: DDEcalBarrelAlgo.cc:124
DDEcalBarrelAlgo::ilyHere
double ilyHere() const
Definition: DDEcalBarrelAlgo.cc:170
DDEcalBarrelAlgo::m_HawRhsml
double m_HawRhsml
Definition: DDEcalBarrelAlgo.cc:566
DDEcalBarrelAlgo::m_GrEdgeSlotWidth
double m_GrEdgeSlotWidth
Definition: DDEcalBarrelAlgo.cc:617
DDEcalBarrelAlgo::m_vecIlyPipeZ
std::vector< double > m_vecIlyPipeZ
Definition: DDEcalBarrelAlgo.cc:527
DDSolidFactory::tubs
static DDSolid tubs(const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
Definition: DDSolid.cc:653
DDEcalBarrelAlgo::m_BackPipeMat
std::string m_BackPipeMat
Definition: DDEcalBarrelAlgo.cc:630
DDSolid.h
DDEcalBarrelAlgo::pincerRodHere
double pincerRodHere() const
Definition: DDEcalBarrelAlgo.cc:362
DDEcalBarrelAlgo::m_PincerRodHere
double m_PincerRodHere
Definition: DDEcalBarrelAlgo.cc:706
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
DDEcalBarrelAlgo::m_vecPatchPanelMat
std::vector< std::string > m_vecPatchPanelMat
Definition: DDEcalBarrelAlgo.cc:669
DDEcalBarrelAlgo::ilyBndlLength
double ilyBndlLength() const
Definition: DDEcalBarrelAlgo.cc:211
DDEcalBarrelAlgo::backCoolBarSSThick
double backCoolBarSSThick() const
Definition: DDEcalBarrelAlgo.cc:309
DDEcalBarrelAlgo::webPlName
const std::string & webPlName() const
Definition: DDEcalBarrelAlgo.cc:162
DDEcalBarrelAlgo::backSideYOff2
double backSideYOff2() const
Definition: DDEcalBarrelAlgo.cc:250
DDEcalBarrelAlgo::grEdgeSlotWidth
double grEdgeSlotWidth() const
Definition: DDEcalBarrelAlgo.cc:275
DDEcalBarrelAlgo::m_APDName
std::string m_APDName
Definition: DDEcalBarrelAlgo.cc:494
DDEcalBarrelAlgo::cryName
const std::string & cryName() const
Definition: DDEcalBarrelAlgo.cc:142
DDEcalBarrelAlgo::vecSpmBRota
const std::vector< double > & vecSpmBRota() const
Definition: DDEcalBarrelAlgo.cc:87
DDEcalBarrelAlgo::underBR
double underBR() const
Definition: DDEcalBarrelAlgo.cc:123
DDEcalBarrelAlgo::clrThAlv
double clrThAlv() const
Definition: DDEcalBarrelAlgo.cc:128
DDEcalBarrelAlgo::vecGrilleZOff
const std::vector< double > & vecGrilleZOff() const
Definition: DDEcalBarrelAlgo.cc:269
DDEcalBarrelAlgo::m_BackCoolBarSSThick
double m_BackCoolBarSSThick
Definition: DDEcalBarrelAlgo.cc:643
OrderedSet.t
t
Definition: OrderedSet.py:90
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: PluginFactory.h:124
DDEcalBarrelAlgo::vecIlyMat
const std::vector< std::string > & vecIlyMat() const
Definition: DDEcalBarrelAlgo.cc:174
DDEcalBarrelAlgo::m_SpmExpThick
double m_SpmExpThick
Definition: DDEcalBarrelAlgo.cc:442
DDEcalBarrelAlgo::underAF
double underAF() const
Definition: DDEcalBarrelAlgo.cc:118
DDEcalBarrelAlgo::m_vecGrMidSlotHeight
std::vector< double > m_vecGrMidSlotHeight
Definition: DDEcalBarrelAlgo.cc:624
DDEcalBarrelAlgo::m_PincerShim2Width
double m_PincerShim2Width
Definition: DDEcalBarrelAlgo.cc:727
DDEcalBarrelAlgo::m_IlyPTMHeight
double m_IlyPTMHeight
Definition: DDEcalBarrelAlgo.cc:534
DDEcalBarrelAlgo::backSideName
DDName backSideName() const
Definition: DDEcalBarrelAlgo.cc:244
DDEcalBarrelAlgo::m_vecPatchPanelNames
std::vector< std::string > m_vecPatchPanelNames
Definition: DDEcalBarrelAlgo.cc:668
DDEcalBarrelAlgo::ilyFanOutHere
double ilyFanOutHere() const
Definition: DDEcalBarrelAlgo.cc:197
DDEcalBarrelAlgo::m_MBManifMat
std::string m_MBManifMat
Definition: DDEcalBarrelAlgo.cc:698
DDEcalBarrelAlgo::vecNomCryDimCF
const std::vector< double > & vecNomCryDimCF() const
Definition: DDEcalBarrelAlgo.cc:113
DDEcalBarrelAlgo::vecMBLyrMat
const std::vector< std::string > & vecMBLyrMat() const
Definition: DDEcalBarrelAlgo.cc:358
DDEcalBarrelAlgo::m_BarHere
double m_BarHere
Definition: DDEcalBarrelAlgo.cc:418
DDEcalBarrelAlgo::m_BackXOff
double m_BackXOff
Definition: DDEcalBarrelAlgo.cc:582
DDEcalBarrelAlgo::m_IlyPTMWidth
double m_IlyPTMWidth
Definition: DDEcalBarrelAlgo.cc:532
DDEcalBarrelAlgo::m_vecSpmRMin
std::vector< double > m_vecSpmRMin
Definition: DDEcalBarrelAlgo.cc:424
DDEcalBarrelAlgo::m_BarName
std::string m_BarName
Definition: DDEcalBarrelAlgo.cc:407
DDEcalBarrelAlgo::m_BackSideMat
std::string m_BackSideMat
Definition: DDEcalBarrelAlgo.cc:594
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
DDEcalBarrelAlgo::mBManifInnDiam
double mBManifInnDiam() const
Definition: DDEcalBarrelAlgo.cc:352
DDEcalBarrelAlgo::m_APDZ
double m_APDZ
Definition: DDEcalBarrelAlgo.cc:499
DDEcalBarrelAlgo::backPipeWaterMat
DDMaterial backPipeWaterMat() const
Definition: DDEcalBarrelAlgo.cc:288
DDEcalBarrelAlgo::backBracketMat
DDMaterial backBracketMat() const
Definition: DDEcalBarrelAlgo.cc:337
DDEcalBarrelAlgo::m_GridHere
double m_GridHere
Definition: DDEcalBarrelAlgo.cc:577
DDEcalBarrelAlgo::mBManifHere
double mBManifHere() const
Definition: DDEcalBarrelAlgo.cc:350
DDEcalBarrelAlgo::idNameSpace
const std::string & idNameSpace() const
Definition: DDEcalBarrelAlgo.cc:63
DDEcalBarrelAlgo::m_HawRCutDelY
double m_HawRCutDelY
Definition: DDEcalBarrelAlgo.cc:569
DDEcalBarrelAlgo::apdZ
double apdZ() const
Definition: DDEcalBarrelAlgo.cc:157
DDEcalBarrelAlgo::ilyFanOutLength
double ilyFanOutLength() const
Definition: DDEcalBarrelAlgo.cc:200
DDEcalBarrelAlgo::ilyBndlOff
double ilyBndlOff() const
Definition: DDEcalBarrelAlgo.cc:210
DDEcalBarrelAlgo::pincerShimHeight
double pincerShimHeight() const
Definition: DDEcalBarrelAlgo.cc:378
DDEcalBarrelAlgo::m_vecSpmZPts
std::vector< double > m_vecSpmZPts
Definition: DDEcalBarrelAlgo.cc:423
DDEcalBarrelAlgo::m_BackCoolBarSSName
std::string m_BackCoolBarSSName
Definition: DDEcalBarrelAlgo.cc:642
DDEcalBarrelAlgo::m_BackPlateName
std::string m_BackPlateName
Definition: DDEcalBarrelAlgo.cc:595
DDEcalBarrelAlgo::m_BackSideWidth
double m_BackSideWidth
Definition: DDEcalBarrelAlgo.cc:590
DDEcalBarrelAlgo::backSideYOff1
double backSideYOff1() const
Definition: DDEcalBarrelAlgo.cc:249
DDEcalBarrelAlgo::m_SpmSideYOffM
double m_SpmSideYOffM
Definition: DDEcalBarrelAlgo.cc:449
DDEcalBarrelAlgo::m_NomCryDimLZ
double m_NomCryDimLZ
Definition: DDEcalBarrelAlgo.cc:453
DDEcalBarrelAlgo::m_IlyBndlName
std::string m_IlyBndlName
Definition: DDEcalBarrelAlgo.cc:550
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
DDEcalBarrelAlgo::nomCryDimAF
double nomCryDimAF() const
Definition: DDEcalBarrelAlgo.cc:110
DDEcalBarrelAlgo::m_IlyFanOutHeight
double m_IlyFanOutHeight
Definition: DDEcalBarrelAlgo.cc:543
EcalTrapezoidParameters::h1
TPFloat h1() const
Definition: EcalTrapezoidParameters.cc:146
DDEcalBarrelAlgo::grilleWidth
double grilleWidth() const
Definition: DDEcalBarrelAlgo.cc:265
DDEcalBarrelAlgo::vecBarRMax
const std::vector< double > & vecBarRMax() const
Definition: DDEcalBarrelAlgo.cc:70
DDEcalBarrelAlgo::ilyFEMWidth
double ilyFEMWidth() const
Definition: DDEcalBarrelAlgo.cc:214
DDEcalBarrelAlgo::ilyFEMLength
double ilyFEMLength() const
Definition: DDEcalBarrelAlgo.cc:215
DDEcalBarrelAlgo::m_BackCoolHere
double m_BackCoolHere
Definition: DDEcalBarrelAlgo.cc:634
DDEcalBarrelAlgo::wrapFrAlv
double wrapFrAlv() const
Definition: DDEcalBarrelAlgo.cc:132
geometryCSVtoXML.yy
yy
Definition: geometryCSVtoXML.py:19
DDEcalBarrelAlgo::m_vecGapAlvEta
std::vector< double > m_vecGapAlvEta
Definition: DDEcalBarrelAlgo.cc:471
DDEcalBarrelAlgo::pincerEnvLength
double pincerEnvLength() const
Definition: DDEcalBarrelAlgo.cc:370
DDEcalBarrelAlgo::m_FawRadOff
double m_FawRadOff
Definition: DDEcalBarrelAlgo.cc:575
DDEcalBarrelAlgo::m_DryAirTubeName
std::string m_DryAirTubeName
Definition: DDEcalBarrelAlgo.cc:684
DDEcalBarrelAlgo::ilyPTMLength
double ilyPTMLength() const
Definition: DDEcalBarrelAlgo.cc:191
DDEcalBarrelAlgo::m_vecBackMiscName
std::vector< std::string > m_vecBackMiscName
Definition: DDEcalBarrelAlgo.cc:661
DDEcalBarrelAlgo::m_GridMat
std::string m_GridMat
Definition: DDEcalBarrelAlgo.cc:579
DDEcalBarrelAlgo::grMidSlotName
const std::string & grMidSlotName() const
Definition: DDEcalBarrelAlgo.cc:276
DDEcalBarrelAlgo::backPlate2Mat
DDMaterial backPlate2Mat() const
Definition: DDEcalBarrelAlgo.cc:261
DDEcalBarrelAlgo::m_BarPhiHi
double m_BarPhiHi
Definition: DDEcalBarrelAlgo.cc:417
DDEcalBarrelAlgo::vecBackVFELyrName
const std::vector< std::string > & vecBackVFELyrName() const
Definition: DDEcalBarrelAlgo.cc:320
DDEcalBarrelAlgo::nCryPerAlvEta
unsigned int nCryPerAlvEta() const
Definition: DDEcalBarrelAlgo.cc:140
DDEcalBarrelAlgo::backYOff
double backYOff() const
Definition: DDEcalBarrelAlgo.cc:243
DDEcalBarrelAlgo::ilyDelPhi
double ilyDelPhi() const
Definition: DDEcalBarrelAlgo.cc:173
DDEcalBarrelAlgo::m_ClrThAlv
double m_ClrThAlv
Definition: DDEcalBarrelAlgo.cc:470
DDEcalBarrelAlgo::pincerEnvHeight
double pincerEnvHeight() const
Definition: DDEcalBarrelAlgo.cc:369
DDEcalBarrelAlgo::apdSide
double apdSide() const
Definition: DDEcalBarrelAlgo.cc:155
edmplugin::PluginFactory
Definition: PluginFactory.h:34
DDEcalBarrelAlgo::m_PincerShim2Name
std::string m_PincerShim2Name
Definition: DDEcalBarrelAlgo.cc:724
DDEcalBarrelAlgo::m_WallMat
std::string m_WallMat
Definition: DDEcalBarrelAlgo.cc:492
DDEcalBarrelAlgo::vecSpmRMin
const std::vector< double > & vecSpmRMin() const
Definition: DDEcalBarrelAlgo.cc:82
dumpMFGeometry_cfg.delta
delta
Definition: dumpMFGeometry_cfg.py:25
DDEcalBarrelAlgo::m_BarMat
std::string m_BarMat
Definition: DDEcalBarrelAlgo.cc:408
DDEcalBarrelAlgo::dryAirTubeInnDiam
double dryAirTubeInnDiam() const
Definition: DDEcalBarrelAlgo.cc:342
DDEcalBarrelAlgo::spmMat
DDMaterial spmMat() const
Definition: DDEcalBarrelAlgo.cc:80
DDEcalBarrelAlgo::spmCutName
DDName spmCutName() const
Definition: DDEcalBarrelAlgo.cc:93
DDLogicalPart
A DDLogicalPart aggregates information concerning material, solid and sensitveness ....
Definition: DDLogicalPart.h:93
DDEcalBarrelAlgo::m_HawYOffCry
double m_HawYOffCry
Definition: DDEcalBarrelAlgo.cc:570
DDTypes.h
DDEcalBarrelAlgo::Tl3D
HepGeom::Translate3D Tl3D
Definition: DDEcalBarrelAlgo.cc:38
DDEcalBarrelAlgo::m_vecSpmTran
std::vector< double > m_vecSpmTran
Definition: DDEcalBarrelAlgo.cc:426
DDEcalBarrelAlgo::m_BackPlate2Name
std::string m_BackPlate2Name
Definition: DDEcalBarrelAlgo.cc:601
DDEcalBarrelAlgo::m_BackCoolBarHeight
double m_BackCoolBarHeight
Definition: DDEcalBarrelAlgo.cc:637
DDEcalBarrelAlgo::nCryTypes
unsigned int nCryTypes() const
Definition: DDEcalBarrelAlgo.cc:139
DDMaterial.h
DDEcalBarrelAlgo::patchPanelName
DDName patchPanelName() const
Definition: DDEcalBarrelAlgo.cc:297
DDEcalBarrelAlgo::m_BackBracketMat
std::string m_BackBracketMat
Definition: DDEcalBarrelAlgo.cc:681
DDEcalBarrelAlgo::m_DryAirTubeInnDiam
double m_DryAirTubeInnDiam
Definition: DDEcalBarrelAlgo.cc:686
createfilelist.int
int
Definition: createfilelist.py:10
DDEcalBarrelAlgo::m_GrMidSlotName
std::string m_GrMidSlotName
Definition: DDEcalBarrelAlgo.cc:619
DDEcalBarrelAlgo::fawRadOff
double fawRadOff() const
Definition: DDEcalBarrelAlgo.cc:234
DDEcalBarrelAlgo::dryAirTubeName
const std::string & dryAirTubeName() const
Definition: DDEcalBarrelAlgo.cc:340
DDEcalBarrelAlgo::vecSpmTran
const std::vector< double > & vecSpmTran() const
Definition: DDEcalBarrelAlgo.cc:84
DDEcalBarrelAlgo::underAR
double underAR() const
Definition: DDEcalBarrelAlgo.cc:122
DDEcalBarrelAlgo::m_BackSideName
std::string m_BackSideName
Definition: DDEcalBarrelAlgo.cc:586
DDEcalBarrelAlgo::m_vecWebClrTh
std::vector< double > m_vecWebClrTh
Definition: DDEcalBarrelAlgo.cc:509
DDEcalBarrelAlgo::grEdgeSlotMat
DDMaterial grEdgeSlotMat() const
Definition: DDEcalBarrelAlgo.cc:272
DDEcalBarrelAlgo::vecIlyPipeZ
const std::vector< double > & vecIlyPipeZ() const
Definition: DDEcalBarrelAlgo.cc:185
DDName::name
const std::string & name() const
Returns the name.
Definition: DDName.cc:40
DDEcalBarrelAlgo::m_WallName
std::string m_WallName
Definition: DDEcalBarrelAlgo.cc:487
DDEcalBarrelAlgo::ilyDiffLength
double ilyDiffLength() const
Definition: DDEcalBarrelAlgo.cc:207
DDEcalBarrelAlgo::backPipeName
const std::string & backPipeName() const
Definition: DDEcalBarrelAlgo.cc:284
DDEcalBarrelAlgo::m_PincerEnvLength
double m_PincerEnvLength
Definition: DDEcalBarrelAlgo.cc:715
DDEcalBarrelAlgo::m_BackSideYOff1
double m_BackSideYOff1
Definition: DDEcalBarrelAlgo.cc:591
DDEcalBarrelAlgo::m_IlyPhiLow
double m_IlyPhiLow
Definition: DDEcalBarrelAlgo.cc:514
DDEcalBarrelAlgo::m_NCryPerAlvEta
unsigned int m_NCryPerAlvEta
Definition: DDEcalBarrelAlgo.cc:482
DDEcalBarrelAlgo::m_BackCoolBarHere
double m_BackCoolBarHere
Definition: DDEcalBarrelAlgo.cc:635
DDEcalBarrelAlgo::cryMat
DDMaterial cryMat() const
Definition: DDEcalBarrelAlgo.cc:147
DDEcalBarrelAlgo::m_PincerEnvHeight
double m_PincerEnvHeight
Definition: DDEcalBarrelAlgo.cc:714
DDEcalBarrelAlgo::m_WebClrMat
std::string m_WebClrMat
Definition: DDEcalBarrelAlgo.cc:507
DDEcalBarrelAlgo::backSideLength
double backSideLength() const
Definition: DDEcalBarrelAlgo.cc:246
DDTranslation.h
DDEcalBarrelAlgo::vecIlyFanOutPhi
const std::vector< double > & vecIlyFanOutPhi() const
Definition: DDEcalBarrelAlgo.cc:203
DDEcalBarrelAlgo::m_vecBackCoolName
std::vector< std::string > m_vecBackCoolName
Definition: DDEcalBarrelAlgo.cc:633
DDEcalBarrelAlgo::m_BackCoolTankHere
double m_BackCoolTankHere
Definition: DDEcalBarrelAlgo.cc:671
DDEcalBarrelAlgo::spmExpThick
double spmExpThick() const
Definition: DDEcalBarrelAlgo.cc:100
DDEcalBarrelAlgo::m_WrapFrAlv
double m_WrapFrAlv
Definition: DDEcalBarrelAlgo.cc:474
DDEcalBarrelAlgo::m_BackCoolTankMat
std::string m_BackCoolTankMat
Definition: DDEcalBarrelAlgo.cc:675
DDEcalBarrelAlgo::grEdgeSlotHere
double grEdgeSlotHere() const
Definition: DDEcalBarrelAlgo.cc:273
DDEcalBarrelAlgo::m_GrilleThick
double m_GrilleThick
Definition: DDEcalBarrelAlgo.cc:606
DDEcalBarrelAlgo::fawPhiOff
double fawPhiOff() const
Definition: DDEcalBarrelAlgo.cc:231
DDSolidFactory::polycone
static DDSolid polycone(const DDName &name, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &rmin, const std::vector< double > &rmax)
Creates a polycone (refere to Geant3 or Geant4 documentation)
Definition: DDSolid.cc:537
DDEcalBarrelAlgo::m_vecBarRota
std::vector< double > m_vecBarRota
Definition: DDEcalBarrelAlgo.cc:413
DDEcalBarrelAlgo::m_BackCoolBarWaName
std::string m_BackCoolBarWaName
Definition: DDEcalBarrelAlgo.cc:645
DDEcalBarrelAlgo::m_FawHere
double m_FawHere
Definition: DDEcalBarrelAlgo.cc:564
DDLogicalPart.h
DDEcalBarrelAlgo::ilyFEMName
DDName ilyFEMName() const
Definition: DDEcalBarrelAlgo.cc:212
DDEcalBarrelAlgo::Ro3D
HepGeom::Rotate3D Ro3D
Definition: DDEcalBarrelAlgo.cc:39
DDEcalBarrelAlgo::m_vecSpmRota
std::vector< double > m_vecSpmRota
Definition: DDEcalBarrelAlgo.cc:427
DDEcalBarrelAlgo::m_IlyBndlOff
double m_IlyBndlOff
Definition: DDEcalBarrelAlgo.cc:552
DDEcalBarrelAlgo::vecGapAlvEta
const std::vector< double > & vecGapAlvEta() const
Definition: DDEcalBarrelAlgo.cc:129
DDEcalBarrelAlgo::m_vecBarRMax
std::vector< double > m_vecBarRMax
Definition: DDEcalBarrelAlgo.cc:411
DDEcalBarrelAlgo::m_vecBackPipeDiam
std::vector< double > m_vecBackPipeDiam
Definition: DDEcalBarrelAlgo.cc:628
DDEcalBarrelAlgo::backHere
double backHere() const
Definition: DDEcalBarrelAlgo.cc:241
DDEcalBarrelAlgo::mBCoolTubeOutDiam
double mBCoolTubeOutDiam() const
Definition: DDEcalBarrelAlgo.cc:348
DDEcalBarrelAlgo::m_FawPhiRot
double m_FawPhiRot
Definition: DDEcalBarrelAlgo.cc:574
DDEcalBarrelAlgo::backSideWidth
double backSideWidth() const
Definition: DDEcalBarrelAlgo.cc:248
DDEcalBarrelAlgo::m_WebPlName
std::string m_WebPlName
Definition: DDEcalBarrelAlgo.cc:504
DDEcalBarrelAlgo::backCoolTankWaMat
DDMaterial backCoolTankWaMat() const
Definition: DDEcalBarrelAlgo.cc:334
DDEcalBarrelAlgo::dryAirTubeOutDiam
double dryAirTubeOutDiam() const
Definition: DDEcalBarrelAlgo.cc:343
DDEcalBarrelAlgo::m_BackPlate2Mat
std::string m_BackPlate2Mat
Definition: DDEcalBarrelAlgo.cc:603
DDEcalBarrelAlgo::m_IlyDiffMat
std::string m_IlyDiffMat
Definition: DDEcalBarrelAlgo.cc:547
DDEcalBarrelAlgo::vecBackCoolName
const std::vector< std::string > & vecBackCoolName() const
Definition: DDEcalBarrelAlgo.cc:299
DDEcalBarrelAlgo::m_GrEdgeSlotMat
std::string m_GrEdgeSlotMat
Definition: DDEcalBarrelAlgo.cc:614
DDEcalBarrelAlgo::Pt3D
HepGeom::Point3D< double > Pt3D
Definition: DDEcalBarrelAlgo.cc:35
DDEcalBarrelAlgo::backCoolMat
DDMaterial backCoolMat() const
Definition: DDEcalBarrelAlgo.cc:303
DDEcalBarrelAlgo::nomCryDimLZ
double nomCryDimLZ() const
Definition: DDEcalBarrelAlgo.cc:111
DDEcalBarrelAlgo::backBracketName
const std::string & backBracketName() const
Definition: DDEcalBarrelAlgo.cc:335
DDEcalBarrelAlgo::vecBackMiscThick
const std::vector< double > & vecBackMiscThick() const
Definition: DDEcalBarrelAlgo.cc:290
DDEcalBarrelAlgo::vecIlyPipeLength
const std::vector< double > & vecIlyPipeLength() const
Definition: DDEcalBarrelAlgo.cc:182
DDEcalBarrelAlgo::m_BackVFEName
std::string m_BackVFEName
Definition: DDEcalBarrelAlgo.cc:651
alignCSCRings.r
r
Definition: alignCSCRings.py:93
DDEcalBarrelAlgo::m_vecIlyPTMZ
std::vector< double > m_vecIlyPTMZ
Definition: DDEcalBarrelAlgo.cc:535
DDEcalBarrelAlgo::m_IlyPipeID
double m_IlyPipeID
Definition: DDEcalBarrelAlgo.cc:523
DDEcalBarrelAlgo::vecWebLength
const std::vector< double > & vecWebLength() const
Definition: DDEcalBarrelAlgo.cc:168
DDEcalBarrelAlgo::web
void web(unsigned int iWeb, double bWeb, double BWeb, double LWeb, double theta, const Pt3D &corner, const DDLogicalPart &logPar, double &zee, double side, double front, double delta, DDCompactView &cpv)
Definition: DDEcalBarrelAlgo.cc:2926
DDEcalBarrelAlgo::vecBarRota2
const std::vector< double > & vecBarRota2() const
Definition: DDEcalBarrelAlgo.cc:73
DDEcalBarrelAlgo::ilyBndlMat
DDMaterial ilyBndlMat() const
Definition: DDEcalBarrelAlgo.cc:209
EcalTrapezoidParameters::h
TPFloat h() const
Definition: EcalTrapezoidParameters.cc:168
DDEcalBarrelAlgo::m_PincerCutWidth
double m_PincerCutWidth
Definition: DDEcalBarrelAlgo.cc:731
DDEcalBarrelAlgo::m_vecSpmCutTM
std::vector< double > m_vecSpmCutTM
Definition: DDEcalBarrelAlgo.cc:438
DDEcalBarrelAlgo::m_BackHere
double m_BackHere
Definition: DDEcalBarrelAlgo.cc:585
DDEcalBarrelAlgo::backMiscHere
double backMiscHere() const
Definition: DDEcalBarrelAlgo.cc:289
DDEcalBarrelAlgo::vecPatchPanelThick
const std::vector< double > & vecPatchPanelThick() const
Definition: DDEcalBarrelAlgo.cc:294
DDAxes::phi
DDEcalBarrelAlgo::vecPatchPanelMat
const std::vector< std::string > & vecPatchPanelMat() const
Definition: DDEcalBarrelAlgo.cc:296
DDEcalBarrelAlgo::m_APDX2
double m_APDX2
Definition: DDEcalBarrelAlgo.cc:501
DDEcalBarrelAlgo::apdThick
double apdThick() const
Definition: DDEcalBarrelAlgo.cc:156
ReadMapType< double >
DDEcalBarrelAlgo::vecBackCoolNPerSec
const std::vector< double > & vecBackCoolNPerSec() const
Definition: DDEcalBarrelAlgo.cc:324
DDEcalBarrelAlgo::ilyDiffMat
DDMaterial ilyDiffMat() const
Definition: DDEcalBarrelAlgo.cc:205
DDEcalBarrelAlgo::m_vecSpmBRota
std::vector< double > m_vecSpmBRota
Definition: DDEcalBarrelAlgo.cc:429
DDEcalBarrelAlgo::m_ClrName
std::string m_ClrName
Definition: DDEcalBarrelAlgo.cc:485
DDEcalBarrelAlgo::vecBackCoolSecSep
const std::vector< double > & vecBackCoolSecSep() const
Definition: DDEcalBarrelAlgo.cc:323
DDEcalBarrelAlgo::fawPhiRot
double fawPhiRot() const
Definition: DDEcalBarrelAlgo.cc:233
DDEcalBarrelAlgo::m_BackCoolBarWidth
double m_BackCoolBarWidth
Definition: DDEcalBarrelAlgo.cc:636
DDEcalBarrelAlgo::m_HawRHBIG
double m_HawRHBIG
Definition: DDEcalBarrelAlgo.cc:565
DDEcalBarrelAlgo::underCF
double underCF() const
Definition: DDEcalBarrelAlgo.cc:121
DDAlgorithm.h
type
type
Definition: HCALResponse.h:21
DDEcalBarrelAlgo::backCoolBarMat
DDMaterial backCoolBarMat() const
Definition: DDEcalBarrelAlgo.cc:307
std
Definition: JetResolutionObject.h:76
DDEcalBarrelAlgo::backPlateMat
DDMaterial backPlateMat() const
Definition: DDEcalBarrelAlgo.cc:258
DDEcalBarrelAlgo::m_vecPincerRodAzimuth
std::vector< double > m_vecPincerRodAzimuth
Definition: DDEcalBarrelAlgo.cc:709
DDEcalBarrelAlgo::backCoolVFEName
DDName backCoolVFEName() const
Definition: DDEcalBarrelAlgo.cc:315
DDEcalBarrelAlgo::m_IlyBndlMat
std::string m_IlyBndlMat
Definition: DDEcalBarrelAlgo.cc:551
DDEcalBarrelAlgo::m_BackCoolTankThick
double m_BackCoolTankThick
Definition: DDEcalBarrelAlgo.cc:674
DDEcalBarrelAlgo::mBLyrHere
double mBLyrHere() const
Definition: DDEcalBarrelAlgo.cc:355
DDEcalBarrelAlgo::m_GridName
std::string m_GridName
Definition: DDEcalBarrelAlgo.cc:578
DDEcalBarrelAlgo::vecBarRota3
const std::vector< double > & vecBarRota3() const
Definition: DDEcalBarrelAlgo.cc:74
DDEcalBarrelAlgo::m_IlyPTMName
std::string m_IlyPTMName
Definition: DDEcalBarrelAlgo.cc:529
DDEcalBarrelAlgo::m_vecBackCoolNSec
std::vector< double > m_vecBackCoolNSec
Definition: DDEcalBarrelAlgo.cc:656
DDEcalBarrelAlgo::m_SpmNPerHalf
unsigned int m_SpmNPerHalf
Definition: DDEcalBarrelAlgo.cc:430
DDEcalBarrelAlgo::backVFEMat
DDMaterial backVFEMat() const
Definition: DDEcalBarrelAlgo.cc:318
EcalTrapezoidParameters.h
DDEcalBarrelAlgo::m_DryAirTubeMat
std::string m_DryAirTubeMat
Definition: DDEcalBarrelAlgo.cc:688
DDEcalBarrelAlgo::Vec3
CLHEP::Hep3Vector Vec3
Definition: DDEcalBarrelAlgo.cc:44
DDEcalBarrelAlgo::m_vecPatchPanelThick
std::vector< double > m_vecPatchPanelThick
Definition: DDEcalBarrelAlgo.cc:667
DDEcalBarrelAlgo::~DDEcalBarrelAlgo
~DDEcalBarrelAlgo() override
Definition: DDEcalBarrelAlgo.cc:1043
diffTwoXMLs.r1
r1
Definition: diffTwoXMLs.py:53
DDEcalBarrelAlgo::m_HawRCutY
double m_HawRCutY
Definition: DDEcalBarrelAlgo.cc:567
testProducerWithPsetDescEmpty_cfi.b3
b3
Definition: testProducerWithPsetDescEmpty_cfi.py:36
DDEcalBarrelAlgo::m_SpmDelPhi
double m_SpmDelPhi
Definition: DDEcalBarrelAlgo.cc:432
DDEcalBarrelAlgo::vecNomCryDimBR
const std::vector< double > & vecNomCryDimBR() const
Definition: DDEcalBarrelAlgo.cc:115
DDEcalBarrelAlgo::m_SpmExpYOff
double m_SpmExpYOff
Definition: DDEcalBarrelAlgo.cc:444
DDEcalBarrelAlgo::RoZ3D
HepGeom::RotateZ3D RoZ3D
Definition: DDEcalBarrelAlgo.cc:40
DDCurrentNamespace::ns
static std::string & ns()
Definition: DDCurrentNamespace.cc:3
DDEcalBarrelAlgo::grilleMat
DDMaterial grilleMat() const
Definition: DDEcalBarrelAlgo.cc:267
DDEcalBarrelAlgo::barMat
DDMaterial barMat() const
Definition: DDEcalBarrelAlgo.cc:67
DDEcalBarrelAlgo::vecMBLyrThick
const std::vector< double > & vecMBLyrThick() const
Definition: DDEcalBarrelAlgo.cc:356
DDName.h
DDEcalBarrelAlgo::m_PincerShim1Width
double m_PincerShim1Width
Definition: DDEcalBarrelAlgo.cc:726
DDEcalBarrelAlgo::m_vecNomCryDimAR
std::vector< double > m_vecNomCryDimAR
Definition: DDEcalBarrelAlgo.cc:456
DDEcalBarrelAlgo::m_IlyPipeName
std::string m_IlyPipeName
Definition: DDEcalBarrelAlgo.cc:519
DDEcalBarrelAlgo::hawRName
DDName hawRName() const
Definition: DDEcalBarrelAlgo.cc:220
DDEcalBarrelAlgo::m_BackPlateHere
double m_BackPlateHere
Definition: DDEcalBarrelAlgo.cc:596
DDEcalBarrelAlgo::m_SpmExpWide
double m_SpmExpWide
Definition: DDEcalBarrelAlgo.cc:443
DDEcalBarrelAlgo::backPipeMat
DDMaterial backPipeMat() const
Definition: DDEcalBarrelAlgo.cc:287
DDEcalBarrelAlgo::m_WallThAlv
double m_WallThAlv
Definition: DDEcalBarrelAlgo.cc:468
DDEcalBarrelAlgo::m_UnderAR
double m_UnderAR
Definition: DDEcalBarrelAlgo.cc:464
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
DDEcalBarrelAlgo::pincerCutHeight
double pincerCutHeight() const
Definition: DDEcalBarrelAlgo.cc:387
DDSolid::parameters
const std::vector< double > & parameters(void) const
Give the parameters of the solid.
Definition: DDSolid.cc:121
DDEcalBarrelAlgo::m_vecBarZPts
std::vector< double > m_vecBarZPts
Definition: DDEcalBarrelAlgo.cc:409
DDEcalBarrelAlgo::m_vecIlyPipePhi
std::vector< double > m_vecIlyPipePhi
Definition: DDEcalBarrelAlgo.cc:526
DDEcalBarrelAlgo::Trap
EcalTrapezoidParameters Trap
Definition: DDEcalBarrelAlgo.cc:34
DDEcalBarrelAlgo::mytrap
DDSolid mytrap(const std::string &s, const Trap &t) const
Definition: DDEcalBarrelAlgo.cc:2921
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
DDEcalBarrelAlgo::vecBackMiscName
const std::vector< std::string > & vecBackMiscName() const
Definition: DDEcalBarrelAlgo.cc:291
DDSolid
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39
DDEcalBarrelAlgo::backCoolTankWidth
double backCoolTankWidth() const
Definition: DDEcalBarrelAlgo.cc:329
DDEcalBarrelAlgo::Rota
CLHEP::HepRotation Rota
Definition: DDEcalBarrelAlgo.cc:45
DDEcalBarrelAlgo::ilyPTMHere
double ilyPTMHere() const
Definition: DDEcalBarrelAlgo.cc:188
DDEcalBarrelAlgo::backCoolBarWidth
double backCoolBarWidth() const
Definition: DDEcalBarrelAlgo.cc:301
DDRotation
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:57
EcalTrapezoidParameters::L
TPFloat L() const
Definition: EcalTrapezoidParameters.cc:163
DDEcalBarrelAlgo::m_SpmPhiOff
double m_SpmPhiOff
Definition: DDEcalBarrelAlgo.cc:433
DDEcalBarrelAlgo::ilyPipeOD
double ilyPipeOD() const
Definition: DDEcalBarrelAlgo.cc:180
DDEcalBarrelAlgo::vecWebPlTh
const std::vector< double > & vecWebPlTh() const
Definition: DDEcalBarrelAlgo.cc:166
DDEcalBarrelAlgo::m_NomCryDimAF
double m_NomCryDimAF
Definition: DDEcalBarrelAlgo.cc:452
DDEcalBarrelAlgo::vecBackPipeDiam
const std::vector< double > & vecBackPipeDiam() const
Definition: DDEcalBarrelAlgo.cc:285
DDEcalBarrelAlgo::vecIlyFEMZ
const std::vector< double > & vecIlyFEMZ() const
Definition: DDEcalBarrelAlgo.cc:217
DDEcalBarrelAlgo::m_IlyFEMLength
double m_IlyFEMLength
Definition: DDEcalBarrelAlgo.cc:557
DDEcalBarrelAlgo::initialize
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
Definition: DDEcalBarrelAlgo.cc:1045
DDEcalBarrelAlgo::hawRCutZ
double hawRCutZ() const
Definition: DDEcalBarrelAlgo.cc:226
DDEcalBarrelAlgo::m_IlyFanOutName
std::string m_IlyFanOutName
Definition: DDEcalBarrelAlgo.cc:538
DDEcalBarrelAlgo::wrapMat
DDMaterial wrapMat() const
Definition: DDEcalBarrelAlgo.cc:149
DDEcalBarrelAlgo::vecIlyPTMZ
const std::vector< double > & vecIlyPTMZ() const
Definition: DDEcalBarrelAlgo.cc:193
DDEcalBarrelAlgo::m_BackSideAngle
double m_BackSideAngle
Definition: DDEcalBarrelAlgo.cc:593
DDEcalBarrelAlgo::ilyPipeName
const std::string & ilyPipeName() const
Definition: DDEcalBarrelAlgo.cc:177
DDEcalBarrelAlgo::backCBStdSep
double backCBStdSep() const
Definition: DDEcalBarrelAlgo.cc:325
DDEcalBarrelAlgo::m_UnderBR
double m_UnderBR
Definition: DDEcalBarrelAlgo.cc:465
DDEcalBarrelAlgo::m_MBCoolTubeName
std::string m_MBCoolTubeName
Definition: DDEcalBarrelAlgo.cc:690
DDEcalBarrelAlgo::m_UnderCF
double m_UnderCF
Definition: DDEcalBarrelAlgo.cc:463
DDEcalBarrelAlgo::m_WrapThAlv
double m_WrapThAlv
Definition: DDEcalBarrelAlgo.cc:469
DDEcalBarrelAlgo::backCoolTankHere
double backCoolTankHere() const
Definition: DDEcalBarrelAlgo.cc:327
DDEcalBarrelAlgo::RoX3D
HepGeom::RotateX3D RoX3D
Definition: DDEcalBarrelAlgo.cc:42
DDEcalBarrelAlgo::m_APDHere
double m_APDHere
Definition: DDEcalBarrelAlgo.cc:495
DDEcalBarrelAlgo::ilyPhiLow
double ilyPhiLow() const
Definition: DDEcalBarrelAlgo.cc:172
DDEcalBarrelAlgo::ilyFanOutName
DDName ilyFanOutName() const
Definition: DDEcalBarrelAlgo.cc:196
DDEcalBarrelAlgo::dryAirTubeHere
double dryAirTubeHere() const
Definition: DDEcalBarrelAlgo.cc:339
DDEcalBarrelAlgo::m_BackCoolVFEName
std::string m_BackCoolVFEName
Definition: DDEcalBarrelAlgo.cc:649
DDEcalBarrelAlgo::m_MBManifInnDiam
double m_MBManifInnDiam
Definition: DDEcalBarrelAlgo.cc:696
DDEcalBarrelAlgo::backBracketHeight
double backBracketHeight() const
Definition: DDEcalBarrelAlgo.cc:336
M_PI_2
#define M_PI_2
Definition: CSCGattiFunction.cc:6
DDEcalBarrelAlgo::m_vecBackCoolSecSep
std::vector< double > m_vecBackCoolSecSep
Definition: DDEcalBarrelAlgo.cc:657
DDEcalBarrelAlgo::backXOff
double backXOff() const
Definition: DDEcalBarrelAlgo.cc:242
DDEcalBarrelAlgo::vecIlyFEMPhi
const std::vector< double > & vecIlyFEMPhi() const
Definition: DDEcalBarrelAlgo.cc:218
DDEcalBarrelAlgo::m_GrEdgeSlotHere
double m_GrEdgeSlotHere
Definition: DDEcalBarrelAlgo.cc:615
DDEcalBarrelAlgo::pincerRodMat
DDMaterial pincerRodMat() const
Definition: DDEcalBarrelAlgo.cc:364
DDEcalBarrelAlgo::m_BackPlate2Thick
double m_BackPlate2Thick
Definition: DDEcalBarrelAlgo.cc:602
DDEcalBarrelAlgo::ilyPTMMat
DDMaterial ilyPTMMat() const
Definition: DDEcalBarrelAlgo.cc:189
DDEcalBarrelAlgo::pincerShim2Name
DDName pincerShim2Name() const
Definition: DDEcalBarrelAlgo.cc:379
DDEcalBarrelAlgo::m_vecGrilleHeight
std::vector< double > m_vecGrilleHeight
Definition: DDEcalBarrelAlgo.cc:610
DDEcalBarrelAlgo::backSideHere
double backSideHere() const
Definition: DDEcalBarrelAlgo.cc:245
DDEcalBarrelAlgo::vecBarTran
const std::vector< double > & vecBarTran() const
Definition: DDEcalBarrelAlgo.cc:71
DDEcalBarrelAlgo::spmNPerHalf
unsigned int spmNPerHalf() const
Definition: DDEcalBarrelAlgo.cc:88
DDEcalBarrelAlgo::vecBackCoolNSec
const std::vector< double > & vecBackCoolNSec() const
Definition: DDEcalBarrelAlgo.cc:322
DDEcalBarrelAlgo::mBCoolTubeMat
DDMaterial mBCoolTubeMat() const
Definition: DDEcalBarrelAlgo.cc:349
DDEcalBarrelAlgo::pincerCutMat
DDMaterial pincerCutMat() const
Definition: DDEcalBarrelAlgo.cc:385
EcalTrapezoidParameters::VertexList
CaloCellGeometry::Pt3DVec VertexList
Definition: EcalTrapezoidParameters.h:64
DDEcalBarrelAlgo::m_BackCoolMat
std::string m_BackCoolMat
Definition: DDEcalBarrelAlgo.cc:638
DDEcalBarrelAlgo::m_BackPipeWaterMat
std::string m_BackPipeWaterMat
Definition: DDEcalBarrelAlgo.cc:631
DDEcalBarrelAlgo::backCoolBarWaMat
DDMaterial backCoolBarWaMat() const
Definition: DDEcalBarrelAlgo.cc:313
DDEcalBarrelAlgo::m_GridThick
double m_GridThick
Definition: DDEcalBarrelAlgo.cc:580
EcalTrapezoidParameters::dz
TPFloat dz() const
Definition: EcalTrapezoidParameters.cc:143
DDEcalBarrelAlgo::grilleZSpace
double grilleZSpace() const
Definition: DDEcalBarrelAlgo.cc:266
DDEcalBarrelAlgo::wallName
const std::string & wallName() const
Definition: DDEcalBarrelAlgo.cc:145
DDEcalBarrelAlgo::m_SpmSideName
std::string m_SpmSideName
Definition: DDEcalBarrelAlgo.cc:445
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
DDEcalBarrelAlgo::m_WrapName
std::string m_WrapName
Definition: DDEcalBarrelAlgo.cc:486
DDSolidFactory::box
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
Definition: DDSolid.cc:533
DDEcalBarrelAlgo::m_vecBackVFELyrMat
std::vector< std::string > m_vecBackVFELyrMat
Definition: DDEcalBarrelAlgo.cc:655
DDEcalBarrelAlgo::vecBackPipeThick
const std::vector< double > & vecBackPipeThick() const
Definition: DDEcalBarrelAlgo.cc:286
DDEcalBarrelAlgo::m_WrapReAlv
double m_WrapReAlv
Definition: DDEcalBarrelAlgo.cc:478
DDEcalBarrelAlgo::m_BackCoolBarWaThick
double m_BackCoolBarWaThick
Definition: DDEcalBarrelAlgo.cc:646
DDEcalBarrelAlgo::wrapThAlv
double wrapThAlv() const
Definition: DDEcalBarrelAlgo.cc:127
DDEcalBarrelAlgo::backPlateThick
double backPlateThick() const
Definition: DDEcalBarrelAlgo.cc:256
DDEcalBarrelAlgo::vecSpmCutTM
const std::vector< double > & vecSpmCutTM() const
Definition: DDEcalBarrelAlgo.cc:98
DDEcalBarrelAlgo::backPlateName
DDName backPlateName() const
Definition: DDEcalBarrelAlgo.cc:253
DDEcalBarrelAlgo::m_IlyHere
double m_IlyHere
Definition: DDEcalBarrelAlgo.cc:512
DDEcalBarrelAlgo::m_BackMiscHere
double m_BackMiscHere
Definition: DDEcalBarrelAlgo.cc:659
DDEcalBarrelAlgo::grilleThick
double grilleThick() const
Definition: DDEcalBarrelAlgo.cc:263
DDEcalBarrelAlgo::m_BackPipeHere
double m_BackPipeHere
Definition: DDEcalBarrelAlgo.cc:626
DDEcalBarrelAlgo::spmExpYOff
double spmExpYOff() const
Definition: DDEcalBarrelAlgo.cc:102
DDEcalBarrelAlgo::m_MBCoolTubeOutDiam
double m_MBCoolTubeOutDiam
Definition: DDEcalBarrelAlgo.cc:692
DDEcalBarrelAlgo::mBCoolTubeNum
double mBCoolTubeNum() const
Definition: DDEcalBarrelAlgo.cc:341
DDEcalBarrelAlgo::ddname
DDName ddname(const std::string &s) const
Definition: DDEcalBarrelAlgo.cc:2912
DDEcalBarrelAlgo::m_IlyFEMMat
std::string m_IlyFEMMat
Definition: DDEcalBarrelAlgo.cc:555
DDEcalBarrelAlgo::backCoolVFEHere
double backCoolVFEHere() const
Definition: DDEcalBarrelAlgo.cc:314
DDEcalBarrelAlgo::myrot
DDRotation myrot(const std::string &s, const CLHEP::HepRotation &r) const
Create a DDRotation from a string converted to DDName and CLHEP::HepRotation converted to DDRotationM...
Definition: DDEcalBarrelAlgo.cc:2904
DDEcalBarrelAlgo::m_vecBackMiscThick
std::vector< double > m_vecBackMiscThick
Definition: DDEcalBarrelAlgo.cc:660
DDEcalBarrelAlgo::clrName
const std::string & clrName() const
Definition: DDEcalBarrelAlgo.cc:143
DDEcalBarrelAlgo::spmSideThick
double spmSideThick() const
Definition: DDEcalBarrelAlgo.cc:106
DDAlgorithmFactory.h
DDEcalBarrelAlgo::wrapName
const std::string & wrapName() const
Definition: DDEcalBarrelAlgo.cc:144
DDEcalBarrelAlgo::pincerCutName
DDName pincerCutName() const
Definition: DDEcalBarrelAlgo.cc:384
DDEcalBarrelAlgo::m_WebPlMat
std::string m_WebPlMat
Definition: DDEcalBarrelAlgo.cc:506
DDEcalBarrelAlgo::pincerBlkLength
double pincerBlkLength() const
Definition: DDEcalBarrelAlgo.cc:375
DDEcalBarrelAlgo::m_FawName
std::string m_FawName
Definition: DDEcalBarrelAlgo.cc:563
DDSolidFactory::trap
static DDSolid trap(const DDName &name, double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
Definition: DDSolid.cc:595
DDEcalBarrelAlgo::spmSideHigh
double spmSideHigh() const
Definition: DDEcalBarrelAlgo.cc:105
EcalTrapezoidParameters::A
TPFloat A() const
Definition: EcalTrapezoidParameters.cc:169
DDEcalBarrelAlgo::m_BackCoolBarSSMat
std::string m_BackCoolBarSSMat
Definition: DDEcalBarrelAlgo.cc:644
DDEcalBarrelAlgo::m_BackCoolBarName
std::string m_BackCoolBarName
Definition: DDEcalBarrelAlgo.cc:639
class-composition.parent
parent
Definition: class-composition.py:88
DDEcalBarrelAlgo::pincerBlkName
DDName pincerBlkName() const
Definition: DDEcalBarrelAlgo.cc:373
DDEcalBarrelAlgo::vecGrMidSlotHeight
const std::vector< double > & vecGrMidSlotHeight() const
Definition: DDEcalBarrelAlgo.cc:281
DDEcalBarrelAlgo::gridHere
double gridHere() const
Definition: DDEcalBarrelAlgo.cc:236
DDEcalBarrelAlgo::m_PincerCutName
std::string m_PincerCutName
Definition: DDEcalBarrelAlgo.cc:729
DDEcalBarrelAlgo::m_PincerRodMat
std::string m_PincerRodMat
Definition: DDEcalBarrelAlgo.cc:708
DDEcalBarrelAlgo::vecMBLyrName
const std::vector< std::string > & vecMBLyrName() const
Definition: DDEcalBarrelAlgo.cc:357
DDEcalBarrelAlgo::apdX2
double apdX2() const
Definition: DDEcalBarrelAlgo.cc:159
DDEcalBarrelAlgo::m_GrilleWidth
double m_GrilleWidth
Definition: DDEcalBarrelAlgo.cc:607
DDEcalBarrelAlgo::m_vecBackMiscMat
std::vector< std::string > m_vecBackMiscMat
Definition: DDEcalBarrelAlgo.cc:662
metDiagnosticParameterSet_cfi.nMax
nMax
Definition: metDiagnosticParameterSet_cfi.py:11
DDEcalBarrelAlgo::vecSpmHere
const std::vector< double > & vecSpmHere() const
Definition: DDEcalBarrelAlgo.cc:92
DDEcalBarrelAlgo::spmPhiOff
double spmPhiOff() const
Definition: DDEcalBarrelAlgo.cc:91
geometryCSVtoXML.xx
xx
Definition: geometryCSVtoXML.py:19
DDEcalBarrelAlgo::gridMat
DDMaterial gridMat() const
Definition: DDEcalBarrelAlgo.cc:238
DDEcalBarrelAlgo::spmLowPhi
double spmLowPhi() const
Definition: DDEcalBarrelAlgo.cc:89
DDEcalBarrelAlgo::m_vecBackVFELyrName
std::vector< std::string > m_vecBackVFELyrName
Definition: DDEcalBarrelAlgo.cc:654
DDEcalBarrelAlgo::m_vecPincerEnvZOff
std::vector< double > m_vecPincerEnvZOff
Definition: DDEcalBarrelAlgo.cc:716
DDEcalBarrelAlgo::m_CryName
std::string m_CryName
Definition: DDEcalBarrelAlgo.cc:484
DDEcalBarrelAlgo::m_DryAirTubeHere
double m_DryAirTubeHere
Definition: DDEcalBarrelAlgo.cc:683
DDEcalBarrelAlgo::hawRCutDelY
double hawRCutDelY() const
Definition: DDEcalBarrelAlgo.cc:227
DDEcalBarrelAlgo::vecSpmRMax
const std::vector< double > & vecSpmRMax() const
Definition: DDEcalBarrelAlgo.cc:83
DDEcalBarrelAlgo::m_vecSpmCutTP
std::vector< double > m_vecSpmCutTP
Definition: DDEcalBarrelAlgo.cc:439
DDEcalBarrelAlgo::vecSpmBTran
const std::vector< double > & vecSpmBTran() const
Definition: DDEcalBarrelAlgo.cc:86
DDEcalBarrelAlgo::m_IlyPTMHere
double m_IlyPTMHere
Definition: DDEcalBarrelAlgo.cc:530
DDSplit
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
Definition: DDSplit.cc:3
DDEcalBarrelAlgo::m_GrMidSlotHere
double m_GrMidSlotHere
Definition: DDEcalBarrelAlgo.cc:621
DDCompactView::position
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string &copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
Definition: DDCompactView.cc:66
DDRotation
ROOT::Math::Rotation3D DDRotation
Definition: DDEcalEndcapAlgo.cc:18
DDEcalBarrelAlgo::m_BackSideHere
double m_BackSideHere
Definition: DDEcalBarrelAlgo.cc:587
DDEcalBarrelAlgo::m_BackBracketName
std::string m_BackBracketName
Definition: DDEcalBarrelAlgo.cc:679
DDEcalBarrelAlgo::m_ClrMat
std::string m_ClrMat
Definition: DDEcalBarrelAlgo.cc:490
DDEcalBarrelAlgo::m_PincerShim1Name
std::string m_PincerShim1Name
Definition: DDEcalBarrelAlgo.cc:722
DDEcalBarrelAlgo::m_SpmSideThick
double m_SpmSideThick
Definition: DDEcalBarrelAlgo.cc:448
DDEcalBarrelAlgo::m_vecGrilleZOff
std::vector< double > m_vecGrilleZOff
Definition: DDEcalBarrelAlgo.cc:611
DDEcalBarrelAlgo::m_MBLyrHere
double m_MBLyrHere
Definition: DDEcalBarrelAlgo.cc:699
DDEcalBarrelAlgo::barPhiLo
double barPhiLo() const
Definition: DDEcalBarrelAlgo.cc:75
DDEcalBarrelAlgo::m_vecBackVFELyrThick
std::vector< double > m_vecBackVFELyrThick
Definition: DDEcalBarrelAlgo.cc:653
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
DDEcalBarrelAlgo::barHere
double barHere() const
Definition: DDEcalBarrelAlgo.cc:77
DDEcalBarrelAlgo::backCoolHere
double backCoolHere() const
Definition: DDEcalBarrelAlgo.cc:300
DDEcalBarrelAlgo::spmSideYOffM
double spmSideYOffM() const
Definition: DDEcalBarrelAlgo.cc:107
DDEcalBarrelAlgo::spmSideName
DDName spmSideName() const
Definition: DDEcalBarrelAlgo.cc:103
EcalTrapezoidParameters::b
TPFloat b() const
Definition: EcalTrapezoidParameters.cc:165
DDEcalBarrelAlgo::m_BackPlateLength
double m_BackPlateLength
Definition: DDEcalBarrelAlgo.cc:597
DDEcalBarrelAlgo::m_PincerRodName
std::string m_PincerRodName
Definition: DDEcalBarrelAlgo.cc:707
DDEcalBarrelAlgo::backPlate2Thick
double backPlate2Thick() const
Definition: DDEcalBarrelAlgo.cc:260
DDEcalBarrelAlgo::backPlate2Name
DDName backPlate2Name() const
Definition: DDEcalBarrelAlgo.cc:259
DDEcalBarrelAlgo::m_BackPipeName
std::string m_BackPipeName
Definition: DDEcalBarrelAlgo.cc:627
DDEcalBarrelAlgo::m_PincerShimMat
std::string m_PincerShimMat
Definition: DDEcalBarrelAlgo.cc:725
EcalTrapezoidParameters::H
TPFloat H() const
Definition: EcalTrapezoidParameters.cc:173
DDEcalBarrelAlgo::backCoolVFEMat
DDMaterial backCoolVFEMat() const
Definition: DDEcalBarrelAlgo.cc:316
DDEcalBarrelAlgo::ilyPTMHeight
double ilyPTMHeight() const
Definition: DDEcalBarrelAlgo.cc:192
DDEcalBarrelAlgo::grilleName
const std::string & grilleName() const
Definition: DDEcalBarrelAlgo.cc:262
DDEcalBarrelAlgo::backCoolBarThick
double backCoolBarThick() const
Definition: DDEcalBarrelAlgo.cc:306
DDEcalBarrelAlgo::m_vecBarRota2
std::vector< double > m_vecBarRota2
Definition: DDEcalBarrelAlgo.cc:414