Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | List of all members
JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t > Struct Template Reference

Auxiliary class for organising Monte Carlo file scanners. More...

#include <JWeightFileScannerSet.hh>

Inheritance diagram for JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >:
std::vector< JWeightFileScanner< JFileScanner_t > >

Public Types

typedef JWeightFileScanner
< JFileScanner_t > 
value_type
 
typedef std::vector
< value_type >::const_iterator 
const_iterator
 
typedef std::vector
< value_type >::iterator 
iterator
 
typedef std::vector
< value_type >
::const_reverse_iterator 
const_reverse_iterator
 
typedef std::vector
< value_type >
::reverse_iterator 
reverse_iterator
 

Public Member Functions

 JWeightFileScannerSet ()
 Default constructor. More...
 
 JWeightFileScannerSet (JMultipleFileScanner_t &input, JLimit &limit=JLimit())
 Constructor. More...
 
void put (JMultipleFileScanner_t &input)
 Put file. More...
 
void put (const std::string &input)
 Put file. More...
 
const value_typeget (const JHead &head) const
 Get file scanner for given header. More...
 
void setLimit (const JLimit &limit)
 Set limit. More...
 

Public Attributes

JComparator_t compare
 Function object for comparison of headers. More...
 

Detailed Description

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
struct JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >

Auxiliary class for organising Monte Carlo file scanners.

Definition at line 34 of file JWeightFileScannerSet.hh.

Member Typedef Documentation

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
typedef JWeightFileScanner<JFileScanner_t> JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::value_type

Definition at line 37 of file JWeightFileScannerSet.hh.

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
typedef std::vector<value_type>::const_iterator JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::const_iterator

Definition at line 39 of file JWeightFileScannerSet.hh.

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
typedef std::vector<value_type>::iterator JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::iterator

Definition at line 40 of file JWeightFileScannerSet.hh.

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
typedef std::vector<value_type>::const_reverse_iterator JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::const_reverse_iterator

Definition at line 41 of file JWeightFileScannerSet.hh.

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
typedef std::vector<value_type>::reverse_iterator JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::reverse_iterator

Definition at line 42 of file JWeightFileScannerSet.hh.

Constructor & Destructor Documentation

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::JWeightFileScannerSet ( )
inline

Default constructor.

Definition at line 48 of file JWeightFileScannerSet.hh.

49  {}
template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::JWeightFileScannerSet ( JMultipleFileScanner_t input,
JLimit limit = JLimit() 
)
inline

Constructor.

Parameters
inputfile list
limitlimit

Definition at line 58 of file JWeightFileScannerSet.hh.

60  {
61  put (input);
62  setLimit(limit);
63  }
void setLimit(const JLimit &limit)
Set limit.
void put(JMultipleFileScanner_t &input)
Put file.

Member Function Documentation

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
void JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::put ( JMultipleFileScanner_t input)
inline

Put file.

Parameters
inputfile list

Definition at line 71 of file JWeightFileScannerSet.hh.

72  {
73  for (JMultipleFileScanner_t::const_iterator i = input.begin(); i != input.end(); ++i) {
74  this->put(*i);
75  }
76  }
void put(JMultipleFileScanner_t &input)
Put file.
template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
void JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::put ( const std::string &  input)
inline

Put file.

Parameters
inputfile name

Definition at line 84 of file JWeightFileScannerSet.hh.

85  {
86  using namespace std;
87  using namespace JPP;
88 
89  const JHead head = getHeader(input);
90 
91  iterator p = lower_bound(this->begin(), this->end(), head,
93 
94  if (p == this->end()) {
95  p = this->insert(p, value_type(getEventWeighter(head)));
96  }
97 
98  p->put(input);
99  }
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
Definition: JComparator.hh:185
JWeightFileScanner< JFileScanner_t > value_type
const JHead & getHeader() const
Get header.
Definition: JHead.hh:1124
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
JEventWeighter getEventWeighter
Function object for mapping header to event weighter.
Monte Carlo run header.
Definition: JHead.hh:1091
JComparator_t compare
Function object for comparison of headers.
template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
const value_type& JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::get ( const JHead head) const
inline

Get file scanner for given header.

Parameters
headheader
Returns
file scanner

Definition at line 108 of file JWeightFileScannerSet.hh.

109  {
110  for (const_iterator p = this->begin(); p != this->end(); ++p) {
111  if (p->match(head, false)) {
112  return *p;
113  }
114  }
115 
116  THROW(JValueOutOfRange, "JWeightFileScannerSet::get(): No corresponding scanner found for given header.");
117  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:670
std::vector< value_type >::const_iterator const_iterator
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:162
template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
void JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::setLimit ( const JLimit limit)
inline

Set limit.

Parameters
limitlimit

Definition at line 125 of file JWeightFileScannerSet.hh.

126  {
127  for (iterator p = this->begin(); p != this->end(); ++p) {
128  p->setLimit(limit);
129  }
130  }

Member Data Documentation

template<class JFileScanner_t = JMultipleFileScanner<Evt>, class JComparator_t = std::less<JHead>>
JComparator_t JSUPPORT::JWeightFileScannerSet< JFileScanner_t, JComparator_t >::compare

Function object for comparison of headers.

Definition at line 136 of file JWeightFileScannerSet.hh.


The documentation for this struct was generated from the following file: