#ifndef DoubleDynamite_h #define DoubleDynamite_h #include "DoubleDynamiteMessenger.hh" #include "G4VSolid.hh" #include "G4LogicalVolume.hh" #include "G4VPhysicalVolume.hh" #include "G4ThreeVector.hh" #include "G4Material.hh" #include "G4Region.hh" #include "G4ProductionCuts.hh" #include "MaterialDefinitions.hh" class DoubleDynamite { public: DoubleDynamite(); ~DoubleDynamite(); //void ConstructVolumes(G4LogicalVolume*); G4bool ConstructDoubleDynamite() { return constructDD; }; void SetConstructDoubleDynamite(G4bool b) { constructDD = b; }; void ConstructDoubleDynamite(G4LogicalVolume*); void SetFrontFacePosition(G4ThreeVector pos) { frontFacePosition = pos; }; void SetSensorSeparation(G4double d) { epi1toEpi2 = d; }; private: MaterialDefinitions* materialDefinitions; DoubleDynamiteMessenger* ddMessenger; G4ThreeVector frontFacePosition; G4bool constructDD; G4Region* ddRegion; G4double epiXY; G4double epiZ; G4double subXY; G4double subZ; G4double backXY; G4double backZ; G4double epi1toEpi2; G4Material* epiMaterial; G4Material* subMaterial; G4Material* backMaterial; G4VSolid *dynamiteEpi[2]; G4VSolid *dynamiteSub[2]; G4VSolid *dynamiteBack[2]; G4LogicalVolume* dynamiteEpiLV[2]; G4LogicalVolume* dynamiteSubLV[2]; G4LogicalVolume* dynamiteBackLV[2]; G4VPhysicalVolume* dynamiteEpiPV[2]; G4VPhysicalVolume* dynamiteSubPV[2]; G4VPhysicalVolume* dynamiteBackPV[2]; }; #endif