LISAPhysicsList.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * DISCLAIMER                                                       *
00004 // *                                                                  *
00005 // * The following disclaimer summarizes all the specific disclaimers *
00006 // * of contributors to this software. The specific disclaimers,which *
00007 // * govern, are listed with their locations in:                      *
00008 // *   http://cern.ch/geant4/license                                  *
00009 // *                                                                  *
00010 // * Neither the authors of this software system, nor their employing *
00011 // * institutes,nor the agencies providing financial support for this *
00012 // * work  make  any representation or  warranty, express or implied, *
00013 // * regarding  this  software system or assume any liability for its *
00014 // * use.                                                             *
00015 // *                                                                  *
00016 // * This  code  implementation is the  intellectual property  of the *
00017 // * GEANT4 collaboration.                                            *
00018 // * By copying,  distributing  or modifying the Program (or any work *
00019 // * based  on  the Program)  you indicate  your  acceptance of  this *
00020 // * statement, and all its terms.                                    *
00021 // ********************************************************************
00022 //
00023 // ********************************************************************
00024 // *                                                                  *
00025 // * cosmicray_charging advanced example for Geant4                   *
00026 // * (adapted simulation of test-mass charging in the LISA mission)   *
00027 // *                                                                  *
00028 // * Henrique Araujo (h.araujo@imperial.ac.uk) & Peter Wass           *
00029 // * Imperial College London                                          *
00030 // *                                                                  *
00031 // ********************************************************************
00032 
00033 #ifndef LISAPhysicsList_h
00034 #define LISAPhysicsList_h 1
00035 
00036 #include "G4VUserPhysicsList.hh"
00037 #include "globals.hh"
00038 
00039 // Hadronics
00040 #include "G4HadronElasticProcess.hh"
00041 #include "G4HadronInelasticProcess.hh"
00042 #include "G4HadronCaptureProcess.hh"
00043 #include "G4HadronFissionProcess.hh"
00044 
00045 // Inelastic Processes
00046 #include "G4ProtonInelasticProcess.hh"
00047 #include "G4AntiProtonInelasticProcess.hh"
00048 #include "G4NeutronInelasticProcess.hh"
00049 #include "G4AntiNeutronInelasticProcess.hh"
00050 #include "G4PionPlusInelasticProcess.hh"
00051 #include "G4PionMinusInelasticProcess.hh"
00052 #include "G4KaonPlusInelasticProcess.hh"
00053 #include "G4KaonZeroSInelasticProcess.hh"
00054 #include "G4KaonZeroLInelasticProcess.hh"
00055 #include "G4KaonMinusInelasticProcess.hh"
00056 #include "G4DeuteronInelasticProcess.hh"
00057 #include "G4TritonInelasticProcess.hh"
00058 #include "G4AlphaInelasticProcess.hh"
00059 #include "G4LambdaInelasticProcess.hh"
00060 #include "G4AntiLambdaInelasticProcess.hh"
00061 #include "G4OmegaMinusInelasticProcess.hh"
00062 #include "G4AntiOmegaMinusInelasticProcess.hh"
00063 #include "G4SigmaMinusInelasticProcess.hh"
00064 #include "G4AntiSigmaMinusInelasticProcess.hh"
00065 #include "G4SigmaPlusInelasticProcess.hh"
00066 #include "G4AntiSigmaPlusInelasticProcess.hh"
00067 #include "G4XiZeroInelasticProcess.hh"
00068 #include "G4AntiXiZeroInelasticProcess.hh"
00069 #include "G4XiMinusInelasticProcess.hh"
00070 #include "G4AntiXiMinusInelasticProcess.hh"
00071 
00072 // Low-energy Parameterised Models: 1 to 25 GeV
00073 #include "G4LElastic.hh"
00074 #include "G4LEPionPlusInelastic.hh"
00075 #include "G4LEPionMinusInelastic.hh"
00076 #include "G4LEKaonPlusInelastic.hh"
00077 #include "G4LEKaonZeroSInelastic.hh"
00078 #include "G4LEKaonZeroLInelastic.hh"
00079 #include "G4LEKaonMinusInelastic.hh"
00080 // #include "G4LEProtonInelastic.hh"
00081 #include "G4LEAntiProtonInelastic.hh"
00082 // #include "G4LENeutronInelastic.hh"
00083 #include "G4LEAntiNeutronInelastic.hh"
00084 #include "G4LEDeuteronInelastic.hh"
00085 #include "G4LETritonInelastic.hh"
00086 #include "G4LEAlphaInelastic.hh"
00087 #include "G4LELambdaInelastic.hh"
00088 #include "G4LEAntiLambdaInelastic.hh"
00089 #include "G4LEOmegaMinusInelastic.hh"
00090 #include "G4LEAntiOmegaMinusInelastic.hh"
00091 #include "G4LESigmaMinusInelastic.hh"
00092 #include "G4LEAntiSigmaMinusInelastic.hh"
00093 #include "G4LESigmaPlusInelastic.hh"
00094 #include "G4LEAntiSigmaPlusInelastic.hh"
00095 #include "G4LEXiZeroInelastic.hh"
00096 #include "G4LEAntiXiZeroInelastic.hh"
00097 #include "G4LEXiMinusInelastic.hh"
00098 #include "G4LEAntiXiMinusInelastic.hh"
00099 // neutrons
00100 #include "G4LCapture.hh"
00101 #include "G4LFission.hh"
00102 
00103 // High-energy Parameterised Models: 25 GeV to 10 TeV
00104 //  #include "G4HEPionPlusInelastic.hh"
00105 //  #include "G4HEPionMinusInelastic.hh"
00106 //  #include "G4HEKaonPlusInelastic.hh"
00107 //  #include "G4HEKaonZeroInelastic.hh"
00108 //  #include "G4HEKaonZeroInelastic.hh"
00109 //  #include "G4HEKaonMinusInelastic.hh"
00110 //  #include "G4HEProtonInelastic.hh"
00111 //  #include "G4HENeutronInelastic.hh"
00112 #include "G4HEAntiProtonInelastic.hh"
00113 #include "G4HEAntiNeutronInelastic.hh"
00114 #include "G4HELambdaInelastic.hh"
00115 #include "G4HEAntiLambdaInelastic.hh"
00116 #include "G4HEOmegaMinusInelastic.hh"
00117 #include "G4HEAntiOmegaMinusInelastic.hh"
00118 #include "G4HESigmaMinusInelastic.hh"
00119 #include "G4HEAntiSigmaMinusInelastic.hh"
00120 #include "G4HESigmaPlusInelastic.hh"
00121 #include "G4HEAntiSigmaPlusInelastic.hh"
00122 #include "G4HEXiZeroInelastic.hh"
00123 #include "G4HEAntiXiZeroInelastic.hh"
00124 #include "G4HEXiMinusInelastic.hh"
00125 #include "G4HEAntiXiMinusInelastic.hh"
00126 
00127 // // Neutron HP Models: Thermal to 19 MeV
00128 // #include "G4NeutronHPElastic.hh"
00129 // #include "G4NeutronHPElasticData.hh"
00130 // #include "G4NeutronHPCapture.hh"
00131 // #include "G4NeutronHPCaptureData.hh"
00132 // #include "G4NeutronHPInelastic.hh"
00133 // #include "G4NeutronHPInelasticData.hh"
00134 
00135 // Stopping processes
00136 #include "G4PiMinusAbsorptionAtRest.hh"
00137 #include "G4KaonMinusAbsorptionAtRest.hh"
00138 #include "G4AntiProtonAnnihilationAtRest.hh"
00139 #include "G4AntiNeutronAnnihilationAtRest.hh"
00140 
00141 // Generator models: HE
00142 #include "G4TheoFSGenerator.hh"
00143 #include "G4Evaporation.hh"
00144 #include "G4CompetitiveFission.hh"
00145 #include "G4FermiBreakUp.hh"
00146 #include "G4StatMF.hh"
00147 #include "G4ExcitationHandler.hh"
00148 #include "G4PreCompoundModel.hh"
00149 #include "G4GeneratorPrecompoundInterface.hh"
00150 #include "G4QGSModel.hh"
00151 #include "G4QGSParticipants.hh"
00152 #include "G4QGSMFragmentation.hh"
00153 #include "G4ExcitedStringDecay.hh"
00154 
00155 // Kinetic Model
00156 #include "G4BinaryCascade.hh"
00157 #include "G4BinaryLightIonReaction.hh"
00158 #include "G4TripathiCrossSection.hh"
00159 #include "G4IonsShenCrossSection.hh"
00160 
00161 
00162 ///////////////////////////
00163 // ElectroNuclear Physics
00164 
00165 // photonuclear and electronuclear reaction
00166 #include "G4PhotoNuclearProcess.hh"
00167 #include "G4ElectronNuclearProcess.hh"
00168 #include "G4PositronNuclearProcess.hh"
00169 #include "G4GammaNuclearReaction.hh"
00170 #include "G4ElectroNuclearReaction.hh"
00171 
00172 // CHIPS fragmentation model
00173 #include "G4TheoFSGenerator.hh"
00174 #include "G4StringChipsParticleLevelInterface.hh"
00175 #include "G4QGSModel.hh"
00176 #include "G4GammaParticipants.hh"
00177 #include "G4QGSMFragmentation.hh"
00178 #include "G4ExcitedStringDecay.hh"
00179 
00180 // muon photonuclear reaction
00181 #include "G4MuNuclearInteraction.hh"
00182 
00183 
00184 
00185 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
00186 
00187 class LISAPhysicsList: public G4VUserPhysicsList {
00188 
00189   public:
00190     LISAPhysicsList();
00191     virtual ~LISAPhysicsList();
00192 
00193   public:
00194     virtual void SetCuts();
00195 
00196   protected:
00197     // particles and physics
00198     virtual void ConstructParticle();
00199     virtual void ConstructProcess();
00200     
00201     // physics processes
00202     virtual void AddTransportation();
00203     virtual void ElectromagneticPhysics();
00204     virtual void HadronicPhysics();
00205     virtual void ElectroNuclearPhysics();
00206     virtual void GeneralPhysics();
00207 
00208   private:
00209     G4int VerboseLevel;
00210   protected:
00211 
00212   // PhotoNuclear *************************************************
00213 
00214   G4PhotoNuclearProcess thePhotoNuclearProcess;
00215   G4GammaNuclearReaction* theGammaReaction;      
00216   G4TheoFSGenerator* theHEModel_PN;
00217   G4StringChipsParticleLevelInterface* theCascade_PN;
00218   G4QGSModel<G4GammaParticipants> theStringModel_PN;
00219   G4QGSMFragmentation theFragmentation_PN;
00220   G4ExcitedStringDecay* theStringDecay_PN;
00221   // ElectronNuclear
00222   G4ElectronNuclearProcess theElectronNuclearProcess;
00223   G4ElectroNuclearReaction* theElectroReaction;
00224   // PositronNuclear
00225   G4PositronNuclearProcess thePositronNuclearProcess;
00226   // MuNucleus
00227   G4MuNuclearInteraction theMuMinusNuclearInteraction;
00228   G4MuNuclearInteraction theMuPlusNuclearInteraction;
00229   
00230 
00231    // Hadronics  *************************************************
00232   
00233   // Binary Cascade
00234   G4TheoFSGenerator* theHEModel;
00235   G4Evaporation* theEvaporation;
00236   G4FermiBreakUp* theFermiBreakUp;
00237   G4StatMF* theMF;
00238   G4ExcitationHandler* theHandler;
00239   G4PreCompoundModel* thePreEquilib;
00240   G4GeneratorPrecompoundInterface* theCascade;
00241   G4VPartonStringModel* theStringModel;
00242   G4BinaryCascade* theCasc;
00243   G4VLongitudinalStringDecay* theFragmentation;
00244   G4ExcitedStringDecay* theStringDecay;
00245   G4BinaryCascade* theCascForPi;
00246   // Cascade for light ions
00247   G4BinaryLightIonReaction* theIonCascade;
00248   G4TripathiCrossSection* theTripathiCrossSection;
00249   G4IonsShenCrossSection* theShenCrossSection;
00250   G4BinaryLightIonReaction* theGenIonCascade;
00251   
00252   
00253    // Elastic Process
00254   G4HadronElasticProcess theElasticProcess;
00255   G4LElastic* theElasticModel;
00256 
00257   // pi+
00258   G4PionPlusInelasticProcess thePionPlusInelasticProcess;
00259   G4LEPionPlusInelastic* theLEPionPlusInelasticModel;
00260 
00261   // pi-
00262   G4PionMinusInelasticProcess thePionMinusInelasticProcess;
00263   G4LEPionMinusInelastic* theLEPionMinusInelasticModel;
00264   G4PiMinusAbsorptionAtRest thePiMinusAbsorptionAtRest;
00265   
00266   // kaon+
00267   G4KaonPlusInelasticProcess theKaonPlusInelasticProcess;
00268   G4LEKaonPlusInelastic* theLEKaonPlusInelasticModel;
00269 
00270   // kaon0S
00271   G4KaonZeroSInelasticProcess theKaonZeroSInelasticProcess;
00272   G4LEKaonZeroSInelastic* theLEKaonZeroSInelasticModel;
00273 
00274   // kaon0L
00275   G4KaonZeroLInelasticProcess theKaonZeroLInelasticProcess;
00276   G4LEKaonZeroLInelastic* theLEKaonZeroLInelasticModel;
00277 
00278   // kaon-
00279   G4KaonMinusInelasticProcess theKaonMinusInelasticProcess;
00280   G4LEKaonMinusInelastic* theLEKaonMinusInelasticModel;
00281   G4KaonMinusAbsorptionAtRest theKaonMinusAbsorptionAtRest;
00282   
00283   // proton
00284   G4ProtonInelasticProcess theProtonInelasticProcess;
00285 
00286   // anti-proton
00287   G4AntiProtonInelasticProcess theAntiProtonInelasticProcess;
00288   G4LEAntiProtonInelastic* theLEAntiProtonInelasticModel;
00289   G4HEAntiProtonInelastic* theHEAntiProtonInelasticModel;
00290   G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilationAtRest;
00291 
00292   // neutron
00293   G4HadronElasticProcess theNeutronElasticProcess;
00294   G4LElastic* theNeutronElasticModel1;
00295   //   G4NeutronHPElastic* theNeutronElasticModel2;
00296   //   G4NeutronHPElasticData* theNeutronElasticData;
00297   G4NeutronInelasticProcess theNeutronInelasticProcess;
00298   //   G4NeutronHPInelastic* theNeutronInelasticModel1;
00299   //   G4NeutronHPInelasticData* theNeutronInelasticData1;
00300   G4HadronCaptureProcess theNeutronCaptureProcess;
00301   G4LCapture* theNeutronCaptureModel1;
00302   //   G4NeutronHPCapture* theNeutronCaptureModel2;
00303   //   G4NeutronHPCaptureData* theNeutronCaptureData;
00304   G4HadronFissionProcess theNeutronFissionProcess;
00305   G4LFission* theNeutronFissionModel;
00306 
00307   // anti-neutron
00308   G4AntiNeutronInelasticProcess theAntiNeutronInelasticProcess;
00309   G4LEAntiNeutronInelastic* theLEAntiNeutronInelasticModel;
00310   G4HEAntiNeutronInelastic* theHEAntiNeutronInelasticModel;
00311   G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilationAtRest;
00312 
00313   // deuteron
00314   G4DeuteronInelasticProcess* theDeuteronInelasticProcess;
00315   G4LEDeuteronInelastic* theLEDeuteronInelasticModel;
00316 
00317   // triton
00318   G4TritonInelasticProcess* theTritonInelasticProcess;
00319   G4LETritonInelastic* theLETritonInelasticModel;
00320 
00321   // alpha
00322   G4AlphaInelasticProcess* theAlphaInelasticProcess;
00323   G4LEAlphaInelastic* theLEAlphaInelasticModel;
00324 
00325   // He-3
00326   G4HadronInelasticProcess* theHe3InelasticProcess;
00327 
00328   // Generic Ion
00329   G4HadronInelasticProcess* theGenericIonInelasticProcess;
00330 
00331   // lambda
00332   G4LambdaInelasticProcess theLambdaInelasticProcess;
00333   G4LELambdaInelastic* theLELambdaInelasticModel;
00334   G4HELambdaInelastic* theHELambdaInelasticModel;
00335 
00336   // anti-lambda
00337   G4AntiLambdaInelasticProcess theAntiLambdaInelasticProcess;
00338   G4LEAntiLambdaInelastic* theLEAntiLambdaInelasticModel;
00339   G4HEAntiLambdaInelastic* theHEAntiLambdaInelasticModel;
00340 
00341   // omega-
00342   G4OmegaMinusInelasticProcess theOmegaMinusInelasticProcess;
00343   G4LEOmegaMinusInelastic* theLEOmegaMinusInelasticModel;
00344   G4HEOmegaMinusInelastic* theHEOmegaMinusInelasticModel;
00345 
00346   // anti-omega-
00347   G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelasticProcess;
00348   G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusInelasticModel;
00349   G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusInelasticModel;
00350 
00351   // sigma-
00352   G4SigmaMinusInelasticProcess theSigmaMinusInelasticProcess;
00353   G4LESigmaMinusInelastic* theLESigmaMinusInelasticModel;
00354   G4HESigmaMinusInelastic* theHESigmaMinusInelasticModel;
00355 
00356   // anti-sigma-
00357   G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelasticProcess;
00358   G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusInelasticModel;
00359   G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusInelasticModel;
00360 
00361   // sigma+
00362   G4SigmaPlusInelasticProcess theSigmaPlusInelasticProcess;
00363   G4LESigmaPlusInelastic* theLESigmaPlusInelasticModel;
00364   G4HESigmaPlusInelastic* theHESigmaPlusInelasticModel;
00365 
00366   // anti-sigma+
00367   G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelasticProcess;
00368   G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusInelasticModel;
00369   G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusInelasticModel;
00370 
00371   // xi0
00372   G4XiZeroInelasticProcess theXiZeroInelasticProcess;
00373   G4LEXiZeroInelastic* theLEXiZeroInelasticModel;
00374   G4HEXiZeroInelastic* theHEXiZeroInelasticModel;
00375 
00376   // anti-xi0
00377   G4AntiXiZeroInelasticProcess theAntiXiZeroInelasticProcess;
00378   G4LEAntiXiZeroInelastic* theLEAntiXiZeroInelasticModel;
00379   G4HEAntiXiZeroInelastic* theHEAntiXiZeroInelasticModel;
00380 
00381   // xi-
00382   G4XiMinusInelasticProcess theXiMinusInelasticProcess;
00383   G4LEXiMinusInelastic* theLEXiMinusInelasticModel;
00384   G4HEXiMinusInelastic* theHEXiMinusInelasticModel;
00385 
00386   // anti-xi-
00387   G4AntiXiMinusInelasticProcess theAntiXiMinusInelasticProcess;
00388   G4LEAntiXiMinusInelastic* theLEAntiXiMinusInelasticModel;
00389   G4HEAntiXiMinusInelastic* theHEAntiXiMinusInelasticModel;
00390 
00391 
00392 };
00393 
00394 #endif
g4beamline