CMS 3D CMS Logo

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