Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // 27 //--------------------------------------------------------------------------- 28 // 29 // ClassName: RegisterPhysicsConstructors.icc 30 // 31 // Author: R. Hatcher 2018-02-06 32 // 33 // Modified: 34 // 35 //---------------------------------------------------------------------------- 36 37 #if defined(WIN32) && !defined(USING_STATIC_LIBS) 38 // WIN32 linker/loader works differently than on unix 39 // these G4_REFERENCE_PHYSCONSTR_FACTORY macro calls in fact can't be used 40 // in "shared" link mode. In principle they _should_ be called 41 // in "static" link mode (that's the point of this file). 42 // Currently there is no build -D flag that distinquishes the two cases... 43 // but users can set USING_STATIC_LIBS 44 #define G4RegisterPhysicsConstructors_icc 1 45 #endif // WIN32 46 47 // 48 #ifndef G4RegisterPhysicsConstructors_icc 49 #define G4RegisterPhysicsConstructors_icc 1 50 51 #include "G4PhysicsConstructorFactory.hh" 52 // 53 // External reference to phy ctor factories for running with 'static' 54 // libraries to pull the references of the declared factories into the 55 // same compilation unit as the registry itself. 56 // No harm having them in the non-static case. 57 // 58 // Using the G4_REFERENCE_PHYSCONSTR_FACTORY macro does _not_ require 59 // including the headers (using G4_DECLARE_PHYSCONSTR_FACTORY does, 60 // but those are done in each phys_ctor's implementation itself). 61 // 62 // For static builds this needs to be included in a compilation unit 63 // for something that is going to use the G4PhysicsConstructorRegistry 64 // as a source of physics constructors (but not in the registration 65 // of the constructors themselves; that is via the G4_DECLARE_PHYSCONSTR_FACTORY 66 // macro). This is necessary when using static libraries in order that the 67 // individual phys_ctor compilation units to be included in the final 68 // executable, and thus available to self-register w/ the 69 // G4PhysicsConstructorRegistry to make themselves available. 70 // 71 // For granular builds this needs to be included at a higher level 72 // than any of the phys_ctor_X libraries in order to avoid introducing 73 // an effective ciruclar link. 74 75 //#include "G4ChargeExchangePhysics.hh" 76 G4_REFERENCE_PHYSCONSTR_FACTORY(G4ChargeExchangePhysics); 77 78 //#include "G4DecayPhysics.hh" 79 G4_REFERENCE_PHYSCONSTR_FACTORY(G4DecayPhysics); 80 81 //#include "G4EmDNAChemistry.hh" 82 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAChemistry); 83 84 //#include "G4EmDNAPhysics.hh" 85 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics); 86 87 //#include "G4EmDNAPhysics_option1.hh" 88 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option1); 89 90 //#include "G4EmDNAPhysics_option2.hh" 91 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option2); 92 93 //#include "G4EmDNAPhysics_option3.hh" 94 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option3); 95 96 //#include "G4EmDNAPhysics_option4.hh" 97 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option4); 98 99 //#include "G4EmDNAPhysics_option5.hh" 100 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option5); 101 102 //#include "G4EmDNAPhysics_option6.hh" 103 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option6); 104 105 //#include "G4EmDNAPhysics_option7.hh" 106 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option7); 107 108 //#include "G4EmDNAPhysics_stationary.hh" 109 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary); 110 111 //#include "G4EmDNAPhysics_stationary_option2.hh" 112 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option2); 113 114 //#include "G4EmDNAPhysics_stationary_option4.hh" 115 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option4); 116 117 //#include "G4EmDNAPhysics_stationary_option6.hh" 118 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option6); 119 120 //#include "G4EmExtraPhysics.hh" 121 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmExtraPhysics); 122 123 //#include "G4EmLivermorePhysics.hh" 124 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLivermorePhysics); 125 126 //#include "G4EmLivermorePolarizedPhysics.hh" 127 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLivermorePolarizedPhysics); 128 129 //#include "G4EmLowEPPhysics.hh" 130 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLowEPPhysics); 131 132 //#include "G4EmPenelopePhysics.hh" 133 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmPenelopePhysics); 134 135 //#include "G4EmStandardPhysics.hh" 136 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics); 137 138 //#include "G4EmStandardPhysicsGS.hh" 139 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsGS); 140 141 //#include "G4EmStandardPhysicsSS.hh" 142 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsSS); 143 144 //#include "G4EmStandardPhysicsWVI.hh" 145 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsWVI); 146 147 //#include "G4EmStandardPhysics_option1.hh" 148 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option1); 149 150 //#include "G4EmStandardPhysics_option2.hh" 151 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option2); 152 153 //#include "G4EmStandardPhysics_option3.hh" 154 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option3); 155 156 //#include "G4EmStandardPhysics_option4.hh" 157 G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option4); 158 159 //#include "G4GenericBiasingPhysics.hh" 160 G4_REFERENCE_PHYSCONSTR_FACTORY(G4GenericBiasingPhysics); 161 162 //#include "G4HadronDElasticPhysics.hh" 163 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronDElasticPhysics); 164 165 //#include "G4HadronElasticPhysics.hh" 166 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysics); 167 168 //#include "G4HadronElasticPhysicsHP.hh" 169 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsHP); 170 171 //#include "G4HadronElasticPhysicsLEND.hh" 172 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsLEND); 173 174 //#include "G4HadronElasticPhysicsXS.hh" 175 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsXS); 176 177 //#include "G4HadronHElasticPhysics.hh" 178 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronHElasticPhysics); 179 180 //#include "G4HadronInelasticQBBC.hh" 181 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronInelasticQBBC); 182 183 //#include "G4HadronPhysicsFTFP_BERT.hh" 184 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT); 185 186 //#include "G4HadronPhysicsFTFP_BERT_ATL.hh" 187 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_ATL); 188 189 //#include "G4HadronPhysicsFTFP_BERT_HP.hh" 190 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_HP); 191 192 //#include "G4HadronPhysicsFTFP_BERT_TRV.hh" 193 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_TRV); 194 195 //#include "G4HadronPhysicsFTF_BIC.hh" 196 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTF_BIC); 197 198 //#include "G4HadronPhysicsINCLXX.hh" 199 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsINCLXX); 200 201 //#include "G4HadronPhysicsNuBeam.hh" 202 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsNuBeam); 203 204 //#include "G4HadronPhysicsQGSP_BERT.hh" 205 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BERT); 206 207 //#include "G4HadronPhysicsQGSP_BERT_HP.hh" 208 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BERT_HP); 209 210 //#include "G4HadronPhysicsQGSP_BIC.hh" 211 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC); 212 213 //#include "G4HadronPhysicsQGSP_BIC_AllHP.hh" 214 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC_AllHP); 215 216 //#include "G4HadronPhysicsQGSP_BIC_HP.hh" 217 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC_HP); 218 219 //#include "G4HadronPhysicsQGSP_FTFP_BERT.hh" 220 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_FTFP_BERT); 221 222 //#include "G4HadronPhysicsQGS_BIC.hh" 223 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGS_BIC); 224 225 //#include "G4HadronPhysicsShielding.hh" 226 G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsShielding); 227 228 //#include "G4ImportanceBiasing.hh" 229 G4_REFERENCE_PHYSCONSTR_FACTORY(G4ImportanceBiasing); 230 231 //#include "G4IonBinaryCascadePhysics.hh" 232 G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonBinaryCascadePhysics); 233 234 //#include "G4IonElasticPhysics.hh" 235 G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonElasticPhysics); 236 237 //#include "G4IonINCLXXPhysics.hh" 238 G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonINCLXXPhysics); 239 240 //#include "G4IonPhysics.hh" 241 G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonPhysics); 242 243 //#include "G4IonQMDPhysics.hh" 244 G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonQMDPhysics); 245 246 //#include "G4NeutronCrossSectionXS.hh" 247 G4_REFERENCE_PHYSCONSTR_FACTORY(G4NeutronCrossSectionXS); 248 249 //#include "G4NeutronTrackingCut.hh" 250 G4_REFERENCE_PHYSCONSTR_FACTORY(G4NeutronTrackingCut); 251 252 //#include "G4OpticalPhysics.hh" 253 G4_REFERENCE_PHYSCONSTR_FACTORY(G4OpticalPhysics); 254 255 //#include "G4ParallelWorldPhysics.hh" 256 G4_REFERENCE_PHYSCONSTR_FACTORY(G4ParallelWorldPhysics); 257 258 //#include "G4RadioactiveDecayPhysics.hh" 259 G4_REFERENCE_PHYSCONSTR_FACTORY(G4RadioactiveDecayPhysics); 260 261 //#include "G4SpinDecayPhysics.hh" 262 G4_REFERENCE_PHYSCONSTR_FACTORY(G4SpinDecayPhysics); 263 264 //#include "G4StepLimiterPhysics.hh" 265 G4_REFERENCE_PHYSCONSTR_FACTORY(G4StepLimiterPhysics); 266 267 //#include "G4StoppingPhysics.hh" 268 G4_REFERENCE_PHYSCONSTR_FACTORY(G4StoppingPhysics); 269 270 //#include "G4StoppingPhysicsWithINCLXX.hh" 271 G4_REFERENCE_PHYSCONSTR_FACTORY(G4StoppingPhysicsWithINCLXX); 272 273 //#include "G4WeightWindowBiasing.hh" 274 G4_REFERENCE_PHYSCONSTR_FACTORY(G4WeightWindowBiasing); 275 276 #endif // G4RegisterPhysicsConstructors_icc 277