1 #ifndef __JDB__JDETECTORINTEGRATION_T__ 
    2 #define __JDB__JDETECTORINTEGRATION_T__ 
   21 #include "dbclient/KM3NeTDBClient.h" 
   27 namespace JDATABASE {}
 
   28 namespace JPP { 
using namespace JDATABASE; }
 
   57     return out << 
"(" << 
object.getLowerLimit() << 
"," << 
object.getUpperLimit() << 
")";
 
  135               this->position  == product.
position);
 
  150       out << 
object.operation          << 
' ' 
  151           << 
object.container.getUPI() << 
' ' 
  152           << 
object.content  .getUPI() << 
' ' 
  153           << 
object.position           << 
' ' 
  154           << 
object.start_date         << 
' ' 
  186     typedef  std::pair<map_type::const_iterator,
 
  210     bool   empty()
 const { 
return data.empty(); }                      
 
  211     size_t size()
  const { 
return data.size(); }                       
 
  243       for (
size_t index = 0; index != data.size(); ++index) {
 
  254       for (data_type::iterator product = data.begin(); product != data.end(); ++product) {
 
  255         if (product->operation == detid) {
 
  264       for (
size_t index = 0; index != data.size(); ++index) {
 
  286       if (upi.
getPBS() >= pbs) {
 
  288         const int index = find(upi);
 
  321       const int index = find(upi);
 
  325         out << upi << 
" -> ";
 
  327         print(out, data[index]);
 
  330       const range_type range  = down.equal_range(upi);
 
  333         out << 
"<- " << data[i->second] << endl; 
 
  353         print(out, data[index]);
 
  375         detector.
data.push_back(product);
 
  393       for (
const_iterator i = 
object.data.begin(); i != 
object.data.end(); ++i) {
 
  394         out << *i << std::endl;
 
  418         return range.first->second;
 
  421         THROW(
JDatabaseException, 
"Ambiguous integration of UPI (call first method JDetectorIntegration_t::configure) " << upi);
 
  439       while (q != up.end() && data[q->second].content.getPBS() <= pbs) {
 
  472             if (data[*p].
overlap(data[i->second])) {
 
  476               if (data[i->second].start_date > data[*p].start_date) {
 
  483             buffer.push_back(i->second);
 
  529         catch(std::exception& error) {
 
JProductTrace(const JDetectorIntegration_t &detector, const JUPI &upi, const std::vector< JPBS > &pbs)
Constructor. 
 
data_type data
integration data 
 
size_t size() const 
size of integration data 
 
bool has() const 
Has status. 
 
void unset()
Unset status. 
 
const_iterator end() const 
end of integration data 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
JProductIntegration_t(const JProductIntegration &input)
Constructor. 
 
data_type::const_reverse_iterator const_reverse_iterator
 
const JPBS & getPBS() const 
Get PBS. 
 
friend std::ostream & operator<<(std::ostream &out, const JDetectorIntegration_t &object)
Write detector integration to output stream. 
 
bool overlap(const JProductIntegration_t &product) const 
Check whether there is an overlap between products. 
 
map_type up
up link UPI to integration data 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
void configure(JProductIntegration_t &product, const JPeriod_t &period)
Configure detector integration for given detector identifier. 
 
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
 
void print(std::ostream &out, const JUPI &upi) const 
Print product trace. 
 
const_reverse_iterator rend() const 
reverse end of integration data 
 
JProductIntegration_t()
Default constructor. 
 
std::vector< JProductIntegration_t > data_type
 
range_type find(const JPBS &pbs) const 
Find range of products with given PBS. 
 
Auxiliary class to trace product. 
 
std::pair< map_type::const_iterator, map_type::const_iterator > range_type
 
data_type::const_iterator const_iterator
 
map_type::const_iterator range_const_iterator
 
static const char *const getName()
Table name. 
 
const JProductIntegration_t & operator[](const int index) const 
Get product at given index. 
 
const_reverse_iterator rbegin() const 
reverse begin of integration data 
 
Auxiliary class for simple date. 
 
JTOOLS::JRange< JDate_t > JPeriod_t
Type definition of period. 
 
friend bool operator>>(ResultSet &rs, JDetectorIntegration_t &detector)
Read detector integration from result set. 
 
Product breakdown structure (PBS). 
 
JDetectorIntegration_t()
Default constructor. 
 
Universal product identifier (UPI). 
 
map_type down
down link UPI to integration data 
 
Auxiliary class to define a range between two values. 
 
map_type::const_iterator range_iterator
 
data_type::reverse_iterator reverse_iterator
 
const JUPI & getUPI() const 
Get UPI. 
 
static const char *const getName()
Table name. 
 
JEEP::JDate<'/'> JDate_t
Type definition for integration date. 
 
friend std::ostream & operator<<(std::ostream &out, const JProductIntegration_t &object)
Write product integration to output stream. 
 
std::multimap< JUPI, int > map_type
 
int find(const JUPI &upi) const 
Find index of unique product with given UPI. 
 
const JProductIntegration_t & trace(const JUPI &upi, const JPBS &pbs=PBS::DETECTOR) const 
Trace product up to given integration level. 
 
void configure(const std::string &detid)
Configure detector integration for given detector identifier. 
 
void print(std::ostream &out, const JProductIntegration_t &product) const 
Print product trace. 
 
const_iterator begin() const 
begin of integration data 
 
bool empty() const 
check emptyness of integration data 
 
data_type::iterator iterator
 
Auxiliary class for product integration data.