Skip to content
Snippets Groups Projects
Commit fa94a63b authored by Chao Peng's avatar Chao Peng
Browse files

Update EcalEndcapN to fill the gaps, and update the DAWN view script for it.

parent 963e18d1
No related branches found
No related tags found
1 merge request!135Update EcalEndcapN to fill the gaps, and update the DAWN view script for it.
...@@ -60,29 +60,32 @@ ...@@ -60,29 +60,32 @@
<lines sector="2" mirrorx="true" mirrory="true"> <lines sector="2" mirrorx="true" mirrory="true">
<module sizex="GlassModule_sx" sizey="GlassModule_sy" sizez="GlassModule_sz" material="PbGlass" vis="EcalEndcapNModuleVis"/> <module sizex="GlassModule_sx" sizey="GlassModule_sy" sizez="GlassModule_sz" material="PbGlass" vis="EcalEndcapNModuleVis"/>
<wrapper thickness="GlassModule_wrap" material="Epoxy" vis="InvisibleWithDaughters"/> <wrapper thickness="GlassModule_wrap" material="Epoxy" vis="InvisibleWithDaughters"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*1/2." z="GlassModule_z0" begin="13" nmods="10"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*1/2." z="GlassModule_z0" begin="13" nmods="13"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*3/2." z="GlassModule_z0" begin="13" nmods="10"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*3/2." z="GlassModule_z0" begin="13" nmods="13"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*5/2." z="GlassModule_z0" begin="13" nmods="10"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*5/2." z="GlassModule_z0" begin="13" nmods="13"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*7/2." z="GlassModule_z0" begin="12" nmods="10"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*7/2." z="GlassModule_z0" begin="12" nmods="14"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*9/2." z="GlassModule_z0" begin="12" nmods="10"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*9/2." z="GlassModule_z0" begin="12" nmods="14"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*11/2." z="GlassModule_z0" begin="12" nmods="10"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*11/2." z="GlassModule_z0" begin="12" nmods="14"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*13/2." z="GlassModule_z0" begin="11" nmods="11"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*13/2." z="GlassModule_z0" begin="11" nmods="15"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*15/2." z="GlassModule_z0" begin="10" nmods="11"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*15/2." z="GlassModule_z0" begin="10" nmods="15"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*17/2." z="GlassModule_z0" begin="9" nmods="12"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*17/2." z="GlassModule_z0" begin="9" nmods="15"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*19/2." z="GlassModule_z0" begin="8" nmods="13"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*19/2." z="GlassModule_z0" begin="8" nmods="16"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*21/2." z="GlassModule_z0" begin="7" nmods="13"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*21/2." z="GlassModule_z0" begin="7" nmods="16"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*23/2." z="GlassModule_z0" begin="6" nmods="14"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*23/2." z="GlassModule_z0" begin="6" nmods="17"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*25/2." z="GlassModule_z0" begin="3" nmods="16"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*25/2." z="GlassModule_z0" begin="3" nmods="19"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*27/2." z="GlassModule_z0" begin="0" nmods="18"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*27/2." z="GlassModule_z0" begin="0" nmods="22"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*29/2." z="GlassModule_z0" begin="0" nmods="18"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*29/2." z="GlassModule_z0" begin="0" nmods="21"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*31/2." z="GlassModule_z0" begin="0" nmods="16"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*31/2." z="GlassModule_z0" begin="0" nmods="20"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*33/2." z="GlassModule_z0" begin="0" nmods="16"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*33/2." z="GlassModule_z0" begin="0" nmods="20"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*35/2." z="GlassModule_z0" begin="0" nmods="14"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*35/2." z="GlassModule_z0" begin="0" nmods="19"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*37/2." z="GlassModule_z0" begin="0" nmods="13"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*37/2." z="GlassModule_z0" begin="0" nmods="19"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*39/2." z="GlassModule_z0" begin="0" nmods="11"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*39/2." z="GlassModule_z0" begin="0" nmods="17"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*41/2." z="GlassModule_z0" begin="0" nmods="10"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*41/2." z="GlassModule_z0" begin="0" nmods="15"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*43/2." z="GlassModule_z0" begin="0" nmods="7"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*43/2." z="GlassModule_z0" begin="0" nmods="14"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*45/2." z="GlassModule_z0" begin="0" nmods="3"/> <line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*45/2." z="GlassModule_z0" begin="0" nmods="12"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*47/2." z="GlassModule_z0" begin="0" nmods="10"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*49/2." z="GlassModule_z0" begin="0" nmods="8"/>
<line axis="x" x="GlassModule_dx/2." y="GlassModule_dy*51/2." z="GlassModule_z0" begin="0" nmods="7"/>
</lines> </lines>
</placements> </placements>
</detector> </detector>
......
1.34392e+07 1.34392e+07
90 0
180 180
0 0
0 0
0 0
0 0
1 5
1 3
0.001 0.001
0 0
1 1
......
...@@ -44,20 +44,6 @@ done ...@@ -44,20 +44,6 @@ done
set -- "${POSITIONAL[@]}" # restore positional parameters set -- "${POSITIONAL[@]}" # restore positional parameters
#npdet_info print EcalEndcapN_z0 --value-only athena.xml
#180.5 cm
# Top view with a thin slice down the middle
dawncut 0 0 1 -1800 ${INPUT_FILE} ${FILE_TAG}_endcapN_temp0.prim
dawncut 0 0 -1 1805 ${FILE_TAG}_endcapN_temp0.prim ${FILE_TAG}_endcapN.prim
../../bin/dawn_tweak --mag 5 --draw 1 --theta 180 --phi 0 --draw 3
dawn -d ${FILE_TAG}_endcapN.prim
ps2pdf ${FILE_TAG}_endcapN.eps ${FILE_TAG}_endcapN_full.pdf
gs -o ${FILE_TAG}_endcapN.pdf -sDEVICE=pdfwrite \
-c "[/CropBox [51 250 550 590] /PAGES pdfmark" \
-f ${FILE_TAG}_endcapN_full.pdf
pdftoppm ${FILE_TAG}_endcapN.pdf ${FILE_TAG}_endcapN -png -singlefile -cropbox -thinlinemode solid -aaVector yes
# Top view with a thin slice down the middle # Top view with a thin slice down the middle
dawncut 0 1 0 1 ${INPUT_FILE} ${FILE_TAG}_top_temp0.prim dawncut 0 1 0 1 ${INPUT_FILE} ${FILE_TAG}_top_temp0.prim
dawncut 0 -1 0 1 ${FILE_TAG}_top_temp0.prim ${FILE_TAG}_top.prim dawncut 0 -1 0 1 ${FILE_TAG}_top_temp0.prim ${FILE_TAG}_top.prim
...@@ -79,3 +65,25 @@ gs -o ${FILE_TAG}.pdf -sDEVICE=pdfwrite \ ...@@ -79,3 +65,25 @@ gs -o ${FILE_TAG}.pdf -sDEVICE=pdfwrite \
-c "[/CropBox [51 250 550 590] /PAGES pdfmark" \ -c "[/CropBox [51 250 550 590] /PAGES pdfmark" \
-f ${FILE_TAG}_full.pdf -f ${FILE_TAG}_full.pdf
pdftoppm ${FILE_TAG}.pdf ${FILE_TAG} -png -singlefile -cropbox -thinlinemode solid -aaVector yes pdftoppm ${FILE_TAG}.pdf ${FILE_TAG} -png -singlefile -cropbox -thinlinemode solid -aaVector yes
#npdet_info print EcalEndcapN_z0 --value-only ../../athena.xml
#180.5 cm
NMOD1=`npdet_info print EcalEndcapN_NModules_Sector1 ${DETECTOR_PATH}/calorimeters.xml | tail -1`
NMOD2=`npdet_info print EcalEndcapN_NModules_Sector2 ${DETECTOR_PATH}/calorimeters.xml | tail -1`
# Top view with a thin slice down the middle
dawncut 0 0 1 -1800 ${INPUT_FILE} ${FILE_TAG}_endcapN_temp0.prim
dawncut 0 0 -1 1805 ${FILE_TAG}_endcapN_temp0.prim ${FILE_TAG}_endcapN.prim
../../bin/dawn_tweak --mag 5 --draw 1 --theta 180 --phi 0 --draw 3
dawn -d ${FILE_TAG}_endcapN.prim
ps2pdf ${FILE_TAG}_endcapN.eps ${FILE_TAG}_endcapN_full.pdf
gs -o ${FILE_TAG}_endcapN.pdf -sDEVICE=pdfwrite \
-c "[/CropBox [50 170 550 670] /PAGES pdfmark" \
-f ${FILE_TAG}_endcapN_full.pdf
pdftoppm ${FILE_TAG}_endcapN.pdf ${FILE_TAG}_endcapN -png -singlefile -cropbox -thinlinemode solid \
-aaVector yes -r 1200
convert -pointsize 180 -fill black -draw "text 200,200 \"$NMOD1 Crystals\"" \
${FILE_TAG}_endcapN.png ${FILE_TAG}_endcapN.png
convert -pointsize 180 -fill black -draw "text 200,400 \"$NMOD2 Glasses\"" \
${FILE_TAG}_endcapN.png ${FILE_TAG}_endcapN.png
...@@ -111,10 +111,10 @@ using namespace dd4hep; ...@@ -111,10 +111,10 @@ using namespace dd4hep;
*/ */
// headers // headers
static void add_individuals(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int id); static std::tuple<int, int> add_individuals(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int id);
static void add_array(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int id); static std::tuple<int, int> add_array(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int id);
static void add_disk(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int id); static std::tuple<int, int> add_disk(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int id);
static void add_lines(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int id); static std::tuple<int, int> add_lines(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int id);
// helper function to get x, y, z if defined in a xml component // helper function to get x, y, z if defined in a xml component
template<class XmlComp> template<class XmlComp>
...@@ -133,7 +133,6 @@ Position get_xml_xyz(XmlComp &comp, dd4hep::xml::Strng_t name) ...@@ -133,7 +133,6 @@ Position get_xml_xyz(XmlComp &comp, dd4hep::xml::Strng_t name)
// main // main
static Ref_t create_detector(Detector& desc, xml::Handle_t handle, SensitiveDetector sens) static Ref_t create_detector(Detector& desc, xml::Handle_t handle, SensitiveDetector sens)
{ {
static const std::string func = "HomogeneousCalorimeter";
xml::DetElement detElem = handle; xml::DetElement detElem = handle;
std::string detName = detElem.nameStr(); std::string detName = detElem.nameStr();
int detID = detElem.id(); int detID = detElem.id();
...@@ -144,18 +143,35 @@ static Ref_t create_detector(Detector& desc, xml::Handle_t handle, SensitiveDete ...@@ -144,18 +143,35 @@ static Ref_t create_detector(Detector& desc, xml::Handle_t handle, SensitiveDete
// module placement // module placement
xml::Component plm = detElem.child(_Unicode(placements)); xml::Component plm = detElem.child(_Unicode(placements));
int sector = 1; std::map<int, int> sectorModuleNumbers;
auto addModuleNumbers = [&sectorModuleNumbers] (int sector, int nmod) {
auto it = sectorModuleNumbers.find(sector);
if (it != sectorModuleNumbers.end()) {
it->second += nmod;
} else {
sectorModuleNumbers[sector] = nmod;
}
};
int sector_id = 1;
for (xml::Collection_t mod(plm, _Unicode(individuals)); mod; ++mod) { for (xml::Collection_t mod(plm, _Unicode(individuals)); mod; ++mod) {
add_individuals(desc, assembly, mod, sens, sector++); auto [sector, nmod] = add_individuals(desc, assembly, mod, sens, sector_id++);
addModuleNumbers(sector, nmod);
} }
for (xml::Collection_t arr(plm, _Unicode(array)); arr; ++arr) { for (xml::Collection_t arr(plm, _Unicode(array)); arr; ++arr) {
add_array(desc, assembly, arr, sens, sector++); auto [sector, nmod] = add_array(desc, assembly, arr, sens, sector_id++);
addModuleNumbers(sector, nmod);
} }
for (xml::Collection_t disk(plm, _Unicode(disk)); disk; ++disk) { for (xml::Collection_t disk(plm, _Unicode(disk)); disk; ++disk) {
add_disk(desc, assembly, disk, sens, sector++); auto [sector, nmod] = add_disk(desc, assembly, disk, sens, sector_id++);
addModuleNumbers(sector, nmod);
} }
for (xml::Collection_t lines(plm, _Unicode(lines)); lines; ++lines) { for (xml::Collection_t lines(plm, _Unicode(lines)); lines; ++lines) {
add_lines(desc, assembly, lines, sens, sector++); auto [sector, nmod] = add_lines(desc, assembly, lines, sens, sector_id++);
addModuleNumbers(sector, nmod);
}
for (auto [sector, nmods] : sectorModuleNumbers) {
desc.add(Constant(Form((detName + "_NModules_Sector%d").c_str(), sector), std::to_string(nmods)));
} }
// detector position and rotation // detector position and rotation
...@@ -202,11 +218,11 @@ std::tuple<Volume, Position> build_module(Detector &desc, xml::Collection_t &plm ...@@ -202,11 +218,11 @@ std::tuple<Volume, Position> build_module(Detector &desc, xml::Collection_t &plm
} }
// place modules, id must be provided // place modules, id must be provided
static void add_individuals(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int sid) static std::tuple<int, int> add_individuals(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int sid)
{ {
auto [modVol, modSize] = build_module(desc, plm, sens); auto [modVol, modSize] = build_module(desc, plm, sens);
int sector_id = dd4hep::getAttrOrDefault<int>(plm, _Unicode(sector), sid); int sector_id = dd4hep::getAttrOrDefault<int>(plm, _Unicode(sector), sid);
int nmodules = 0;
for (xml::Collection_t pl(plm, _Unicode(placement)); pl; ++pl) { for (xml::Collection_t pl(plm, _Unicode(placement)); pl; ++pl) {
Position pos(dd4hep::getAttrOrDefault<double>(pl, _Unicode(x), 0.), Position pos(dd4hep::getAttrOrDefault<double>(pl, _Unicode(x), 0.),
dd4hep::getAttrOrDefault<double>(pl, _Unicode(y), 0.), dd4hep::getAttrOrDefault<double>(pl, _Unicode(y), 0.),
...@@ -219,11 +235,14 @@ static void add_individuals(Detector& desc, Assembly &env, xml::Collection_t &pl ...@@ -219,11 +235,14 @@ static void add_individuals(Detector& desc, Assembly &env, xml::Collection_t &pl
* RotationZYX(rot.z(), rot.y(), rot.x()); * RotationZYX(rot.z(), rot.y(), rot.x());
auto modPV = env.placeVolume(modVol, tr); auto modPV = env.placeVolume(modVol, tr);
modPV.addPhysVolID("sector", sector_id).addPhysVolID("module", mid); modPV.addPhysVolID("sector", sector_id).addPhysVolID("module", mid);
nmodules ++;
} }
return {sector_id, nmodules};
} }
// place array of modules // place array of modules
static void add_array(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int sid) static std::tuple<int, int> add_array(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int sid)
{ {
auto [modVol, modSize] = build_module(desc, plm, sens); auto [modVol, modSize] = build_module(desc, plm, sens);
int sector_id = dd4hep::getAttrOrDefault<int>(plm, _Unicode(sector), sid); int sector_id = dd4hep::getAttrOrDefault<int>(plm, _Unicode(sector), sid);
...@@ -244,6 +263,7 @@ static void add_array(Detector& desc, Assembly &env, xml::Collection_t &plm, Sen ...@@ -244,6 +263,7 @@ static void add_array(Detector& desc, Assembly &env, xml::Collection_t &plm, Sen
// placement to mother // placement to mother
auto pos = get_xml_xyz(plm, _Unicode(position)); auto pos = get_xml_xyz(plm, _Unicode(position));
auto rot = get_xml_xyz(plm, _Unicode(rotation)); auto rot = get_xml_xyz(plm, _Unicode(rotation));
int nmodules = 0;
for (int i = 0; i < nrow; ++i) { for (int i = 0; i < nrow; ++i) {
for (int j = 0; j < ncol; ++j) { for (int j = 0; j < ncol; ++j) {
if (std::find(removals.begin(), removals.end(), std::pair<int, int>(i, j)) != removals.end()) { if (std::find(removals.begin(), removals.end(), std::pair<int, int>(i, j)) != removals.end()) {
...@@ -255,12 +275,14 @@ static void add_array(Detector& desc, Assembly &env, xml::Collection_t &plm, Sen ...@@ -255,12 +275,14 @@ static void add_array(Detector& desc, Assembly &env, xml::Collection_t &plm, Sen
* Translation3D(pos.x() + px, pos.y() + py, pos.z()); * Translation3D(pos.x() + px, pos.y() + py, pos.z());
auto modPV = env.placeVolume(modVol, tr); auto modPV = env.placeVolume(modVol, tr);
modPV.addPhysVolID("sector", sector_id).addPhysVolID("module", i*ncol + j + id_begin); modPV.addPhysVolID("sector", sector_id).addPhysVolID("module", i*ncol + j + id_begin);
nmodules ++;
} }
} }
return {sector_id, nmodules};
} }
// place disk of modules // place disk of modules
static void add_disk(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int sid) static std::tuple<int, int> add_disk(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int sid)
{ {
auto [modVol, modSize] = build_module(desc, plm, sens); auto [modVol, modSize] = build_module(desc, plm, sens);
int sector_id = dd4hep::getAttrOrDefault<int>(plm, _Unicode(sector), sid); int sector_id = dd4hep::getAttrOrDefault<int>(plm, _Unicode(sector), sid);
...@@ -281,10 +303,11 @@ static void add_disk(Detector& desc, Assembly &env, xml::Collection_t &plm, Sens ...@@ -281,10 +303,11 @@ static void add_disk(Detector& desc, Assembly &env, xml::Collection_t &plm, Sens
auto modPV = env.placeVolume(modVol, tr); auto modPV = env.placeVolume(modVol, tr);
modPV.addPhysVolID("sector", sector_id).addPhysVolID("module", id_begin + mid++); modPV.addPhysVolID("sector", sector_id).addPhysVolID("module", id_begin + mid++);
} }
return {sector_id, mid};
} }
// place lines of modules (anchor point is the 0th module of this line) // place lines of modules (anchor point is the 0th module of this line)
static void add_lines(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int sid) static std::tuple<int, int> add_lines(Detector& desc, Assembly &env, xml::Collection_t &plm, SensitiveDetector &sens, int sid)
{ {
auto [modVol, modSize] = build_module(desc, plm, sens); auto [modVol, modSize] = build_module(desc, plm, sens);
int sector_id = dd4hep::getAttrOrDefault<int>(plm, _Unicode(sector), sid); int sector_id = dd4hep::getAttrOrDefault<int>(plm, _Unicode(sector), sid);
...@@ -294,7 +317,7 @@ static void add_lines(Detector& desc, Assembly &env, xml::Collection_t &plm, Sen ...@@ -294,7 +317,7 @@ static void add_lines(Detector& desc, Assembly &env, xml::Collection_t &plm, Sen
bool mirrorz = dd4hep::getAttrOrDefault<bool>(plm, _Unicode(mirrorz), false); bool mirrorz = dd4hep::getAttrOrDefault<bool>(plm, _Unicode(mirrorz), false);
// line placement // line placement
int mid = 1; int mid = 0;
for (xml::Collection_t pl(plm, _Unicode(line)); pl; ++pl) { for (xml::Collection_t pl(plm, _Unicode(line)); pl; ++pl) {
Position pos(dd4hep::getAttrOrDefault<double>(pl, _Unicode(x), 0.), Position pos(dd4hep::getAttrOrDefault<double>(pl, _Unicode(x), 0.),
dd4hep::getAttrOrDefault<double>(pl, _Unicode(y), 0.), dd4hep::getAttrOrDefault<double>(pl, _Unicode(y), 0.),
...@@ -350,6 +373,7 @@ static void add_lines(Detector& desc, Assembly &env, xml::Collection_t &plm, Sen ...@@ -350,6 +373,7 @@ static void add_lines(Detector& desc, Assembly &env, xml::Collection_t &plm, Sen
modPV.addPhysVolID("sector", sector_id).addPhysVolID("module", id_begin + mid++); modPV.addPhysVolID("sector", sector_id).addPhysVolID("module", id_begin + mid++);
} }
} }
return {sector_id, mid};
} }
//@} //@}
DECLARE_DETELEMENT(HomogeneousCalorimeter, create_detector) DECLARE_DETELEMENT(HomogeneousCalorimeter, create_detector)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment