Skip to content
Snippets Groups Projects
Commit 0dba7d39 authored by Markus Frank's avatar Markus Frank Committed by MarkusFrankATcernch
Browse files

Elaborate a bit more the DDG4_MySensDet example and fix the persistency of the Geant4 hits

parent 83505249
No related branches found
No related tags found
No related merge requests found
......@@ -52,19 +52,19 @@ static Ref_t create_element(Detector& description, xml_h e, Ref_t sens) {
int num_sensitive = 0;
for(xml_coll_t i(x_det,_U(shield)); i; ++i) {
xml_comp_t s = i;
double z = s.z(), dz = s.dz();
xml_comp_t shield = i;
double z = shield.z(), dz = shield.dz();
double r1 = sin_cone*z, r2 = sin_cone*(z+dz);
string nam = s.nameStr();
string nam = shield.nameStr();
Cone con(dz/2., 0., r1, 0., r2);
Material mat(description.material(s.attr<string>(_U(material))));
Material mat(description.material(shield.attr<string>(_U(material))));
Volume vol(nam,con,mat);
printout(INFO,"CODEX-b","%s Shield: %-12s %-12s z=%7g dz=%7g r1=%7g r2=%7g",
det_name.c_str(), vol.name(), ('['+string(mat.name())+']').c_str(), z, dz, r1, r2);
vol.setVisAttributes(description, s.visStr());
vol.setVisAttributes(description, shield.visStr());
pv = env_vol.placeVolume(vol, Position(0,0,-env_dz+z+dz/2.0));
if ( s.isSensitive() ) {
if ( shield.isSensitive() ) {
DetElement det(sdet, "shield_"+nam, x_det.id());
pv.addPhysVolID("type", 0);
pv.addPhysVolID("module", num_sensitive);
......@@ -76,25 +76,25 @@ static Ref_t create_element(Detector& description, xml_h e, Ref_t sens) {
int type_num = 0, station_number = 0;
double z0 = 0.0, x0 = 0.0, x_tot = 0.0;
for(xml_coll_t i(x_det,_U(station)); i; ++i, ++type_num) {
xml_comp_t s = i;
x_tot += double(s.repeat())*(s.distance()+s.thickness());
xml_comp_t station = i;
x_tot += double(station.repeat())*(station.distance()+station.thickness());
}
printout(INFO,"CODEX-b","%s X_tot= %g",det_name.c_str(), x_tot);
for(xml_coll_t i(x_det,_U(station)); i; ++i, ++type_num) {
xml_comp_t s = i;
int repeat = s.repeat();
xml_comp_t station = i;
int repeat = station.repeat();
string nam = _toString(station_number,"CODEX_station_type%d");
Box box(s.width()/2., s.height()/2., s.thickness()/2.);
Material mat(description.material(s.attr<string>(_U(material))));
Box box(station.width()/2., station.height()/2., station.thickness()/2.);
Material mat(description.material(station.attr<string>(_U(material))));
Volume vol(nam,box,mat);
double dist = s.thickness()+s.distance();
double dist = station.thickness()+station.distance();
double dx = dist/sin_beam;
double dz = dist/cos_beam;
if ( s.hasAttr(_U(z)) ) {
z0 = s.z()+x_tot/2.0/cos_beam;
if ( station.hasAttr(_U(z)) ) {
z0 = station.z()+x_tot/2.0/cos_beam;
x0 = -x_tot/2.0/sin_beam;
}
vol.setVisAttributes(description, s.visStr());
vol.setVisAttributes(description, station.visStr());
for(int j=0; j < repeat; ++j) {
DetElement det(sdet, _toString(station_number,"module%d"), station_number);
pv = env_vol.placeVolume(vol, Transform3D(RotationZYX(0,M_PI/2.0-env_angle,0), Position(x0,0,z0)));
......
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