7 #include <Geant4/G4Box.hh>
8 #include <Geant4/G4Colour.hh>
9 #include <Geant4/G4LogicalVolume.hh>
10 #include <Geant4/G4PVPlacement.hh>
11 #include <Geant4/G4RotationMatrix.hh>
12 #include <Geant4/G4String.hh>
13 #include <Geant4/G4SystemOfUnits.hh>
14 #include <Geant4/G4ThreeVector.hh>
15 #include <Geant4/G4Transform3D.hh>
16 #include <Geant4/G4Tubs.hh>
17 #include <Geant4/G4Types.hh>
18 #include <Geant4/G4VisAttributes.hh>
47 , tower_angular_coverage(NAN)
48 , cemc_angular_coverage(NAN)
49 , active_scinti_fraction(0.78)
50 , sandwiches_per_tower(12)
65 for (
int i = 0; i < 4; i++)
115 ostringstream tower_vol_name;
116 for (
int i = 0; i < 7; i++)
118 tower_vol_name <<
"CEmcTower_" << i;
123 tower_vol_name.str(
"");
146 ostringstream sandwich_name;
147 for (
int i = 0; i < 12; i++)
152 sandwich_name <<
"CEmcSandwich_" << i;
162 sandwich_name.str().c_str(),
164 sandwich_name.str(
"");
173 vector<G4LogicalVolume*> block_logic;
180 <<
" try between 0 and 1" << endl;
184 double sc_passive_thickness =
sc_dimension[1] - sc_active_thickness;
190 G4VSolid* block_passive_sc =
nullptr;
207 block_logic[0]->SetVisAttributes(matVis);
208 block_logic[1]->SetVisAttributes(matVis1);
245 if (sc_passive_thickness > 0)
251 block_passive_sc =
new G4Box(
"Passive_Scinti_box",
255 "Plate_log_Passive_Sc",
257 block_logic[2]->SetVisAttributes(matVis2);
263 "CEmc_Passive_Si_plate",