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

#include <LXeDetectorConstruction.hh>

Inheritance diagram for LXeDetectorConstruction:
Collaboration diagram for LXeDetectorConstruction:

Public Member Functions

 LXeDetectorConstruction ()
 
virtual ~LXeDetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
virtual void ConstructSDandField ()
 
void SetDimensions (G4ThreeVector)
 
void SetHousingThickness (G4double)
 
void SetNX (G4int)
 
void SetNY (G4int)
 
void SetNZ (G4int)
 
void SetPMTRadius (G4double)
 
void SetDefaults ()
 
G4int GetNX ()
 
G4int GetNY ()
 
G4int GetNZ ()
 
G4double GetScintX ()
 
G4double GetScintY ()
 
G4double GetScintZ ()
 
G4double GetHousingThickness ()
 
G4double GetPMTRadius ()
 
G4double GetSlabZ ()
 
void SetSphereOn (G4bool)
 
void SetHousingReflectivity (G4double)
 
G4double GetHousingReflectivity ()
 
void SetWLSSlabOn (G4bool b)
 
G4bool GetWLSSlabOn ()
 
void SetMainVolumeOn (G4bool b)
 
G4bool GetMainVolumeOn ()
 
void SetNFibers (G4int n)
 
G4int GetNFibers ()
 
void SetMainScintYield (G4double)
 
void SetWLSScintYield (G4double)
 
- 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 G4bool GetSphereOn ()
 

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 53 of file LXeDetectorConstruction.hh.

Constructor & Destructor Documentation

LXeDetectorConstruction::LXeDetectorConstruction ( )

Definition at line 68 of file LXeDetectorConstruction.cc.

69 : fLXe_mt(NULL), fMPTPStyrene(NULL)
70 {
71  fExperimentalHall_box = NULL;
72  fExperimentalHall_log = NULL;
73  fExperimentalHall_phys = NULL;
74 
75  fLXe = fAl = fAir = fVacuum = fGlass = NULL;
76  fPstyrene = fPMMA = fPethylene1 = fPethylene2 = NULL;
77 
78  fN = fO = fC = fH = NULL;
79 
80  SetDefaults();
81 
82  fDetectorMessenger = new LXeDetectorMessenger(this);
83 }

Here is the call graph for this function:

LXeDetectorConstruction::~LXeDetectorConstruction ( )
virtual

Definition at line 87 of file LXeDetectorConstruction.cc.

87 {}

Member Function Documentation

G4VPhysicalVolume * LXeDetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 242 of file LXeDetectorConstruction.cc.

242  {
243 
244  if (fExperimentalHall_phys) {
251  }
252 
253  DefineMaterials();
254  return ConstructDetector();
255 }
static void Clean()
Definition: G4SolidStore.cc:79
static G4PhysicalVolumeStore * GetInstance()
static G4LogicalVolumeStore * GetInstance()
static G4SolidStore * GetInstance()
static G4GeometryManager * GetInstance()
void OpenGeometry(G4VPhysicalVolume *vol=0)

Here is the call graph for this function:

void LXeDetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 320 of file LXeDetectorConstruction.cc.

320  {
321 
322  if (!fMainVolume) return;
323 
324  // PMT SD
325 
326  if (!fPmt_SD.Get()) {
327  //Created here so it exists as pmts are being placed
328  G4cout << "Construction /LXeDet/pmtSD" << G4endl;
329  LXePMTSD* pmt_SD = new LXePMTSD("/LXeDet/pmtSD");
330  fPmt_SD.Put(pmt_SD);
331 
332  pmt_SD->InitPMTs((fNx*fNy+fNx*fNz+fNy*fNz)*2); //let pmtSD know # of pmts
333  pmt_SD->SetPmtPositions(fMainVolume->GetPmtPositions());
334  }
336  //sensitive detector is not actually on the photocathode.
337  //processHits gets done manually by the stepping action.
338  //It is used to detect when photons hit and get absorbed&detected at the
339  //boundary to the photocathode (which doesnt get done by attaching it to a
340  //logical volume.
341  //It does however need to be attached to something or else it doesnt get
342  //reset at the begining of events
343 
344  SetSensitiveDetector(fMainVolume->GetLogPhotoCath(), fPmt_SD.Get());
345 
346  // Scint SD
347 
348  if (!fScint_SD.Get()) {
349  G4cout << "Construction /LXeDet/scintSD" << G4endl;
350  LXeScintSD* scint_SD = new LXeScintSD("/LXeDet/scintSD");
351  fScint_SD.Put(scint_SD);
352  }
354  SetSensitiveDetector(fMainVolume->GetLogScint(), fScint_SD.Get());
355 }
value_type & Get() const
Definition: G4Cache.hh:282
std::vector< G4ThreeVector > GetPmtPositions()
G4LogicalVolume * GetLogPhotoCath()
G4LogicalVolume * GetLogScint()
G4GLOB_DLL std::ostream G4cout
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void AddNewDetector(G4VSensitiveDetector *aSD)
Definition: G4SDManager.cc:71
void SetPmtPositions(const std::vector< G4ThreeVector > &positions)
Definition: LXePMTSD.cc:62
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
void InitPMTs(G4int nPMTs)
Definition: LXePMTSD.hh:64
#define G4endl
Definition: G4ios.hh:61
void Put(const value_type &val) const
Definition: G4Cache.hh:286

Here is the call graph for this function:

G4double LXeDetectorConstruction::GetHousingReflectivity ( )
inline

Definition at line 87 of file LXeDetectorConstruction.hh.

87 {return fRefl;}
G4double LXeDetectorConstruction::GetHousingThickness ( )
inline

Definition at line 79 of file LXeDetectorConstruction.hh.

79 {return fD_mtl;}
G4bool LXeDetectorConstruction::GetMainVolumeOn ( )
inline

Definition at line 93 of file LXeDetectorConstruction.hh.

93 {return fMainVolumeOn;}
G4int LXeDetectorConstruction::GetNFibers ( )
inline

Definition at line 96 of file LXeDetectorConstruction.hh.

96 {return fNfibers;}
G4int LXeDetectorConstruction::GetNX ( )
inline

Definition at line 73 of file LXeDetectorConstruction.hh.

73 {return fNx;}
G4int LXeDetectorConstruction::GetNY ( )
inline

Definition at line 74 of file LXeDetectorConstruction.hh.

74 {return fNy;}
G4int LXeDetectorConstruction::GetNZ ( )
inline

Definition at line 75 of file LXeDetectorConstruction.hh.

75 {return fNz;}
G4double LXeDetectorConstruction::GetPMTRadius ( )
inline

Definition at line 80 of file LXeDetectorConstruction.hh.

80 {return fOuterRadius_pmt;}
G4double LXeDetectorConstruction::GetScintX ( )
inline

Definition at line 76 of file LXeDetectorConstruction.hh.

76 {return fScint_x;}
G4double LXeDetectorConstruction::GetScintY ( )
inline

Definition at line 77 of file LXeDetectorConstruction.hh.

77 {return fScint_y;}
G4double LXeDetectorConstruction::GetScintZ ( )
inline

Definition at line 78 of file LXeDetectorConstruction.hh.

78 {return fScint_z;}
G4double LXeDetectorConstruction::GetSlabZ ( )
inline

Definition at line 81 of file LXeDetectorConstruction.hh.

81 {return fSlab_z;}
static G4bool LXeDetectorConstruction::GetSphereOn ( )
inlinestatic

Definition at line 84 of file LXeDetectorConstruction.hh.

84 {return fSphereOn;}

Here is the caller graph for this function:

G4bool LXeDetectorConstruction::GetWLSSlabOn ( )
inline

Definition at line 90 of file LXeDetectorConstruction.hh.

90 {return fWLSslab;}
void LXeDetectorConstruction::SetDefaults ( )

Definition at line 403 of file LXeDetectorConstruction.cc.

