CMS 3D CMS Logo

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