1 #ifndef __JSUPPORT_JEVTWEIGHTFILESCANNERSET__
2 #define __JSUPPORT_JEVTWEIGHTFILESCANNERSET__
49 template<
class JFileScanner_t = JMultipleFileScanner<Evt>,
50 class JComparator_t = std::less<JHead> >
52 std::vector< JEvtWeightFileScanner<JFileScanner_t> >
93 for (JMultipleFileScanner_t::const_iterator i = input.begin(); i != input.end(); ++i) {
94 n += size_t(this->
put(*i));
107 bool put(
const std::string& input)
114 iterator i = lower_bound(this->begin(), this->end(), head,
117 if (i == this->end() || !i->getHeader().match(head)) {
121 return i->put(input);
136 static const char SEPARATOR =
'.';
138 string name = p->getProgramName();
142 if (i->getProgramName() ==
name) {
160 if (i->match(head)) {
165 THROW(
JValueOutOfRange,
"JEvtWeightFileScannerSet::get(): No corresponding scanner found for given header.");
187 for (
iterator i = this->begin(); i != this->end(); ++i) {
188 n += (size_t) i->setEvtWeightFactor(type, factor);
213 for (
iterator i = this->begin(); i != this->end(); ++i) {
214 n += (size_t) i->setEvtWeightFactor(types, factor);
237 for (
iterator i = this->begin(); i != this->end(); ++i) {
238 n += (size_t) i->setEvtWeightFactor(multiParticleFactor);
256 const JFlux&
function)
273 const JFlux&
function)
JEvtWeighter getEventWeighter
Function object for mapping header to event weighter.
bool put(const std::string &input)
Put file.
std::vector< value_type >::const_reverse_iterator const_reverse_iterator
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
std::string getUniqueIdentifier(const_iterator p) const
Get unique identifier for a file-scanner contained within this set of event-weighter-associated file-...
size_t setFlux(const JFluxMultiParticle &multiParticleFlux)
Set flux function of all MC-files corresponding to a given multi-particle flux.
const JEvtWeightFileScanner< JFileScanner_t > & find(const JHead &head) const
Find file scanner compatible with a given header.
const JHead & getHeader() const
Get header.
JEvtWeightFileScanner< JFileScanner_t > value_type
JEvtWeightFileScannerSet(const JMultipleFileScanner_t &input)
Constructor.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
then echo Enter input within $TIMEOUT_S seconds echo n User name
size_t put(const JMultipleFileScanner_t &input)
Put file.
std::vector< value_type >::reverse_iterator reverse_iterator
JEvtWeightFactorMultiParticle JFluxMultiParticle
Alias for implementation of an interface to multiple flux functions.
std::vector< value_type >::iterator iterator
#define MAKE_STRING(A)
Make string.
JEvtWeightFileScannerSet()
Default constructor.
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
JEvtWeightFactor JFlux
Alias for flux function interface.
Implementation of event-weight factor for multiple particle types.
std::vector< value_type >::reference reference
size_t setEvtWeightFactor(const std::set< int > &types, const JEvtWeightFactor &factor)
Set event-weight factor of all MC-files corresponding to a given set of PDG codes.
Helper class for event-weight factor.
size_t setEvtWeightFactor(const JEvtWeightFactorMultiParticle &multiParticleFactor)
Set event-weight factor of all MC-files corresponding to a given multi-particle flux.
std::vector< value_type >::const_reference const_reference
Scanning of objects from multiple files according a format that follows from the extension of each fi...
size_t setFlux(const std::set< int > &types, const JFlux &function)
Set flux function of all MC-files corresponding to a given set of PDG codes.
Auxiliary base class for list of file names.
size_t setFlux(const int type, const JFlux &function)
Set flux function for all MC-files corresponding to a given PDG code.
Auxiliary class for organising Monte Carlo file scanners associated with event weighters.
JEvtWeightFactorHelper JFluxHelper
Alias for flux function interface helper.
Exception for accessing a value in a collection that is outside of its range.
Template event-weighter-associated file scanner.
std::vector< value_type >::const_iterator const_iterator
Low-level interface for retrieving a specifiable multiplication factor corresponding to a given event...
size_t setEvtWeightFactor(const int type, const JEvtWeightFactor &factor)
Set event-weighting factor for all MC-files corresponding to a given PDG code.
JComparator_t compare
Function object for comparison of headers.