GENIEGenerator
Loading...
Searching...
No Matches
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-2025, 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
38using std::ostream;
39using std::string;
40
41namespace genie {
42
43class ProcessInfo;
44ostream & operator << (ostream& stream, const ProcessInfo & proc);
45
46class ProcessInfo : public TObject {
47
48public:
49 using TObject::Print; // suppress clang 'hides overloaded virtual function [-Woverloaded-virtual]' warnings
50 using TObject::Copy;
51 using TObject::Compare;
52
55 ProcessInfo(const ProcessInfo & proc);
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
113private:
114
115 ScatteringType_t fScatteringType; ///< scattering type (QEL, RES, DIS, ...)
116 InteractionType_t fInteractionType; ///< interaction type (Weak CC/NC, E/M, ...)
117
118ClassDef(ProcessInfo,1)
119};
120
121} // genie namespace
122
123#endif // _PROCESS_INFO_H_
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
Definition ProcessInfo.h:46
void Set(ScatteringType_t sc_type, InteractionType_t int_type)
bool IsPhotonResonance(void) const
bool IsElectronScattering(void) const
ScatteringType_t fScatteringType
scattering type (QEL, RES, DIS, ...)
bool IsAMNuGamma(void) const
bool IsWeakNC(void) const
string AsString(void) const
InteractionType_t InteractionTypeId(void) const
bool IsNuElectronElastic(void) const
bool IsDiffractive(void) const
bool operator==(const ProcessInfo &proc) const
bool IsNorm(void) const
bool IsDeepInelastic(void) const
bool IsInverseMuDecay(void) const
bool IsCoherentElastic(void) const
bool IsDarkMatterElastic(void) const
bool IsPhotonCoherent(void) const
bool IsHNLDecay(void) const
void Print(ostream &stream) const
ProcessInfo & operator=(const ProcessInfo &proc)
bool IsWeakMix(void) const
bool IsWeakCC(void) const
string ScatteringTypeAsString(void) const
void Copy(const ProcessInfo &proc)
bool IsCoherentProduction(void) const
bool Compare(const ProcessInfo &proc) const
friend ostream & operator<<(ostream &stream, const ProcessInfo &proc)
bool IsQuasiElastic(void) const
ScatteringType_t ScatteringTypeId(void) const
bool IsDarkMatter(void) const
bool IsDarkMatterElectronElastic(void) const
bool IsIMDAnnihilation(void) const
bool IsEM(void) const
bool IsGlashowResonance(void) const
bool IsKnown(void) const
bool IsMEC(void) const
string InteractionTypeAsString(void) const
bool IsSinglePion(void) const
bool IsWeak(void) const
InteractionType_t fInteractionType
interaction type (Weak CC/NC, E/M, ...)
bool IsResonant(void) const
bool IsInverseBetaDecay(void) const
bool IsDarkMatterDeepInelastic(void) const
bool IsDarkNeutralCurrent(void) const
bool IsSingleKaon(void) const
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
enum genie::EInteractionType InteractionType_t
enum genie::EScatteringType ScatteringType_t
ostream & operator<<(ostream &stream, const AlgConfigPool &config_pool)