Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
XrayFluoDetectorConstruction Class Reference

#include <XrayFluoDetectorConstruction.hh>

Inheritance diagram for XrayFluoDetectorConstruction:
Collaboration diagram for XrayFluoDetectorConstruction:

Public Member Functions

 ~XrayFluoDetectorConstruction ()
 
G4VPhysicalVolumeConstruct ()
 
void ConstructSDandField ()
 
void UpdateGeometry ()
 
void SetOhmicPosThickness (G4double)
 
void SetSampleMaterial (G4String newMaterial)
 
void SetDetectorType (G4String type)
 
void SetSampleGranularity (G4bool granularity)
 
void PhaseSpaceOn ()
 
void PhaseSpaceOff ()
 
G4bool GetPhaseSpaceFlag () const
 
void SetGrainDia (G4double size)
 
void DeleteGrainObjects ()
 
void PrintApparateParameters ()
 
XrayFluoVDetectorTypeGetDetectorType () const
 
G4double GetWorldSizeZ () const
 
G4double GetWorldSizeXY () const
 
G4double GetDeviceThickness () const
 
G4double GetDeviceSizeX () const
 
G4double GetDeviceSizeY () const
 
G4double GetPixelSizeXY () const
 
G4double GetContactSizeXY () const
 
G4int GetNbOfPixels () const
 
G4int GetNbOfPixelRows () const
 
G4int GetNbOfPixelColumns () const
 
G4MaterialGetOhmicPosMaterial () const
 
G4double GetOhmicPosThickness () const
 
G4MaterialGetOhmicNegMaterial () const
 
G4double GetOhmicNegThickness () const
 
G4ThreeVector GetDetectorPosition () const
 
G4ThreeVector GetSamplePosition () const
 
const G4VPhysicalVolumeGetphysiWorld () const
 
const G4VPhysicalVolumeGetHPGe () const
 
const G4VPhysicalVolumeGetSample () const
 
const G4VPhysicalVolumeGetDia1 () const
 
const G4VPhysicalVolumeGetDia3 () const
 
const G4VPhysicalVolumeGetphysiPixel () const
 
const G4VPhysicalVolumeGetOhmicPos () const
 
const G4VPhysicalVolumeGetOhmicNeg () const
 
const G4VPhysicalVolumeGetWindow () const
 
G4MaterialGetSampleMaterial () const
 
G4MaterialGetPixelMaterial () const
 
G4MaterialGetDia1Material () const
 
G4MaterialGetDia3Material () const
 
G4NavigatorGetGeometryNavigator () const
 
G4double GetSampleThickness () const
 
G4double GetSampleSizeXY () const
 
G4double GetDia1Thickness () const
 
G4double GetDia1SizeXY () const
 
G4double GetDia3Thickness () const
 
G4double GetDia3SizeXY () const
 
- Public Member Functions inherited from G4VUserDetectorConstruction
 G4VUserDetectorConstruction ()
 
virtual ~G4VUserDetectorConstruction ()
 
virtual void CloneSD ()
 
virtual void CloneF ()
 
void RegisterParallelWorld (G4VUserParallelWorld *)
 
G4int ConstructParallelGeometries ()
 
void ConstructParallelSD ()
 
G4int GetNumberOfParallelWorld () const
 
G4VUserParallelWorldGetParallelWorld (G4int i) const
 

Static Public Member Functions

static
XrayFluoDetectorConstruction
GetInstance ()
 

Additional Inherited Members

