21 #include "NovaDAQConventions/DAQConventions.h" 50 void clear()
override;
62 std::map<long, TH1D*> & spectraEnergy);
107 auto randSeed = pset.
get<
unsigned long int >(
"RandomSeed", 0);
112 if(randSeed > 0)
fRand.SetSeed(randSeed);
134 ";Energy Bin;Energy Bin",
143 ";Energy Bin;Events",
149 ";Energy Bin;Events",
155 ";Energy Bin;Events",
161 ";Energy Bin;Events",
167 ";Energy Bin;Universe",
175 std::stringstream shifttitles;
176 shifttitles <<
"Seed: " 178 <<
";Shifts;Iterations";
181 shifttitles.str().c_str(),
189 std::stringstream shiftwgttitles;
190 shiftwgttitles <<
"Seed: " 192 <<
";Energy Bin;Total Shift Weights";
194 shiftwgttitles.str().c_str(),
208 std::vector<double>
bins;
213 for(
auto const& itr : dbs){
217 title = (md.
detector ==
cmf::kNEARDET) ?
";Energy (GeV);10^{3} Events/10^{20} POT" :
";Energy (GeV);Events/10^{20} POT";
220 for(
auto const& sel : itr.Selections()){
232 for(
auto const& itr : highEdges ) bins.push_back(itr.first);
254 <<
"histograms made";
269 std::map<long, TH1D*> & spectraEnergy)
272 spectrumBin->Reset();
273 for(
auto hitr : spectraEnergy) hitr.second->Reset();
276 std::vector<float> spectrum;
277 std::vector<float>
count;
287 for(
size_t b = 0;
b < spectrum.size(); ++
b){
288 spectrumBin->Fill(
b, spectrum[
b]);
291 if(spectraEnergy.count(key) > 0)
296 if(count[b] > 0)
fShiftWeights->Fill(b, spectrum[b]/count[b]);
321 sigFrac =
fRand.Gaus();
328 if(
name.find(
"lightmodel") != std::string::npos ||
329 name.find(
"ckv-proton" ) != std::string::npos ||
330 name.find(
"Calibration") != std::string::npos ){
331 sigFrac =
fRand.Rndm();
334 <<
"pulling from uniform distribution " 394 <<
"nominal spectrum filled";
401 for(
auto const& itr : parNames){
413 for(
auto const& itr : parNames){
447 for(
int i = 1;
i < nbins + 1; ++
i){
453 for(
int j = 1;
j < nbins + 1; ++
j){
495 if (parNames.empty() || (parNames.size() == 1 && *(parNames.begin()) ==
"XSecCVWgt")){
516 for (
int i = 1;
i < nbins + 1; ++
i){
CovarianceMatrixMaker & operator=(CovarianceMatrixMaker const &)=delete
#define LOG_DEBUG(stream)
std::map< cmf::MetaData, cmf::SpillSummary > ExposureMap
int fIterations
number of iterations for picking sigmas
void writeResults(art::Results &r) override
const std::string cSelectionType_Strings[12]
void Initialize(fhicl::ParameterSet const &pset)
std::map< long, TH1D * > fNominalEnergySpectra
Nominal energy spectrum for each detector/file/beam/selection.
double const & SelectionLowEdge(cmf::MetaData const &md)
static SelectionUtility * Instance()
TH1D * fNominalSpectrum
Nominal spectrum for each detector/beam/selection.
long BinToKey(int const &bin, bool allSels=false)
TH2D * fShiftWeights
Weights from shifts selected for each parameter adjusted.
void reconfigure(fhicl::ParameterSet const &pset)
int isnan(const stan::math::var &a)
std::vector< std::string > SysParNames() const
void Deserialize(cmf::EventListColl &eventLists, cmf::DataMC_t dataMC=cmf::kBoth, std::set< cmf::DetType_t > const &detectors=std::set< cmf::DetType_t >({cmf::kNEARDET, cmf::kFARDET}))
double BinToEnergy(int const &bin, bool allSels=false)
static ParameterUtility * Instance()
TH1D * fShiftedSpectrum
Shifted spectrum for each detector/beam/selection.
TH2D * fShiftedSpectrumByUniverse
Shifted spectrum as a function of universe.
std::map< long, TH1D * > fPlus1SigmaEnergySpectra
Plus 1 Sigma shifted energy spectrum for each detector/file/beam/selection.
fhicl::ParameterSet fManipulatorParameters
the fake point parameters
cmf::ParameterSpaceLoc const & NDLocation() const
fhicl::ParameterSet fSAWParameters
shifter and weighter parameters
TH2D * fSystCovarianceMatrix
Syst Covariance matrix.
correl_yv Fill(-(dy[iP-1][iC-1]), hyv->GetBinContent(iP, iC))
#define DEFINE_ART_RESULTS_PLUGIN(klass)
T get(std::string const &key) const
cmf::ParameterSpaceLoc const & FDLocation() const
cmf::ExposureMap const & ExposureMap() const
void Initialize(fhicl::ParameterSet const &pset)
void FillSpectrum(cmf::EventListColl const &eventLists, cmf::ExposureMap const &exposureMap, std::vector< float > &spectrum, std::vector< float > &count, cmf::InteractionType_t intType, bool applyExposureNorm)
static ShifterAndWeighter * Instance()
std::map< long, TH1D * > fMinus1SigmaEnergySpectra
Minus 1 Sigma shifted energy spectrum for each detector/file/beam/selection.
TH1D * fMinus1SigmaSpectrum
Minus 1 Sigma shifted spectrum for each detector/beam/selection.
TH1D * fPlus1SigmaSpectrum
Plus 1 Sigma shifted spectrum for each detector/beam/selection.
size_t TotalBins(bool allSels=false)
static float min(const float a, const float b, const float c)
void FillSpectrum(cmf::EventListColl const &eventLists, cmf::ExposureMap const &exposureMap, cmf::Location const &loc, TH1D *spectrumBin, std::map< long, TH1D * > &spectraEnergy)
void readResults(art::Results const &r) override
Module to combine a set of results into a single file currently only does one data product type at a ...
CovarianceMatrixMaker(fhicl::ParameterSet const &pset)
std::map< std::string, TH1D * > fShifts
Shifts selected for each parameter adjusted.
std::vector< cmf::EventList > EventListColl
void InitShiftsAndWeightsToUse(cmf::Location const &loc, fhicl::ParameterSet const &parset)
T * make(ARGS...args) const
art::ServiceHandle< art::TFileService > fTFS
TFileService.
std::map< double, int > const & SelectionHighEdges(cmf::MetaData const &md)
cmf::Location ParametersAsLocation()
std::map< long, TH1D * > fShiftedEnergySpectra
Shifted energy spectrum for each detector/file/beam/selection.
const DetBeamSelSet & SelectionsToUse()
~CovarianceMatrixMaker()=default
#define LOG_VERBATIM(category)
void Initialize(fhicl::ParameterSet const &pset)
const std::string cDetType_Strings[5]
const std::string cBeamType_Strings[4]
void SetCurrentVals(cmf::Location const &loc)
void SetSystematicParameter(cmf::Location &loc)
TRandom3 fRand
RNG for picking the variation in parameters.
void SetParameterValue(std::string const &parName, double const &value, cmf::DetType_t const &det)
static CovarianceBinUtility * Instance()