21 #include "G4Material.hh" 25 #include "G4LogicalVolume.hh" 26 #include "G4PVPlacement.hh" 27 #include "G4PVReplica.hh" 28 #include "G4RotationMatrix.hh" 29 #include "G4VisAttributes.hh" 30 #include "G4Colour.hh" 31 #include "G4RunManager.hh" 32 #include "G4Transform3D.hh" 34 #include "G4PhysicalConstants.hh" 35 #include "G4SystemOfUnits.hh" 43 : silBulkMaterial(0),detConstruction(det) {
96 G4double Phi_f=360*deg;
97 G4double Zlength=0.25*mm;
99 G4Tubs *Silicon=
new G4Tubs(
"Silicon",Rmin,Rmax,Zlength,Phi_0,Phi_f);
101 G4VisAttributes* SilVisAtt =
new G4VisAttributes(G4Colour(1.0,1.0,0.0));
102 SilVisAtt->SetVisibility(
false);
104 G4LogicalVolume* SiliconDisk_log=
new G4LogicalVolume(Silicon,
silBulkMaterial,
"SiliconDisk_log",0,0,0);
106 SiliconDisk_log->SetVisAttributes(SilVisAtt);
108 G4double sectorPhi=Phi_f/16.;
110 G4Tubs *Sector=
new G4Tubs(
"Sector",Rmin,Rmax,Zlength,0.,sectorPhi);
112 G4LogicalVolume *Sector_log=
new G4LogicalVolume(Sector,
silBulkMaterial,
"Sector_log",0,0,0);
113 G4VisAttributes* SectorVisAtt =
new G4VisAttributes(G4Colour(1.0,1.0,0.0));
114 SectorVisAtt->SetVisibility(
true);
119 G4double silPos_z=0*mm;
121 G4double distance[3]={300*mm,530*mm,1070*mm};
125 for(G4int k=0;k<3;k++){
126 silPos_z=distance[k]+chamberSizeZ-zGasBoxPosition;
128 G4VPhysicalVolume *SiliconDisk_phys=
new G4PVPlacement(0,
129 G4ThreeVector(silPos_x,silPos_y,silPos_z),
130 SiliconDisk_log,
"SiliconDisk",worldLog,
false,k);
132 if(SiliconDisk_phys){;}
134 Sector_log->SetVisAttributes(SectorVisAtt);
136 G4VPhysicalVolume *Sector_phys=
new G4PVReplica(
"Sectors",Sector_log,SiliconDisk_log,kPhi,16,sectorPhi);
146 G4VisAttributes* silVisAtt1 =
new G4VisAttributes(G4Colour(0,1,0));
147 silVisAtt1->SetVisibility(
true);
148 Sector_log->SetVisAttributes(silVisAtt1);
156 G4Material* pttoMaterial = G4Material::GetMaterial(mat);
164 G4RunManager::GetRunManager()->
171 G4cout <<
"##################################################################" 173 <<
"#### ActarSimSilRingDetectorConstruction::PrintDetectorParameters() ####" 175 G4cout <<
"##################################################################"
void SetSideCoverage(G4int cov)
ActarSimSilRingDetectorConstruction(ActarSimDetectorConstruction *)
Constructor. Sets the material and the pointer to the Messenger.
ActarSimSilRingSD * GetSilRingSD(void)
G4VPhysicalVolume * Construct(G4LogicalVolume *)
Wrap for the construction functions.
void SetXBoxSilHalfLength(G4double xBox)
void UpdateGeometry()
Updates Scintillator detector.
void SetYBoxSilHalfLength(G4double yBox)
ActarSimDetectorConstruction * detConstruction
Pointer to the global detector.
ActarSimGasDetectorConstruction * GetGasDetector()
~ActarSimSilRingDetectorConstruction()
Destructor.
G4VPhysicalVolume * GetWorldPhysicalVolume()
void SetZBoxSilHalfLength(G4double zBox)
void PrintDetectorParameters()
Prints Scintillator detector parameters. To be filled.
G4VPhysicalVolume * ConstructSil(G4LogicalVolume *)
Real construction work is performed here.
void SetSilBulkMaterial(G4String)
Set the material the scintillator bulk is made of.
G4Material * silBulkMaterial
Pointer to the silicon material.
G4double GetGasBoxCenterZ(void)
G4double GetChamberSizeZ(void)
G4LogicalVolume * GetWorldLogicalVolume()