// // ******************************************************************** // * License and Disclaimer * // * * // * The Geant4 software is copyright of the Copyright Holders of * // * the Geant4 Collaboration. It is provided under the terms and * // * conditions of the Geant4 Software License, included in the file * // * LICENSE and available at http://cern.ch/geant4/license . These * // * include a list of copyright holders. * // * * // * 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. Please see the license in the file LICENSE and URL above * // * for the full disclaimer and the limitation of liability. * // * * // * This code implementation is the result of the scientific and * // * technical work of the GEANT4 collaboration. * // * By using, copying, modifying or distributing the software (or * // * any work based on the software) you agree to acknowledge its * // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // // /// \file B1DetectorConstruction.hh /// \brief Definition of the B1DetectorConstruction class #ifndef B1DetectorConstruction_h #define B1DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh" #include "globals.hh" class G4VPhysicalVolume; class G4LogicalVolume; /// Detector construction class to define materials and geometry. class B1DetectorConstruction : public G4VUserDetectorConstruction { public: B1DetectorConstruction(G4bool CircularTargetFlag, G4bool MeniscusTargetFlag, G4bool HourglassTargetFlag, G4bool LinearHourglassTargetFlag, G4bool DummyTargetFlag, G4bool SecondTargetFlag, G4bool RegeneratorFlag, G4int WorldMat, G4int TargMat1, G4int TargMat2, G4double SecTarPos, G4double pRMin, G4double pRMax, G4double pDz, G4double pSPhi, G4double pDPhi, G4double pMenRmax1, G4double pMenRmax2, G4double zMenOrb1, G4double zMenOrb2, G4double AngRot1, G4double AngRot2, G4double pHourRmax, G4double zHourOrb1, G4double zHourOrb2, G4double pxSemiAxis, G4double pySemiAxis, G4double pzSemiAxis, G4double pzBottomCut, G4double pzTopCut, G4double zLinHourEllips1, G4double zLinHourEllips2, G4double pDzDummy, G4double zFirDummyPos, G4double zSecDummyPos, G4double pRMaxTung, G4double pDzTung, G4double zTungstenPos); virtual ~B1DetectorConstruction(); virtual G4VPhysicalVolume* Construct(); G4LogicalVolume* GetScoringVolume() const { return fScoringVolume; } G4LogicalVolume* GetScoringVolume2() const { return fScoringVolume2; } protected: G4LogicalVolume* fScoringVolume; G4LogicalVolume* fScoringVolume2; private: G4bool fCircularTargetFlag; G4bool fMeniscusTargetFlag; G4bool fHourglassTargetFlag; G4bool fLinearHourglassTargetFlag; G4bool fDummyTargetFlag; G4bool fSecondTargetFlag; G4bool fRegeneratorFlag; G4int fTargMat1; G4int fTargMat2; G4double fSecTarPos; G4int fWorldMat; G4double fpRMin; G4double fpRMax; G4double fpDz; G4double fpSPhi; G4double fpDPhi; G4double fpMenRmax1; G4double fpMenRmax2; G4double fzMenOrb1; G4double fzMenOrb2; G4double fAngRot1; G4double fAngRot2; G4double fpHourRmax; G4double fzHourOrb1; G4double fzHourOrb2; G4double fpxSemiAxis; G4double fpySemiAxis; G4double fpzSemiAxis; G4double fpzBottomCut; G4double fpzTopCut; G4double fzLinHourEllips1; G4double fzLinHourEllips2; G4double fpDzDummy; G4double fzFirDummyPos; G4double fzSecDummyPos; G4double fpRMaxTung; G4double fpDzTung; G4double fzTungstenPos; static G4ThreadLocal B5MagneticField* fMagneticField; static G4ThreadLocal G4FieldManager* fFieldMgr; G4LogicalVolume* fMagneticLogical; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif