2#ifndef RIVET_AnalysisInfo_HH
3#define RIVET_AnalysisInfo_HH
5#include "Rivet/Config/RivetCommon.hh"
16 static unique_ptr<AnalysisInfo>
make(
const std::string&
name);
35 if (!_name.empty())
return _name;
50 if (!_refDataName.empty())
return _refDataName;
57 const std::string&
inspireId()
const {
return _inspireId; }
64 const std::string&
spiresId()
const {
return _spiresId; }
74 const std::vector<std::string>&
authors()
const {
return _authors; }
83 const std::string&
summary()
const {
return _summary; }
93 const std::string&
description()
const {
return _description; }
102 const std::string&
runInfo()
const {
return _runInfo; }
107 const std::vector<PdgIdPair>&
beams()
const {
return _beams; }
112 const std::vector<std::pair<double,double> >&
energies()
const {
return _energies; }
117 const std::string&
experiment()
const {
return _experiment; }
122 const std::string&
collider()
const {
return _collider; }
129 const std::string&
year()
const {
return _year; }
143 const std::vector<std::string>&
references()
const {
return _references; }
148 const std::vector<std::string>&
keywords()
const {
return _keywords; }
149 void setKeywords(
const std::vector<std::string>&
keywords) { _keywords =
keywords; }
152 const std::string&
warning()
const {
return _warning; }
153 void setWarning(
const std::string
warning) { _warning =
warning; }
156 const std::string&
refMatch()
const {
return _refmatch; }
157 void setRefMatch(
const std::string refmatch) { _refmatch = refmatch; }
160 const std::string&
refUnmatch()
const {
return _refunmatch; }
161 void setRefUnmatch(
const std::string refunmatch) { _refunmatch = refunmatch; }
165 void setWriterDoublePrecision(
const std::string dp) { _writerdoubleprecision = dp; }
168 const std::string&
bibKey()
const {
return _bibKey; }
173 const std::string&
bibTeX()
const {
return _bibTeX; }
178 const std::vector<std::string>&
todos()
const {
return _todos; }
189 const std::vector<std::string>&
options()
const {
return _options; }
210 const std::string&
status()
const {
return _status; }
261 auto pos =_status.find(word);
262 if ( pos == string::npos )
return false;
263 if ( pos > 0 && isalnum(_status[pos - 1]) )
return false;
264 if ( pos + word.length() < _status.length() &&
265 isalnum(_status[pos + word.length()]) )
return false;
290 static std::string _infoFilePath;
293 std::string _refDataName;
294 std::string _spiresId, _inspireId;
295 std::vector<std::string> _authors;
296 std::string _summary;
297 std::string _description;
298 std::string _runInfo;
299 std::string _experiment;
300 std::string _collider;
301 std::vector<std::pair<PdgId, PdgId> > _beams;
302 std::vector<std::pair<double, double> > _energies;
304 double _luminosityfb;
305 std::vector<std::string> _references;
306 std::vector<std::string> _keywords;
311 std::string _warning;
312 std::string _refmatch;
313 std::string _refunmatch;
314 std::string _writerdoubleprecision;
315 std::vector<std::string> _todos;
316 bool _needsCrossSection;
319 std::vector<std::string> _options;
320 std::map< std::string, std::set<std::string> > _optionmap;
322 std::vector<std::string> _validation;
351 _writerdoubleprecision =
"";
353 _needsCrossSection =
false;
358 _isInitialised =
false;
Holder of analysis metadata.
Definition AnalysisInfo.hh:12
bool needsCrossSection() const
Definition AnalysisInfo.hh:283
static unique_ptr< AnalysisInfo > make(const std::string &name)
Static factory method: returns null pointer if no metadata found.
std::string refFile() const
Find the path to the reference-data file for this analysis.
const std::vector< std::string > & validation() const
List a series of command lines to be used for valdation.
Definition AnalysisInfo.hh:276
AnalysisInfo()
Default constructor.
Definition AnalysisInfo.hh:19
const std::vector< std::string > & options() const
Get the option list.
Definition AnalysisInfo.hh:189
void buildOptionMap()
Build a map of options to facilitate checking.
bool validOption(std::string key, std::string val) const
Check if the given option is valid.
void setOptions(const std::vector< std::string > &opts)
Set the option list.
Definition AnalysisInfo.hh:195
bool statuscheck(const string &word) const
Helper function for checking status-string contents.
Definition AnalysisInfo.hh:260
bool preliminary() const
Return true if preliminary.
Definition AnalysisInfo.hh:225
bool validated() const
Return true if validated.
Definition AnalysisInfo.hh:220
void setStatus(const std::string &status)
Set the analysis code status.
Definition AnalysisInfo.hh:212
bool random() const
Return true if includes random variations.
Definition AnalysisInfo.hh:240
bool unphysical() const
Return true if the analysis uses generator-dependent information.
Definition AnalysisInfo.hh:245
const std::string & status() const
Whether this analysis is trusted (in any way!)
Definition AnalysisInfo.hh:210
void setReentrant(bool ree=true)
Set re-entrant status.
Definition AnalysisInfo.hh:217
bool unvalidated() const
Return true if unvalidated.
Definition AnalysisInfo.hh:235
bool hepdata() const
Check if refdata comes automatically from Hepdata.
Definition AnalysisInfo.hh:250
bool obsolete() const
Return true if obsolete.
Definition AnalysisInfo.hh:230
bool reentrant() const
Return true if finalize() can be run multiple times for this analysis.
Definition AnalysisInfo.hh:215
bool multiweight() const
Check if this analysis can handle multiple weights.
Definition AnalysisInfo.hh:255
Definition MC_Cent_pPb.hh:10
std::ostream & operator<<(std::ostream &os, const AnalysisInfo &ai)
Stream an AnalysisInfo as a text description.
Definition AnalysisInfo.hh:368
std::string toString(const AnalysisInfo &ai)
String representation.