52{
   56 
   58  
   59  
   62 
   64  
   66  
   67  try {
   68    
   70    
   75 
   76    zap(argc, argv);
   77  }
   78  catch(const exception& error) {
   79    FATAL(error.what() << endl);
 
   80  }  
   81  
   82  
   83 
   85  
   86  if (scanners.setEvtWeightFactor(factors) == 0) {
   87    FATAL(
"No weight factors could be set." << endl);
 
   88  }
   89  
   91  
   93 
   95 
   97 
   99  
  101 
  104 
  105    commonHeader = commonHeader.
getMatch(header);
 
  106 
  107    eventHeaders.
merge(header);
 
  108 
  109    while (scanner->hasNext()) {
  110      
  111      Evt* 
event = scanner->next();
 
  112 
  113      if (event == NULL) { 
  114        WARNING(
"Event " << scanner->getCounter() << 
" is empty; skip.");
 
  115        continue; 
  116      }
  117            
  118      const double weight = scanner->getWeight(*event);
  119        
  122       
  123      if (!isfinite(weight)) {
  124 
  125        WARNING(
"Non-finite reweighting factor " << weight << 
 
  126                " for event " << scanner->getCounter() << "!");
  127      }
  128 
  131      }
  132 
  133      const JUUID headerUUID = (uuid_is_null(event->header_uuid) == 0 ? 
 
  135 
  138      
  139      uuid_copy(event->header_uuid, headerUUID.
uuid);
 
  140      
  142    }
  143  }
  144 
  146  copy(commonHeader, newHead);
 
  147  
  149 
  151  
  153 
  155  
  157  
  158  return 0;
  159}
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Template specialisation for a map between event categories and event-weight factor products.
 
void createUUID()
Create UUID if not already set.
 
const JHead & getHeader() const
Get header.
 
JHead getMatch(const JHead &header) const
Get matching fields.
 
Data structure for set of track fit results.
 
Utility class to parse command line options.
 
General purpose class for object reading from a list of file names.
 
void copy(const Head &from, JHead &to)
Copy header from from to to.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
JMultiHead getMultiHeader(const JMultipleFileScanner_t &file_list)
Get multi-header corresponding to a given file list.
 
KM3NeT DAQ data structures and auxiliaries.
 
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
 
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
 
Auxiliary data structure to store multiple headers and bookkeep event-weight normalisations.
 
void merge(const JHead &header)
Merge the given header into this object.
 
double getNormalisation(const JUUID &UUID) const
Get normalisation for given header UUID.
 
JUUID getHeaderUUID(const Evt &event) const
Get the header UUID corresponding to the given event.
 
Auxiliary class for recursive type list generation.
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Auxiliary class for organising Monte Carlo file scanners associated with event weighters.
 
std::vector< filescanner_type >::iterator iterator
 
Auxiliary base class for list of file names.
 
Auxiliary data structure for alignment of data.
 
Auxiliary data structure for floating point format specification.
 
static const int WEIGHTLIST_RESCALED_EVENT_RATE
Rescaled event rate [s-1].
 
static const int WEIGHTLIST_NORMALISATION
Event rate normalisation.