|
|
Go to the documentation of this file.
74 tile = sArgs[
"TileName"];
79 names = vsArgs[
"VolumeNames"];
80 thick = vArgs[
"Thickness"];
86 for (
unsigned int i = 0;
i <
names.size(); ++
i)
94 for (
unsigned int i = 0;
i <
layers.size(); ++
i)
111 for (
unsigned int i = 0;
i <
widths.size(); ++
i)
117 edm::LogVerbatim(
"HGCalGeom") <<
"DDAHcalModuleAlgo: " <<
tileN.size() <<
" tile positioning parameters";
118 for (
unsigned int i = 0;
i <
tileN.size(); ++
i)
138 edm::LogVerbatim(
"HGCalGeom") <<
"<<== End of DDAHcalModuleAlgo construction";
144 edm::LogVerbatim(
"HGCalGeom") <<
"DDAHcalModuleAlgo test: \t\tInside Layers";
148 for (
unsigned int i = 0;
i <
layers.size();
i++) {
150 int laymax = laymin +
layers[
i];
153 for (
int ly = laymin; ly < laymax; ++ly) {
161 edm::LogVerbatim(
"HGCalGeom") <<
"DDAHcalModuleAlgo test: Layer " << ly <<
":" <<
ii <<
" Front " << zi
162 <<
" Back " << zo <<
" superlayer thickness " <<
layerThick[
i];
172 edm::LogVerbatim(
"HGCalGeom") <<
"DDAHcalModuleAlgo: " << solid.
name() <<
" Box made of " << matName
173 <<
" of dimensions " << 0.5 *
widths[0] <<
", " << 0.5 *
heights[0] <<
", "
181 edm::LogVerbatim(
"HGCalGeom") <<
"DDAHcalModuleAlgo: " << solid.
name() <<
" Box made of " << matName
182 <<
" of dimensions " << 0.5 *
widths[1] <<
", " << 0.5 *
heights[1] <<
", "
193 <<
module.name() <<
" at " <<
r1 <<
" with " <<
rot;
202 << thickTot <<
" of all its components **** ERROR ****\n";
205 << thickTot <<
" of the components\n";
211 int ncol =
tileN[0] / 2;
212 int nrow =
tileN[1] / 2;
217 for (
int nr = -nrow;
nr <= nrow; ++
nr) {
218 int inr = (
nr >= 0) ?
nr : -
nr;
220 for (
int nc = -ncol; nc <= ncol; ++nc) {
221 int inc = (nc >= 0) ? nc : -nc;
222 double xpos = (nc >= 0) ? (inc - 0.5) *
tileStep[0] : -(inc - 0.5) *
tileStep[0];
223 if (
nr != 0 && nc != 0) {
void execute(DDCompactView &cpv) override
std::vector< double > heights
std::vector< int > layerSense
DDName is used to identify DDD entities uniquely.
void positionSensitive(DDLogicalPart &glog, DDCompactView &cpv)
std::vector< std::string > materials
std::vector< double > widths
U second(std::pair< T, U > const &p)
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
std::vector< int > dbl_to_int(const std::vector< double > &vecdbl)
Converts a std::vector of doubles to a std::vector of int.
std::vector< int > copyNumber
~DDAHcalModuleAlgo() override
DDMaterial is used to define and access material information.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Compact representation of the geometrical detector hierarchy.
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::vector< int > layers
static constexpr int kSignRowColumn_
std::vector< double > thick
A DDLogicalPart aggregates information concerning material, solid and sensitveness ....
static constexpr int kColumn_
Constants used.
std::vector< std::string > names
static std::string & ns()
std::vector< int > layerType
A DDSolid represents the shape of a part.
Represents a uniquely identifyable rotation matrix.
void constructLayers(const DDLogicalPart &, DDCompactView &cpv)
std::vector< double > layerThick
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
static constexpr int kRowColumn_
std::vector< double > tileStep
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)