Skip to content

Commit e506332

Browse files
Jack Smedleypgreen135
authored andcommitted
Testing the switch from multisim to multisigma
1 parent 6ab4aff commit e506332

4 files changed

Lines changed: 45 additions & 5 deletions

File tree

sbncode/SBNEventWeight/Calculators/Geant4/Geant4WeightCalc.cxx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ class Geant4WeightCalc : public WeightCalc {
6161
CLHEP::RandGaussQ* fGaussRandom; //!< Random number generator
6262
fhicl::ParameterSet fMaterial; //!< Detector material, i.e. LAr
6363
// std::map<int, ParticleDef> fParticles; //!< Particles to reweight
64-
unsigned fNsims; //!< Number of multisims
64+
unsigned fNsims; //!< Number of universes (multisim mode)
65+
unsigned fNsigmas; //!< Number of sigmas (multisigma mode)
6566
int fPdg; //!< PDG value for particles that a given weight calculator should apply to. Note that for now this module can only handle weights for one particle species at a time.
6667
// float fXSUncertainty; //!< Flat cross section uncertainty
6768
G4ReweighterFactory fRWFactory; //!< Base class to handle all Geant4Reweighters
@@ -115,6 +116,7 @@ void Geant4WeightCalc::Configure(fhicl::ParameterSet const& p,
115116
std::string FracsFileName = pset.get< std::string >( "fracsfile" );
116117
std::vector< fhicl::ParameterSet > FitParSets = pset.get< std::vector< fhicl::ParameterSet > >("parameters");
117118
fNsims = pset.get<int> ("number_of_multisims", 0);
119+
fNsigmas = pset.get<int> ("number_of_sigmas", 0);
118120
fPdg = pset.get<int> ("pdg_to_reweight");
119121
fMaterial = pset.get<fhicl::ParameterSet> ("material");
120122
fDebug = pset.get<bool> ("debug",false);
@@ -171,6 +173,7 @@ void Geant4WeightCalc::Configure(fhicl::ParameterSet const& p,
171173
std::vector<double> FitParSigmas;
172174
std::map<std::string, double> theNominals;
173175

176+
std::cout << "Configuring parameter: " << GetFullName() << " with mode: " << mode << std::endl;
174177
fParameterSet.Configure(GetFullName(), mode, fNsims);
175178

176179
for (size_t i_parset=0; i_parset<n_parsets; ++i_parset){
@@ -188,6 +191,7 @@ void Geant4WeightCalc::Configure(fhicl::ParameterSet const& p,
188191
fParameterSet.AddParameter(theName, theSigma);
189192
}
190193

194+
//DEPRECATED
191195
if (mode=="pm1sigma"){
192196
// pm1sigma mode: 0 = +1sigma, 1 = -1sigma of a single parameter. All other parameters at nominal
193197
for (size_t i_parset=0; i_parset<n_parsets; ++i_parset){
@@ -208,6 +212,7 @@ void Geant4WeightCalc::Configure(fhicl::ParameterSet const& p,
208212
UniverseVals.push_back(tmp_vals_m1sigma);
209213
} // end loop over parsets (i)
210214
} // pm1sigma
215+
211216
else if (mode=="multisim"){
212217
// multisim mode: parameter values sample within the given uncertainty for all parameters simultaneously
213218
// Loop over universes j
@@ -222,6 +227,18 @@ void Geant4WeightCalc::Configure(fhicl::ParameterSet const& p,
222227
UniverseVals.push_back(tmp_vals);
223228
} // loop over Nsims (j)
224229
} // multisim
230+
231+
if (mode=="multisigma"){
232+
// pm1sigma mode: 0 = +1sigma, 1 = -1sigma of a single parameter. All other parameters at nominal
233+
for (size_t i_parset=0; i_parset<n_parsets; ++i_parset){
234+
for ( int i_sigma = -1*fNsigmas; i_sigma < int(fNsigmas+1); i_sigma++ ) {
235+
std::map<std::string, double> tmp_vals(theNominals);
236+
tmp_vals[FitParNames.at(i_parset)] = FitParNominals.at(i_parset) + i_sigma*FitParSigmas.at(i_parset);
237+
UniverseVals.push_back(tmp_vals);
238+
} // ened loop over sigmas
239+
} // end loop over parsets (i)
240+
} // multisigma
241+
225242
else{
226243
// Anything else mode: Set parameters to user-defined nominal value
227244
UniverseVals.push_back(theNominals);

sbncode/SBNEventWeight/jobs/geant4/eventweight_geant4_sbn.fcl

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,10 @@ sbn_eventweight_geant4: {
6161
material: @local::LAr
6262
random_seed: 60
6363
parameters: @local::ProtonParameters
64-
mode: multisim
65-
number_of_multisims: 1000
64+
mode: multisigma
65+
number_of_sigmas: 3
66+
#mode: multisim
67+
#number_of_multisims: 1000
6668
fracsfile: "$SBNDATA_DIR/systematics/reint/g4_fracs_proton.root"
6769
makeoutputtree: true
6870
pdg_to_reweight: 2212
@@ -74,8 +76,10 @@ sbn_eventweight_geant4: {
7476
material: @local::LAr
7577
random_seed: 60
7678
parameters: @local::NeutronParameters
77-
mode: multisim
78-
number_of_multisims: 1000
79+
mode: multisigma
80+
number_of_sigmas: 3
81+
#mode: multisim
82+
#number_of_multisims: 1000
7983
fracsfile: "$SBNDATA_DIR/systematics/reint/g4_fracs_proton.root"
8084
makeoutputtree: true
8185
pdg_to_reweight: 2112
@@ -87,6 +91,7 @@ sbn_eventweight_geant4: {
8791
material: @local::LAr
8892
random_seed: 60
8993
parameters: @local::KPlusParameters
94+
#mode: pm1sigma
9095
mode: multisim
9196
number_of_multisims: 1000
9297
fracsfile: "$SBNDATA_DIR/systematics/reint/g4_fracs_proton.root"
@@ -100,6 +105,7 @@ sbn_eventweight_geant4: {
100105
material: @local::LAr
101106
random_seed: 60
102107
parameters: @local::KMinusParameters
108+
#mode: pm1sigma
103109
mode: multisim
104110
number_of_multisims: 1000
105111
fracsfile: "$SBNDATA_DIR/systematics/reint/g4_fracs_proton.root"

sbncode/SBNEventWeight/jobs/geant4/neutron_reweight_parameters.fcl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,16 @@ NeutronParameters: [
1515
Range: [10.0, 2005.00]
1616
Nominal: 1.0
1717
Sigma: 0.2
18+
},
19+
20+
{
21+
Name: "fNeutronTotal"
22+
Cut: "total"
23+
Range: [10.0, 2005.00]
24+
Nominal: 1.0
25+
Sigma: 0.2
1826
}
27+
1928
]
2029

2130
END_PROLOG

sbncode/SBNEventWeight/jobs/geant4/proton_reweight_parameters.fcl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ ProtonParameters: [
1717
Range: [10.0, 2005.00]
1818
Nominal: 1.0
1919
Sigma: 0.2
20+
},
21+
22+
{
23+
Name: "fProtonTotal"
24+
Cut: "total"
25+
Range: [10., 2005.]
26+
Nominal: 1
27+
Sigma: 0.2
2028
}
2129
]
2230

0 commit comments

Comments
 (0)