403  {
404 
405  //Resets to default values
406  fD_mtl=0.0635*cm;
407 
408  fScint_x = 17.8*cm;
409  fScint_y = 17.8*cm;
410  fScint_z = 22.6*cm;
411 
412  fNx = 2;
413  fNy = 2;
414  fNz = 3;
415 
416  fOuterRadius_pmt = 2.3*cm;
417 
418  fSphereOn = true;
419  fRefl=1.0;
420 
421  fNfibers=15;
422  fWLSslab=false;
423  fMainVolumeOn=true;
424  fMainVolume=NULL;
425  fSlab_z=2.5*mm;
426 
428  ->ApplyCommand("/LXe/detector/scintYieldFactor 1.");
429 
430  if(fLXe_mt)fLXe_mt->AddConstProperty("SCINTILLATIONYIELD",12000./MeV);
431  if(fMPTPStyrene)fMPTPStyrene->AddConstProperty("SCINTILLATIONYIELD",10./keV);
432 
433 }
static constexpr double mm
Definition: G4SIunits.hh:115
static G4UImanager * GetUIpointer()
Definition: G4UImanager.cc:59
static constexpr double cm
Definition: G4SIunits.hh:119
void AddConstProperty(const char *key, G4double PropertyValue)
static constexpr double MeV
Definition: G4SIunits.hh:214
static constexpr double keV
Definition: G4SIunits.hh:216
G4int ApplyCommand(const char *aCommand)
Definition: G4UImanager.cc:447

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetDimensions ( G4ThreeVector  dims)

Definition at line 359 of file LXeDetectorConstruction.cc.

359  {
360  this->fScint_x=dims[0];
361  this->fScint_y=dims[1];
362  this->fScint_z=dims[2];
364 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetHousingReflectivity ( G4double  r)

Definition at line 444 of file LXeDetectorConstruction.cc.

444  {
445  fRefl=r;
447 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetHousingThickness ( G4double  d_mtl)

Definition at line 368 of file LXeDetectorConstruction.cc.

368  {
369  this->fD_mtl=d_mtl;
371 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetMainScintYield ( G4double  y)

Definition at line 472 of file LXeDetectorConstruction.cc.

472  {
473  fLXe_mt->AddConstProperty("SCINTILLATIONYIELD",y/MeV);
474 }
void AddConstProperty(const char *key, G4double PropertyValue)
static constexpr double MeV
Definition: G4SIunits.hh:214

Here is the call graph for this function:

void LXeDetectorConstruction::SetMainVolumeOn ( G4bool  b)

Definition at line 458 of file LXeDetectorConstruction.cc.

458  {
459  fMainVolumeOn=b;
461 }
tuple b
Definition: test.py:12
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetNFibers ( G4int  n)

Definition at line 465 of file LXeDetectorConstruction.cc.

465  {
466  fNfibers=n;
468 }
const G4int n
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetNX ( G4int  nx)

Definition at line 375 of file LXeDetectorConstruction.cc.

375  {
376  this->fNx=nx;
378 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetNY ( G4int  ny)

Definition at line 382 of file LXeDetectorConstruction.cc.

382  {
383  this->fNy=ny;
385 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetNZ ( G4int  nz)

Definition at line 389 of file LXeDetectorConstruction.cc.

389  {
390  this->fNz=nz;
392 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetPMTRadius ( G4double  outerRadius_pmt)

Definition at line 396 of file LXeDetectorConstruction.cc.

396  {
397  this->fOuterRadius_pmt=outerRadius_pmt;
399 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetSphereOn ( G4bool  b)

Definition at line 437 of file LXeDetectorConstruction.cc.

437  {
438  fSphereOn=b;
440 }
tuple b
Definition: test.py:12
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetWLSScintYield ( G4double  y)

Definition at line 478 of file LXeDetectorConstruction.cc.

478  {
479  fMPTPStyrene->AddConstProperty("SCINTILLATIONYIELD",y/MeV);
480 }
void AddConstProperty(const char *key, G4double PropertyValue)
static constexpr double MeV
Definition: G4SIunits.hh:214

Here is the call graph for this function:

Here is the caller graph for this function:

void LXeDetectorConstruction::SetWLSSlabOn ( G4bool  b)

Definition at line 451 of file LXeDetectorConstruction.cc.

451  {
452  fWLSslab=b;
454 }
tuple b
Definition: test.py:12
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

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: