21 #include "G4Material.hh" 26 #include "G4LogicalVolume.hh" 27 #include "G4PVPlacement.hh" 28 #include "G4PVReplica.hh" 29 #include "G4RotationMatrix.hh" 30 #include "G4VisAttributes.hh" 31 #include "G4Colour.hh" 32 #include "G4RunManager.hh" 33 #include "G4Transform3D.hh" 35 #include "G4PhysicalConstants.hh" 36 #include "G4SystemOfUnits.hh" 44 : sciBulkMaterial(0),detConstruction(det) {
96 G4double Phi_f=360*deg;
97 G4double ZlengthCsI=10.00*mm;
99 G4Tubs *CsIring=
new G4Tubs(
"CsIring",Rmin,Rmax,ZlengthCsI,Phi_0,Phi_f);
101 G4LogicalVolume* CsIring_log=
new G4LogicalVolume(CsIring,
sciBulkMaterial,
"CsIring_log",0,0,0);
103 G4double sectorPhi=Phi_f/16.;
105 G4Tubs *CsISector=
new G4Tubs(
"CsISector",Rmin,Rmax,ZlengthCsI,0.,sectorPhi);
107 G4LogicalVolume *CsISector_log=
new G4LogicalVolume(CsISector,
sciBulkMaterial,
"CsISector_log",0,0,0);
108 G4VisAttributes* CsISectorVisAtt =
new G4VisAttributes(G4Colour(1.0,1.0,1.0));
110 CsISectorVisAtt->SetVisibility(
true);
112 G4double CsIPos_x=0*mm;
115 G4double CsIPos_z=0.0*mm;
117 G4double distance[3]={320*mm,550*mm,1090*mm};
121 for(G4int k=0;k<3;k++){
122 CsIPos_z=distance[k]+chamberSizeZ-zGasBoxPosition;
124 G4VPhysicalVolume *CsIring_phys=
new G4PVPlacement(0,
125 G4ThreeVector(CsIPos_x,CsIPos_y,CsIPos_z),
126 CsIring_log,
"CsIringdet",worldLog,
false,k);
131 G4VPhysicalVolume *CsISector_phys=
new G4PVReplica(
"CsISector",CsISector_log,CsIring_log,kPhi,16,sectorPhi);
141 return CsISector_phys;
147 G4Material* pttoMaterial = G4Material::GetMaterial(mat);
155 G4RunManager::GetRunManager()->
162 G4cout <<
"##################################################################" 164 <<
"#### ActarSimSciRingDetectorConstruction::PrintDetectorParameters() ####" 166 G4cout <<
"##################################################################" G4Material * sciBulkMaterial
Pointer to the scintillator material.
ActarSimDetectorConstruction * detConstruction
Pointer to the global detector.
void SetSciBulkMaterial(G4String)
Set the material the scintillator bulk is made of.
void SetXBoxSciHalfLength(G4double xBox)
void PrintDetectorParameters()
Prints Scintillator detector parameters. To be filled.
void SetYBoxSciHalfLength(G4double yBox)
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction functions.
void UpdateGeometry()
Updates Scintillator detector.
G4VPhysicalVolume * ConstructSci(G4LogicalVolume *)
Real construction work is performed here.
ActarSimSciRingDetectorConstruction(ActarSimDetectorConstruction *)
Constructor. Sets the material and the pointer to the Messenger.
ActarSimGasDetectorConstruction * GetGasDetector()
~ActarSimSciRingDetectorConstruction()
Destructor.
void SetSideCoverage(G4int cov)
G4VPhysicalVolume * GetWorldPhysicalVolume()
G4double GetGasBoxCenterZ(void)
G4double GetChamberSizeZ(void)
ActarSimSciRingSD * GetSciRingSD(void)
void SetZBoxSciHalfLength(G4double zBox)
G4LogicalVolume * GetWorldLogicalVolume()