5 #include <Geant4/G4Colour.hh>
6 #include <Geant4/G4Cons.hh>
7 #include <Geant4/G4LogicalVolume.hh>
8 #include <Geant4/G4PVPlacement.hh>
9 #include <Geant4/G4RotationMatrix.hh>
10 #include <Geant4/G4String.hh>
11 #include <Geant4/G4SystemOfUnits.hh>
12 #include <Geant4/G4ThreeVector.hh>
13 #include <Geant4/G4Transform3D.hh>
14 #include <Geant4/G4Tubs.hh>
15 #include <Geant4/G4Types.hh>
16 #include <Geant4/G4VPhysicalVolume.hh>
17 #include <Geant4/G4VisAttributes.hh>
34 , _innerRadius(0.0 *
m)
35 , _outerRadius(1.0 *
m)
40 , _materialCrystal(
"G4_PbWO4")
43 , _superdetector(
"NONE")
50 if (volume->GetName().find(
"arbage") != string::npos)
72 G4double rMin2 = rMin1;
73 G4double rMax2 = rMax1;
75 G4double sPhi =
_sPhi;
76 G4double dPhi =
_dPhi;
80 G4VSolid* GarbageCollector_solid =
new G4Cons(
"GarbageCollector_solid",
86 G4LogicalVolume* GarbageCollector_logical =
new G4LogicalVolume(GarbageCollector_solid, material_crystal, G4String(
"GarbageCollector"), 0, 0, 0);
88 G4VisAttributes* ecalVisAtt =
new G4VisAttributes();
89 ecalVisAtt->SetVisibility(
true);
90 ecalVisAtt->SetForceSolid(
false);
91 ecalVisAtt->SetColour(G4Colour::Magenta());
92 GarbageCollector_logical->SetVisAttributes(ecalVisAtt);
94 G4RotationMatrix ecal_rotm;
99 new G4PVPlacement(G4Transform3D(ecal_rotm, G4ThreeVector(placeInX, placeInY, placeInZ)),
100 GarbageCollector_logical,
111 new G4PVPlacement(G4Transform3D(ecal_rotm, G4ThreeVector(placeInX, placeInY, -1 * placeInZ)),
112 GarbageCollector_logical,
113 "GarbageCollector_front",
123 G4double cyl_place = 0 *
mm;
125 G4double r_max = r_min + 1 *
mm;
128 G4VSolid* GarbageCollector_cyl_solid =
new G4Tubs(
"GarbageCollector_cyl_solid",
135 G4LogicalVolume* GarbageCollector_cyl_logical =
new G4LogicalVolume(GarbageCollector_cyl_solid,
137 G4String(
"GarbageCollector_cyl"),
142 GarbageCollector_cyl_logical->SetVisAttributes(ecalVisAtt);
144 new G4PVPlacement(G4Transform3D(ecal_rotm, G4ThreeVector(0, 0, cyl_place)),
145 GarbageCollector_cyl_logical,
146 "GarbageCollector_cyl",