00001 #ifndef SimG4Core_PhysicsLists_HadronPhysicsCMS_h 00002 #define SimG4Core_PhysicsLists_HadronPhysicsCMS_h 1 00003 00004 #include "globals.hh" 00005 #include "G4ios.hh" 00006 00007 #include "G4VPhysicsConstructor.hh" 00008 #include "G4MiscLHEPBuilder.hh" 00009 00010 #include "G4PiKBuilder.hh" 00011 #include "G4BertiniPiKBuilder.hh" 00012 #include "G4BinaryPiKBuilder.hh" 00013 #include "G4FTFCPiKBuilder.hh" 00014 #include "G4FTFPPiKBuilder.hh" 00015 #include "G4LEPPiKBuilder.hh" 00016 #include "G4LHEPPiKBuilder.hh" 00017 #include "G4QGSCEflowPiKBuilder.hh" 00018 #include "G4QGSCPiKBuilder.hh" 00019 #include "G4QGSPPiKBuilder.hh" 00020 00021 #include "G4ProtonBuilder.hh" 00022 #include "G4BertiniProtonBuilder.hh" 00023 #include "G4BinaryProtonBuilder.hh" 00024 #include "G4FTFCProtonBuilder.hh" 00025 #include "G4FTFPProtonBuilder.hh" 00026 #include "G4LEPProtonBuilder.hh" 00027 #include "G4LHEPProtonBuilder.hh" 00028 #include "G4PrecoProtonBuilder.hh" 00029 #include "G4QGSCEflowProtonBuilder.hh" 00030 #include "G4QGSCProtonBuilder.hh" 00031 #include "G4QGSPProtonBuilder.hh" 00032 00033 #include "G4NeutronBuilder.hh" 00034 #include "G4BertiniNeutronBuilder.hh" 00035 #include "G4BinaryNeutronBuilder.hh" 00036 #include "G4FTFCNeutronBuilder.hh" 00037 #include "G4FTFPNeutronBuilder.hh" 00038 #include "G4LEPNeutronBuilder.hh" 00039 #include "G4LHEPNeutronBuilder.hh" 00040 #include "G4PrecoNeutronBuilder.hh" 00041 #include "G4QGSCEflowNeutronBuilder.hh" 00042 #include "G4QGSCNeutronBuilder.hh" 00043 #include "G4QGSPNeutronBuilder.hh" 00044 00045 #include "G4FTFBinaryNeutronBuilder.hh" 00046 #include "G4FTFBinaryPiKBuilder.hh" 00047 #include "G4FTFBinaryProtonBuilder.hh" 00048 00049 #include "SimG4Core/PhysicsLists/interface/G4RPGNeutronBuilder.hh" 00050 #include "SimG4Core/PhysicsLists/interface/G4RPGPiKBuilder.hh" 00051 #include "SimG4Core/PhysicsLists/interface/G4RPGProtonBuilder.hh" 00052 00053 class HadronPhysicsCMS : public G4VPhysicsConstructor { 00054 00055 public: 00056 00057 HadronPhysicsCMS(const G4String& name ="QGSP", G4bool quasiElastic=true); 00058 virtual ~HadronPhysicsCMS(); 00059 00060 public: 00061 00062 virtual void ConstructParticle(); 00063 virtual void ConstructProcess(); 00064 00065 private: 00066 00067 void CreateModels(); 00068 00069 G4NeutronBuilder * theNeutrons; 00070 G4BertiniNeutronBuilder * theBertiniNeutron; 00071 G4BinaryNeutronBuilder * theBinaryNeutron; 00072 G4FTFCNeutronBuilder * theFTFCNeutron; 00073 G4FTFPNeutronBuilder * theFTFPNeutron; 00074 G4LEPNeutronBuilder * theLEPNeutron; 00075 G4LHEPNeutronBuilder * theLHEPNeutron; 00076 G4PrecoNeutronBuilder * thePrecoNeutron; 00077 G4QGSCEflowNeutronBuilder * theQGSCEflowNeutron; 00078 G4QGSCNeutronBuilder * theQGSCNeutron; 00079 G4QGSPNeutronBuilder * theQGSPNeutron; 00080 00081 G4PiKBuilder * thePiK; 00082 G4BertiniPiKBuilder * theBertiniPiK; 00083 G4BinaryPiKBuilder * theBinaryPiK; 00084 G4FTFCPiKBuilder * theFTFCPiK; 00085 G4FTFPPiKBuilder * theFTFPPiK; 00086 G4LEPPiKBuilder * theLEPPiK; 00087 G4LHEPPiKBuilder * theLHEPPiK; 00088 G4QGSCEflowPiKBuilder * theQGSCEflowPiK; 00089 G4QGSCPiKBuilder * theQGSCPiK; 00090 G4QGSPPiKBuilder * theQGSPPiK; 00091 00092 G4ProtonBuilder * thePro; 00093 G4BertiniProtonBuilder * theBertiniPro; 00094 G4BinaryProtonBuilder * theBinaryPro; 00095 G4FTFCProtonBuilder * theFTFCPro; 00096 G4FTFPProtonBuilder * theFTFPPro; 00097 G4LEPProtonBuilder * theLEPPro; 00098 G4LHEPProtonBuilder * theLHEPPro; 00099 G4PrecoProtonBuilder * thePrecoPro; 00100 G4QGSCEflowProtonBuilder * theQGSCEflowPro; 00101 G4QGSCProtonBuilder * theQGSCPro; 00102 G4QGSPProtonBuilder * theQGSPPro; 00103 00104 G4MiscLHEPBuilder * theMiscLHEP; 00105 00106 G4FTFBinaryNeutronBuilder * theFTFNeutron; 00107 G4FTFBinaryPiKBuilder * theFTFPiK; 00108 G4FTFBinaryProtonBuilder * theFTFPro; 00109 00110 G4RPGNeutronBuilder * theRPGNeutron; 00111 G4RPGPiKBuilder * theRPGPiK; 00112 G4RPGProtonBuilder * theRPGPro; 00113 00114 G4String modelName; 00115 G4bool QuasiElastic; 00116 }; 00117 00118 #endif 00119