Import Geant4 6.2.0 source tree
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef LXeDetectorConstruction_H
|
||||
#define LXeDetectorConstruction_H 1
|
||||
|
||||
class G4LogicalVolume;
|
||||
class G4VPhysicalVolume;
|
||||
class G4Box;
|
||||
class G4Tubs;
|
||||
class LXePMTSD;
|
||||
class LXeScintSD;
|
||||
class G4Sphere;
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "LXeDetectorMessenger.hh"
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
|
||||
class LXeDetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
|
||||
LXeDetectorConstruction();
|
||||
~LXeDetectorConstruction();
|
||||
|
||||
G4VPhysicalVolume* Construct();
|
||||
|
||||
//Functions to modify the geometry
|
||||
void SetDimensions(G4ThreeVector dims);
|
||||
void SetHousingThickness(G4double d_mtl);
|
||||
void SetNX(G4int nx);
|
||||
void SetNY(G4int ny);
|
||||
void SetNZ(G4int nz);
|
||||
void SetPMTRadius(G4double outerRadius_pmt);
|
||||
void SetDefaults();
|
||||
|
||||
//Get values
|
||||
G4double GetScintX(){return scint_x;}
|
||||
G4double GetScintY(){return scint_y;}
|
||||
G4double GetScintZ(){return scint_z;}
|
||||
G4double GetHousingThickness(){return d_mtl;}
|
||||
G4int GetNX(){return nx;}
|
||||
G4int GetNY(){return ny;}
|
||||
G4int GetNZ(){return nz;}
|
||||
G4double GetPMTRadius(){return outerRadius_pmt;}
|
||||
G4double GetSlabZ(){return slab_z;}
|
||||
|
||||
//rebuild the geometry based on changes. must be called
|
||||
void UpdateGeometry();
|
||||
G4bool GetUpdated(){return updated;}
|
||||
|
||||
void SetSphereOn(G4bool b){sphereOn=b;updated=true;}
|
||||
static G4bool GetSphereOn(){return sphereOn;}
|
||||
|
||||
void SetHousingReflectivity(G4double r){refl=r;updated=true;}
|
||||
G4double GetHousingReflectivity(){return refl;}
|
||||
|
||||
void SetWLSSlabOn(G4bool b){WLSslab=b;updated=true;}
|
||||
G4bool GetWLSSlabOn(){return WLSslab;}
|
||||
|
||||
void SetMainVolumeOn(G4bool b){mainVolume=b;updated=true;}
|
||||
G4bool GetMainVolumeOn(){return mainVolume;}
|
||||
|
||||
void SetNFibers(G4int n){nfibers=n;updated=true;}
|
||||
G4int GetNFibers(){return nfibers;}
|
||||
|
||||
void SetMainScintYield(G4double y);
|
||||
void SetWLSScintYield(G4double y);
|
||||
|
||||
private:
|
||||
|
||||
void DefineMaterials();
|
||||
G4VPhysicalVolume* ConstructDetector();
|
||||
|
||||
LXeDetectorMessenger* detectorMessenger;
|
||||
|
||||
G4bool updated;
|
||||
|
||||
G4Box* experimentalHall_box;
|
||||
G4LogicalVolume* experimentalHall_log;
|
||||
G4VPhysicalVolume* experimentalHall_phys;
|
||||
|
||||
//Materials & Elements
|
||||
G4Material* LXe;
|
||||
G4Material* Al;
|
||||
G4Element* N;
|
||||
G4Element* O;
|
||||
G4Material* Air;
|
||||
G4Material* Vacuum;
|
||||
G4Element* C;
|
||||
G4Element* H;
|
||||
G4Material* Glass;
|
||||
G4Material* Pstyrene;
|
||||
G4Material* PMMA;
|
||||
G4Material* Pethylene;
|
||||
G4Material* fPethylene;
|
||||
|
||||
|
||||
|
||||
//Geometry
|
||||
G4double scint_x;
|
||||
G4double scint_y;
|
||||
G4double scint_z;
|
||||
G4double d_mtl;
|
||||
G4int nx;
|
||||
G4int ny;
|
||||
G4int nz;
|
||||
G4double outerRadius_pmt;
|
||||
G4int nfibers;
|
||||
static G4bool sphereOn;
|
||||
G4double refl;
|
||||
G4bool WLSslab;
|
||||
G4bool mainVolume;
|
||||
G4double slab_z;
|
||||
|
||||
G4MaterialPropertiesTable* LXe_mt;
|
||||
G4MaterialPropertiesTable* MPTPStyrene;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user