/[PAMELA software]/yoda/event/EventCounter.cpp
ViewVC logotype

Diff of /yoda/event/EventCounter.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by kusanagi, Thu Jul 8 12:31:22 2004 UTC revision 2.1 by kusanagi, Fri Sep 24 11:57:32 2004 UTC
# Line 1  Line 1 
1  /** @file  /** @file
2   * $Source: /home/cvsmanager/yoda/event/EventCounter.cpp,v $   * $Source: /home/cvsmanager/yoda/event/EventCounter.cpp,v $
3   * $Id: EventCounter.cpp,v 1.3 2004/07/06 14:07:24 kusanagi Exp $   * $Id: EventCounter.cpp,v 2.0 2004/09/21 20:49:57 kusanagi Exp $
4   * $Author: kusanagi $   * $Author: kusanagi $
5   *   *
6   * Implementation of the EventCounter class.   * Implementation of the EventCounter class.
7   */   */
8  #include <log4cpp/Category.hh>  #include <log4cxx/logger.h>
9    #include <sstream>
10    
11  #include "EventCounter.h"  #include "EventCounter.h"
12  #include "PscuHeader.h"  #include "PscuHeader.h"
13    
 static log4cpp::Category& cat = log4cpp::Category::getInstance("pamela.raw.EventCounter");    
