LBE.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // --------------------------------------------------------------
00028 //
00029 //      For information related to this code contact: Alex Howard
00030 //      e-mail: alexander.howard@cern.ch
00031 // --------------------------------------------------------------
00032 // Comments
00033 //
00034 //                  Underground Advanced
00035 //
00036 // This physics list is taken from the underground_physics example with small
00037 // modifications.  It is an example of a "flat" physics list with no dependence
00038 // on builders.  The physics covered would be suitable for a low background
00039 // experiment including the neutron_hp package
00040 //
00041 //
00042 //
00043 // PhysicsList header
00044 // --------------------------------------------------------------
00045 
00046 #ifndef TLBE_h
00047 #define TLBE_h 1
00048 
00049 #include <CLHEP/Units/SystemOfUnits.h>
00050 
00051 #include "globals.hh"
00052 #include "G4VUserPhysicsList.hh"
00053 #include "CompileTimeConstraints.hh"
00054 #include "G4VModularPhysicsList.hh"
00055 
00056 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00057 
00058 template<class T>
00059 class TLBE: public T
00060 {
00061 public:
00062   TLBE();
00063   ~TLBE();
00064   //  virtual ~TLBE();
00065 
00066 
00067 public:
00068   virtual void SetCuts();
00069 
00070 
00071 private:
00072   enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
00073 
00074 protected:
00075   // Construct particle and physics
00076   virtual void ConstructParticle();
00077   virtual void ConstructProcess();
00078     
00079   // these methods Construct physics processes and register them
00080   virtual void ConstructGeneral();
00081   virtual void ConstructEM();
00082   virtual void ConstructHad();
00083   virtual void ConstructOp();
00084 
00085 
00086   /*
00087   // these methods Construct all particles in each category
00088   virtual void ConstructAllBosons();
00089   virtual void ConstructAllLeptons();
00090   virtual void ConstructAllMesons();
00091   virtual void ConstructAllBaryons();
00092   virtual void ConstructAllIons();
00093   virtual void ConstructAllShortLiveds();
00094   */
00095 
00096   virtual void AddTransportation();
00097 
00098 private:
00099   G4int VerboseLevel;
00100   G4int OpVerbLevel;
00101 
00102   G4double cutForGamma;
00103   G4double cutForElectron;
00104   G4double cutForPositron;
00105   G4double cutForProton;
00106   G4double cutForAlpha;
00107   G4double cutForGenericIon;
00108 
00109   // these methods Construct particles 
00110   void ConstructMyBosons();
00111   void ConstructMyLeptons();
00112   void ConstructMyMesons();
00113   void ConstructMyBaryons();
00114   void ConstructMyIons();
00115   void ConstructMyShortLiveds();
00116 
00117 };
00118 #include "LBE.icc"
00119 typedef TLBE<G4VModularPhysicsList> LBE;
00120 
00121 #endif

Generated on Mon May 27 17:50:31 2013 for Geant4 by  doxygen 1.4.7