16 #include "CLHEP/Units/GlobalPhysicalConstants.h" 17 #include "CLHEP/Units/GlobalSystemOfUnits.h" 19 using namespace CLHEP;
22 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB info: Creating an instance" ;
32 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB info: Initialize" ;
34 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB IQUAD_MIN";
36 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB IQUAD_MAX";
38 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB Layers";
40 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB PRESH_Z_TOTAL";
42 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB material";
44 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB R_MAX";
46 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB R_MIN";
48 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB waf_intra_col_sep";
54 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB wedge_length = " 61 absorbx = double(nArgs[
"absorbx"]);
62 absorby = double(nArgs[
"absorby"]);
70 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB Dummy Material = " 75 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB info: end initialize" ;
80 LogDebug(
"HCalGeom") <<
"******** DDEcalPreshowerAlgoTB execute!";
100 std::ostringstream
name;
101 name <<
"SF" <<
int((50+I)/10) << I-
int(I/10)*10;
138 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB debug : Child " 139 << layer <<
" Copy 1 in " <<
parent().name()
140 <<
" with translation " << tran
150 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : doWedges()";
151 int nx(0), ny(0), icopy(0), icopyt(0);
152 double xpos(0), ypos(0), zpos(0);
161 for(
int I=1;
I<=sz;++
I) {
168 if (
m==icopy) {
go=1; icopyt +=1; }
178 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 179 << name1 <<
" copy = " << icopy <<
" (" 180 << icopyt <<
") in Mother " <<
parent().name()
181 <<
" translation " <<tran <<
" rotation " <<rot1;
188 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 189 << name2 <<
" copy = " << icopy <<
" (" 190 << icopyt <<
") in Mother " <<
parent().name()
191 <<
" translation " <<tran <<
" rotation " <<rot2;
200 if (
m==icopy) {
go=1; icopyt +=1;}
209 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 210 << name1 <<
" copy = " << icopy <<
" (" 211 << icopyt <<
") in Mother " <<
parent().name()
212 <<
" translation " <<tran <<
" rotation " <<rot1;
219 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 220 << name2 <<
" copy = " << icopy <<
" (" 221 << icopyt <<
") in Mother " <<
parent().name()
222 <<
" translation " <<tran <<
" rotation " <<rot2;
231 for(
int I=sz;
I>=1;--
I) {
237 if (
m==icopy) {
go=1; icopyt +=1;}
247 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 248 << name1 <<
" copy = " << icopy <<
" (" 249 << icopyt <<
") in Mother " <<
parent().name()
250 <<
" translation " <<tran <<
" rotation " << rot1;
257 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 258 << name2 <<
" copy = " << icopy <<
" (" 259 << icopyt <<
") in Mother " <<
parent().name()
260 <<
" translation " <<tran <<
" rotation "<<rot2;
269 if (
m==icopy) {
go=1; icopyt +=1;}
278 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 279 << name1 <<
" copy = " << icopy <<
" (" 280 << icopyt <<
") in Mother " <<
parent().name()
281 <<
" translation " <<tran <<
" rotation " <<rot1;
288 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 289 << name2 <<
" copy = " << icopy <<
" (" 290 << icopyt <<
") in Mother " <<
parent().name()
291 <<
" translation " <<tran <<
" rotation " <<rot2;
303 for(
int I=1;
I<=sz;++
I) {
309 if (
m==icopy) {
go=1; icopyt +=1;}
319 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 320 << name1 <<
" copy = " << icopy <<
" (" 321 << icopyt+nxt <<
") in Mother " <<
parent().name()
322 <<
" translation " <<tran <<
" rotation " <<rot1;
329 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 330 << name2 <<
" copy = " << icopy <<
" (" 331 << icopyt <<
") in Mother " <<
parent().name()
332 <<
" translation " <<tran <<
" rotation " <<rot2;
341 if (
m==icopy) {
go=1; icopyt +=1;}
351 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 352 << name1 <<
" copy = " << icopy <<
" (" 353 << icopyt+nxt <<
") in Mother " <<
parent().name()
354 <<
" translation " <<tran <<
" rotation " <<rot1;
361 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 362 << name2 <<
" copy = " << icopy <<
" (" 363 << icopyt <<
") in Mother " <<
parent().name()
364 <<
" translation " <<tran <<
" rotation " <<rot2;
372 for(
int I=sz;
I>=1;--
I) {
378 if (
m==icopy) {
go=1; icopyt +=1;}
388 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 389 << name1 <<
" copy = " << icopy <<
" (" 390 << icopyt+nxt <<
") in Mother " <<
parent().name()
391 <<
" translation " <<tran <<
" rotation " <<rot1;
398 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 399 << name2 <<
" copy = " << icopy <<
" (" 400 << icopyt <<
") in Mother " <<
parent().name()
401 <<
" translation " <<tran <<
" rotation " <<rot2;
410 if (
m==icopy) {
go=1; icopyt +=1;}
420 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 421 << name1 <<
" copy = " << icopy <<
" (" 422 << icopyt+nxt <<
") in Mother " <<
parent().name()
423 <<
" translation " <<tran <<
" rotation " <<rot1;
430 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " 431 << name2 <<
" copy = " << icopy <<
" (" 432 << icopyt <<
") in Mother " <<
parent().name()
433 <<
" translation " <<tran <<
" rotation " <<rot2;
442 double xpos(0), ypos(0);
449 for(
size_t i = 0;
i<32; ++
i) {
453 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " << child1
454 <<
"\ncopy number " <<
i+1 <<
" in " << mother1
455 <<
" translation "<< tran <<
" rotation " <<
rot;
460 LogDebug(
"HCalGeom") <<
"DDEcalPreshowerAlgoTB::debug : Child " << child2
461 <<
"\ncopy number " <<
i+1 <<
" in " << mother2
462 <<
" translation "<< tran <<
" rotation " <<
rot;
void doSens(DDCompactView &pos)
std::vector< double > quadMax_
DDMaterial is used to define and access material information.
std::vector< std::string > materials_
DDName is used to identify DDD entities uniquely.
std::vector< double > micromodulesy
static std::string & ns()
std::string dummyMaterial
Compact representation of the geometrical detector hierarchy.
A DDSolid represents the shape of a part.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
std::vector< double > rminVec
std::string getMaterial(unsigned int i) const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
const std::complex< double > I
std::vector< double > rmaxVec
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
double ywedge_ceramic_diff
void doLayers(DDCompactView &pos)
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=0)
std::vector< double > thickLayers_
double zwedge_ceramic_diff
std::vector< double > quadMin_
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
void doWedges(DDCompactView &pos)
std::vector< double > micromodulesx
void execute(DDCompactView &pos) override