21 :
TNamed(
name,desc), fVarOK(false), fHitDone(false)
47 throw logic_error(
msg(hitinfo,
"DetectorData: bad size. "
48 "Should never happen. Call expert."));
49 return hitinfo.
lchan %
static_cast<Int_t>(nelem);
54 const char* key_prefix,
55 const char* comment_subst )
87 const char* key_prefix,
89 const char* comment_subst )
95 if( key_prefix && *key_prefix )
107 ostr <<
"Event " << hitinfo.
ev <<
", ";
109 << hitinfo.
crate <<
"/" << hitinfo.
slot <<
"/"
110 << hitinfo.
chan <<
"/" << hitinfo.
hit <<
": ";
111 if( txt and *txt ) ostr << txt;
else ostr <<
"Unspecified error.";
131 for(
auto& adc :
fADCs ) {
143 for(
auto& calib :
fCalib ) {
144 calib.adc_calib_reset();
164 assert(CALIB.
tdc2t >= 0.0);
165 if( hitinfo.
type == ChannelType::kCommonStopTDC ) {
180 if( k >=
fADCs.size() )
182 std::invalid_argument(
msg(hitinfo,
"Logical channel number out of range"));
184 switch( hitinfo.
type ) {
185 case ChannelType::kADC:
186 case ChannelType::kMultiFunctionADC:
192 case ChannelType::kUndefined:
193 throw logic_error(
msg(hitinfo,
"Invalid channel type"));
202 const char* key_prefix,
203 const char* comment_subst )
207 const char*
const here =
"ADCData::DefineVariables";
214 const RVarDef vars[] = {
215 {
"nhit",
"Number of %s PMTs with ADC signal",
"fNHits" },
216 {
"a",
"Raw %s ADC amplitudes",
"fADCs.adc" },
217 {
"a_p",
"Pedestal-subtracted %s ADC amplitudes",
"fADCs.adc_p" },
218 {
"a_c",
"Gain-corrected %s ADC amplitudes",
"fADCs.adc_c" },
240 for(
auto& pmt :
fPMTs ) {
252 for(
auto& calib :
fCalib ) {
264 if( k >=
fPMTs.size() )
266 std::invalid_argument(
msg(hitinfo,
"Logical channel number out of range"));
268 switch( hitinfo.
type ) {
269 case ChannelType::kADC:
270 case ChannelType::kMultiFunctionADC:
276 case ChannelType::kCommonStopTDC:
277 case ChannelType::kCommonStartTDC:
278 case ChannelType::kMultiFunctionTDC:
286 case ChannelType::kUndefined:
287 throw logic_error(
msg(hitinfo,
"Invalid channel type"));
294 const char* key_prefix,
295 const char* comment_subst )
299 const char*
const here =
"PMTData::DefineVariables";
306 const RVarDef vars[] = {
307 {
"nthit",
"Number of %s PMTs with valid TDC",
"fNHits.tdc" },
308 {
"nahit",
"Number of %s PMTs with ADC signal",
"fNHits.adc" },
309 {
"nhits",
"Total number of %s TDC hits",
"fPMTs.ntdc" },
310 {
"t",
"Raw %s TDC times",
"fPMTs.tdc" },
311 {
"t_c",
"Calibrated %s TDC times (s)",
"fPMTs.tdc_c" },
312 {
"a",
"Raw %s ADC amplitudes",
"fPMTs.adc" },
313 {
"a_p",
"Pedestal-subtracted %s ADC amplitudes",
"fPMTs.adc_p" },
314 {
"a_c",
"Gain-corrected %s ADC amplitudes",
"fPMTs.adc_c" },
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Option_t Option_t TPoint TPoint const char mode
static const char *const here
std::vector< ADCData_t > fADCs
std::vector< ADCCalib_t > fCalib
void Reset(Option_t *="") override
Int_t StoreHit(const DigitizerHitInfo_t &hitinfo, UInt_t data) override
void Clear(Option_t *="") override
Int_t DefineVariablesImpl(THaAnalysisObject::EMode mode=THaAnalysisObject::kDefine, const char *key_prefix="", const char *comment_subst="") override
ADCData(const char *name, const char *desc, UInt_t nelem)
virtual Int_t DefineVariablesImpl(THaAnalysisObject::EMode mode=THaAnalysisObject::kDefine, const char *key_prefix="", const char *comment_subst="")
virtual Int_t GetLogicalChannel(const DigitizerHitInfo_t &hitinfo) const
static std::string msg(const DigitizerHitInfo_t &hitinfo, const char *txt)
Int_t DefineVariables(THaAnalysisObject::EMode mode=THaAnalysisObject::kDefine, const char *key_prefix="", const char *comment_subst="")
virtual UInt_t GetSize() const =0
Int_t StdDefineVariables(const RVarDef *vars, THaAnalysisObject::EMode mode, const char *key_prefix, const char *here, const char *comment_subst)
void Clear(Option_t *="") override
std::vector< PMTData_t > fPMTs
Int_t DefineVariablesImpl(THaAnalysisObject::EMode mode=THaAnalysisObject::kDefine, const char *key_prefix="", const char *comment_subst="") override
std::vector< PMTCalib_t > fCalib
Int_t StoreHit(const DigitizerHitInfo_t &hitinfo, UInt_t data) override
void Clear(Option_t *="") override
void Reset(Option_t *="") override
PMTData(const char *name, const char *desc, UInt_t nelem)
static Int_t DefineVarsFromList(const void *list, EType type, EMode mode, const char *def_prefix, const TObject *obj, const char *prefix, const char *here, const char *comment_subst="")
Decoder::Module *Decoder::ChannelType type
const char * Data() const
static void StoreADC(ADCData_t &ADC, const ADCCalib_t &CALIB, const DigitizerHitInfo_t &hitinfo, UInt_t data)
static void StoreTDC(TDCData_t &TDC, const TDCCalib_t &CALIB, const DigitizerHitInfo_t &hitinfo, UInt_t data)