77 fWorldLogic(0),fXtalLogic(0){
   163         for(
unsigned int i1=0;i1<3;i1++){
   191                 2. * (
fSSDSize.
z()/2.) - 2. * fBeamPipeFromSiSDDistance;
   208                 2. * fBeamPipeFromSiSDDistance;
   221 #ifndef G4MULTITHREADED   226     for(
unsigned int i1=0;i1<3;i1++){
   240 #ifdef G4MULTITHREADED   246     for(
unsigned int i1=0;i1<3;i1++){
   265     G4Box* fSSDBoxEnvelopeSolid =
   266             new G4Box(
"SiSDBoxEnvelope",
   304     G4Box* fSSDBoxFoilSolid = 
new G4Box(
"SSDBoxFoil",
   358                       fSSDBoxEnvelopeLogic,
   363                        fSSDBoxLogic,
"SiSDBox",
   364                        fSSDBoxEnvelopeLogic,
   370                        fSSDBoxInternalLogic,
"SiSDBox",
   371                        fSSDBoxEnvelopeLogic,
   379                        fSSDBoxFoilLogic,
"SiSDBoxFoil",
   380                        fSSDBoxEnvelopeLogic,
   388                        fSSDBoxFoilLogic,
"SiSDBoxFoil",
   389                        fSSDBoxEnvelopeLogic,
   393      return fSSDBoxEnvelopeLogic;
   427     G4int ncomponents_SS =6;
   431             new G4Material(
"StainlessSteel", density_SS, ncomponents_SS);
   432     StainlessSteel->
AddElement(elC, fractionmass=0.001);
   433     StainlessSteel->
AddElement(elSi, fractionmass=0.007);
   434     StainlessSteel->
AddElement(elCr, fractionmass=0.18);
   435     StainlessSteel->
AddElement(elMn, fractionmass=0.01);
   436     StainlessSteel->
AddElement(elFe, fractionmass=0.712);
   437     StainlessSteel->
AddElement(elNi, fractionmass=0.09);
   452     G4Tubs* fBeamPipeEnvelopeSolid =
   453             new G4Tubs(
"BeamPipeEnvelope",
   456                        length * 0.5 + fMylarThickness * 0.5 * 4.,
   480                       fBeamPipeEnvelopeLogic,
   485     G4Tubs* fBeamPipeInsideSolid = 
new G4Tubs(
"BeamPipeInside",
   498                       fBeamPipeInsideLogic,
   500                       fBeamPipeEnvelopeLogic,
   505     G4Tubs* fBeamPipeMylarSolid =
   506             new G4Tubs(
"BeamPipeMylar",
   509                    fMylarThickness * 0.5,
   521                                         +(length + fMylarThickness * 2.) / 2.),
   524                       fBeamPipeEnvelopeLogic,
   531                                         -(length + fMylarThickness * 2.) / 2.),
   534                       fBeamPipeEnvelopeLogic,
   538     return fBeamPipeEnvelopeLogic;
   545         double fXtalAngleOut =
   595     double vScatteringConstant =
   652         G4cout << 
"DetectorConstructor::SetXtalMaterial() - New Xtal Material: " void GeometryHasBeenModified(G4bool prop=true)
 
static const double kelvin
 
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
 
G4double fSSDBoxThickness
 
void SetThermalVibrationAmplitude(G4double)
 
static XLatticeManager3 * GetXLatticeManager()
 
G4LogicalVolume * fXtalLogic
 
G4ThreeVector fXtalCurvatureRadius
 
G4LogicalVolume * ConstructSiSD(G4int)
 
CLHEP::Hep3Vector G4ThreeVector
 
void SetXtalMiller(G4ThreeVector)
 
HepRotation & rotateX(double delta)
 
CLHEP::HepRotation G4RotationMatrix
 
void SetXtalCellSize(G4ThreeVector)
 
void SetSize(G4ThreeVector)
 
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
 
static const double millimeter
 
G4VPhysicalVolume * fXtalPhysical
 
G4ThreeVector fXtalMiller
 
static G4double angle[DIM]
 
G4ThreeVector fXtalCellAngle
 
void ConstructXtalTarget()
 
void SetScatteringConstant(G4double)
 
HepRotation & rotateY(double delta)
 
~ExExChDetectorConstruction()
 
void SetForceSolid(G4bool)
 
G4LogicalVolume * ConstructBeamPipe(G4double)
 
static G4NistManager * Instance()
 
G4String GetXtalMaterial()
 
void SetUnitCell(XUnitCell *)
 
static const double angstrom
 
G4GLOB_DLL std::ostream G4cout
 
void ConstructSDandField()
 
void PhysicsHasBeenModified()
 
void SetXtalAngle(G4ThreeVector)
 
void SetXtalSize(G4ThreeVector)
 
G4double fBeamPipeThickness
 
void AddBase(XLogicalBase *)
 
static const double universe_mean_density
 
G4double fSSDXtalDistance[3]
 
G4VPhysicalVolume * fWorldPhysical
 
static const double second
 
G4Material * fXtalMaterial
 
void SetXtalCurvatureRadius(G4ThreeVector)
 
void AddNewDetector(G4VSensitiveDetector *aSD)
 
bool RegisterLattice(XPhysicalLattice *)
 
static G4RunManager * GetRunManager()
 
static const double meter
 
void SetMillerOrientation(int, int, int)
 
G4ThreeVector fSSDBoxSize
 
void SetXtalCellAngle(G4ThreeVector)
 
void SetCurvatureRadius(G4ThreeVector)
 
void SetLatticeOrientation(G4double, G4double)
 
ExExChDetectorConstructionMessenger * fMessenger
 
static G4SDManager * GetSDMpointer()
 
void SetXtalMaterial(const G4String &name)
 
HepRotation & rotateZ(double delta)
 
G4ThreeVector fXtalCellSize
 
G4Material * fWorldMaterial
 
void SetXtalThermalVibrationAmplitude(G4double)
 
ExExChDetectorConstruction()
 
void AddElement(G4Element *element, G4int nAtoms)
 
static const double micrometer
 
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
 
const G4String & GetName() const
 
void SetMaterial(G4Material *pMaterial)
 
G4VPhysicalVolume * Construct()
 
G4LogicalVolume * fSSDLogic[3]
 
void SetVisAttributes(const G4VisAttributes *pVA)
 
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
 
G4LogicalVolume * fWorldLogic
 
static const double centimeter