14    
15    static log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(_T("pamela.techmodel.EventCounter"));
16    static std::stringstream oss;
17  using namespace pamela;  using namespace pamela;
18    
19  /**  /**
# Line 21  using namespace pamela; Line 23  using namespace pamela;
23  EventCounter::EventCounter(int run):  EventCounter::EventCounter(int run):
24    // New Packets.    // New Packets.
25    Pscu(0),    Pscu(0),
26      PhysEndRun(0),
27      CalibCalPulse1(0),
28      CalibCalPulse2(0),
29    Physics(0),    Physics(0),
30    Forced_Pkt(0),    CalibTrkBoth(0),
31    Calib_Trk1(0),    Calib_Trk1(0),
32    Calib_Trk2(0),    Calib_Trk2(0),
   Calib_Cal(0),  
   Calib_CalPed(0),  
   Calib_Ac(0),  
33    Calib_Trd(0),    Calib_Trd(0),
34    Calib_Tof(0),    Calib_Tof(0),
35    Calib_S4(0),    Calib_S4(0),
36      Calib_CalPed(0),
37      Calib_Ac(0),
38    Run_Header(0),    Run_Header(0),
39    Run_Trailer(0),    Run_Trailer(0),
40    Alarm(0),    CalibHeader(0),
41    Khb(0),    CalibTrailer(0),
42      InitHeader(0),
43      InitTrailer(0),
44      EventTrk(0),
45      TestTrk(0),
46      TestTof(0),
47    Log(0),    Log(0),
48    VarDump(0),    VarDump(0),
49    ArrDump(0),    ArrDump(0),
50    TabDump(0),    TabDump(0),
51    Tmtc(0),    Tmtc(0),
52    Mcmd(0),    Mcmd(0),
53    HA_Header_E5(0),    ForcedFECmd(0),
54      AcInit(0),
55      CalInit(0),
56      TrkInit(0),
57      TofInit(0),
58      TrgInit(0),
59      NdInit(0),
60      CalAlarm(0),
61      AcAlarm(0),
62      TrkAlarm(0),
63      TrgAlarm(0),
64      TofAlarm(0),
65    RunNumber(run) {    RunNumber(run) {
66    CMap.insert(CounterMap::value_type(PacketType::Pscu,      &Pscu));      CMap.insert(CounterMap::value_type(PacketType::Pscu,            &Pscu));
67    CMap.insert(CounterMap::value_type(PacketType::Physics,   &Physics));      CMap.insert(CounterMap::value_type(PacketType::PhysEndRun,      &PhysEndRun));
68    CMap.insert(CounterMap::value_type(PacketType::ForcedPkt, &Forced_Pkt));      CMap.insert(CounterMap::value_type(PacketType::CalibCalPulse2,  &CalibCalPulse1));
69    CMap.insert(CounterMap::value_type(PacketType::CalibTrk1, &Calib_Trk1));      CMap.insert(CounterMap::value_type(PacketType::CalibCalPulse2,  &CalibCalPulse2));
70    CMap.insert(CounterMap::value_type(PacketType::CalibTrk2, &Calib_Trk2));      CMap.insert(CounterMap::value_type(PacketType::Physics,         &Physics));
71    CMap.insert(CounterMap::value_type(PacketType::CalibCal,  &Calib_Cal));      CMap.insert(CounterMap::value_type(PacketType::CalibTrkBoth,    &CalibTrkBoth));
72    CMap.insert(CounterMap::value_type(PacketType::CalibCalPed, &Calib_CalPed));      CMap.insert(CounterMap::value_type(PacketType::CalibTrk1,       &Calib_Trk1));
73    CMap.insert(CounterMap::value_type(PacketType::CalibAc,   &Calib_Ac));      CMap.insert(CounterMap::value_type(PacketType::CalibTrk2,       &Calib_Trk2));
74    CMap.insert(CounterMap::value_type(PacketType::CalibTrd,  &Calib_Trd));      CMap.insert(CounterMap::value_type(PacketType::CalibTrd,        &Calib_Trd));
75    CMap.insert(CounterMap::value_type(PacketType::CalibTof,  &Calib_Tof));      CMap.insert(CounterMap::value_type(PacketType::CalibTof,        &Calib_Tof));
76    CMap.insert(CounterMap::value_type(PacketType::CalibS4,   &Calib_S4));      CMap.insert(CounterMap::value_type(PacketType::CalibS4,         &Calib_S4));
77    CMap.insert(CounterMap::value_type(PacketType::RunHeader, &Run_Header));      CMap.insert(CounterMap::value_type(PacketType::CalibCalPed,     &Calib_CalPed));
78    CMap.insert(CounterMap::value_type(PacketType::RunTrailer, &Run_Trailer));      CMap.insert(CounterMap::value_type(PacketType::CalibAc,         &Calib_Ac));
79    CMap.insert(CounterMap::value_type(PacketType::Alarm,     &Alarm));      CMap.insert(CounterMap::value_type(PacketType::RunHeader,       &Run_Header));
80    CMap.insert(CounterMap::value_type(PacketType::Khb,       &Khb));      CMap.insert(CounterMap::value_type(PacketType::RunTrailer,      &Run_Trailer));
81    CMap.insert(CounterMap::value_type(PacketType::Log,       &Log));      CMap.insert(CounterMap::value_type(PacketType::CalibHeader,     &CalibHeader));
82    CMap.insert(CounterMap::value_type(PacketType::VarDump,   &VarDump));      CMap.insert(CounterMap::value_type(PacketType::CalibTrailer,    &CalibTrailer));  
83    CMap.insert(CounterMap::value_type(PacketType::ArrDump,   &ArrDump));      CMap.insert(CounterMap::value_type(PacketType::InitHeader,      &InitHeader));
84    CMap.insert(CounterMap::value_type(PacketType::TabDump,   &TabDump));      CMap.insert(CounterMap::value_type(PacketType::InitTrailer,     &InitTrailer));  
85    CMap.insert(CounterMap::value_type(PacketType::Tmtc,      &Tmtc));      CMap.insert(CounterMap::value_type(PacketType::EventTrk,        &EventTrk));  
86    CMap.insert(CounterMap::value_type(PacketType::Mcmd,      &Mcmd));      CMap.insert(CounterMap::value_type(PacketType::TestTrk,         &TestTrk));  
87    CMap.insert(CounterMap::value_type(PacketType::HA_Header_E5, &HA_Header_E5));      CMap.insert(CounterMap::value_type(PacketType::TestTof,         &TestTof));  
88        CMap.insert(CounterMap::value_type(PacketType::Log,             &Log));
89        CMap.insert(CounterMap::value_type(PacketType::VarDump,         &VarDump));
90        CMap.insert(CounterMap::value_type(PacketType::ArrDump,         &ArrDump));
91        CMap.insert(CounterMap::value_type(PacketType::TabDump,         &TabDump));
92        CMap.insert(CounterMap::value_type(PacketType::Tmtc,            &Tmtc));
93        CMap.insert(CounterMap::value_type(PacketType::Mcmd,            &Mcmd));
94        CMap.insert(CounterMap::value_type(PacketType::ForcedFECmd,     &ForcedFECmd));
95        CMap.insert(CounterMap::value_type(PacketType::AcInit,          &AcInit));
96        CMap.insert(CounterMap::value_type(PacketType::CalInit,         &CalInit));
97        CMap.insert(CounterMap::value_type(PacketType::TrkInit,         &TrkInit));
98        CMap.insert(CounterMap::value_type(PacketType::TofInit,         &TofInit));
99        CMap.insert(CounterMap::value_type(PacketType::TrgInit,         &TrgInit));
100        CMap.insert(CounterMap::value_type(PacketType::TrgInit,         &NdInit));
101        CMap.insert(CounterMap::value_type(PacketType::CalAlarm,        &CalAlarm));
102        CMap.insert(CounterMap::value_type(PacketType::AcAlarm,         &AcAlarm));
103        CMap.insert(CounterMap::value_type(PacketType::TrkAlarm,        &TrkAlarm));
104        CMap.insert(CounterMap::value_type(PacketType::TrgAlarm,        &TrgAlarm));
105        CMap.insert(CounterMap::value_type(PacketType::TofAlarm,        &TofAlarm));
106  }  }
107    
108  /**  /**
# Line 76  void EventCounter::Increment(PacketType Line 114  void EventCounter::Increment(PacketType
114    if (p != CMap.end()) {    if (p != CMap.end()) {
115      int *counter = p->second;      int *counter = p->second;
116      (*counter)++;      (*counter)++;
117      cat <<  log4cpp::Priority::INFO      oss.flush();
118          <<  " Counter." <<  type->GetName() << " = " <<  (*counter)      oss << " Counter." <<  type->GetName() << " = " <<  (*counter);
119          <<  "\n " << log4cpp::CategoryStream::ENDLINE;      logger->debug(oss.str().c_str());
120    } else {    } else {
121      cat <<  log4cpp::Priority::INFO      oss.flush();
122          <<  " No counter for packet type " <<  type->GetName()      oss <<  " No counter for packet type " <<  type->GetName();
123          <<  "\n " << log4cpp::CategoryStream::ENDLINE;      logger->warn(oss.str().c_str());
124    }    }
125  }  }
126    
# Line 100  int EventCounter::Get(PacketType const * Line 138  int EventCounter::Get(PacketType const *
138      const int *counter = p->second;      const int *counter = p->second;
139      return *counter;      return *counter;
140    } else {    } else {
141          cat <<  log4cpp::Priority::INFO      oss.flush();
142          <<  " No counter for packet type " <<  type->GetName()      oss <<  " No counter for packet type " <<  type->GetName();
143          <<  "\n " << log4cpp::CategoryStream::ENDLINE;      logger->warn(oss.str().c_str());
144      return -1;      return -1;
145    }    }
146  }  }
# Line 119  int EventCounter::Next(PacketType const Line 157  int EventCounter::Next(PacketType const
157      const int *counter = p->second;      const int *counter = p->second;
158      return *counter + 1;      return *counter + 1;
159    } else {    } else {
160          cat <<  log4cpp::Priority::WARN      oss.flush();
161          <<  " No counter for packet type " <<  type->GetName()      oss <<  " No counter for packet type " <<  type->GetName();
162          <<  "\n " << log4cpp::CategoryStream::ENDLINE;      logger->warn(oss.str().c_str());
163      return -1;      return -1;
164    }    }
165  }  }
166    
167  /**  /**
168   * Get the all the counters   * Get the all the counters
169    * @retval -1 if there was no event of this type.    * @retval 0 if there was no event of this type.
170   */   */
171  void EventCounter::PrintCounters() const {  void EventCounter::PrintCounters() const {
172    for(CounterMap::const_iterator p = CMap.begin(); p != CMap.end(); p++) {    for(CounterMap::const_iterator p = CMap.begin(); p != CMap.end(); p++) {
173    cat <<  log4cpp::Priority::INFO <<  " Counter." <<  (p->first)->GetName()  <<   " = " <<  (*p->second)    oss.flush();
174        <<  "\n " << log4cpp::CategoryStream::ENDLINE;    oss <<  " Counter." <<  (p->first)->GetName()  <<   " = " <<  (*p->second);
175      logger->warn(oss.str().c_str());
176      std::cout <<  " Counter." <<  (p->first)->GetName()  <<   "\t = \t" <<  (*p->second) << "\n";
177    }    }
178  }  }

Legend:
Removed from v.1.4  
changed lines
  Added in v.2.1

  ViewVC Help
Powered by ViewVC 1.1.23