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);
40 if (!_name.empty())
return _name;
56 if (!_refDataName.empty())
return _refDataName;
64 const std::string&
inspireId()
const {
return _inspireId; }
71 const std::string&
spiresId()
const {
return _spiresId; }
80 const std::vector<std::string>&
authors()
const {
return _authors; }
90 const std::string&
summary()
const {
return _summary; }
111 const std::string&
runInfo()
const {
return _runInfo; }
118 const std::vector<PdgIdPair>&
beams()
const {
return _beams; }
125 const std::vector<std::pair<double,double> >&
energies()
const {
return _energies; }
132 const std::string&
experiment()
const {
return _experiment; }
139 const std::string&
collider()
const {
return _collider; }
148 const std::string&
year()
const {
return _year; }
156 const double luminosity()
const {
return 1000*_luminosityfb; }
162 const std::vector<std::string>&
references()
const {
return _references; }
168 const std::vector<std::string>&
keywords()
const {
return _keywords; }
171 const std::string&
bibKey()
const {
return _bibKey;}
178 const std::string&
bibTeX()
const {
return _bibTeX; }
185 const std::string&
status()
const {
return _status; }
192 const std::vector<std::string>&
todos()
const {
return _todos; }
199 const std::vector<std::string>&
options()
const {
return _options; }
202 bool validOption(std::string key, std::string val)
const;
230 return statuscheck(
"VALIDATED");
235 return statuscheck(
"PRELIMINARY");
240 return statuscheck(
"OBSOLETE");
245 return statuscheck(
"UNVALIDATED");
250 return statuscheck(
"RANDOM");
256 return statuscheck(
"UNPHYSICAL");
261 return !statuscheck(
"NOHEPDATA");
266 return !statuscheck(
"SINGLEWEIGHT");
270 bool statuscheck(
string word)
const {
271 auto pos =_status.find(word);
272 if ( pos == string::npos )
return false;
273 if ( pos > 0 && isalnum(_status[pos - 1]) )
return false;
274 if ( pos + word.length() < _status.length() &&
275 isalnum(_status[pos + word.length()]) )
return false;
284 std::string _refDataName;
285 std::string _spiresId, _inspireId;
286 std::vector<std::string> _authors;
287 std::string _summary;
288 std::string _description;
289 std::string _runInfo;
290 std::string _experiment;
291 std::string _collider;
292 std::vector<std::pair<PdgId, PdgId> > _beams;
293 std::vector<std::pair<double, double> > _energies;
295 double _luminosityfb;
296 std::vector<std::string> _references;
297 std::vector<std::string> _keywords;
302 std::vector<std::string> _todos;
303 bool _needsCrossSection;
305 std::vector<std::string> _options;
306 std::map< std::string, std::set<std::string> > _optionmap;
308 std::vector<std::string> _validation;
334 _needsCrossSection =
false;
Definition: MC_Cent_pPb.hh:10
const std::string & summary() const
Get a short description of the analysis. Short (one sentence) description used as an index entry...
Definition: AnalysisInfo.hh:90
AnalysisInfo()
The default constructor.
Definition: AnalysisInfo.hh:22
void setSpiresId(const std::string &spiresId)
Set the SPIRES ID code for this analysis.
Definition: AnalysisInfo.hh:74
Holder of analysis metadata.
Definition: AnalysisInfo.hh:12
bool preliminary() const
Return true if preliminary.
Definition: AnalysisInfo.hh:234
void setReentrant(bool ree=true)
setReentrant
Definition: AnalysisInfo.hh:226
const std::string & status() const
Whether this analysis is trusted (in any way!)
Definition: AnalysisInfo.hh:185
void setDescription(const std::string &description)
Set the full description for this analysis.
Definition: AnalysisInfo.hh:104
~AnalysisInfo()
The destructor.
Definition: AnalysisInfo.hh:25
static unique_ptr< AnalysisInfo > make(const std::string &name)
Static factory method: returns null pointer if no metadata found.
bool obsolete() const
Return true if obsolete.
Definition: AnalysisInfo.hh:239
void setBibTeX(const std::string &bibTeX)
Set the BibTeX citation entry for this article.
Definition: AnalysisInfo.hh:181
void setRefDataName(const std::string &name)
Set the reference data name of the analysis (if different from plugin name).
Definition: AnalysisInfo.hh:61
const std::string & bibTeX() const
BibTeX citation entry for this article.
Definition: AnalysisInfo.hh:178
const double luminosityfb() const
The integrated data luminosity of the data set in 1/fb.
Definition: AnalysisInfo.hh:154
void setExperiment(const std::string &experiment)
Set the experiment which performed and published this analysis.
Definition: AnalysisInfo.hh:135
void setYear(const std::string &year)
Set the year in which the original experimental analysis was published.
Definition: AnalysisInfo.hh:151
const std::string & bibKey() const
BibTeX citation key for this article.
Definition: AnalysisInfo.hh:171
std::string name() const
Definition: AnalysisInfo.hh:39
bool unphysical() const
Definition: AnalysisInfo.hh:255
bool random() const
Return true if includes random variations.
Definition: AnalysisInfo.hh:249
const std::vector< std::string > & todos() const
Any work to be done on this analysis.
Definition: AnalysisInfo.hh:192
void setRunInfo(const std::string &runInfo)
Set the full description for this analysis.
Definition: AnalysisInfo.hh:114
const std::vector< std::string > & validation() const
List a series of command lines to be used for valdation.
Definition: AnalysisInfo.hh:214
void setTodos(const std::vector< std::string > &todos)
Set the to-do list.
Definition: AnalysisInfo.hh:195
const std::vector< std::string > & authors() const
Names & emails of paper/analysis authors. Names and email of authors in 'NAME <EMAIL>' format...
Definition: AnalysisInfo.hh:80
const std::vector< PdgIdPair > & beams() const
Beam particle types.
Definition: AnalysisInfo.hh:118
void setOptions(const std::vector< std::string > &opts)
Set the option list.
Definition: AnalysisInfo.hh:205
const std::vector< std::string > & options() const
Get the option list.
Definition: AnalysisInfo.hh:199
const std::string & experiment() const
Experiment which performed and published this analysis.
Definition: AnalysisInfo.hh:132
bool hepdata() const
Check if refdata comes automatically from Hepdata.
Definition: AnalysisInfo.hh:260
const std::string & spiresId() const
Get the SPIRES ID code for this analysis.
Definition: AnalysisInfo.hh:71
void setLuminosityfb(const double luminosityfb)
Set the integrated data luminosity of the data set.
Definition: AnalysisInfo.hh:159
const std::vector< std::string > & keywords() const
Analysis Keywords for grouping etc.
Definition: AnalysisInfo.hh:168
void setStatus(const std::string &status)
Set the analysis code status.
Definition: AnalysisInfo.hh:188
bool unvalidated() const
Return true if unvalidated.
Definition: AnalysisInfo.hh:244
bool validOption(std::string key, std::string val) const
Check if the given option is valid.
void setReferences(const std::vector< std::string > &references)
Set the journal and preprint reference list.
Definition: AnalysisInfo.hh:165
void setName(const std::string &name)
Set the name of the analysis.
Definition: AnalysisInfo.hh:52
bool reentrant() const
Return true if finalize() can be run multiple times for this analysis.
Definition: AnalysisInfo.hh:223
void buildOptionMap()
Build a map of options to facilitate checking.
bool multiweight() const
Check if This analysis can handle mulltiple weights.
Definition: AnalysisInfo.hh:265
void setInspireId(const std::string &inspireId)
Set the Inspire (SPIRES replacement) ID code for this analysis.
Definition: AnalysisInfo.hh:67
bool validated() const
Return true if validated.
Definition: AnalysisInfo.hh:229
void setCollider(const std::string &collider)
Set the collider on which the experiment ran.
Definition: AnalysisInfo.hh:142
const std::vector< std::string > & references() const
Journal and preprint references.
Definition: AnalysisInfo.hh:162
std::string getRefDataName() const
Get the reference data name of the analysis (if different from plugin name).
Definition: AnalysisInfo.hh:55
std::string toString(const AnalysisInfo &ai)
String representation.
bool needsCrossSection() const
Definition: AnalysisInfo.hh:220
void setBibKey(const std::string &bibKey)
Set the BibTeX citation key for this article.
Definition: AnalysisInfo.hh:174
const std::string & year() const
When the original experimental analysis was published. When the refereed paper on which this is based...
Definition: AnalysisInfo.hh:148
const std::string & description() const
Get a full description of the analysis. Full textual description of this analysis, what it is useful for, what experimental techniques are applied, etc. Should be treated as a chunk of restructuredText (http://docutils.sourceforge.net/rst.html), with equations to be rendered as LaTeX with amsmath operators.
Definition: AnalysisInfo.hh:101
void setSummary(const std::string &summary)
Set the short description for this analysis.
Definition: AnalysisInfo.hh:93
const double luminosity() const
The integrated data luminosity of the data set in 1/pb.
Definition: AnalysisInfo.hh:156
const std::string & runInfo() const
Information about the events needed as input for this analysis. Event types, energies, kinematic cuts, particles to be considered stable, etc. etc. Should be treated as a restructuredText bullet list (http://docutils.sourceforge.net/rst.html)
Definition: AnalysisInfo.hh:111
std::ostream & operator<<(std::ostream &os, const AnalysisInfo &ai)
Stream an AnalysisInfo as a text description.
Definition: AnalysisInfo.hh:348
void setBeams(const std::vector< PdgIdPair > &beams)
Set beam particle types.
Definition: AnalysisInfo.hh:121
const std::string & inspireId() const
Get the Inspire (SPIRES replacement) ID code for this analysis.
Definition: AnalysisInfo.hh:64
const std::string & collider() const
Collider on which the experiment ran.
Definition: AnalysisInfo.hh:139
void setAuthors(const std::vector< std::string > &authors)
Set the author list.
Definition: AnalysisInfo.hh:83
void setEnergies(const std::vector< std::pair< double, double > > &energies)
Set the valid beam energies.
Definition: AnalysisInfo.hh:128
const std::vector< std::pair< double, double > > & energies() const
Sets of valid beam energies.
Definition: AnalysisInfo.hh:125