55 "housing",pMotherLogical,pMany,pCopyNo),fConstructor(c)
92 height_pmt,startAngle_pmt,spanningAngle_pmt);
98 height_pmt/2,startAngle_pmt,spanningAngle_pmt);
123 PlacePMTs(
fPmt_log,0,x,y,dx,dy,xmin,ymin,
fNx,
fNy,x,y,z,k);
126 rm_z->rotateY(180*
deg);
128 PlacePMTs(
fPmt_log,rm_z,x,y,dx,dy,xmin,ymin,
fNx,
fNy,x,y,z,k);
131 rm_y1->rotateY(-90*
deg);
133 PlacePMTs(
fPmt_log,rm_y1,y,z,dy,dz,ymin,zmin,
fNy,
fNz,x,y,z,k);
136 rm_y2->rotateY(90*
deg);
138 PlacePMTs(
fPmt_log,rm_y2,y,z,dy,dz,ymin,zmin,
fNy,
fNz,x,y,z,k);
141 rm_x1->rotateX(90*
deg);
143 PlacePMTs(
fPmt_log,rm_x1,x,z,dx,dz,xmin,zmin,
fNx,
fNz,x,y,z,k);
146 rm_x2->rotateX(-90*
deg);
148 PlacePMTs(
fPmt_log,rm_x2,x,z,dx,dz,xmin,zmin,
fNx,
fNz,x,y,z,k);
194 for(
G4int j=1;j<=na;j++){
197 for(
G4int i=1;i<=nb;i++){
226 assert(
sizeof(reflectivity) ==
sizeof(ephoton));
228 assert(
sizeof(efficiency) ==
sizeof(ephoton));
230 scintHsngPT->
AddProperty(
"REFLECTIVITY", ephoton, reflectivity, num);
231 scintHsngPT->
AddProperty(
"EFFICIENCY", ephoton, efficiency, num);
237 G4double sphereReflectivity[] = {1.0, 1.0};
238 assert(
sizeof(sphereReflectivity) ==
sizeof(ephoton));
239 G4double sphereEfficiency[] = {0.0, 0.0};
240 assert(
sizeof(sphereEfficiency) ==
sizeof(ephoton));
242 spherePT->
AddProperty(
"REFLECTIVITY", ephoton, sphereReflectivity, num);
243 spherePT->
AddProperty(
"EFFICIENCY", ephoton, sphereEfficiency, num);
250 assert(
sizeof(photocath_EFF) ==
sizeof(ephoton));
251 G4double photocath_ReR[]={1.92,1.92};
252 assert(
sizeof(photocath_ReR) ==
sizeof(ephoton));
253 G4double photocath_ImR[]={1.69,1.69};
254 assert(
sizeof(photocath_ImR) ==
sizeof(ephoton));
256 photocath_mt->
AddProperty(
"EFFICIENCY",ephoton,photocath_EFF,num);
257 photocath_mt->
AddProperty(
"REALRINDEX",ephoton,photocath_ReR,num);
258 photocath_mt->
AddProperty(
"IMAGINARYRINDEX",ephoton,photocath_ImR,num);
266 OpScintHousingSurface);
LXeMainVolume(G4RotationMatrix *pRot, const G4ThreeVector &tlate, G4LogicalVolume *pMotherLogical, G4bool pMany, G4int pCopyNo, LXeDetectorConstruction *c)
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
G4LogicalVolume * fPmt_log
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
G4LogicalVolume * fScint_log
Definition of the LXeMainVolume class.
void SetForceSolid(G4bool)
G4MaterialPropertyVector * AddProperty(const char *key, G4double *PhotonEnergies, G4double *PropertyValues, G4int NumEntries)
G4double fOuterRadius_pmt
static G4bool GetSphereOn()
G4PVPlacement(G4RotationMatrix *pRot, const G4ThreeVector &tlate, G4LogicalVolume *pCurrentLogical, const G4String &pName, G4LogicalVolume *pMotherLogical, G4bool pMany, G4int pCopyNo, G4bool pSurfChk=false)
G4LogicalVolume * fHousing_log
std::vector< G4ThreeVector > fPmtPositions
G4LogicalVolume * fSphere_log
G4double GetHousingReflectivity()
void PlacePMTs(G4LogicalVolume *pmt_Log, G4RotationMatrix *rot, G4double &a, G4double &b, G4double da, G4double db, G4double amin, G4double bmin, G4int na, G4int nb, G4double &x, G4double &y, G4double &z, G4int &k)
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
G4LogicalVolume * fPhotocath_log
void SetVisAttributes(const G4VisAttributes *pVA)
G4double GetHousingThickness()
LXeDetectorConstruction * fConstructor
void SetLogicalVolume(G4LogicalVolume *pLogical)