HINCLCascadeIntranuke.h
Go to the documentation of this file.
1 #include "Framework/Conventions/GBuild.h"
2 #ifdef __GENIE_INCL_ENABLED__
3 
4 #ifndef _HINCLCascadeIntranuke_H_
5 #define _HINCLCascadeIntranuke_H_
6 
7 #include <string>
8 using std::string;
9 
12 
13 #include <TLorentzVector.h>
14 
15 namespace G4INCL {
16  class Config;
17  class INCL;
18  class IDeExcitation;
19 }
20 
21 namespace genie {
22 
23  class GHepParticle;
24 
25  class HINCLCascadeIntranuke: public EventRecordVisitorI {
26 
27  public :
28  HINCLCascadeIntranuke();
29  HINCLCascadeIntranuke(std::string config);
30  ~HINCLCascadeIntranuke();
31 
32  int pdgcpiontoA(int pdgc) const;
33  int pdgcpiontoZ(int pdgc) const;
34 
35  // implement the EventRecordVisitorI interface
36  // also the LoadConfig interface
37 
38  void Configure (const Registry & config);
39  void Configure (string param_set);
40 
41  virtual void ProcessEventRecord(GHepRecord * event_rec) const;
42 
43  protected:
44  virtual void LoadConfig (void);
45 
46  bool CanRescatter(const GHepParticle * p) const;
47  bool IsInNucleus(const GHepParticle * p) const;
48  void TransportHadrons(GHepRecord * evrec) const;
49  int doCascade(GHepRecord * event_rec) const;
50  bool NeedsRescattering(const GHepParticle * p) const;
51 
52  bool AddDataPathFlags(size_t& nflags, char** flags);
53  bool LookForAndAddValidPath(std::vector<std::string>& datapaths,
54  size_t defaultIndx,
55  const char* optString,
56  size_t& nflags, char** flags);
57 
58 
59  mutable int fRemnA; ///< remnant nucleus A
60  mutable int fRemnZ; ///< remnant nucleus Z
61  mutable TLorentzVector fRemnP4; ///< P4 of remnant system
62  mutable GEvGenMode_t fGMode;
63 
64  mutable G4INCL::Config *theINCLConfig;
65  mutable G4INCL::INCL *theINCLModel;
66  mutable G4INCL::IDeExcitation *theDeExcitation;
67 
68  };
69 
70 }
71 
72 #endif
73 #endif // __GENIE_INCL_ENABLED__
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
std::string string
Definition: nybbler.cc:12
enum genie::EGEvGenMode GEvGenMode_t
typename config_impl< T >::type Config
Definition: ModuleMacros.h:52
static Config * config
Definition: config.cpp:1054
p
Definition: test.py:223
void Configure(string mesg)
Definition: gEvServ.cxx:196