- Protected Member Functions inherited from G4VUserDetectorConstruction
void SetSensitiveDetector (const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
 
void SetSensitiveDetector (G4LogicalVolume *logVol, G4VSensitiveDetector *aSD)
 

Detailed Description

Definition at line 69 of file XrayFluoDetectorConstruction.hh.

Constructor & Destructor Documentation

XrayFluoDetectorConstruction::~XrayFluoDetectorConstruction ( )

Definition at line 205 of file XrayFluoDetectorConstruction.cc.

207 {
208  delete detectorMessenger;
209  delete detectorType;
210  G4cout << "XrayFluoDetectorConstruction deleted" << G4endl;
211 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61

Member Function Documentation

G4VPhysicalVolume * XrayFluoDetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 215 of file XrayFluoDetectorConstruction.cc.

216 {
217  return ConstructApparate();
218 }
void XrayFluoDetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 701 of file XrayFluoDetectorConstruction.cc.

702 {
703  if (!phaseSpaceFlag)
704  {
705 
706  //
707  // Sensitive Detectors
708  //
709  if (HPGeSD.Get() == 0)
710  {
711  XrayFluoSD* SD = new XrayFluoSD ("HPGeSD",this);
712  HPGeSD.Put( SD );
713  }
715  if (logicPixel)
716  SetSensitiveDetector(logicPixel,HPGeSD.Get());
717  }
718  return;
719 }
value_type & Get() const
Definition: G4Cache.hh:282
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void AddNewDetector(G4VSensitiveDetector *aSD)
Definition: G4SDManager.cc:71
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
void Put(const value_type &val) const
Definition: G4Cache.hh:286

Here is the call graph for this function:

void XrayFluoDetectorConstruction::DeleteGrainObjects ( )

Definition at line 769 of file XrayFluoDetectorConstruction.cc.

770 {
771  if (sampleGranularity) {
772  delete solidGrain;
773  delete logicGrain;
774  delete physiGrain;
775  }
776 
777 }

Here is the caller graph for this function:

G4double XrayFluoDetectorConstruction::GetContactSizeXY ( ) const
inline

Definition at line 123 of file XrayFluoDetectorConstruction.hh.

123 {return ContactSizeXY;};
G4ThreeVector XrayFluoDetectorConstruction::GetDetectorPosition ( ) const

Definition at line 781 of file XrayFluoDetectorConstruction.cc.

782 {
783  G4double z = DistDe * std::cos(ThetaHPGe);
784  G4double y = DistDe * std::sin(ThetaHPGe);
785  G4double x = 0.*cm;
786 
787  G4ThreeVector position(x,y,z);
788 
789  return position;
790 
791 }
tuple x
Definition: test.py:50
#define position
Definition: xmlparse.cc:622
static constexpr double cm
Definition: G4SIunits.hh:119
tuple z
Definition: test.py:28
double G4double
Definition: G4Types.hh:76

Here is the caller graph for this function:

XrayFluoVDetectorType * XrayFluoDetectorConstruction::GetDetectorType ( ) const

Definition at line 198 of file XrayFluoDetectorConstruction.cc.

199 {
200  return detectorType;
201 }

Here is the caller graph for this function:

G4double XrayFluoDetectorConstruction::GetDeviceSizeX ( ) const
inline

Definition at line 120 of file XrayFluoDetectorConstruction.hh.

120 {return DeviceSizeX;};
G4double XrayFluoDetectorConstruction::GetDeviceSizeY ( ) const
inline

Definition at line 121 of file XrayFluoDetectorConstruction.hh.

121 {return DeviceSizeY;};
G4double XrayFluoDetectorConstruction::GetDeviceThickness ( ) const
inline

Definition at line 119 of file XrayFluoDetectorConstruction.hh.

119 {return DeviceThickness;};
const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetDia1 ( ) const
inline

Definition at line 141 of file XrayFluoDetectorConstruction.hh.

141 {return physiDia1;};
G4Material* XrayFluoDetectorConstruction::GetDia1Material ( ) const
inline

Definition at line 243 of file XrayFluoDetectorConstruction.hh.

243 {return Dia1Material;};
G4double XrayFluoDetectorConstruction::GetDia1SizeXY ( ) const
inline

Definition at line 268 of file XrayFluoDetectorConstruction.hh.

268 {return Dia1SizeXY;};
G4double XrayFluoDetectorConstruction::GetDia1Thickness ( ) const
inline

Definition at line 267 of file XrayFluoDetectorConstruction.hh.

267 {return Dia1Thickness;};
const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetDia3 ( ) const
inline

Definition at line 142 of file XrayFluoDetectorConstruction.hh.

142 {return physiDia3;};
G4Material* XrayFluoDetectorConstruction::GetDia3Material ( ) const
inline

Definition at line 244 of file XrayFluoDetectorConstruction.hh.

244 {return Dia3Material;};
G4double XrayFluoDetectorConstruction::GetDia3SizeXY ( ) const
inline

Definition at line 271 of file XrayFluoDetectorConstruction.hh.

271 {return Dia3SizeXY;};

Here is the caller graph for this function:

G4double XrayFluoDetectorConstruction::GetDia3Thickness ( ) const
inline

Definition at line 270 of file XrayFluoDetectorConstruction.hh.

270 {return Dia3Thickness;};
G4Navigator* XrayFluoDetectorConstruction::GetGeometryNavigator ( ) const
inline

Definition at line 247 of file XrayFluoDetectorConstruction.hh.

247 {return aNavigator;};

Here is the caller graph for this function:

const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetHPGe ( ) const
inline

Definition at line 139 of file XrayFluoDetectorConstruction.hh.

139 {return physiHPGe;};
XrayFluoDetectorConstruction * XrayFluoDetectorConstruction::GetInstance ( void  )
static

Definition at line 161 of file XrayFluoDetectorConstruction.cc.

162 {
163  if (instance == 0)
164  {
165  instance = new XrayFluoDetectorConstruction;
166 
167  }
168  return instance;
169 }

Here is the caller graph for this function:

G4int XrayFluoDetectorConstruction::GetNbOfPixelColumns ( ) const
inline

Definition at line 127 of file XrayFluoDetectorConstruction.hh.

127 {return NbOfPixelColumns;};
G4int XrayFluoDetectorConstruction::GetNbOfPixelRows ( ) const
inline

Definition at line 126 of file XrayFluoDetectorConstruction.hh.

126 {return NbOfPixelRows;};
G4int XrayFluoDetectorConstruction::GetNbOfPixels ( ) const
inline

Definition at line 125 of file XrayFluoDetectorConstruction.hh.

125 {return NbOfPixels;};

Here is the caller graph for this function:

const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetOhmicNeg ( ) const
inline

Definition at line 146 of file XrayFluoDetectorConstruction.hh.

146 {return physiOhmicNeg;};
G4Material* XrayFluoDetectorConstruction::GetOhmicNegMaterial ( ) const
inline

Definition at line 132 of file XrayFluoDetectorConstruction.hh.

132 {return OhmicNegMaterial;};
G4double XrayFluoDetectorConstruction::GetOhmicNegThickness ( ) const
inline

Definition at line 133 of file XrayFluoDetectorConstruction.hh.

133 {return OhmicNegThickness;};
const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetOhmicPos ( ) const
inline

Definition at line 145 of file XrayFluoDetectorConstruction.hh.

145 {return physiOhmicPos;};
G4Material* XrayFluoDetectorConstruction::GetOhmicPosMaterial ( ) const
inline

Definition at line 129 of file XrayFluoDetectorConstruction.hh.

129 {return OhmicPosMaterial;};
G4double XrayFluoDetectorConstruction::GetOhmicPosThickness ( ) const
inline

Definition at line 130 of file XrayFluoDetectorConstruction.hh.

130 {return OhmicPosThickness;};
G4bool XrayFluoDetectorConstruction::GetPhaseSpaceFlag ( ) const
inline

Definition at line 101 of file XrayFluoDetectorConstruction.hh.

102  {return phaseSpaceFlag;};

Here is the caller graph for this function:

const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetphysiPixel ( ) const
inline

Definition at line 144 of file XrayFluoDetectorConstruction.hh.

144 {return physiPixel;};
const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetphysiWorld ( ) const
inline

Definition at line 138 of file XrayFluoDetectorConstruction.hh.

138 {return physiWorld;};
G4Material* XrayFluoDetectorConstruction::GetPixelMaterial ( ) const
inline

Definition at line 242 of file XrayFluoDetectorConstruction.hh.

242 {return pixelMaterial;};
G4double XrayFluoDetectorConstruction::GetPixelSizeXY ( ) const
inline

Definition at line 122 of file XrayFluoDetectorConstruction.hh.

122 {return PixelSizeXY;};
const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetSample ( ) const
inline

Definition at line 140 of file XrayFluoDetectorConstruction.hh.

140 {return physiSample;};
G4Material* XrayFluoDetectorConstruction::GetSampleMaterial ( ) const
inline

Definition at line 241 of file XrayFluoDetectorConstruction.hh.

241 {return sampleMaterial;};
G4ThreeVector XrayFluoDetectorConstruction::GetSamplePosition ( ) const
inline

Definition at line 136 of file XrayFluoDetectorConstruction.hh.

136 {return G4ThreeVector(0,0,0);};
CLHEP::Hep3Vector G4ThreeVector
G4double XrayFluoDetectorConstruction::GetSampleSizeXY ( ) const
inline

Definition at line 265 of file XrayFluoDetectorConstruction.hh.

265 {return SampleSizeXY;};

Here is the caller graph for this function:

G4double XrayFluoDetectorConstruction::GetSampleThickness ( ) const
inline

Definition at line 264 of file XrayFluoDetectorConstruction.hh.

264 {return SampleThickness;};
const G4VPhysicalVolume* XrayFluoDetectorConstruction::GetWindow ( ) const
inline

Definition at line 147 of file XrayFluoDetectorConstruction.hh.

147 {return physiWindow ;};
G4double XrayFluoDetectorConstruction::GetWorldSizeXY ( ) const
inline

Definition at line 117 of file XrayFluoDetectorConstruction.hh.

117 {return WorldSizeXY;};
G4double XrayFluoDetectorConstruction::GetWorldSizeZ ( ) const
inline

Definition at line 116 of file XrayFluoDetectorConstruction.hh.

116 {return WorldSizeZ;};

Here is the caller graph for this function:

void XrayFluoDetectorConstruction::PhaseSpaceOff ( )
inline

Definition at line 98 of file XrayFluoDetectorConstruction.hh.

99  {phaseSpaceFlag = false;};
void XrayFluoDetectorConstruction::PhaseSpaceOn ( )
inline

Definition at line 95 of file XrayFluoDetectorConstruction.hh.

96  {phaseSpaceFlag = true;};

Here is the caller graph for this function:

void XrayFluoDetectorConstruction::PrintApparateParameters ( )

Definition at line 723 of file XrayFluoDetectorConstruction.cc.

724 {
725  G4cout << "-----------------------------------------------------------------------"
726  << G4endl
727  << "The sample is a box whose size is: "
728  << G4endl
729  << SampleThickness/cm
730  << " cm * "
731  << SampleSizeXY/cm
732  << " cm * "
733  << SampleSizeXY/cm
734  << " cm"
735  << G4endl
736  <<" Material: " << logicSample->GetMaterial()->GetName()
737  <<G4endl;
738  if (!phaseSpaceFlag) {
739  G4cout <<"The Detector is a slice " << DeviceThickness/(1.e-6*m) << " micron thick of " << pixelMaterial->GetName()
740  <<G4endl
741  << "The Anode is a slice " << OhmicPosThickness/mm << "mm thick of "<< OhmicPosMaterial->GetName()
742  <<G4endl;
743  }
744  G4cout <<"-------------------------------------------------------------------------"
745  << G4endl;
746 }
static constexpr double mm
Definition: G4SIunits.hh:115
G4Material * GetMaterial() const
const G4String & GetName() const
Definition: G4Material.hh:178
G4GLOB_DLL std::ostream G4cout
static constexpr double m
Definition: G4SIunits.hh:129
static constexpr double cm
Definition: G4SIunits.hh:119
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

void XrayFluoDetectorConstruction::SetDetectorType ( G4String  type)

Definition at line 173 of file XrayFluoDetectorConstruction.cc.

174 {
175  if (type=="sili")
176  {
177  detectorType = XrayFluoSiLiDetectorType::GetInstance();
178  }
179  else if (type=="hpge")
180  {
181  detectorType = XrayFluoHPGeDetectorType::GetInstance();
182  }/*
183  else if (type=="aifira")
184  {
185  detectorType = XrayFluoAifSiLi::GetInstance();
186  }*/
187  else
188  {
190  execp << type + "detector type unknown";
191  G4Exception("XrayFluoDataSet::LoadData()","example-xray_fluorescence06",
192  FatalException, execp);
193  }
194  //GeometryHasBeenModified invoked by the messenger
195 
196 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
static XrayFluoSiLiDetectorType * GetInstance()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static XrayFluoHPGeDetectorType * GetInstance()

Here is the call graph for this function:

Here is the caller graph for this function:

void XrayFluoDetectorConstruction::SetGrainDia ( G4double  size)
inline

Definition at line 104 of file XrayFluoDetectorConstruction.hh.

105  {grainDia = size;};

Here is the caller graph for this function:

void XrayFluoDetectorConstruction::SetOhmicPosThickness ( G4double  val)

Definition at line 239 of file XrayFluoDetectorConstruction.cc.

240 {
241 
242  if (!phaseSpaceFlag) {
243 
244 
245  if (val == 0.0) {
246  OhmicPosMaterial = materials->GetMaterial("G4_Galactic");
247  }
248  else {
249  OhmicPosThickness = val;
250  //OhmicPosMaterial = materials->GetMaterial("G4_Cu");
251  OhmicPosMaterial = materials->GetMaterial("G4_Ni");
252  }
253 
254  }
255  else{
256  G4cout << "Not available in this configuration" << G4endl;
257  }
258 
259 }
G4GLOB_DLL std::ostream G4cout
G4Material * GetMaterial(G4String)
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

void XrayFluoDetectorConstruction::SetSampleGranularity ( G4bool  granularity)
inline

Definition at line 92 of file XrayFluoDetectorConstruction.hh.

93  {sampleGranularity = granularity;};

Here is the caller graph for this function:

void XrayFluoDetectorConstruction::SetSampleMaterial ( G4String  newMaterial)

Definition at line 795 of file XrayFluoDetectorConstruction.cc.

796 {
797  G4cout << "Material Change in Progress " << newMaterial << G4endl;
798  sampleMaterial = materials->GetMaterial(newMaterial);
799  logicSample->SetMaterial(sampleMaterial);
801  //GeometryHasBeenModified is called by the messenger
802 }
G4GLOB_DLL std::ostream G4cout
G4Material * GetMaterial(G4String)
#define G4endl
Definition: G4ios.hh:61
void SetMaterial(G4Material *pMaterial)

Here is the call graph for this function:

Here is the caller graph for this function:

void XrayFluoDetectorConstruction::UpdateGeometry ( )

Definition at line 749 of file XrayFluoDetectorConstruction.cc.

750 {
755 
756  if (sampleRegion)
757  sampleRegion->RemoveRootLogicalVolume(logicSample);
758 
759  zRotPhiHPGe.rotateX(-1.*PhiHPGe);
760  zRotPhiDia1.rotateX(-1.*AlphaDia1);
761  zRotPhiDia3.rotateX(-1.*AlphaDia3);
762 
763  //Triggers a new call of Construct() and of all the geometry resets.
765 }
HepRotation & rotateX(double delta)
Definition: Rotation.cc:66
static void Clean()
Definition: G4SolidStore.cc:79
static G4GeometryManager * GetInstance()
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
void OpenGeometry(G4VPhysicalVolume *vol=0)
void RemoveRootLogicalVolume(G4LogicalVolume *lv, G4bool scan=true)
Definition: G4Region.cc:319

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: