55 "housing",pMotherLogical,pMany,pCopyNo),fConstructor(c)
59 G4double housing_x=fScint_x+2.*fD_mtl;
60 G4double housing_y=fScint_y+2.*fD_mtl;
61 G4double housing_z=fScint_z+2.*fD_mtl;
64 fScint_box =
new G4Box(
"scint_box",fScint_x/2.,fScint_y/2.,fScint_z/2.);
65 fHousing_box =
new G4Box(
"housing_box",housing_x/2.,housing_y/2.,
75 fHousing_log,
false,0);
83 fSphere_log,
"sphere",fScint_log,
false,0);
91 fPmt =
new G4Tubs(
"pmt_tube",innerRadius_pmt,fOuterRadius_pmt,
92 height_pmt,startAngle_pmt,spanningAngle_pmt);
97 fPhotocath =
new G4Tubs(
"photocath_tube",innerRadius_pmt,fOuterRadius_pmt,
98 height_pmt/2,startAngle_pmt,spanningAngle_pmt);
107 fPhotocath_log,
"photocath",
117 G4double xmin = -fScint_x/2. - dx/2.;
118 G4double ymin = -fScint_y/2. - dy/2.;
119 G4double zmin = -fScint_z/2. - dz/2.;
122 z = -fScint_z/2. - height_pmt;
123 PlacePMTs(fPmt_log,0,x,y,dx,dy,xmin,ymin,fNx,fNy,x,y,z,k);
127 z = fScint_z/2. + height_pmt;
128 PlacePMTs(fPmt_log,rm_z,x,y,dx,dy,xmin,ymin,fNx,fNy,x,y,z,k);
132 x = -fScint_x/2. - height_pmt;
133 PlacePMTs(fPmt_log,rm_y1,y,z,dy,dz,ymin,zmin,fNy,fNz,x,y,z,k);
137 x = fScint_x/2. + height_pmt;
138 PlacePMTs(fPmt_log,rm_y2,y,z,dy,dz,ymin,zmin,fNy,fNz,x,y,z,k);
142 y = -fScint_y/2. - height_pmt;
143 PlacePMTs(fPmt_log,rm_x1,x,z,dx,dz,xmin,zmin,fNx,fNz,x,y,z,k);
147 y = fScint_y/2. + height_pmt;
148 PlacePMTs(fPmt_log,rm_x2,x,z,dx,dz,xmin,zmin,fNx,fNz,x,y,z,k);
158 void LXeMainVolume::CopyValues(){
163 fNx=fConstructor->
GetNX();
164 fNy=fConstructor->
GetNY();
165 fNz=fConstructor->
GetNZ();
194 for(
G4int j=1;j<=na;j++){
197 for(
G4int i=1;i<=nb;i++){
200 fHousing_log,
false,k);
209 void LXeMainVolume::VisAttributes(){
220 void LXeMainVolume::SurfaceProperties(){
225 G4double reflectivity[num] = {fRefl, fRefl};
226 G4double efficiency[num] = {0.0, 0.0};
228 scintHsngPT->
AddProperty(
"REFLECTIVITY", ephoton, reflectivity, num);
229 scintHsngPT->
AddProperty(
"EFFICIENCY", ephoton, efficiency, num);
235 G4double sphereReflectivity[num] = {1.0, 1.0};
236 G4double sphereEfficiency[num] = {0.0, 0.0};
238 spherePT->
AddProperty(
"REFLECTIVITY", ephoton, sphereReflectivity, num);
239 spherePT->
AddProperty(
"EFFICIENCY", ephoton, sphereEfficiency, num);
245 G4double photocath_EFF[num]={1.,1.};
246 G4double photocath_ReR[num]={1.92,1.92};
247 G4double photocath_ImR[num]={1.69,1.69};
249 photocath_mt->
AddProperty(
"EFFICIENCY",ephoton,photocath_EFF,num);
250 photocath_mt->
AddProperty(
"REALRINDEX",ephoton,photocath_ReR,num);
251 photocath_mt->
AddProperty(
"IMAGINARYRINDEX",ephoton,photocath_ImR,num);
259 OpScintHousingSurface);
LXeMainVolume(G4RotationMatrix *pRot, const G4ThreeVector &tlate, G4LogicalVolume *pMotherLogical, G4bool pMany, G4int pCopyNo, LXeDetectorConstruction *c)
CLHEP::Hep3Vector G4ThreeVector
HepRotation & rotateX(double delta)
CLHEP::HepRotation G4RotationMatrix
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
Definition of the LXeMainVolume class.
HepRotation & rotateY(double delta)
void SetForceSolid(G4bool)
G4MaterialPropertyVector * AddProperty(const char *key, G4double *PhotonEnergies, G4double *PropertyValues, G4int NumEntries)
static G4bool GetSphereOn()
G4PVPlacement(G4RotationMatrix *pRot, const G4ThreeVector &tlate, G4LogicalVolume *pCurrentLogical, const G4String &pName, G4LogicalVolume *pMotherLogical, G4bool pMany, G4int pCopyNo, G4bool pSurfChk=false)
G4double GetHousingReflectivity()
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void SetVisAttributes(const G4VisAttributes *pVA)
G4double GetHousingThickness()
void SetLogicalVolume(G4LogicalVolume *pLogical)