Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

MJGeneratorPNNL.hh

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu//
00003 //                                                                           //
00004 //                         MAJORANA Simulation                               //
00005 //                                                                           //
00006 //      This code implementation is the intellectual property of the         //
00007 //      MAJORANA Collaboration. It is based on Geant4, an intellectual       //
00008 //      property of the RD44 GEANT4 collaboration.                           //
00009 //                                                                           //
00010 //                        *********************                              //
00011 //                                                                           //
00012 //    Neither the authors of this software system, nor their employing       //
00013 //    institutes, nor the agencies providing financial support for this      //
00014 //    work  make  any representation or  warranty, express or implied,       //
00015 //    regarding this software system or assume any liability for its use.    //
00016 //    By copying, distributing or modifying the Program (or any work based   //
00017 //    on on the Program) you indicate your acceptance of this statement,     //
00018 //    and all its terms.                                                     //
00019 //                                                                           //
00020 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu//
00021 //---------------------------------------------------------------------------//
00032 // Begin description of class here
00038 // End class description
00039 //
00044 // 
00045 // --------------------------------------------------------------------------//
00056 // --------------------------------------------------------------------------//
00057 
00058 #ifndef _MJGENERATORPNNL_HH
00059 #define _MJGENERATORPNNL_HH
00060 
00061 //---------------------------------------------------------------------------//
00062 
00063 #include "globals.hh"
00064 #include "G4ThreeVector.hh"
00065 
00066 #include "generators/MJGeneratorPNNLDecayChain.hh"
00067 #include "generators/MJGeneratorPNNLRadioisotope.hh"
00068 #include "generators/MJVGenerator.hh"
00069 
00070 class G4Event;
00071 class G4ParticleGun;
00072 class MJPrimaryGeneratorMessenger;
00073 
00074 //---------------------------------------------------------------------------//
00075 
00076 class MJGeneratorPNNL : public MJVGenerator
00077 {
00078 public:
00079 
00080   //default constructor
00081   MJGeneratorPNNL();
00082 
00083   //copy constructor
00084   MJGeneratorPNNL(const MJGeneratorPNNL &);
00085 
00086   //destructor
00087   ~MJGeneratorPNNL();
00088 
00089   //public interface
00090   void BeginOfRunAction(const G4Run *run);
00091   void EndOfRunAction(const G4Run *run);
00092   void GeneratePrimaryVertex(G4Event *event);
00093   void SetParticlePosition(G4ThreeVector vec) {SetPosition(vec);}
00094   //  Histogram1D* GetHist_Egen() { return pHist_EgammaGen; };
00095   void SetPNNLSourceAge(G4double source_age) 
00096                          {fPNNL_source_age = source_age;}
00097   void SetPNNLDecayChainFile(G4String DecayChain_file) 
00098                     {fPNNL_DecayChain_file = DecayChain_file;}
00099   void SetPosition(G4ThreeVector pos) { fPosition = pos; }
00100 
00101   //protected members
00102 protected:
00103 
00104 
00105   //private  members
00106 private:
00107     void pick_point_in_circle(G4double R, G4double &x, G4double &y);
00108 
00109     G4ParticleGun* fParticleGun;
00110     G4int num_events;
00111     G4int igen_flag;
00112     G4int idirection_flag;
00113     G4double E_gamma;
00114     G4double RADIUS_DETECTOR;
00115     G4double ZPOS_DETECTOR;
00116 
00117     MJGeneratorPNNLRadioisotope* f_pRadioIsotope;
00118     MJGeneratorPNNLDecayChain* f_pPNNLDecayChain;
00119 
00120     G4int hist_cascade[3];
00121     G4int hist_isotope[10];
00122 
00123     G4bool   fFirstCall;
00124     G4bool   fUsePNNLGen;
00125     G4String fPNNL_DecayChain_file;
00126     G4double fPNNL_source_age;
00127 
00128   G4ThreeVector fPosition;
00129 };
00130 #endif

Generated on Mon Nov 29 16:58:50 2004 for Majorana Simulation by  doxygen 1.3.9.1