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 {
30  public:
33 
34  void ConstructParticle() override;
35  void ConstructProcess() override;
36 
37  private:
38  void CreateModels();
39 
40  struct ThreadPrivate {
41  G4NeutronBuilder * theNeutrons;
42  G4FTFPNeutronBuilder * theFTFPNeutron;
43  G4QGSPNeutronBuilder * theQGSPNeutron;
44  G4BertiniNeutronBuilder * theBertiniNeutron;
45 
46  G4PiKBuilder * thePiK;
47  G4FTFPPiKBuilder * theFTFPPiK;
48  G4QGSPPiKBuilder * theQGSPPiK;
49  G4BertiniPiKBuilder * theBertiniPiK;
50 
51  G4ProtonBuilder * thePro;
52  G4FTFPProtonBuilder * theFTFPPro;
53  G4QGSPProtonBuilder * theQGSPPro;
54  G4BertiniProtonBuilder * theBertiniPro;
55 
56  G4HyperonFTFPBuilder *theHyperon;
57 
58  G4AntiBarionBuilder *theAntiBaryon;
59  G4FTFPAntiBarionBuilder *theFTFPAntiBaryon;
60  };
61  static G4ThreadLocal ThreadPrivate* tpdata;
62 };
63 
64 #endif
65 
static G4ThreadLocal ThreadPrivate * tpdata