61   JRange_t        runs           = JRange_t::DEFAULT_RANGE;
 
   62   long long int   numberOfRows;
 
   70   locate.insert(
"pmt_id");
 
   71   locate.insert(
"pmt_threshold");
 
   72   locate.insert(
"pmt_threshold@");
 
   73   locate.insert(
"pmt_highvolt");
 
   74   locate.insert(
"pmt_highvolt@");
 
   78     JParser<> zap(
"Auxiliary program to convert slow control data from the database to ROOT TTree.");
 
   84     zap[
'D'] = 
make_field(detid,        
"Detector identifier");
 
   86     zap[
'n'] = 
make_field(numberOfRows, 
"Maximal number of rows")         = numeric_limits<long long int>::max();
 
   89     zap[
'P'] = 
make_field(prescale,     
"Prescale sampling of data")      = 1;
 
   90     zap[
'G'] = 
make_field(graph,        
"Write TGraph instead of TTree");
 
   96   catch(
const exception &error) {
 
   97     FATAL(error.what() << endl);
 
  100   filter.push_back(
MAKE_STRING(FILTER << 
"CLBControlTimeoutMS"));
 
  102   if (runs.getUpperLimit() < runs.getLowerLimit()) {
 
  103     runs.setUpperLimit(runs.getLowerLimit());
 
  107     WARNING(
"Setting prescale to one." << endl);
 
  144       DEBUG(
"Reading database table " << getTable<JDetectorIntegration_t>() << endl); 
 
  146       ResultSet& rs  = 
getResultSet(getTable<JDetectorIntegration_t>());
 
  148       if (! (rs >> detector)) {
 
  153     DEBUG(
"Number of integrated products (before) " << right << detector.size() << endl);
 
  157     DEBUG(
"Number of integrated products (after)  " << right << detector.size() << endl);
 
  162       DEBUG(
"Reading database table " << getTable<JAllParams>() << endl); 
 
  173         if (
to_upper(parameters.TYPE) == 
"INTEGER" && parameters.INTEGER_UNIT_SCALE > 0.0) {
 
  174           unit[
to_upper(parameters.NAME)] = parameters.INTEGER_UNIT_SCALE;
 
  182       DEBUG(
"Reading database table " << getTable<JDatalogNumbers>() << endl); 
 
  185                                                 runs.getLowerLimit(),
 
  186                                                 runs.getUpperLimit());
 
  188       ResultSet& rs  = 
getResultSet(getTable<JDatalogNumbers>(), selection);
 
  190       long long int counter = 0;
 
  192       for (
JDatalogNumbers parameters; rs >> parameters && counter != numberOfRows; ++counter) {
 
  196         const JUPI_t       upi      = parameters.SOURCE_NAME;
 
  197         const JLocation_t& location = router.getLocation(upi);
 
  201           strings.insert(location.
string);
 
  202           floors .insert(location.
floor);
 
  210               bool    nos    = (*i)[0] == FILTER;
 
  211               TRegexp regexp = (nos ? i->substr(1).c_str() : i->c_str());
 
  213               if (TString(parameters.PARAMETER_NAME).Contains(regexp)) {
 
  221             if (location.
string >= (
int) data.size()) {
 
  222               data.resize(location.
string + 1);
 
  225             if (location.
floor  >= (
int) data[location.
string].size()) { 
 
  229             string buffer = parameters.PARAMETER_NAME;
 
  231             if (locate.count(buffer) != 0) {
 
  244               errors[parameters.PARAMETER_NAME] += 1;
 
  247             if ((counts[location.
string][location.
floor][buffer]++)%prescale == 0) {
 
  255                                         parameters.PARAMETER_NAME,
 
  257                                         parameters.DATA_VALUE * factor));
 
  261                 g1.
put(parameters.getTime(), parameters.DATA_VALUE * factor);
 
  268           warnings[parameters.PARAMETER_NAME] += 1;
 
  274   catch(
const exception& error) {
 
  275     ERROR(error.what() << endl);
 
  280     cout << endl << 
"Parameters without location in detector." << endl;
 
  283       cout << left << setw(48) << i->first << 
' ' << setw(6) << i->second << endl;
 
  287   if (!errors.empty()) {
 
  289     cout << endl << 
"Parameters without scale." << endl;
 
  292       cout << left << setw(48) << i->first << 
' ' << setw(6) << i->second << endl;
 
  298     for (
size_t string = 0; 
string != data.size(); ++string) {
 
  299       for (
size_t floor = 0; floor != data[string].size(); ++floor) {
 
  300         for (map_type::iterator i = data[
string][floor].begin(); i != data[string][floor].end(); ++i) {
 
  306           g1.SetMinimum(
range.getLowerLimit());
 
  307           g1.SetMaximum(
range.getUpperLimit());
 
  316     os << 
"set_variable NUMBER_OF_STRINGS " << setw(4) <<  strings.size()   << 
";" << endl;
 
  317     os << 
"set_variable NUMBER_OF_FLOORS  " << setw(4) <<  floors. size()   << 
";" << endl;
 
  318     if (!strings.empty()) {
 
  319       os << 
"set_variable FIRST_STRING      " << setw(4) << *strings. begin() << 
";" << endl;
 
  320       os << 
"set_variable LAST_STRING       " << setw(4) << *strings.rbegin() << 
";" << endl;
 
  322     if (!floors.empty()) {
 
  323       os << 
"set_variable FIRST_FLOOR       " << setw(4) << *floors.  begin() << 
";" << endl;
 
  324       os << 
"set_variable LAST_FLOOR        " << setw(4) << *floors. rbegin() << 
";" << endl;
 
  326     os << 
"set_array    STRINGS           ";
 
  327     copy(strings.begin(), strings.end(), ostream_iterator<int>(os, 
" "));
 
  330     outputFile.put(TNamed(
"TUNA", os.str().c_str()));
 
Utility class to parse command line options. 
 
void put(const Double_t x, const Double_t y)
Put data. 
 
Data structure for graph data. 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
*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
 
#define MAKE_CSTRING(A)
Make C-string. 
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Universal product identifier (UPI). 
 
Auxiliary class for specifying selection of database data. 
 
Auxiliary data structure to build TGraph. 
 
#define MAKE_STRING(A)
Make string. 
 
JDetectorsHelper getDetector
Function object for mapping serial number to object identifier of detector and vice versa...
 
int floor
position in string 
 
Auxiliary data structure for location of product in detector. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
bool is_integer(const std::string &buffer)
Check if string is an integer. 
 
do if[[!-f $ACOUSTICS_WORKDIR/${KEY}.txt &&-f $JPP_LIB/${KEY}_ ${(l:8::0::0:) ID}.txt]]
 
std::string to_upper(const std::string &value)
Convert all character to upper case. 
 
Auxiliary data structure for streaming of STL containers. 
 
static const JPBSSequences CLB_SEQUENCES
PBS sequences for central-logic board. 
 
Auxiliary class to map UPI to location in detector. 
 
Auxiliary data structure for sequence of same character. 
 
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi mv $WORKDIR/fit.root $MODULE_ROOT typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
 
int position
position in floor 
 
ResultSet & getResultSet(const std::string &query)
Get result set. 
 
void copy(const Head &from, JHead &to)
Copy header from from to to. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
int string
position in detector 
 
void configure(const std::string &detid)
Configure detector integration for given detector identifier. 
 
Template definition for getting table specific selector. 
 
#define DEBUG(A)
Message macros. 
 
Double_t g1(const Double_t x)
Function.