79 std::cout <<
"Failed to find detector class " << channel->
GetClassType() <<
" for channel:" << std::endl;
89 std::cout <<
"Missing channels:" << std::endl;
91 std::cout <<
hex(iter.first, 4) <<
": " << iter.second << std::endl;
95 std::cout <<
"Missing detector classes:" << std::endl;
97 std::cout << (iter.first ==
nullptr ?
"nullptr" : iter.first->GetName()) <<
": " << iter.second << std::endl;
102 if(option.EqualTo(
"ERROR")) {
105 std::cout << color <<
"Removed hits per detector class:" <<
RESET_COLOR << std::endl;
107 std::cout << iter.first->GetName() <<
": " << iter.second.first <<
"/" << iter.second.second <<
" = " << 100. *
static_cast<double>(iter.second.first) /
static_cast<double>(iter.second.second) <<
"%" << std::endl;
110 if(option.EqualTo(
"ERROR")) {
113 std::cout << color <<
"No hits were removed!" <<
RESET_COLOR << std::endl;
117 if(option.EqualTo(
"ERROR")) {
120 std::cout << color <<
"No fragments out of order!" <<
RESET_COLOR << std::endl;
123 if(option.EqualTo(
"ERROR")) {
146 std::ofstream statsOut(fileName);
147 statsOut << std::endl
150 <<
"Maximum entry difference = " <<
fMaxEntryDiff << std::endl
157 fHitsRemoved[detClass] = std::make_pair(removed, total);
std::string hex(T val, int width=-1)
TClass * GetClassType() const
void Print(Option_t *opt="") const override
static TGRSIOptions * Get(int argc=0, char **argv=nullptr)
Do not use!
void OutOfTimeOrder(double newFragTime, double oldFragTime, int64_t newEntry)
void Copy(TObject &) const override
std::unordered_map< UInt_t, int64_t > fMissingChannels
counts of missing channels
void RemovedHits(TClass *detClass, int64_t removed, int64_t total)
void Draw(Option_t *opt="") override
void Clear(Option_t *opt="all") override
std::vector< double > fPreviousTimes
times of previous fragments, saved every 'BuildWindow' entries
std::unordered_map< TClass *, int64_t > fMissingDetectorClasses
counts of missing detector classes
std::unordered_map< int64_t, std::pair< int64_t, int64_t > > fFragmentsOutOfOrder
void MissingChannel(const UInt_t &address)
std::unordered_map< double, std::pair< double, double > > fFragmentsOutOfTimeOrder
void OutOfOrder(int64_t newFragTS, int64_t oldFragTS, int64_t newEntry)
void Print(Option_t *opt="") const override
void WriteToFile(const char *) const
size_t NumberOfFragmentsOutOfOrder() const
std::unordered_map< TClass *, std::pair< int64_t, int64_t > > fHitsRemoved
removed hits and total hits per detector class
size_t NumberOfFragmentsOutOfTimeOrder() const
void AddDetectorClass(TChannel *)
std::vector< Long_t > fPreviousTimeStamps
timestamps of previous fragments, saved every 'BuildWindow' entries