50    JUPITable(
const char* 
const fileName)
 
   55      ifstream in(fileName);
 
   57      for (
string buffer; 
getline(in, buffer); ) {
 
   59        istringstream is(buffer);
 
   95      if (p != number2upi.end()) {
 
   99        if (q != p->second.end()) {
 
  143  double                     HVstepMin   = 2 * 3.14;              
 
  171    JParser<> zap(
"Example program to find optimal HV-settings.");
 
  173    zap[
'f'] = 
make_field(inputFile,    
"input    file (ROOT format)");
 
  175    zap[
'a'] = 
make_field(detectorFile, 
"detector file");
 
  176    zap[
'b'] = 
make_field(UPIFile,      
"PMT UPI ASCII table");
 
  183  catch(
const exception &error) {
 
  184    FATAL(error.what() << endl);
 
  187  if (login.empty() || locationID.empty()) {
 
  189    FATAL(
"Missing user information (please specify via -#login and -#locationID).");
 
  191  } 
else if (testType.empty()) {
 
  193    FATAL(
"Missing database test type (please specify via -#testType).");
 
  197    FATAL(
"Missing run numbers.");
 
  207  timer.
sub(elapsedTime);
 
  214  catch (
const exception& error) {
 
  215    FATAL(error.what() << endl);
 
  220  JUPITable     fetchUPI(UPIFile.c_str());
 
  225  TFile input(inputFile.c_str(), 
"READ");
 
  243  NOTICE(
"Searching optimal high-voltage settings..." << endl <<
 
  244         LEFT(30) << 
"UPI" << 
CENTER(35) << 
"(identifer / location)" << 
RIGHT(35) << 
"Inter-/Extrapolated high-voltage [-]" << endl);
 
  248    const string&   name = it->first;
 
  253    const int      seppos   = name.find(
'.');
 
  254    const int      moduleID = stoi(name.substr(0, seppos));
 
  255    const int      tdc      = stoi(name.substr(seppos + 1, seppos + 3));
 
  263                                          right << 
FILL(2,
'0') << tdc);
 
  265    NOTICE(
LEFT(30) << pmtUPI << 
"(a.k.a. " << name << 
" / " << location << 
"): ");
 
  267    if (data.interpolateHV(gainTarget)) {
 
  269      const double result = -data.getHV     ();
 
  270      const double error  =  data.getHVError();
 
  278      WARNING(
"Could not find high-voltage corresponding to target gain; Setting zero." << endl);
 
  289  metaInfo.push_back(
JMeta(argc, argv));
 
  294    metaInfo.push_back(*in.next());
 
  298  TFile output(inputFile.c_str(), 
"RECREATE");
 
  348    FATAL(
"Invalid API version <" << APIversion << 
"> accepted major versions 1 and 2." << endl);
 
  353  ofs << setw(2) << setprecision(8);
 
 
Data structure for detector geometry and calibration.
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
Dynamic ROOT object management.
 
General purpose messaging.
 
Direct access to module in detector data structure.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
I/O formatting auxiliaries.
 
#define MAKE_STRING(A)
Make string.
 
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
 
Auxiliary class to define a range between two values.
 
Scanning of objects from a single file according a format that follows from the extension of each fil...
 
int main(int argc, char **argv)
 
const JLocation & getLocation() const
Get location.
 
int getFloor() const
Get floor number.
 
int getString() const
Get string number.
 
Router for direct addressing of module data in detector data structure.
 
const JPMT & getPMT(const JPMTIdentifier &id) const
Get PMT parameters.
 
const JModule & getModule(const JObjectID &id) const
Get module parameters.
 
Data structure for a composite optical module.
 
Data structure for PMT geometry, calibration and status.
 
Utility class to parse parameter values.
 
int getID() const
Get identifier.
 
Exception for accessing a value in a collection that is outside of its range.
 
Utility class to parse command line options.
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys.
 
Object reading from a list of files.
 
virtual bool hasNext() override
Check availability of next element.
 
static const double FITTOT_GAIN_MAX
Default maximal gain.
 
static const double FITTOT_GAIN_MIN
Default minimal gain.
 
static const JPBS_t PMT(3, 4, 2, 3)
PBS of photo-multiplier tube (PMT)
 
static JDBTestTypesTuneHV & getDBVersionTuneHV
Function object for looking up the HV-tuning database version number corresponding to a specific test...
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
const double NOMINAL_GAIN
Specification for normalized gain corresponding to a one photo-electron pulse.
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
bool putObject(TDirectory &dir, const TObject &object)
Write object to ROOT directory.
 
static const std::string Tests_t
 
static const std::string APIVersion_t
 
static const std::string User_t
 
static const std::string Encoding_t
 
static const std::string Message_t
 
static const std::string UUID_t
 
static const std::string Code_t
 
static const std::string Location_t
 
static const std::string Time_t
 
static const std::string Data_t
 
static const std::string Test_t
 
static const std::string OK_t
 
static const std::string Arguments_t
 
static const std::string Configuration_t
 
static const std::string End_t
 
static const std::string Fail_t
 
static const std::string Provenance_t
 
static const std::string Info_t
 
static const std::string Error_t
 
static const std::string Type_t
 
static const std::string Start_t
 
Auxiliary data structure for alignment of data.
 
Auxiliary data structure for sequence of same character.
 
Auxiliary data structure for floating point format specification.
 
Auxiliary data structure to store high-voltage versus gain data and interpolate the nominal high-volt...
 
static void setHVRange(const JRange< double > range)
Set valid gain range.
 
static void setMinHVDistance(const double minDist)
Set minimal separation distance for high-voltage.
 
static void setGainRange(const JRange< double > range)
Set valid gain range.
 
Product breakdown structure (PBS).
 
bool is_valid() const
Check validity.
 
Universal product identifier (UPI).
 
Data structure for PMT high-voltage calibration.
 
static void setVersion(const int version)
Set HV-tuning database test type.
 
Auxiliary data structure for general purpose version number.
 
version_type getMajorVersion() const
Get major version.
 
static const JUUID & rndm()
Generate random UUID.
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Auxiliary class for date and time.
 
std::string toString() const
Get ASCII formatted date and time.
 
void sub(const time_t t1)
Subtract given time.