GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ProcessInfo.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::ProcessInfo
5 
6 \brief A class encapsulating an enumeration of interaction types (EM,
7  Weak-CC, Weak-NC) and scattering types (Elastic, Quasi Elastic,
8  Deep Inelastic, Resonant Single Pion Production, Coherent Pion
9  Production).
10 
11 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
12  University of Liverpool
13 
14  Changes required to implement the GENIE Boosted Dark Matter module
15  were installed by Josh Berger (Univ. of Wisconsin)
16 
17  Changes required to implement the GENIE Dark Neutrino module
18  were installed by Iker de Icaza (Univ. of Sussex)
19 
20 \created May 04, 2004
21 
22 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
23  For the full text of the license visit http://copyright.genie-mc.org
24 */
25 //____________________________________________________________________________
26 
27 #ifndef _PROCESS_INFO_H_
28 #define _PROCESS_INFO_H_
29 
30 #include <iostream>
31 #include <string>
32 
33 #include <TObject.h>
34 
37 
38 using std::ostream;
39 using std::string;
40 
41 namespace genie {
42 
43 class ProcessInfo;
44 ostream & operator << (ostream& stream, const ProcessInfo & proc);
45 
46 class ProcessInfo : public TObject {
47 
48 public:
49  using TObject::Print; // suppress clang 'hides overloaded virtual function [-Woverloaded-virtual]' warnings
50  using TObject::Copy;
51  using TObject::Compare;
52 
53  ProcessInfo();
55  ProcessInfo(const ProcessInfo & proc);
56  ~ProcessInfo();
57 
58  // Set process information
59  void Set(ScatteringType_t sc_type, InteractionType_t int_type);
60 
61  // Query for process information
62  bool IsQuasiElastic (void) const;
63  bool IsDarkMatterElastic (void) const;
64  bool IsDeepInelastic (void) const;
65  bool IsDarkMatterDeepInelastic (void) const;
66  bool IsResonant (void) const;
67  bool IsCoherentProduction (void) const;
68  bool IsCoherentElastic (void) const;
69  bool IsSinglePion (void) const;
70  bool IsSingleKaon (void) const;
71  bool IsElectronScattering (void) const;
72  bool IsNuElectronElastic (void) const;
73  bool IsInverseMuDecay (void) const;
74  bool IsIMDAnnihilation (void) const;
75  bool IsNorm (void) const;
76  bool IsDarkMatterElectronElastic (void) const;
77  bool IsInverseBetaDecay (void) const;
78  bool IsGlashowResonance (void) const;
79  bool IsPhotonResonance (void) const;
80  bool IsPhotonCoherent (void) const;
81  bool IsAMNuGamma (void) const;
82  bool IsMEC (void) const;
83  bool IsDiffractive (void) const;
84  bool IsEM (void) const;
85  bool IsWeak (void) const;
86  bool IsWeakCC (void) const;
87  bool IsWeakNC (void) const;
88  bool IsWeakMix (void) const;
89  bool IsDarkMatter (void) const;
90  bool IsDarkNeutralCurrent (void) const;
91  bool IsHNLDecay (void) const;
92  bool IsKnown (void) const;
93 
94  // Get scattering and interaction type enumerations
97 
98  // Get scattering and interaction types as strings
99  string ScatteringTypeAsString (void) const;
100  string InteractionTypeAsString (void) const;
101 
102  // Copy, reset, compare, print itself and build string code
103  void Reset (void);
104  void Copy (const ProcessInfo & proc);
105  bool Compare (const ProcessInfo & proc) const;
106  string AsString (void) const;
107  void Print (ostream & stream) const;
108 
109  bool operator == (const ProcessInfo & proc) const;
110  ProcessInfo & operator = (const ProcessInfo & proc);
111  friend ostream & operator << (ostream& stream, const ProcessInfo & proc);
112 
113 private:
114 
115  ScatteringType_t fScatteringType; ///< scattering type (QEL, RES, DIS, ...)
116  InteractionType_t fInteractionType; ///< interaction type (Weak CC/NC, E/M, ...)
117 
118 ClassDef(ProcessInfo,1)
119 };
120 
121 } // genie namespace
122 
123 #endif // _PROCESS_INFO_H_
bool IsResonant(void) const
Definition: ProcessInfo.cxx:99
ScatteringType_t fScatteringType
scattering type (QEL, RES, DIS, ...)
Definition: ProcessInfo.h:115
bool IsPhotonResonance(void) const
bool IsWeak(void) const
bool IsWeakMix(void) const
bool IsWeakCC(void) const
bool Compare(const ProcessInfo &proc) const
InteractionType_t InteractionTypeId(void) const
bool IsDarkMatterElectronElastic(void) const
string ScatteringTypeAsString(void) const
bool IsDarkNeutralCurrent(void) const
void Print(ostream &stream) const
bool IsInverseMuDecay(void) const
bool IsQuasiElastic(void) const
Definition: ProcessInfo.cxx:69
bool IsElectronScattering(void) const
bool IsInverseBetaDecay(void) const
bool IsDiffractive(void) const
bool IsCoherentProduction(void) const
bool IsIMDAnnihilation(void) const
InteractionType_t fInteractionType
interaction type (Weak CC/NC, E/M, ...)
Definition: ProcessInfo.h:116
void Set(ScatteringType_t sc_type, InteractionType_t int_type)
bool IsHNLDecay(void) const
bool IsKnown(void) const
bool IsSingleKaon(void) const
Definition: ProcessInfo.cxx:84
ProcessInfo & operator=(const ProcessInfo &proc)
bool IsWeakNC(void) const
bool IsCoherentElastic(void) const
bool IsNuElectronElastic(void) const
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
Definition: ProcessInfo.h:46
bool IsAMNuGamma(void) const
string AsString(void) const
string InteractionTypeAsString(void) const
bool IsDarkMatterElastic(void) const
Definition: ProcessInfo.cxx:74
ScatteringType_t ScatteringTypeId(void) const
bool IsPhotonCoherent(void) const
friend ostream & operator<<(ostream &stream, const ProcessInfo &proc)
Definition: ProcessInfo.cxx:30
bool IsMEC(void) const
bool IsEM(void) const
bool IsNorm(void) const
bool IsDeepInelastic(void) const
Definition: ProcessInfo.cxx:89
enum genie::EScatteringType ScatteringType_t
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)
bool IsDarkMatter(void) const
bool operator==(const ProcessInfo &proc) const
bool IsSinglePion(void) const
Definition: ProcessInfo.cxx:79
bool IsGlashowResonance(void) const
bool IsDarkMatterDeepInelastic(void) const
Definition: ProcessInfo.cxx:94
enum genie::EInteractionType InteractionType_t
void Copy(const ProcessInfo &proc)