CMS 3D CMS Logo

HadronPhysicsQGSPCMS_FTFP_BERT.h
Go to the documentation of this file.
1 #ifndef SimG4Core_PhysicsLists_HadronPhysicsQGSPCMS_FTFP_BERT_h
2 #define SimG4Core_PhysicsLists_HadronPhysicsQGSPCMS_FTFP_BERT_h 1
3 
4 #include "globals.hh"
5 #include "G4ios.hh"
6 
7 #include "G4VPhysicsConstructor.hh"
8 
9 #include "G4PiKBuilder.hh"
10 #include "G4FTFPPiKBuilder.hh"
11 #include "G4QGSPPiKBuilder.hh"
12 #include "G4BertiniPiKBuilder.hh"
13 
14 #include "G4ProtonBuilder.hh"
15 #include "G4FTFPProtonBuilder.hh"
16 #include "G4QGSPProtonBuilder.hh"
17 #include "G4BertiniProtonBuilder.hh"
18 
19 #include "G4NeutronBuilder.hh"
20 #include "G4FTFPNeutronBuilder.hh"
21 #include "G4QGSPNeutronBuilder.hh"
22 #include "G4BertiniNeutronBuilder.hh"
23 
24 #include "G4HyperonFTFPBuilder.hh"
25 #include "G4AntiBarionBuilder.hh"
26 #include "G4FTFPAntiBarionBuilder.hh"
27 
28 class HadronPhysicsQGSPCMS_FTFP_BERT : public G4VPhysicsConstructor {
29 public:
32 
33  void ConstructParticle() override;
34  void ConstructProcess() override;
35 
36 private:
37  void CreateModels();
38 
39  struct ThreadPrivate {
40  G4NeutronBuilder *theNeutrons;
41  G4FTFPNeutronBuilder *theFTFPNeutron;
42  G4QGSPNeutronBuilder *theQGSPNeutron;
43  G4BertiniNeutronBuilder *theBertiniNeutron;
44 
45  G4PiKBuilder *thePiK;
46  G4FTFPPiKBuilder *theFTFPPiK;
47  G4QGSPPiKBuilder *theQGSPPiK;
48  G4BertiniPiKBuilder *theBertiniPiK;
49 
50  G4ProtonBuilder *thePro;
51  G4FTFPProtonBuilder *theFTFPPro;
52  G4QGSPProtonBuilder *theQGSPPro;
53  G4BertiniProtonBuilder *theBertiniPro;
54 
55  G4HyperonFTFPBuilder *theHyperon;
56 
57  G4AntiBarionBuilder *theAntiBaryon;
58  G4FTFPAntiBarionBuilder *theFTFPAntiBaryon;
59  };
60  static G4ThreadLocal ThreadPrivate *tpdata;
61 };
62 
63 #endif
static G4ThreadLocal ThreadPrivate * tpdata