Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // 26 // 23 // >> 24 // $Id: XrayFluoPlanePrimaryGeneratorAction.hh >> 25 // GEANT4 tag $Name: 27 // 26 // 28 // Author: Elena Guardincerri (Elena.Guardince 27 // Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it) 29 // 28 // 30 // History: 29 // History: 31 // ----------- 30 // ----------- 32 // 28 Nov 2001 Elena Guardincerri Created 31 // 28 Nov 2001 Elena Guardincerri Created 33 // 32 // 34 // ------------------------------------------- 33 // ------------------------------------------------------------------- 35 34 36 35 37 #ifndef XrayFluoMercuryPrimaryGeneratorAction_ 36 #ifndef XrayFluoMercuryPrimaryGeneratorAction_h 38 #define XrayFluoMercuryPrimaryGeneratorAction_ 37 #define XrayFluoMercuryPrimaryGeneratorAction_h 1 39 38 40 #include "G4VUserPrimaryGeneratorAction.hh" 39 #include "G4VUserPrimaryGeneratorAction.hh" 41 #include "globals.hh" 40 #include "globals.hh" 42 41 43 class G4ParticleGun; 42 class G4ParticleGun; 44 class G4Event; 43 class G4Event; 45 class XrayFluoMercuryDetectorConstruction; 44 class XrayFluoMercuryDetectorConstruction; 46 class XrayFluoMercuryPrimaryGeneratorMessenger 45 class XrayFluoMercuryPrimaryGeneratorMessenger; 47 class XrayFluoRunAction; 46 class XrayFluoRunAction; 48 47 49 //....oooOO0OOooo........oooOO0OOooo........oo 48 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 50 49 51 class XrayFluoMercuryPrimaryGeneratorAction : 50 class XrayFluoMercuryPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction 52 { 51 { 53 public: 52 public: 54 53 55 XrayFluoMercuryPrimaryGeneratorAction(cons << 54 XrayFluoMercuryPrimaryGeneratorAction(XrayFluoMercuryDetectorConstruction*); 56 55 57 ~XrayFluoMercuryPrimaryGeneratorAction(); 56 ~XrayFluoMercuryPrimaryGeneratorAction(); 58 57 59 public: 58 public: 60 void GeneratePrimaries(G4Event*); 59 void GeneratePrimaries(G4Event*); 61 60 62 // method to set the global illumination of 61 // method to set the global illumination of Mercury surface 63 void SetGlobalFlag (G4bool val) {globalFlag 62 void SetGlobalFlag (G4bool val) {globalFlag = val;}; 64 63 65 64 66 //method to set a random impact point on the 65 //method to set a random impact point on the sample 67 //void SetRndmFlag(G4String val) { rndmFlag 66 //void SetRndmFlag(G4String val) { rndmFlag = val;} 68 67 69 //method to choose a circular non-point-like 68 //method to choose a circular non-point-like source 70 //void SetRndmVert (G4String val) { beam = v 69 //void SetRndmVert (G4String val) { beam = val;}; 71 70 72 //set the flag for shooting particles accord 71 //set the flag for shooting particles according to certain spectra 73 void SetSpectrum (G4String val) { spectrum = 72 void SetSpectrum (G4String val) { spectrum = val;}; 74 73 75 //set the flag for shooting particles from a 74 //set the flag for shooting particles from an isotropic source 76 //void SetIsoVert (G4String val) { isoVert 75 //void SetIsoVert (G4String val) { isoVert = val ;}; 77 76 78 private: 77 private: 79 //pointer a to G4 service class 78 //pointer a to G4 service class 80 G4ParticleGun* particleGun; 79 G4ParticleGun* particleGun; 81 80 82 //pointer to the geometry 81 //pointer to the geometry 83 const XrayFluoMercuryDetectorConstruction* << 82 XrayFluoMercuryDetectorConstruction* XrayFluoDetector; 84 83 85 //messenger of this class 84 //messenger of this class 86 XrayFluoMercuryPrimaryGeneratorMessenger* gu 85 XrayFluoMercuryPrimaryGeneratorMessenger* gunMessenger; 87 XrayFluoRunAction* runManager; 86 XrayFluoRunAction* runManager; 88 87 89 //flag for setting the global illumination o 88 //flag for setting the global illumination of Mercury surface 90 89 91 G4bool globalFlag; 90 G4bool globalFlag; 92 91 93 //flag for considering the Sun as a Point-li 92 //flag for considering the Sun as a Point-like source 94 //not to be used if spacecraft latitude is n 93 //not to be used if spacecraft latitude is near zero 95 //because the spacecraft itself shadowes the 94 //because the spacecraft itself shadowes the planet surface. 96 95 97 //G4bool pointLikeFla 96 //G4bool pointLikeFlag; 98 97 99 //flag for a random impact point 98 //flag for a random impact point 100 // G4String rndmFlag; 99 // G4String rndmFlag; 101 100 102 //flag for a circular non-point source 101 //flag for a circular non-point source 103 // G4String beam; 102 // G4String beam; 104 103 105 //flag for shooting particles according to c 104 //flag for shooting particles according to certain spectra 106 G4String spectrum; 105 G4String spectrum; 107 106 108 //flag for shooting particles from an isotro 107 //flag for shooting particles from an isotropic source 109 // G4String isoVert; 108 // G4String isoVert; 110 }; 109 }; 111 110 112 #endif 111 #endif 113 112