43 std::cout <<
"analyze does nothing" << std::endl;
57 std::string pseudoTrapFileName(
"PSEUDOTRAPEZOIDS.dat");
59 std::string boolSolidsFileName(
"BOOLEANSOLIDS.dat");
60 std::string reflectionSolidsFileName(
"REFLECTIONSOLIDS.dat");
63 std::ofstream solidsOS(solidsFileName.c_str());
64 std::ofstream boxOS(boxFileName.c_str());
65 std::ofstream tubeOS(tubesFileName.c_str());
66 std::ofstream polyHOS(polyHedraFileName.c_str());
67 std::ofstream polyCOS(polyConeFileName.c_str());
68 std::ofstream coneOS(conesFileName.c_str());
69 std::ofstream ptrapOS(pseudoTrapFileName.c_str());
70 std::ofstream trapOS(trapFileName.c_str());
71 std::ofstream boolOS(boolSolidsFileName.c_str());
72 std::ofstream reflectionOS(reflectionSolidsFileName.c_str());
73 std::ofstream torusOS(torusFileName.c_str());
75 std::cout <<
"SolidsForOnline Analyzer..." << std::endl;
85 for (; sit != sed; ++sit) {
86 if (! sit->isDefined().second)
continue;
93 switch (solid.
shape())
99 boolOS << boolSolid.
name() <<
"," ;
114 boolOS << boolSolid.
name() <<
"," ;
136 boolOS << boolSolid.
name() <<
"," ;
152 reflectionOS<<reflection.
name()<<
","
161 boxOS<<box.
name()<<
",";
162 boxOS<<2.0*box.
halfX()<<
","<<2.0*box.
halfY()<<
","<<2.0*box.
halfZ()<<std::endl;
170 ptrapOS<<pseudoTrap.
name() <<
",";
171 ptrapOS<<pseudoTrap.
x1() <<
","<<pseudoTrap.
x2() <<
","
172 <<pseudoTrap.
halfZ()*2. <<
","<<pseudoTrap.
y1() <<
","
173 <<pseudoTrap.
y2() <<
","<<pseudoTrap.
radius()<<
","
187 tubeOS<<tubs.
name()<<
","<<tubs.
rIn()<<
","
188 <<tubs.
rOut()<<
","<<tubs.
zhalf()*2.0<<
","
199 trapOS<<trap.
name()<<
",";
201 <<trap.
x1()<<
","<<trap.
x2()<<
","
202 <<trap.
halfZ()*2.0<<
","<<trap.
y1()<<
","
204 <<trap.
phi()<<
","<<trap.
theta()<<
","
205 <<trap.
x3()<<
","<<trap.
x4()
212 coneOS<<cons.
name()<<
","<<cons.
zhalf()*2.0<<
","
227 <<
","<<polyCone.
deltaPhi()<<
","<<
"RZ"
234 polyHOS<<polyHedra.
name()<<
",";
236 <<
","<<polyHedra.
deltaPhi()<<
","<<
"RZ"
244 <<
","<<polyCone.
deltaPhi()<<
","<<
"ZS"
252 polyHOS<<polyHedra.
name()<<
",";
254 <<
","<<polyHedra.
deltaPhi()<<
","<<
"ZS"
262 tubeOS<<tubs.
name()<<
","<<tubs.
rIn()<<
","
263 <<tubs.
rOut()<<
","<<tubs.
zHalf()*2.0<<
","
273 torusOS<<torus.
name()<<
","<<torus.
rMin()<<
","
291 throw cms::Exception(
"DDException") <<
"DDDToPersFactory::solid(...) either not inited or no such solid.";
307 reflectionOS.close();
double startPhi(void) const
double cutAtStart(void) const
truncation at begin of the tube-section
double halfZ(void) const
half of the z-Axis
bool cutInside(void) const
true, if truncation is on the inner side of the tube-section
A truncated tube section.
double x1(void) const
Half-length along x of the side at y=-pDy1 of the face at -pDz.
double zHalf(void) const
half of the z-Axis
double y2(void) const
half length along y on +z
double deltaPhi(void) const
angular span of the tube-section
double phi(void) const
Azimuthal angle of the line joining the centres of the faces at -/+pDz.
#define DEFINE_FWK_MODULE(type)
double rTorus(void) const
const graph_type & graph() const
Provides read-only access to the data structure of the compact-view.
double cutAtDelta(void) const
truncation at end of the tube-section
double phiFrom(void) const
double rIn(void) const
inner radius
double rOutMinusZ(void) const
double rOutPlusZ(void) const
DDTranslation translation(void) const
type of data representation of DDCompactView
A DDSolid represents the shape of a part.
double y1(void) const
half length along y on -z
DDSolid solidB(void) const
SolidsForOnline(const edm::ParameterSet &)
static const char *const name(DDSolidShape s)
DDSolid unreflected(void) const
double x4(void) const
Half-length along x of the side at y=+pDy2 of the face at +pDz.
DDRotation rotation(void) const
bool atMinusZ(void) const
true, if cut-out or rounding is on the -z side
double halfZ(void) const
half of the z-Axis
double startPhi(void) const
double startPhi(void) const
double deltaPhi(void) const
Interface to a Trapezoid.
double y1(void) const
Half-length along y of the face at -pDz.
double rInMinusZ(void) const
DDSolidShape shape(void) const
The type of the solid.
DDSolid solidA(void) const
double deltaPhi(void) const
double deltaPhi(void) const
double startPhi(void) const
double deltaPhi(void) const
double alpha1(void) const
Angle with respect to the y axis from the centre of the side at y=-pDy1 to the centre at y=+pDy1 of t...
double alpha2(void) const
Angle with respect to the y axis from the centre of the side at y=-pDy2 to the centre at y=+pDy2 of t...
double startPhi(void) const
angular start of the tube-section
double x2(void) const
Half-length along x of the side at y=+pDy1 of the face at -pDz.
virtual void beginRun(const edm::Run &, const edm::EventSetup &) override
double deltaPhi(void) const
double y2(void) const
Half-length along y of the face at +pDz.
static DDI::Store< DDName, DDI::Solid * >::iterator begin()
double rInPlusZ(void) const
static DDI::Store< DDName, DDI::Solid * >::iterator end()
double x2(void) const
half length along x on +z
double rOut(void) const
outer radius
double theta(void) const
Polar angle of the line joining the centres of the faces at -/+pDz.
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
double x3(void) const
Half-length along x of the side at y=-pDy2 of the face at +pDz.
double x1(void) const
half length along x on -z
double radius(void) const
radius of the cut-out (neg.) or rounding (pos.)