21#include "BinSpecification.hh"
25#include "RebdsimTypes.hh"
26#include "SpectraParticles.hh"
57 std::map<std::string, std::vector<HistogramDef*> >
histoDefs;
67 std::vector<HistogramDefSet*> eventHistoDefSetsPerEntry;
71 std::vector<std::string> eventParticleSetSimpleBranches;
78 const std::string& inputFilePath =
"",
79 const std::string& outputFileName =
"",
80 const std::string& defaultOutputFileSuffix =
"_ana");
82 void ParseInputFile();
102 inline const std::vector<HistogramDefSet*>& EventHistogramSetDefinitionsSimple()
const
105 inline const std::vector<HistogramDefSet*>& EventHistogramSetDefinitionsPerEntry()
const
106 {
return eventHistoDefSetsPerEntry;}
108 inline const std::vector<std::string>& EventParticleSetNamesSimple()
const {
return eventParticleSetSimpleBranches;}
154 Config(
const std::string& inputFilePathIn,
155 const std::string& outputFileNameIn,
156 const std::string& defaultOutputFileSuffix =
"_ana");
158 Config(
const std::string& fileNameIn,
159 const std::string& inputFilePathIn,
160 const std::string& outputFileNameIn,
161 const std::string& defaultOutputFileSuffix);
181 void ParsePerEntry(
const std::string& name,
bool& perEntry)
const;
185 const std::string& word)
const;
188 void ParseLog(
const std::string& definition,
202 const std::string& var);
234 std::set<ParticleSpec>
ParseParticles(
const std::string& word)
const;
240 std::string
LowerCase(
const std::string& st)
const;
264 std::set<std::string> histogramNames;
Binning specification for a single dimension.
Configuration and configuration parser class.
std::string InputFilePath() const
Accessor.
bool PerEntryEvent() const
std::string CalculateOpticalFunctionsFileName() const
Accessor.
bool AllBranchesToBeActivated() const
bool GetOptionBool(const std::string &key) const
General accessor for option.
std::map< std::string, std::vector< HistogramDef * > > histoDefs
void ParseSetting(const std::string &line)
Parse a settings line in input file and appropriate update member map.
void PrintHistogramSetDefinitions() const
void ParseHistogramLine(const std::string &line)
Parse a line beginning with histogram. Uses other functions if appropriately defined.
double PrintModuloFraction() const
Accessor.
std::map< std::string, double > optionsNumber
Storage of options.
std::string LowerCase(const std::string &st) const
Return a lower case copy of a string.
const std::vector< HistogramDef * > & HistogramDefinitionsPerEntry(const std::string &treeName) const
Access all per entry histogram definitions - throws exception if out of range.
void SetBranchToBeActivated(const std::string &treeName, const std::string &branchName)
Set a branch to be activated if not already.
void CheckValidTreeName(std::string &treeName) const
bool InvalidTreeName(const std::string &treeName) const
std::vector< std::string > eventParticleSetBranches
List of branches in event tree to produce ParticleSet objects on. (per event and simple).
std::map< std::string, int > spectraNames
static Config * Instance(const std::string &fileName="", const std::string &inputFilePath="", const std::string &outputFileName="", const std::string &defaultOutputFileSuffix="_ana")
Singleton accessor.
std::map< std::string, std::string > optionsString
Storage of options.
bool allBranchesActivated
Whether all branches will be activated - ie for optics.
Config()=delete
Private constructor for singleton pattern.
void ParseBinning(const std::string &binning, int nDim, BinSpecification &xBinning, BinSpecification &yBinning, BinSpecification &zBinning, bool xLog, bool yLog, bool zLog) const
const std::vector< HistogramDef * > & HistogramDefinitions(const std::string &treeName) const
Access all histogram definitions.
bool PerEntryModel() const
std::vector< std::string > SplitOnWhiteSpace(const std::string &line) const
Return a vector of strings by splitting on whitespace.
bool PerEntryOption() const
bool PrintOut() const
Accessor.
std::set< ParticleSpec > ParseParticles(const std::string &word) const
Parser a list of particle PDG IDs into a set.
double GetOptionNumber(const std::string &key) const
General accessor for option.
bool CalculateOpticalFunctions() const
Accessor.
void ParseLog(const std::string &definition, bool &xLog, bool &yLog, bool &zLog) const
Parse whether each dimension is log or linear.
bool RegisterHistogramName(const std::string &newHistName)
std::string GetOptionString(const std::string &key) const
General accessor for option.
bool Debug() const
Accessor.
std::vector< HistogramDefSet * > eventHistoDefSetsSimple
Sets of histogram definitions per particle. Only for event branch.
RBDS::BranchMap branches
Cache of which branches need to be activated for this analysis.
int lineCounter
Index of which line in the file we're on while parsing - for feedback.
std::map< std::string, std::string > alternateKeys
Private members first as required in accessors.
void UpdateRequiredBranches(const HistogramDef *def)
bool EmittanceOnTheFly() const
Accessor.
bool ContainsWordCI(const std::string &input, const std::string &word) const
Return true if 'input' contains 'word' - CI = case insensitive.
const std::vector< HistogramDef * > & HistogramDefinitionsSimple(const std::string &treeName) const
Access all simple histogram definitions - throws exception if out of range.
std::map< std::string, std::vector< HistogramDef * > > histoDefsSimple
Copy of definition used to identify only 'simple' histogram definitions. Doesn't own.
bool PerEntryBeam() const
static std::vector< std::string > treeNames
Vector of permitted tree names.
void ParseParticleSetLine(const std::string &line)
Parse a particle set line.
void InitialiseOptions(const std::string &analysisFile)
const RBDS::BranchMap & BranchesToBeActivated() const
Access the map of all branches to be activated per tree.
void ParseSpectraLine(const std::string &line)
Parse a spectra definition line.
std::string OutputFileName() const
Accessor.
void ParseHistogram(const std::string &line, const int nDim)
Parse everything after the histogram declaration and check all parameters.
std::map< std::string, bool > optionsBool
Storage of options.
bool ProcessSamplers() const
Accessor.
void ParsePerEntry(const std::string &name, bool &perEntry) const
void ParseBins(const std::string &bins, int nDim, BinSpecification &xBinning, BinSpecification &yBinning, BinSpecification &zBinning) const
std::map< std::string, std::vector< HistogramDef * > > histoDefsPerEntry
Copy of definition used to identify only 'per entry' histogram definitions. Doesn't own.
const RBDS::VectorString & BranchesToBeActivated(const std::string &treeName) const
Specification for a set of histograms.
Common specification for a histogram.