LDMX Software
ldmx::EventWeights Class Reference

Public Types

enum  VariationType {
  kINVALID = -1 , kUNKNOWN = 0 , kGENIE_GENERIC = 1000 , kGENIE_INukeTwkDial = kGENIE_GENERIC + 100 ,
  kGENIE_INukeTwkDial_MFP_pi = kGENIE_INukeTwkDial + 1 , kGENIE_INukeTwkDial_MFP_N = kGENIE_INukeTwkDial + 2 , kGENIE_INukeTwkDial_FrCEx_pi = kGENIE_INukeTwkDial + 3 , kGENIE_INukeTwkDial_FrInel_pi = kGENIE_INukeTwkDial + 4 ,
  kGENIE_INukeTwkDial_FrAbs_pi = kGENIE_INukeTwkDial + 5 , kGENIE_INukeTwkDial_FrPiProd_pi = kGENIE_INukeTwkDial + 6 , kGENIE_INukeTwkDial_FrCEx_N = kGENIE_INukeTwkDial + 7 , kGENIE_INukeTwkDial_FrInel_N = kGENIE_INukeTwkDial + 8 ,
  kGENIE_INukeTwkDial_FrAbs_N = kGENIE_INukeTwkDial + 9 , kGENIE_INukeTwkDial_FrPiProd_N = kGENIE_INukeTwkDial + 10 , kGENIE_HadrNuclTwkDial = kGENIE_GENERIC + 150 , kGENIE_HadrNuclTwkDial_FormZone = kGENIE_HadrNuclTwkDial + 1
}
 

Public Member Functions

 EventWeights (std::map< VariationType, std::vector< double > > var_map)
 
void clear ()
 
std::vector< double > getWeights () const
 
std::map< VariationType, std::vector< double > > getVariations () const
 
size_t getNumWeights () const
 
size_t getNumVariationTypes () const
 
double getNthWeight (size_t i_w) const
 
std::map< VariationType, double > getVariationsNthWeight (size_t i_w) const
 
void addWeight (double w)
 
void setWeight (size_t i_w, double w)
 

Static Public Member Functions

static std::string variationTypeToString (const VariationType &vtype)
 
static VariationType stringToVariationType (const std::string &typestring)
 

Private Attributes

std::vector< double > weights_
 
std::map< VariationType, std::vector< double > > variations_map_
 

Friends

std::ostream & operator<< (std::ostream &o, const EventWeights &ew)
 

Detailed Description

Definition at line 15 of file EventWeights.h.

Member Enumeration Documentation

◆ VariationType

enum ldmx::EventWeights::VariationType

Definition at line 18 of file EventWeights.h.

18 {
19 kINVALID = -1,
20 kUNKNOWN = 0,
21
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,
34
35 kGENIE_HadrNuclTwkDial = kGENIE_GENERIC + 150,
36 kGENIE_HadrNuclTwkDial_FormZone = kGENIE_HadrNuclTwkDial + 1
37 };

Constructor & Destructor Documentation

◆ EventWeights()

ldmx::EventWeights::EventWeights ( std::map< VariationType, std::vector< double > > var_map)
inline

Definition at line 43 of file EventWeights.h.

44 : variations_map_(var_map) {}

Member Function Documentation

◆ addWeight()

void ldmx::EventWeights::addWeight ( double w)
inline

Definition at line 62 of file EventWeights.h.

62{ weights_.push_back(w); }

◆ clear()

void ldmx::EventWeights::clear ( )

Definition at line 19 of file EventWeights.cxx.

19 {
20 weights_.clear();
21 variations_map_.clear();
22}

◆ getNthWeight()

double ldmx::EventWeights::getNthWeight ( size_t i_w) const
inline

Definition at line 58 of file EventWeights.h.

58{ return weights_.at(i_w); }

◆ getNumVariationTypes()

size_t ldmx::EventWeights::getNumVariationTypes ( ) const
inline

Definition at line 56 of file EventWeights.h.

56{ return variations_map_.size(); }

◆ getNumWeights()

size_t ldmx::EventWeights::getNumWeights ( ) const
inline

Definition at line 55 of file EventWeights.h.

55{ return weights_.size(); }

◆ getVariations()

std::map< VariationType, std::vector< double > > ldmx::EventWeights::getVariations ( ) const
inline

Definition at line 51 of file EventWeights.h.

51 {
52 return variations_map_;
53 }

◆ getVariationsNthWeight()

std::map< EventWeights::VariationType, double > ldmx::EventWeights::getVariationsNthWeight ( size_t i_w) const

Definition at line 12 of file EventWeights.cxx.

12 {
13 std::map<EventWeights::VariationType, double> i_weights_map;
14 for (auto const &v : this->variations_map_)
15 i_weights_map[v.first] = v.second.at(i_w);
16 return i_weights_map;
17}

◆ getWeights()

std::vector< double > ldmx::EventWeights::getWeights ( ) const
inline

Definition at line 50 of file EventWeights.h.

50{ return weights_; }

◆ setWeight()

void ldmx::EventWeights::setWeight ( size_t i_w,
double w )
inline

Definition at line 63 of file EventWeights.h.

63{ weights_[i_w] = w; }

◆ stringToVariationType()

static VariationType ldmx::EventWeights::stringToVariationType ( const std::string & typestring)
inlinestatic

Definition at line 111 of file EventWeights.h.

112 {
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;
145
146 return VariationType::kUNKNOWN;
147 }

◆ variationTypeToString()

static std::string ldmx::EventWeights::variationTypeToString ( const VariationType & vtype)
inlinestatic

Definition at line 74 of file EventWeights.h.

74 {
75 switch (vtype) {
76 case VariationType::kINVALID:
77 return "INVALID";
78 case VariationType::kUNKNOWN:
79 return "UNKNOWN";
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";
108 }
109 return "UNKNOWN";
110 }

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream & o,
const EventWeights & ew )
friend

Definition at line 24 of file EventWeights.cxx.

24 {
25 o << "Num weights: " << ew.getNumWeights() << std::endl;
26 for (size_t i_w = 0; i_w < ew.getNumWeights(); ++i_w) {
27 o << "\t" << i_w << ": weight=" << ew.getNthWeight(i_w);
28 for (auto const &v : ew.getVariationsNthWeight(i_w)) {
29 o << "\n\t var_type=" << v.first << ", var_value=" << v.second;
30 }
31 o << std::endl;
32 }
33
34 return o;
35}

Member Data Documentation

◆ variations_map_

std::map<VariationType, std::vector<double> > ldmx::EventWeights::variations_map_
private

Definition at line 71 of file EventWeights.h.

◆ weights_

std::vector<double> ldmx::EventWeights::weights_
private

Definition at line 67 of file EventWeights.h.


The documentation for this class was generated from the following files: