22 kGENIE_GENERIC = 1000,
23 kGENIE_INukeTwkDial = kGENIE_GENERIC + 100,
24 kGENIE_INukeTwkDial_MFP_pi = kGENIE_INukeTwkDial + 1,
25 kGENIE_INukeTwkDial_MFP_N = kGENIE_INukeTwkDial + 2,
26 kGENIE_INukeTwkDial_FrCEx_pi = kGENIE_INukeTwkDial + 3,
27 kGENIE_INukeTwkDial_FrInel_pi = kGENIE_INukeTwkDial + 4,
28 kGENIE_INukeTwkDial_FrAbs_pi = kGENIE_INukeTwkDial + 5,
29 kGENIE_INukeTwkDial_FrPiProd_pi = kGENIE_INukeTwkDial + 6,
30 kGENIE_INukeTwkDial_FrCEx_N = kGENIE_INukeTwkDial + 7,
31 kGENIE_INukeTwkDial_FrInel_N = kGENIE_INukeTwkDial + 8,
32 kGENIE_INukeTwkDial_FrAbs_N = kGENIE_INukeTwkDial + 9,
33 kGENIE_INukeTwkDial_FrPiProd_N = kGENIE_INukeTwkDial + 10,
35 kGENIE_HadrNuclTwkDial = kGENIE_GENERIC + 150,
36 kGENIE_HadrNuclTwkDial_FormZone = kGENIE_HadrNuclTwkDial + 1
43 EventWeights(std::map<VariationType, std::vector<double> > var_map)
44 : variations_map_(var_map) {}
48 friend std::ostream &operator<<(std::ostream &o,
const EventWeights &ew);
50 std::vector<double> getWeights()
const {
return weights_; }
51 std::map<VariationType, std::vector<double> > getVariations()
const {
52 return variations_map_;
55 size_t getNumWeights()
const {
return weights_.size(); }
56 size_t getNumVariationTypes()
const {
return variations_map_.size(); }
58 double getNthWeight(
size_t i_w)
const {
return weights_.at(i_w); }
60 std::map<VariationType, double> getVariationsNthWeight(
size_t i_w)
const;
62 void addWeight(
double w) { weights_.push_back(w); }
63 void setWeight(
size_t i_w,
double w) { weights_[i_w] = w; }
67 std::vector<double> weights_;
71 std::map<VariationType, std::vector<double> > variations_map_;
74 inline static std::string variationTypeToString(
const VariationType &vtype) {
76 case VariationType::kINVALID:
78 case VariationType::kUNKNOWN:
80 case VariationType::kGENIE_GENERIC:
81 return "GENIE_GENERIC";
82 case VariationType::kGENIE_INukeTwkDial:
83 return "GENIE_INukeTwkDial";
84 case VariationType::kGENIE_INukeTwkDial_MFP_pi:
85 return "GENIE_INukeTwkDial_MFP_pi";
86 case VariationType::kGENIE_INukeTwkDial_MFP_N:
87 return "GENIE_INukeTwkDial_MFP_N";
88 case VariationType::kGENIE_INukeTwkDial_FrCEx_pi:
89 return "GENIE_INukeTwkDial_FrCEx_pi";
90 case VariationType::kGENIE_INukeTwkDial_FrInel_pi:
91 return "GENIE_INukeTwkDial_FrInel_pi";
92 case VariationType::kGENIE_INukeTwkDial_FrAbs_pi:
93 return "GENIE_INukeTwkDial_FrAbs_pi";
94 case VariationType::kGENIE_INukeTwkDial_FrPiProd_pi:
95 return "GENIE_INukeTwkDial_FrPiProd_pi";
96 case VariationType::kGENIE_INukeTwkDial_FrCEx_N:
97 return "GENIE_INukeTwkDial_FrCEx_N";
98 case VariationType::kGENIE_INukeTwkDial_FrInel_N:
99 return "GENIE_INukeTwkDial_FrInel_N";
100 case VariationType::kGENIE_INukeTwkDial_FrAbs_N:
101 return "GENIE_INukeTwkDial_FrAbs_N";
102 case VariationType::kGENIE_INukeTwkDial_FrPiProd_N:
103 return "GENIE_INukeTwkDial_FrPiProd_N";
104 case VariationType ::kGENIE_HadrNuclTwkDial:
105 return "GENIE_HadrNuclTwkDial";
106 case VariationType ::kGENIE_HadrNuclTwkDial_FormZone:
107 return "GENIE_HadrNuclTwkDial_FormZone";
111 inline static VariationType stringToVariationType(
112 const std::string &typestring) {
113 if (typestring ==
"UNKNOWN")
114 return VariationType::kUNKNOWN;
115 else if (typestring ==
"INVALID")
116 return VariationType::kINVALID;
117 else if (typestring ==
"GENIE_GENERIC")
118 return VariationType::kGENIE_GENERIC;
119 else if (typestring ==
"GENIE_INukeTwkDial")
120 return VariationType::kGENIE_INukeTwkDial;
121 else if (typestring ==
"GENIE_INukeTwkDial_MFP_pi")
122 return VariationType::kGENIE_INukeTwkDial_MFP_pi;
123 else if (typestring ==
"GENIE_INukeTwkDial_MFP_N")
124 return VariationType::kGENIE_INukeTwkDial_MFP_N;
125 else if (typestring ==
"GENIE_INukeTwkDial_FrCEx_pi")
126 return VariationType::kGENIE_INukeTwkDial_FrCEx_pi;
127 else if (typestring ==
"GENIE_INukeTwkDial_FrInel_pi")
128 return VariationType::kGENIE_INukeTwkDial_FrInel_pi;
129 else if (typestring ==
"GENIE_INukeTwkDial_FrAbs_pi")
130 return VariationType::kGENIE_INukeTwkDial_FrAbs_pi;
131 else if (typestring ==
"GENIE_INukeTwkDial_FrPiProd_pi")
132 return VariationType::kGENIE_INukeTwkDial_FrPiProd_pi;
133 else if (typestring ==
"GENIE_INukeTwkDial_FrCEx_N")
134 return VariationType::kGENIE_INukeTwkDial_FrCEx_N;
135 else if (typestring ==
"GENIE_INukeTwkDial_FrInel_N")
136 return VariationType::kGENIE_INukeTwkDial_FrInel_N;
137 else if (typestring ==
"GENIE_INukeTwkDial_FrAbs_N")
138 return VariationType::kGENIE_INukeTwkDial_FrAbs_N;
139 else if (typestring ==
"GENIE_INukeTwkDial_FrPiProd_N")
140 return VariationType::kGENIE_INukeTwkDial_FrPiProd_N;
141 else if (typestring ==
"GENIE_HadrNuclTwkDial")
142 return VariationType::kGENIE_HadrNuclTwkDial;
143 else if (typestring ==
"GENIE_HadrNuclTwkDial_FormZone")
144 return VariationType::kGENIE_HadrNuclTwkDial_FormZone;
146 return VariationType::kUNKNOWN;