40 LXePMTSD* LXeMainVolume::fPmt_SD=NULL;
58 "housing",pMotherLogical,pMany,pCopyNo),fConstructor(c)
62 if(!fHousing_log || fUpdated){
69 fScint_box =
new G4Box(
"scint_box",fScint_x/2.,fScint_y/2.,fScint_z/2.);
70 fHousing_box =
new G4Box(
"housing_box",housing_x/2.,housing_y/2.,
80 fHousing_log,
false,0);
89 fSphere_log,
"sphere",fScint_log,
false,0);
97 fPmt =
new G4Tubs(
"pmt_tube",innerRadius_pmt,fOuterRadius_pmt,
98 height_pmt,startAngle_pmt,spanningAngle_pmt);
103 fPhotocath =
new G4Tubs(
"photocath_tube",innerRadius_pmt,fOuterRadius_pmt,
104 height_pmt/2,startAngle_pmt,spanningAngle_pmt);
113 fPhotocath_log,
"photocath",
121 fPmt_SD =
new LXePMTSD(
"/LXeDet/pmtSD");
125 fPmt_SD->
InitPMTs((fNx*fNy+fNx*fNz+fNy*fNz)*2);
133 G4double xmin = -fScint_x/2. - dx/2.;
134 G4double ymin = -fScint_y/2. - dy/2.;
135 G4double zmin = -fScint_z/2. - dz/2.;
138 z = -fScint_z/2. - height_pmt;
139 PlacePMTs(fPmt_log,0,x,y,dx,dy,xmin,ymin,fNx,fNy,x,y,z,k,fPmt_SD);
142 z = fScint_z/2. + height_pmt;
143 PlacePMTs(fPmt_log,rm_z,x,y,dx,dy,xmin,ymin,fNx,fNy,x,y,z,k,fPmt_SD);
147 x = -fScint_x/2. - height_pmt;
148 PlacePMTs(fPmt_log,rm_y1,y,z,dy,dz,ymin,zmin,fNy,fNz,x,y,z,k,fPmt_SD);
151 x = fScint_x/2. + height_pmt;
152 PlacePMTs(fPmt_log,rm_y2,y,z,dy,dz,ymin,zmin,fNy,fNz,x,y,z,k,fPmt_SD);
156 y = -fScint_y/2. - height_pmt;
157 PlacePMTs(fPmt_log,rm_x1,x,z,dx,dz,xmin,zmin,fNx,fNz,x,y,z,k,fPmt_SD);
160 y = fScint_y/2. + height_pmt;
161 PlacePMTs(fPmt_log,rm_x2,x,z,dx,dz,xmin,zmin,fNx,fNz,x,y,z,k,fPmt_SD);
165 fScint_SD =
new LXeScintSD(
"/LXeDet/scintSD");
188 void LXeMainVolume::CopyValues(){
195 fNx=fConstructor->
GetNX();
196 fNy=fConstructor->
GetNY();
197 fNz=fConstructor->
GetNZ();
226 for(
G4int j=1;j<=na;j++){
229 for(
G4int i=1;i<=nb;i++){
232 fHousing_log,
false,k);
241 void LXeMainVolume::VisAttributes(){
252 void LXeMainVolume::SurfaceProperties(){
257 G4double reflectivity[num] = {fRefl, fRefl};
258 G4double efficiency[num] = {0.0, 0.0};
260 scintHsngPT->
AddProperty(
"REFLECTIVITY", ephoton, reflectivity, num);
261 scintHsngPT->
AddProperty(
"EFFICIENCY", ephoton, efficiency, num);
267 G4double sphereReflectivity[num] = {1.0, 1.0};
268 G4double sphereEfficiency[num] = {0.0, 0.0};
270 spherePT->
AddProperty(
"REFLECTIVITY", ephoton, sphereReflectivity, num);
271 spherePT->
AddProperty(
"EFFICIENCY", ephoton, sphereEfficiency, num);
277 G4double photocath_EFF[num]={1.,1.};
278 G4double photocath_ReR[num]={1.92,1.92};
279 G4double photocath_ImR[num]={1.69,1.69};
281 photocath_mt->
AddProperty(
"EFFICIENCY",ephoton,photocath_EFF,num);
282 photocath_mt->
AddProperty(
"REALRINDEX",ephoton,photocath_ReR,num);
283 photocath_mt->
AddProperty(
"IMAGINARYRINDEX",ephoton,photocath_ImR,num);
291 OpScintHousingSurface);