SdInspector.cc
Go to the documentation of this file.
1 #include <iostream>
2 
3 #include <fwk/CentralConfig.h>
4 
5 #include <utl/Reader.h>
6 #include <utl/ErrorLogger.h>
7 
8 #include <evt/Event.h>
9 #include <evt/Header.h>
10 
11 #include <sevt/SEvent.h>
12 #include <sevt/Header.h>
13 #include <sevt/Station.h>
14 #include <sevt/StationSimData.h>
15 #include <sevt/PMT.h>
16 #include <sevt/PMTCalibData.h>
17 #include <sevt/PMTRecData.h>
18 #include <sevt/StationGPSData.h>
19 #include <sevt/StationTriggerData.h>
20 #include <sevt/StationCalibData.h>
21 #include <sevt/StationRecData.h>
22 #include <sevt/EventTrigger.h>
23 
24 #include "SdInspector.h"
25 
26 using namespace std;
27 using namespace fwk;
28 using namespace utl;
29 using namespace evt;
30 using namespace sevt;
31 using namespace SdInspectorOG;
32 
33 
34 // IndentOut tab size and newline
35 const int tab = 4;
36 const char nl = '\n';
37 
38 
39 // indented-output helper class
40 class IndentOut {
41 private:
42  ostream& fOs;
43  int fIndent;
44 public:
45  IndentOut(ostream& os = cout, const int ind = 0)
46  : fOs(os), fIndent(ind) { }
47 
48  ostream& GetOs() { return fOs; }
49 
50  void OutputBinary(const int value, const int bits = 8) const
51  { for (int i = bits - 1; i >= 0; --i) fOs << (value & (1<<i) ? '1':'0'); }
52 
53  void SetIndent(const int ind) { fIndent = ind; }
54 
55  template<typename T>
56  ostream& operator<<(const T& t)
57  { for (int i = 0; i < fIndent; ++i) fOs << ' '; return fOs << t; }
58 
59  int operator++(const int) { return ++fIndent; }
60 
61  int operator--(const int) { return --fIndent; }
62 
63  int operator+=(const int i) { return fIndent+=i; }
64 
65  int operator-=(const int i) { return fIndent-=i; }
66 };
67 
68 
71 {
72  auto topBranch = CentralConfig::GetInstance()->GetTopBranch("SdInspector");
73 
74  const auto str = topBranch.GetChild("infoLevel").Get<string>();
75 
76  fInfoLevel = eInfoNone;
77  if (str.find_first_of("aA") != string::npos)
78  fInfoLevel = eInfoAll;
79  else if (str.find_first_of("pP") != string::npos)
80  fInfoLevel = eInfoPMT;
81  else if (str.find_first_of("sS") != string::npos)
82  fInfoLevel = eInfoStation;
83  else if (str.find_first_of("eE") != string::npos)
84  fInfoLevel = eInfoEvent;
85 
86  topBranch.GetChild("showSimData").GetData(fShowSimData);
87 
88  // Event second is unbounded if no bound is specified in the file.
89  fEventSecondUnbounded = !bool(topBranch.GetChild("eventSecondRange"));
90 
91  if (!fEventSecondUnbounded)
92  topBranch.GetChild("eventSecondRange").GetData(fEventSecondRange);
93 
94  ostringstream info;
95  info << "Parameters:\n"
96  " infoLevel: " << fInfoLevel << "\n"
97  " showSimData: " << fShowSimData << "\n"
98  "eventSecondRange: ";
99  if (fEventSecondUnbounded)
100  info << "unbounded\n";
101  else
102  info << '[' << fEventSecondRange.first << ", " << fEventSecondRange.second << "]\n";
103  INFO(info);
104 
105  return eSuccess;
106 }
107 
108 
110 SdInspector::Run(evt::Event& ev)
111 {
112  if (fInfoLevel == eInfoNone)
113  return eSuccess;
114 
115  const Event& event = ev;
116 
117  if (!ev.HasSEvent())
118  return eSuccess;
119 
120  // if (!ev.HasRawEvent() || !ev.GetRawEvent().HasSd() || !ev.HasSEvent())
121  //return eSuccess;
122 
123  const SEvent& sev = ev.GetSEvent();
124  //const IoSdEvent& rawSEvent = ev.GetRawEvent().Sd();
125  const sevt::Header& head = sev.GetHeader();
126  const TimeStamp headTime = head.GetTime();
127  const unsigned int headSec = headTime.GetGPSSecond();
128 
129  // limit info
130  if (!fEventSecondUnbounded)
131  if(headSec < fEventSecondRange.first ||
132  headSec > fEventSecondRange.second)
133  return eSuccess;
134 
135  IndentOut iout;
136 
137  iout << "Event.Header.Id: " << event.GetHeader().GetId() << nl;
138  iout << "SEvent:" << nl;
139  iout += tab;
140  iout << "NumberOfStations: " << sev.GetNumberOfStations() << nl;
141  iout << "NErrorZeroStations: " << sev.GetNErrorZeroStations()
142  << nl;
143 
144  iout << "+ Header:" << nl;
145  iout += tab;
146  iout << "Id: " << head.GetId() << nl;
147  iout << "Time: " << headTime << nl;
148  iout -= tab;
149 
150  /*const IoSdT3Trigger& rawT3 = rawSEvent.Trigger;
151 
152  iout << "+ EventTrigger:" << nl;
153  iout+=tab;
154  iout << "Id: " << rawT3.Id << nl;
155  iout << "PreviousId: " << rawT3.PreviousId << nl;
156  iout << "NumberOfStations: " << rawT3.NumberOfStation << nl;
157  iout << "Sender: " << rawT3.Sender << nl;
158  iout << "Algorithm: " << rawT3.Algo << nl;
159  iout << "SDPAngle: " << rawT3.SDPAngle << nl;
160  iout << "Time: " << TimeStamp(int(rawT3.Second), int(rawT3.MicroSecond*microsecond/nanosecond)) << nl;
161  iout-=tab;
162  */
163 
164  if (sev.HasTrigger()) {
165  const EventTrigger& trig = sev.GetTrigger();
166  iout << "+ EventTrigger:" << nl;
167  iout+=tab;
168  iout << "Id: " << trig.GetId() << nl;
169  iout << "PreviousId: " << trig.GetPreviousId() << nl;
170  iout << "NStations: " << trig.GetNStations() << nl;
171  iout << "Sender: " << trig.GetSender() << nl;
172  iout << "Algorithm: " << trig.GetAlgorithm() << nl;
173  iout << "SDPAngle: " << trig.GetSDPAngle() << nl;
174  iout << "Time: " << trig.GetTime() << nl;
175  iout -= tab;
176  } else
177  iout << "- EventTrigger" << nl;
178 
179  if (fInfoLevel >= eInfoStation) {
180 
181  int nStations = 0;
182  int nCandidates = 0;
183  int nSilent = 0;
184 
185  iout << "* Station Collection:" << nl << nl;
186  iout+=tab;
188  sIt != sev.StationsEnd();
189  ++sIt) {
190 
191  ++nStations;
192  iout << "StationId: " << sIt->GetId() << nl;
193 
194  iout << "Saturation: ";
195  {
196  string sep;
197  if (sIt->IsHighGainSaturation()) {
198  iout.GetOs() << "HighGain";
199  sep = ", ";
200  }
201  if (sIt->IsLowGainSaturation()) {
202  iout.GetOs() << sep << "LowGain";
203  sep = "*";
204  }
205  iout.GetOs() << (sep.length() ? "\n" : "None\n");
206  }
207 
208  iout << "Is: ";
209  {
210  string sep;
211  if (sIt->IsCandidate()) {
212  ++nCandidates;
213  iout.GetOs() << "Candidate";
214  sep = ", ";
215  }
216  if (sIt->IsSilent()) {
217  ++nSilent;
218  iout.GetOs() << sep << "Silent";
219  sep = ", ";
220  }
221  if (sIt->IsRejected())
222  iout.GetOs() << sep << "Rejected:" << sIt->GetRejectionStatus();
223  }
224  iout.GetOs() << nl;
225 
226  // Find the raw station
227  /*const vector<IoSdStation>& rawStations = rawSEvent.Stations;
228  const IoSdStation* rStation = NULL;
229 
230  for (vector<IoSdStation>::const_iterator rsIt = rawStations.begin();
231  rsIt != rawStations.end(); ++rsIt)
232  if (rsIt->Id == (unsigned int)sIt->GetId()) {
233  rStation = &(*rsIt);
234  break;
235  }
236 
237  if (!rStation) {
238  ostringstream buf;
239  buf << "Unmatched raw and in-memory station " << sIt->GetId();
240  ERROR(buf.str());
241  continue;
242  }
243 
244  if (rStation->Gps) {
245  const IoSdGps& rawGPS = *(rStation->Gps);
246  iout << "+ GPSData:" << nl;
247  iout+=tab;
248  iout << "Second: " << rawGPS.Second << nl;
249  iout << "CorrectedNanoSecond: " << rawGPS.NanoSecond << nl;
250  iout << "Offset: " << rawGPS.Offset << nl;
251  iout << "Tick: " << rawGPS.Tick << nl;
252  iout << "TickFall: " << rawGPS.TickFall << nl;
253  iout << "Current100: " << rawGPS.Current100 << nl;
254  iout << "Next100: " << rawGPS.Next100 << nl;
255  iout << "Current40: " << rawGPS.Current40 << nl;
256  iout << "Next40: " << rawGPS.Next40 << nl;
257  iout << "PreviousST: " << rawGPS.PreviousST << nl;
258  iout << "CurrentST: " << rawGPS.CurrentST << nl;
259  iout << "NextST: " << rawGPS.NextST << nl;
260  iout-=tab;
261  } else
262  iout << "- GPSData" << nl;
263  */
264 
265  if (sIt->HasGPSData()) {
266  const StationGPSData& gps = sIt->GetGPSData();
267  iout << "+ GPSData:" << nl;
268  iout += tab;
269  iout << "Second: " << gps.GetSecond() << nl;
270  iout << "CorrectedNanoSecond: " << gps.GetCorrectedNanosecond() << nl;
271  iout << "Offset: " << gps.GetOffset() << nl;
272  iout << "Tick: " << gps.GetTick() << nl;
273  iout << "TickFall: " << gps.GetTickFall() << nl;
274  iout << "Current100: " << gps.GetCurrent100() << nl;
275  iout << "Next100: " << gps.GetNext100() << nl;
276  iout << "Current40: " << gps.GetCurrent40() << nl;
277  iout << "Next40: " << gps.GetNext40() << nl;
278  iout << "PreviousST: " << gps.GetPreviousST() << nl;
279  iout << "CurrentST: " << gps.GetCurrentST() << nl;
280  iout << "NextST: " << gps.GetNextST() << nl;
281  iout -= tab;
282  } else
283  iout << "- GPSData" << nl;
284 
285  iout << "TraceStartTime: " << sIt->GetTraceStartTime() << nl;
286  if (sIt->HasVEMTrace())
287  iout << "+ VEMTrace: " << sIt->GetVEMTrace().GetSize() << " (size)" << nl;
288  else
289  iout << "- VEMTrace" << nl;
290 
291  if (sIt->HasTriggerData()) {
292  const StationTriggerData& trig = sIt->GetTriggerData();
293  //const IoSdT2Trigger& rawTrigger = rStation->Trigger;
294  iout << "+ TriggerData:" << nl;
295  iout+=tab;
296  iout << "OffsetMicroSecond: " << trig.GetOffsetMicroSecond() << nl;
297  iout << "ErrorCode: " << trig.GetErrorCode() << nl;
298  iout << "WindowMicroSecond: " << trig.GetWindowMicroSecond() << nl;
299  iout << "PLDTrigger: "; iout.OutputBinary(trig.GetPLDTrigger(), 16);
300  iout.GetOs() << " (mask)" << nl;
301  iout << "Algorithm: " << trig.GetAlgorithmName() << nl;
302  iout-=tab;
303  } else
304  iout << "- TriggerData" << nl;
305 
306  if (sIt->HasCalibData()) {
307  //const IoSdCalib& rawCalib = *(rStation->Calib);
308  const StationCalibData& calib = sIt->GetCalibData();
309  iout << "+ StationCalibData:" << nl;
310  iout+=tab;
311  iout << "Version: " << calib.GetVersion() << nl;
312  iout << "StartSecond: " << calib.GetStartSecond() << nl;
313  iout << "EndSecond: " << calib.GetEndSecond() << nl;
314  iout << "NT1: " << calib.GetNT1() << nl;
315  iout << "NT2: " << calib.GetNT2() << nl;
316  iout << "NTot: " << calib.GetNTot() << nl;
317  // iout << "TubeMask: "; iout.OutputBinary(rawCalib.TubeMask, 3);
318  // iout.GetOs() << " (mask)" << nl;
319  /*if (rStation->Histo && rawCalib.Version > 8) {
320  iout << "+ MuonChargeHisto" << nl;
321  iout << "+ OffsetHisto:" << nl;
322  iout+=tab;
323  iout << "";
324  for (int i = 0; i < NB_HISTO_CALIB; ++i)
325  iout.GetOs() << rStation->Histo->Offset[i] << ((i+1)%3 ? " ":" | ");
326  iout.GetOs() << nl;
327  iout-=tab;
328  } else {
329  iout << "- MuonChargeHisto" << nl;
330  iout << "- OffsetHisto" << nl;
331  }
332  iout-=tab;
333  } else
334  iout << "- StationCalibData" << nl;
335  */
336  iout << "NTubesOk: " << calib.GetNTubesOk() << nl;
337  const int mSize = calib.GetMuonChargeHisto().size();
338  iout << (mSize ? '+':'-') << " MuonChargeHisto: " << mSize << " (size)" << nl;
339  /*const vector<int>& oHisto = calib.GetOffsetHisto();
340  const int oSize = oHisto.size();
341  if (oSize) {
342  iout << "+ OffsetHisto: " << oSize << " (size)" << nl;
343  iout+=tab;
344  iout << "";
345  for (int i = 0; i < oSize; ++i)
346  iout.GetOs() << oHisto[i] << ((i+1)%3 ? " ":" | ");
347  iout.GetOs() << nl;
348  iout-=tab;
349  } else
350  iout << "- OffsetHisto" << nl;*/
351  iout-=tab;
352  } else
353  iout << "- StationCalibData" << nl;
354 
355  if (sIt->HasRecData()) {
356  const StationRecData& rec = sIt->GetRecData();
357  iout << "+ StationRecData:" << nl;
358  iout+=tab;
359  iout << "TotalSignal: " << rec.GetTotalSignal() << nl;
360  iout << "SPDistance: " << rec.GetSPDistance() << nl;
361  iout << "PeakAmplitude: " << rec.GetPeakAmplitude() << nl;
362  iout << "ShapeParameter: " << rec.GetShapeParameter() << " +/- "
363  << rec.GetShapeParameterRMS() << nl;
364  iout << "RiseTime: " << rec.GetRiseTime() << " +/- "
365  << rec.GetRiseTimeRMS() << nl;
366  iout << "FallTime: " << rec.GetFallTime() << " +/- "
367  << rec.GetFallTimeRMS() << nl;
368  iout << "Residual: " << rec.GetResidual() << nl;
369  iout << "LDFResidual: " << rec.GetLDFResidual() << nl;
370  iout << "SignalStartTime: " << rec.GetSignalStartTime() << nl;
371  iout << "SignalStartSlot: " << rec.GetSignalStartSlot() << nl;
372  iout << "SignalEndSlot: " << rec.GetSignalEndSlot() << nl;
373  iout << "MuonComponent: " << rec.GetMuonComponent() << nl;
374  iout-=tab;
375  } else
376  iout << "- StationRecData" << nl;
377 
378  if (fShowSimData) {
379  if (sIt->HasSimData()) {
380  const StationSimData& sim = sIt->GetSimData();
381  iout << "+ StationSimData:" << nl;
382  iout+=tab;
383 
384  unsigned int nParticles = 0;
386  pIt != sim.ParticlesEnd(); ++pIt)
387  ++nParticles;
388 
389  iout << "NParticles: " << nParticles << nl;
390  iout << "PlaneFrontTime: " << sim.GetPlaneFrontTime() << nl;
391  iout-=tab;
392  } else
393  iout << "- StationSimData" << nl;
394  }
395 
396  if (fInfoLevel >= eInfoPMT) {
397  iout << "* PMT Collection:" << nl << nl;
398  iout+=tab;
399  for (Station::ConstPMTIterator pmtIt = sIt->PMTsBegin();
400  pmtIt != sIt->PMTsEnd();
401  ++pmtIt) {
402 
403  iout << "Id: " << pmtIt->GetId() << nl;
404  if (pmtIt->HasFADCTrace()) {
405  const int fadcSize = pmtIt->GetFADCTrace().GetSize();
406  iout << "+ FADCTrace: " << fadcSize << " (size)" << nl;
407  } else
408  iout << "- FADCTrace" << nl;
409 
410  if (pmtIt->HasCalibData()) {
411  const PMTCalibData& cal = pmtIt->GetCalibData();
412  iout << "+ PMTCalibData:" << nl;
413  iout+=tab;
414  iout << "IsTubeOk: " << cal.IsTubeOk() << nl;
415  iout << "Rate: " << cal.GetRate() << nl;
416  iout << "OnlinePeak: " << cal.GetOnlinePeak() << nl;
417  iout << "OnlineCharge: " << cal.GetOnlineCharge() << nl;
418  iout << "Baseline.HighGain: " << cal.GetBaseline() << " +/- " << cal.GetBaselineRMS() << nl;
419  iout << "Baseline.LowGain: " << cal.GetBaseline(sdet::PMTConstants::eLowGain) << " +/- "
421  iout << "GainRatio: " << cal.GetGainRatio() << " +/- " << cal.GetGainRatioRMS() << nl;
422  iout << "DynodeAnodeDelay: " << cal.GetHighGainDelay() << " +/- "
423  << cal.GetHighGainDelayRMS() << ", "
424  << cal.GetHighGainDelayChi2() << " (Chi2)" << nl;
425  const int mBaseSize = cal.GetMuonBaseHisto().size();
426  iout << (mBaseSize ? '+':'-') << " MuonBaseHisto: " << mBaseSize << " (size)" << nl;
427  const int mPeakSize = cal.GetMuonPeakHisto().size();
428  iout << (mPeakSize ? '+':'-') << " MuonPeakHisto: " << mPeakSize << " (size)" << nl;
429  const int mChargeSize = cal.GetMuonChargeHisto().size();
430  iout << (mChargeSize ? '+':'-') << " MuonChargeHisto: " << mChargeSize << " (size)" << nl;
431  const int mShapeSize = cal.GetMuonShapeHisto().size();
432  iout << (mShapeSize ? '+':'-') << " MuonShapeHisto: " << mShapeSize << " (size)" << nl;
433  const int evolution = cal.GetEvolution();
434  iout << "Evolution: " << evolution << " \"";
435  for (int i = 0; i < 16; i+=2)
436  switch ((evolution>>i) & 3) {
437  case 0: iout.GetOs() << '='; break;
438  case 1: iout.GetOs() << '-'; break;
439  case 2: iout.GetOs() << '+'; break;
440  default: iout.GetOs() << '?'; break;
441  }
442  iout.GetOs() << '\"' << nl;
443  iout << "NumberTDA: " << cal.GetNumberTDA() << nl;
444  iout-=tab;
445  } else
446  iout << "- PMTCalibData" << nl;
447 
448 
449  if (pmtIt->HasRecData()) {
450  const PMTRecData& rec = pmtIt->GetRecData();
451  iout << "+ PMTRecData:" << nl;
452  iout+=tab;
453  if (rec.HasVEMTrace()) {
454  const int vemSize = rec.GetVEMTrace().GetSize();
455  iout << "+ VEMTrace: " << vemSize << " (size)" << nl;
456  } else
457  iout << "- VEMTrace" << nl;
458  iout << "RiseTime: " << rec.GetRiseTime() << " +/- " << rec.GetRiseTimeRMS() << nl;
459  iout << "FallTime: " << rec.GetFallTime() << " +/- " << rec.GetFallTimeRMS() << nl;
460  iout << "VEMPeak: " << rec.GetVEMPeak() << nl;
461  iout << "VEMCharge: " << rec.GetVEMCharge() << nl;
462  iout << "AreaOverPeak: " << rec.GetAreaOverPeak() << nl;
463  iout << "TotalCharge: " << rec.GetTotalCharge() << nl;
464  iout << "PeakAmplitude: " << rec.GetPeakAmplitude() << nl;
465  iout << "GainRatio: " << rec.GetGainRatio() << nl;
466  iout-=tab;
467  } else
468  iout << "- PMTRecData" << nl;
469 
470  iout.GetOs() << nl;
471  } // pmtIt
472 
473  iout-=tab;
474 
475  } // eInfoPMT
476 
477  iout.GetOs() << nl;
478  } // sIt
479 
480  iout-=tab;
481  iout << "^ Station statistics:" << nl;
482  iout << "| NStations: " << nStations << nl;
483  iout << "| NCandidates: " << nCandidates << nl;
484  iout << "| NSilent: " << nSilent << nl << endl;
485 
486  } // eInfoStation
487 
488  iout-=tab;
489 
490  return eSuccess;
491 }
492 
493 
495 SdInspector::Finish()
496 {
497  return eSuccess;
498 }
499 
500 // Configure (x)emacs for this file ...
501 // Local Variables:
502 // mode: c++
503 // End:
double GetVEMCharge() const
Definition: PMTRecData.h:130
Class to access station level reconstructed data.
double GetHighGainDelayChi2() const
Definition: PMTCalibData.h:56
double GetFallTimeRMS() const
RMS of the fall time from the PMTs.
Definition: PMTRecData.h:106
double GetPeakAmplitude() const
Amplitude of signal Peak in VEM-Peak unit,averaged over pmts.
int GetEvolution() const
Definition: PMTCalibData.h:76
Station Level Simulated Data
StationIterator StationsEnd()
End of all stations.
Definition: SEvent.h:59
utl::TraceD & GetVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
Traces calibrated in VEM Peak.
Definition: PMTRecData.h:46
double GetTotalCharge() const
Total charge.
Definition: PMTRecData.h:137
int operator++(const int)
Definition: SdInspector.cc:59
double GetRiseTime() const
Rise time averaged over PMTs.
double GetBaselineRMS(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: PMTCalibData.h:44
double GetHighGainDelayRMS() const
Definition: PMTCalibData.h:54
double GetRiseTime() const
Average rise time from the PMTs.
Definition: PMTRecData.h:97
IndentOut(ostream &os=cout, const int ind=0)
Definition: SdInspector.cc:45
bool IsTubeOk() const
Definition: PMTCalibData.h:29
int GetNumberOfStations() const
Get total number of stations in the event.
Definition: SEvent.h:124
unsigned int GetNTubesOk() const
get numbers of tubes with calibration
Interface class to access to the SD part of an event.
Definition: SEvent.h:39
const std::vector< int > & GetMuonChargeHisto() const
histogram of the sum of muon charges (not really used anywhere)
unsigned int GetNT1() const
number of T1 received during calibration
const utl::TimeStamp & GetPlaneFrontTime() const
Get Shower front plane arrival time.
double GetFallTime() const
Average fall time from the PMTs.
Definition: PMTRecData.h:103
const std::vector< int > & GetMuonChargeHisto() const
Muon charge histogram.
Definition: PMTCalibData.h:69
int operator--(const int)
Definition: SdInspector.cc:61
unsigned int GetId() const
Get Id of the trigger.
EventTrigger & GetTrigger()
Get the object with central trigger data, throw if n.a.
Definition: SEvent.h:148
unsigned int GetSecond() const
Get end of traces raw time.
double GetLDFResidual() const
Residual of lateral fit.
#define INFO(message)
Macro for logging informational messages.
Definition: ErrorLogger.h:161
const std::vector< int > & GetMuonPeakHisto() const
Muon peak histogram.
Definition: PMTCalibData.h:64
int GetId() const
Definition: SEvent/Header.h:20
unsigned int GetNT2() const
number of T2 received during calibration
void Init()
Initialise the registry.
Header file holding the SD Event Trigger class definition.
Definition: SEvent/Header.h:16
const std::string & GetAlgorithmName() const
const std::vector< int > & GetMuonShapeHisto() const
Average shape of a muon.
Definition: PMTCalibData.h:74
unsigned int GetPreviousId() const
Get Id of the FD trigger that contains data for this event.
void OutputBinary(const int value, const int bits=8) const
Definition: SdInspector.cc:50
const std::vector< int > & GetMuonBaseHisto() const
Muon base histogram.
Definition: PMTCalibData.h:59
double GetFallTime() const
Fall time averaged over PMTs.
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
const utl::TimeStamp & GetTime() const
Definition: SEvent/Header.h:19
unsigned int GetTick() const
const char nl
Definition: SdInspector.cc:36
double GetMuonComponent() const
Muon signal [number of muons].
double GetResidual() const
Residual of geometry fit.
class to hold reconstructed data at PMT level
Definition: PMTRecData.h:38
utl::TimeStamp GetSignalStartTime() const
Start time of the signal.
int GetOffset() const
Get GPS offset compared to a reference.
ostream & operator<<(const T &t)
Definition: SdInspector.cc:56
Interface class to access the Event Trigger (T3)
double GetGainRatioRMS() const
Definition: PMTCalibData.h:49
double GetRiseTimeRMS() const
RMS of the rise time from the PMTs.
Definition: PMTRecData.h:100
double GetTotalSignal() const
Total integrated signal in VEM unit, averaged over pmts.
Online Calibration data.
Definition: PMTCalibData.h:27
ParticleVector::const_iterator ConstParticleIterator
bool HasTrigger() const
check whether the central trigger object exists
Definition: SEvent.h:153
const int tab
Definition: SdInspector.cc:35
double GetHighGainDelay() const
delay relative to low gain
Definition: PMTCalibData.h:52
unsigned int GetSignalStartSlot() const
Start time of the signal in time slots from beginning of trace.
Station Calibration data
unsigned int GetNTot() const
total number of triggers recevied during calibration
double GetShapeParameter() const
Shape parameter averaged over PMTs.
unsigned int GetCorrectedNanosecond() const
Get corrected trigger nanosecond.
int GetNErrorZeroStations() const
Get number of error zero stations (mapped over from IoSdEvent)
Definition: SEvent.h:131
SizeType GetSize() const
Definition: Trace.h:156
int operator-=(const int i)
Definition: SdInspector.cc:65
void SetIndent(const int ind)
Definition: SdInspector.cc:53
unsigned int GetSignalEndSlot() const
End time of the signal in time slots from beginning of trace.
double GetShapeParameterRMS() const
ShapeParameter spread.
double GetRiseTimeRMS() const
Rise time spread.
double GetBaseline(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: PMTCalibData.h:41
ParticleIterator ParticlesBegin()
Beginning of simulated particles entering the station.
unsigned int GetNStations() const
Get number of stations in the trigger.
unsigned int GetStartSecond() const
GPS second of start of calibration.
utl::TimeStamp GetTime() const
Get time of the trigger.
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
unsigned long GetGPSSecond() const
GPS second.
Definition: TimeStamp.h:124
unsigned int GetEndSecond() const
GPS second of end of calibration.
int GetNumberTDA() const
Definition: PMTCalibData.h:77
Station Trigger Data description
StationIterator StationsBegin()
Beginning of all stations.
Definition: SEvent.h:57
double GetSPDistance() const
Distance from core in shower plane coordinates.
ostream & fOs
Definition: SdInspector.cc:42
int GetVersion() const
version of the onboard calibration
sevt::Header & GetHeader()
Definition: SEvent.h:155
std::string GetAlgorithm() const
Get algorithm of the trigger.
double GetOnlineCharge() const
Online estimate of VEM_charge [adc*time_bin].
Definition: PMTCalibData.h:39
double GetRate() const
Definition: PMTCalibData.h:33
double GetFallTimeRMS() const
Fall time spread.
double GetPeakAmplitude() const
Peak Amplitude.
Definition: PMTRecData.h:140
bool HasVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Definition: PMTRecData.h:55
boost::indirect_iterator< InternalConstStationIterator, const Station & > ConstStationIterator
Definition: SEvent.h:54
ParticleIterator ParticlesEnd()
End of simulated particles entering the station.
int operator+=(const int i)
Definition: SdInspector.cc:63
double GetOnlinePeak() const
Online estimate of VEM_peak [adc].
Definition: PMTCalibData.h:36
double GetVEMPeak() const
Definition: PMTRecData.h:119
unsigned int GetTickFall() const
sevt::SEvent & GetSEvent()
std::string GetSender() const
Get sender of the trigger.
bool HasSEvent() const
double GetAreaOverPeak() const
Area over peak.
Definition: PMTRecData.h:135
double GetSDPAngle() const
Get SDPAngle of the trigger.
double GetGainRatio() const
Definition: PMTCalibData.h:47
double GetGainRatio() const
Definition: PMTRecData.h:147
ostream & GetOs()
Definition: SdInspector.cc:48

, generated on Tue Sep 26 2023.