ToolDAQFramework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
Calibrate.h
Go to the documentation of this file.
1 #ifndef Calibrate_H
2 #define Calibrate_H
3 
4 #include <string>
5 #include <iostream>
6 #include <algorithm>
7 
8 #include "Tool.h"
9 #include "Stopwatch.h"
10 
11 
23 class Calibrate: public Tool {
24 
25 
26  public:
27 
30 
32  Calibrate();
37  bool Initialise(std::string configfile,DataModel &data);
38  bool Execute();
39  bool Finalise();
40 
41 
42  private:
45  void ApplyCalibration(std::vector<SubSample> &samples);
51  void ApplyCalibration(const int& PMTid, float& charge, TimeDelta::short_time_t& time,bool& masked);
54  void DumpHits(std::vector<SubSample> &samples);
60  void DumpHit(const int& PMTid, float& charge, TimeDelta::short_time_t& time,bool& masked);
63  void readCalibration(std::string calibrationFileName);
67  std::string m_stopwatch_file_name{""};
69  std::string m_calibration_file_name{""};
70 
72  enum LogLevel {FATAL=-1, ERROR=0, WARN=1, INFO=2, DEBUG1=3, DEBUG2=4, DEBUG3=5};
73 
76 
78  std::stringstream m_ss;
79 
82  void StreamToLog(int level) {
83  Log(m_ss.str(), level, m_verbose);
84  m_ss.str("");
85  }
88  {
89  bool masked; //< mask to define whether a particular PMT should be used or not
90  float chargeScaling; //< Factor to multiply charge by
91  };
92  typedef int PMTChannelID ; //< Unique identifier for a PMT
94  std::map<PMTChannelID,calibrationData> calibrationInformation;
95 
96 };
97 
98 namespace ranges
99 {
100  template<typename Range, typename Function>
101  Function for_each(Range& range, Function f)
102  {
103  return std::for_each(begin(range),end(range),f);
104  }
105 }
106 #endif
std::string m_calibration_file_name
File name for file containg calibration information.
Definition: Calibrate.h:69
bool Finalise()
Clean up resources.
Definition: Calibrate.cpp:46
float short_time_t
Type for relative hit times within a SubSample. Unit = ns.
Definition: TimeDelta.h:37
util::Stopwatch * m_stopwatch
The stopwatch, if we&#39;re using one.
Definition: Calibrate.h:65
void DumpHit(const int &PMTid, float &charge, TimeDelta::short_time_t &time, bool &masked)
Definition: Calibrate.cpp:171
bool Initialise(std::string configfile, DataModel &data)
Definition: Calibrate.cpp:6
std::string m_stopwatch_file_name
Image filename to save the histogram to, if required.
Definition: Calibrate.h:67
std::map< PMTChannelID, calibrationData > calibrationInformation
Calibration data store.
Definition: Calibrate.h:94
LogLevel
Log level enumerations.
Definition: Calibrate.h:72
Calibrate()
Constructor. Sets validCalibrationDataFound false.
Definition: Calibrate.cpp:5
void DumpHits(std::vector< SubSample > &samples)
Definition: Calibrate.cpp:153
void ApplyCalibration(std::vector< SubSample > &samples)
Definition: Calibrate.cpp:72
void readCalibration(std::string calibrationFileName)
Definition: Calibrate.cpp:92
bool Execute()
Applly the calibration to the contents of m_data . Calls ApplyCalibration to do the work...
Definition: Calibrate.cpp:24
void StreamToLog(int level)
Definition: Calibrate.h:82
void Log(const std::string &message, const int message_level)
Format messages in the same way as for tools.
Definition: Utilities.cpp:276
Calibration data format for use at run time.
Definition: Calibrate.h:87
int PMTChannelID
Definition: Calibrate.h:92
static bool validCalibrationDataFound
Remember whether a valid calibration data file has been read in or not.
Definition: Calibrate.h:29
std::stringstream m_ss
For easy formatting of Log messages.
Definition: Calibrate.h:78
int m_verbose
Verbosity level, as defined in tool parameter file.
Definition: Calibrate.h:75
Function for_each(Range &range, Function f)
Definition: Calibrate.h:101