/[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.6 by kusanagi, Thu Aug 19 15:24:10 2004 UTC revision 1.7 by kusanagi, Tue Sep 21 20:23:37 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.5 2004/07/29 16:18:53 kusanagi Exp $   * $Id: EventCounter.cpp,v 1.6 2004/08/19 15:24:10 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.techmodel.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 41  EventCounter::EventCounter(int run): Line 43  EventCounter::EventCounter(int run):
43    InitTrailer(0),    InitTrailer(0),
44    EventTrk(0),    EventTrk(0),
45    TestTrk(0),    TestTrk(0),
46      TestTof(0),
47    Log(0),    Log(0),
48    VarDump(0),    VarDump(0),
49    ArrDump(0),    ArrDump(0),
# Line 53  EventCounter::EventCounter(int run): Line 56  EventCounter::EventCounter(int run):
56    TrkInit(0),    TrkInit(0),
57    TofInit(0),    TofInit(0),
58    TrgInit(0),    TrgInit(0),
59      CalAlarm(0),
60      AcAlarm(0),
61      TrkAlarm(0),
62      TrgAlarm(0),
63      TofAlarm(0),
64    RunNumber(run) {    RunNumber(run) {
65      CMap.insert(CounterMap::value_type(PacketType::Pscu,            &Pscu));      CMap.insert(CounterMap::value_type(PacketType::Pscu,            &Pscu));
66      CMap.insert(CounterMap::value_type(PacketType::PhysEndRun,      &PhysEndRun));      CMap.insert(CounterMap::value_type(PacketType::PhysEndRun,      &PhysEndRun));
# Line 75  EventCounter::EventCounter(int run): Line 83  EventCounter::EventCounter(int run):
83      CMap.insert(CounterMap::value_type(PacketType::InitTrailer,     &InitTrailer));        CMap.insert(CounterMap::value_type(PacketType::InitTrailer,     &InitTrailer));  
84      CMap.insert(CounterMap::value_type(PacketType::EventTrk,        &EventTrk));        CMap.insert(CounterMap::value_type(PacketType::EventTrk,        &EventTrk));  
85      CMap.insert(CounterMap::value_type(PacketType::TestTrk,         &TestTrk));        CMap.insert(CounterMap::value_type(PacketType::TestTrk,         &TestTrk));  
86        CMap.insert(CounterMap::value_type(PacketType::TestTof,         &TestTof));  
87      CMap.insert(CounterMap::value_type(PacketType::Log,             &Log));      CMap.insert(CounterMap::value_type(PacketType::Log,             &Log));
88      CMap.insert(CounterMap::value_type(PacketType::VarDump,         &VarDump));      CMap.insert(CounterMap::value_type(PacketType::VarDump,         &VarDump));
89      CMap.insert(CounterMap::value_type(PacketType::ArrDump,         &ArrDump));      CMap.insert(CounterMap::value_type(PacketType::ArrDump,         &ArrDump));
# Line 87  EventCounter::EventCounter(int run): Line 96  EventCounter::EventCounter(int run):
96      CMap.insert(CounterMap::value_type(PacketType::TrkInit,         &TrkInit));      CMap.insert(CounterMap::value_type(PacketType::TrkInit,         &TrkInit));
97      CMap.insert(CounterMap::value_type(PacketType::TofInit,         &TofInit));      CMap.insert(CounterMap::value_type(PacketType::TofInit,         &TofInit));
98      CMap.insert(CounterMap::value_type(PacketType::TrgInit,         &TrgInit));      CMap.insert(CounterMap::value_type(PacketType::TrgInit,         &TrgInit));
99        CMap.insert(CounterMap::value_type(PacketType::CalAlarm,        &CalAlarm));
100        CMap.insert(CounterMap::value_type(PacketType::AcAlarm,         &AcAlarm));
101        CMap.insert(CounterMap::value_type(PacketType::TrkAlarm,        &TrkAlarm));
102        CMap.insert(CounterMap::value_type(PacketType::TrgAlarm,        &TrgAlarm));
103        CMap.insert(CounterMap::value_type(PacketType::TofAlarm,        &TofAlarm));
104  }  }
105    
106  /**  /**
# Line 98  void EventCounter::Increment(PacketType Line 112  void EventCounter::Increment(PacketType
112    if (p != CMap.end()) {    if (p != CMap.end()) {
113      int *counter = p->second;      int *counter = p->second;
114      (*counter)++;      (*counter)++;
115      cat <<  log4cpp::Priority::DEBUG      oss.flush();
116          <<  " Counter." <<  type->GetName() << " = " <<  (*counter)      oss << " Counter." <<  type->GetName() << " = " <<  (*counter);
117          <<  "\n " << log4cpp::CategoryStream::ENDLINE;      logger->debug(oss.str().c_str());
118    } else {    } else {
119      cat <<  log4cpp::Priority::WARN      oss.flush();
120          <<  " No counter for packet type " <<  type->GetName()      oss <<  " No counter for packet type " <<  type->GetName();
121          <<  "\n " << log4cpp::CategoryStream::ENDLINE;      logger->warn(oss.str().c_str());
122    }    }
123  }  }
124    
# Line 122  int EventCounter::Get(PacketType const * Line 136  int EventCounter::Get(PacketType const *
136      const int *counter = p->second;      const int *counter = p->second;
137      return *counter;      return *counter;
138    } else {    } else {
139          cat <<  log4cpp::Priority::WARN      oss.flush();
140          <<  " No counter for packet type " <<  type->GetName()      oss <<  " No counter for packet type " <<  type->GetName();
141          <<  "\n " << log4cpp::CategoryStream::ENDLINE;      logger->warn(oss.str().c_str());
142      return -1;      return -1;
143    }    }
144  }  }
# Line 141  int EventCounter::Next(PacketType const Line 155  int EventCounter::Next(PacketType const
155      const int *counter = p->second;      const int *counter = p->second;
156      return *counter + 1;      return *counter + 1;
157    } else {    } else {
158          cat <<  log4cpp::Priority::WARN      oss.flush();
159          <<  " No counter for packet type " <<  type->GetName()      oss <<  " No counter for packet type " <<  type->GetName();
160          <<  "\n " << log4cpp::CategoryStream::ENDLINE;      logger->warn(oss.str().c_str());
161      return -1;      return -1;
162    }    }
163  }  }
164    
165  /**  /**
166   * Get the all the counters   * Get the all the counters
167    * @retval -1 if there was no event of this type.    * @retval 0 if there was no event of this type.
168   */   */
169  void EventCounter::PrintCounters() const {  void EventCounter::PrintCounters() const {
170    for(CounterMap::const_iterator p = CMap.begin(); p != CMap.end(); p++) {    for(CounterMap::const_iterator p = CMap.begin(); p != CMap.end(); p++) {
171    cat <<  log4cpp::Priority::INFO <<  " Counter." <<  (p->first)->GetName()  <<   " = " <<  (*p->second)    oss.flush();
172        <<  "\n " << log4cpp::CategoryStream::ENDLINE;    oss <<  " Counter." <<  (p->first)->GetName()  <<   " = " <<  (*p->second);
173      logger->warn(oss.str().c_str());
174      std::cout <<  " Counter." <<  (p->first)->GetName()  <<   "\t = \t" <<  (*p->second) << "\n";
175    }    }
176  }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.23