CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
EventWithHistory Class Reference

#include <EventWithHistory.h>

Inheritance diagram for EventWithHistory:
TinyEvent

Public Member Functions

long long absoluteBX (const unsigned int ev1) const
 
long long absoluteBX () const
 
long long absoluteBXinCycle (const unsigned int ev1, const int bx0) const
 
long long absoluteBXinCycle (const int bx0) const
 
int add (const EventWithHistory &he, const int idepth)
 
int add (const TinyEvent &he, const int idepth)
 
const int bx () const
 
long long deltaBX (const unsigned int ev2, const unsigned int ev1) const
 
long long deltaBX (const unsigned int ev1) const
 
long long deltaBX () const
 
long long deltaBX (const TinyEvent &se) const
 
long long deltaBXinCycle (const unsigned int ev2, const unsigned int ev1, const int bx0) const
 
long long deltaBXinCycle (const unsigned int ev1, const int bx0) const
 
long long deltaBXinCycle (const int bx0) const
 
long long deltaBXinCycle (const TinyEvent &se, const int bx0) const
 
unsigned int depth () const
 
const edm::EventNumber_t event () const
 
 EventWithHistory ()
 
 EventWithHistory (const TinyEvent &se)
 
 EventWithHistory (const edm::EventNumber_t event, const int orbit, const int bx)
 
 EventWithHistory (const edm::EventNumber_t event, const unsigned int orbit, const int bx)
 
 EventWithHistory (const edm::Event &event)
 
 EventWithHistory (const std::vector< edm::EventAuxiliary > &he)
 
 EventWithHistory (const edm::Event &event, const L1AcceptBunchCrossingCollection &l11bcc, const long long orbitoffset=0, const int bxoffset=0)
 
 EventWithHistory (const EventWithHistory &he)
 
const TinyEventget (const unsigned int ev) const
 
bool isFutureHistory () const
 
EventWithHistoryoperator= (const EventWithHistory &he)
 
int operator== (const EventWithHistory &other) const
 
const unsigned int orbit () const
 
- Public Member Functions inherited from TinyEvent
long long absoluteBX () const
 
long long absoluteBXinCycle (const int bx0) const
 
long long deltaBX (const TinyEvent &se) const
 
long long deltaBXinCycle (const TinyEvent &se, const int bx0) const
 
int isNextOf (const TinyEvent &se) const
 
int operator< (const TinyEvent &other) const
 
TinyEventoperator= (const TinyEvent &se)
 
int operator== (const TinyEvent &other) const
 
 TinyEvent ()
 
 TinyEvent (const edm::EventNumber_t event, const int orbit, const int bx)
 
 TinyEvent (const edm::EventNumber_t event, const unsigned int orbit, const int bx)
 
 TinyEvent (const TinyEvent &se)
 
 TinyEvent (const edm::Event &event)
 
 TinyEvent (const edm::EventAuxiliary &eaux)
 

Private Attributes

std::vector< TinyEvent_prevse
 

Additional Inherited Members

- Public Attributes inherited from TinyEvent
unsigned int _bx
 
edm::EventNumber_t _event
 
unsigned int _orbit
 

Detailed Description

Definition at line 16 of file EventWithHistory.h.

Constructor & Destructor Documentation

EventWithHistory::EventWithHistory ( )

Definition at line 8 of file EventWithHistory.cc.

8 : TinyEvent(), _prevse() { }
std::vector< TinyEvent > _prevse
TinyEvent()
Definition: TinyEvent.h:15
EventWithHistory::EventWithHistory ( const TinyEvent se)
explicit

Definition at line 10 of file EventWithHistory.cc.

10 : TinyEvent(se), _prevse() { }
std::vector< TinyEvent > _prevse
TinyEvent()
Definition: TinyEvent.h:15
EventWithHistory::EventWithHistory ( const edm::EventNumber_t  event,
const int  orbit,
const int  bx 
)
explicit

Definition at line 12 of file EventWithHistory.cc.

12  :
const unsigned int orbit() const
std::vector< TinyEvent > _prevse
const int bx() const
const edm::EventNumber_t event() const
TinyEvent()
Definition: TinyEvent.h:15
EventWithHistory::EventWithHistory ( const edm::EventNumber_t  event,
const unsigned int  orbit,
const int  bx 
)
explicit

Definition at line 15 of file EventWithHistory.cc.

15  :
const unsigned int orbit() const
std::vector< TinyEvent > _prevse
const int bx() const
const edm::EventNumber_t event() const
TinyEvent()
Definition: TinyEvent.h:15
EventWithHistory::EventWithHistory ( const edm::Event event)
explicit

Definition at line 18 of file EventWithHistory.cc.

18  :
19  TinyEvent(event), _prevse() { }
std::vector< TinyEvent > _prevse
TinyEvent()
Definition: TinyEvent.h:15
EventWithHistory::EventWithHistory ( const std::vector< edm::EventAuxiliary > &  he)

Definition at line 21 of file EventWithHistory.cc.

References _prevse.

21  :
22  TinyEvent((veaux.size()>0) ? veaux[veaux.size()-1]: TinyEvent()), _prevse()
23 {
24  for(std::vector<edm::EventAuxiliary>::const_reverse_iterator eaux=veaux.rbegin();eaux!=veaux.rend();eaux++) {
25  if(eaux!=veaux.rbegin()) {
26  _prevse.push_back(*eaux);
27  }
28  }
29 }
std::vector< TinyEvent > _prevse
TinyEvent()
Definition: TinyEvent.h:15
EventWithHistory::EventWithHistory ( const edm::Event event,
const L1AcceptBunchCrossingCollection l11bcc,
const long long  orbitoffset = 0,
const int  bxoffset = 0 
)

Definition at line 31 of file EventWithHistory.cc.

References _prevse, counter, deltaBX(), edm::EventID::event(), edm::EventBase::id(), and TinyEvent::operator=().

32  :
33  TinyEvent(), _prevse()
34 {
35 
36  std::map<int,TinyEvent> tmpmap;
37 
38  for(L1AcceptBunchCrossingCollection::const_iterator l1abc=l1abcc.begin();l1abc!=l1abcc.end();++l1abc) {
39  if(event.id().event() > (edm::EventNumber_t)(-1*l1abc->l1AcceptOffset()) ) {
40  edm::EventNumber_t evnumb = event.id().event()+l1abc->l1AcceptOffset();
41  if(orbitoffset < (long long)l1abc->orbitNumber()) {
42  unsigned int neworbit = l1abc->orbitNumber() - orbitoffset;
43  int newbx = l1abc->bunchCrossing() - bxoffset;
44 
45  while(newbx > 3563) {
46  ++neworbit;
47  newbx -= 3564;
48  }
49  while(newbx < 0) {
50  --neworbit;
51  newbx += 3564;
52  }
53 
54  if(l1abc->eventType()!=0) {
55  TinyEvent tmpse(evnumb,neworbit,newbx);
56  tmpmap[l1abc->l1AcceptOffset()]=tmpse;
57  }
58  else {
59  edm::LogWarning("L1AcceptBunchCrossingNoType") << "L1AcceptBunchCrossing with no type found: ";
60  for(L1AcceptBunchCrossingCollection::const_iterator debu=l1abcc.begin();debu!=l1abcc.end();++debu) {
61  edm::LogPrint("L1AcceptBunchCrossingNoType") << *debu;
62  }
63  }
64  }
65  else {
66  edm::LogError("L1AcceptBunchCrossingOffsetTooLarge") << " Too large orbit offset "
67  << orbitoffset << " "
68  << l1abc->orbitNumber();
69  }
70  }
71  else {
72  edm::LogInfo("L1AcceptBunchCrossingNegativeEvent") << "L1AcceptBunchCrossing with negative event: ";
73  for(L1AcceptBunchCrossingCollection::const_iterator debu=l1abcc.begin();debu!=l1abcc.end();++debu) {
74  edm::LogVerbatim("L1AcceptBunchCrossingNegativeEvent") << *debu;
75  }
76  }
77  }
78  // look for the event itself
79  if(tmpmap.find(0)!=tmpmap.end()) {
80 
81  TinyEvent::operator=(tmpmap[0]);
82 
83  // loop on the rest of the map and stop when it is missing
84  // check that the events are in the right order and break if not
85 
86  int counter=-1;
87  while(tmpmap.find(counter)!=tmpmap.end()) {
88 
89  if(tmpmap[counter+1].deltaBX(tmpmap[counter]) > 0) {
90  _prevse.push_back(tmpmap[counter]);
91  --counter;
92  }
93  else {
94  edm::LogWarning("L1AcceptBunchCrossingNotInOrder") << "L1AcceptBunchCrossing not in order: ";
95  for(L1AcceptBunchCrossingCollection::const_iterator debu=l1abcc.begin();debu!=l1abcc.end();++debu) {
96  edm::LogPrint("L1AcceptBunchCrossingNotInOrder") << *debu;
97  }
98  break;
99  }
100  }
101  }
102  else {
103  TinyEvent::operator=(event);
104  edm::LogWarning("L1AcceptBunchCrossingNoCollection") << " L1AcceptBunchCrossing with offset=0 not found "
105  << " likely L1ABCCollection is empty ";
106  }
107 
108 }
EventNumber_t event() const
Definition: EventID.h:41
long long deltaBX() const
unsigned long long EventNumber_t
std::vector< TinyEvent > _prevse
TinyEvent & operator=(const TinyEvent &se)
Definition: TinyEvent.h:29
edm::EventID id() const
Definition: EventBase.h:56
static std::atomic< unsigned int > counter
TinyEvent()
Definition: TinyEvent.h:15
EventWithHistory::EventWithHistory ( const EventWithHistory he)

Definition at line 110 of file EventWithHistory.cc.

110 : TinyEvent(he), _prevse(he._prevse) { }
std::vector< TinyEvent > _prevse
TinyEvent()
Definition: TinyEvent.h:15

Member Function Documentation

long long EventWithHistory::absoluteBX ( const unsigned int  ev1) const

Definition at line 225 of file EventWithHistory.cc.

References _prevse, absoluteBX(), and TinyEvent::absoluteBX().

Referenced by EventWithHistoryFilter::is_selected().

225  {
226 
227  if(ev1==0) return TinyEvent::absoluteBX();
228  if(ev1<=_prevse.size()) return _prevse[ev1-1].absoluteBX();
229 
230  return -1;
231 
232 }
std::vector< TinyEvent > _prevse
long long absoluteBX() const
Definition: TinyEvent.h:57
long long absoluteBX() const
long long EventWithHistory::absoluteBX ( ) const

Definition at line 234 of file EventWithHistory.cc.

References TinyEvent::absoluteBX().

Referenced by absoluteBX().

234  {
235 
236  return TinyEvent::absoluteBX();
237 
238 }
long long absoluteBX() const
Definition: TinyEvent.h:57
long long EventWithHistory::absoluteBXinCycle ( const unsigned int  ev1,
const int  bx0 
) const

Definition at line 240 of file EventWithHistory.cc.

References _prevse, and TinyEvent::absoluteBXinCycle().

Referenced by EventWithHistoryFilter::is_selected().

240  {
241 
242  if(ev1==0) return TinyEvent::absoluteBXinCycle(bx0);
243  if(ev1<=_prevse.size()) return _prevse[ev1-1].absoluteBXinCycle(bx0);
244 
245  return -1;
246 
247 }
long long absoluteBXinCycle(const int bx0) const
Definition: TinyEvent.h:63
long long absoluteBXinCycle(const unsigned int ev1, const int bx0) const
std::vector< TinyEvent > _prevse
long long EventWithHistory::absoluteBXinCycle ( const int  bx0) const

Definition at line 249 of file EventWithHistory.cc.

References TinyEvent::absoluteBXinCycle().

249  {
250 
251  return TinyEvent::absoluteBXinCycle(bx0);
252 
253 }
long long absoluteBXinCycle(const int bx0) const
Definition: TinyEvent.h:63
int EventWithHistory::add ( const EventWithHistory he,
const int  idepth 
)

Definition at line 140 of file EventWithHistory.cc.

References ev.

Referenced by counter.Counter::register().

140  {
141 
142  if(!add((const TinyEvent&) he,idepth)) return 0;
143 
144  for(std::vector<TinyEvent>::const_iterator ev=he._prevse.begin();ev!=he._prevse.end();ev++) {
145  if(!add(*ev,idepth)) return 0;
146  }
147  return 1;
148 }
bool ev
int add(const EventWithHistory &he, const int idepth)
int EventWithHistory::add ( const TinyEvent he,
const int  idepth 
)

Definition at line 150 of file EventWithHistory.cc.

References _prevse, funct::abs(), depth(), isFutureHistory(), and TinyEvent::isNextOf().

Referenced by counter.Counter::register().

150  {
151 
152  bool isfuture = (idepth <0);
153  const unsigned int adepth = abs(idepth);
154 
155  // protect against the possibility of filling with past and future history
156 
157  if( depth()>0 && ((isfuture && !isFutureHistory()) || (!isfuture && isFutureHistory()))) return 0;
158 
159  if(adepth==0) return 0;
160  if(_prevse.size()>= adepth) return 0;
161 
162  if(_prevse.size()==0) {
163  if((!isfuture && isNextOf(se)) || (isfuture && se.isNextOf(*this))) {
164  _prevse.push_back(se);
165  return 1;
166  }
167  else {
168  return 0;
169  }
170  }
171  else {
172  if((!isfuture && _prevse[_prevse.size()-1].isNextOf(se)) || (isfuture && se.isNextOf(_prevse[_prevse.size()-1]))) {
173  _prevse.push_back(se);
174  return 1;
175  }
176  else {
177  return 0;
178  }
179  }
180  return 0;
181 }
unsigned int depth() const
std::vector< TinyEvent > _prevse
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int isNextOf(const TinyEvent &se) const
Definition: TinyEvent.h:51
bool isFutureHistory() const
const int EventWithHistory::bx ( ) const

Definition at line 185 of file EventWithHistory.cc.

References TinyEvent::_bx.

185 { return TinyEvent::_bx; }
unsigned int _bx
Definition: TinyEvent.h:89
long long EventWithHistory::deltaBX ( const unsigned int  ev2,
const unsigned int  ev1 
) const

Definition at line 203 of file EventWithHistory.cc.

References _prevse, and TinyEvent::deltaBX().

Referenced by EventWithHistoryFilter::is_selected().

203  {
204 
205  if(ev2==ev1) return 0;
206 
207  if(ev2<ev1 && ev1<=_prevse.size()) {
208  if(ev2==0) return TinyEvent::deltaBX(_prevse[ev1-1]);
209  return _prevse[ev2-1].deltaBX(_prevse[ev1-1]);
210  }
211 
212  return -1;
213 }
std::vector< TinyEvent > _prevse
long long deltaBX(const TinyEvent &se) const
Definition: TinyEvent.h:69
long long EventWithHistory::deltaBX ( const unsigned int  ev1) const

Definition at line 215 of file EventWithHistory.cc.

References deltaBX().

215 { return deltaBX(0,ev1); }
long long deltaBX() const
long long EventWithHistory::deltaBX ( ) const

Definition at line 217 of file EventWithHistory.cc.

Referenced by deltaBX(), and EventWithHistory().

217 { return deltaBX(0,1); }
long long deltaBX() const
long long EventWithHistory::deltaBX ( const TinyEvent se) const

Definition at line 219 of file EventWithHistory.cc.

References TinyEvent::deltaBX().

219  {
220 
221  return TinyEvent::deltaBX(se);
222 
223 }
long long deltaBX(const TinyEvent &se) const
Definition: TinyEvent.h:69
long long EventWithHistory::deltaBXinCycle ( const unsigned int  ev2,
const unsigned int  ev1,
const int  bx0 
) const

Definition at line 255 of file EventWithHistory.cc.

References _prevse, and TinyEvent::deltaBXinCycle().

Referenced by deltaBXinCycle(), and EventWithHistoryFilter::is_selected().

255  {
256 
257  if(ev2==ev1 && ev1<=_prevse.size()) {
258  if(ev2==0) return TinyEvent::deltaBXinCycle(*this,bx0);
259  return _prevse[ev2-1].deltaBXinCycle(_prevse[ev1-1],bx0);
260  }
261 
262  if(ev2<ev1 && ev1<=_prevse.size()) {
263  if(ev2==0) return TinyEvent::deltaBXinCycle(_prevse[ev1-1],bx0);
264  return _prevse[ev2-1].deltaBXinCycle(_prevse[ev1-1],bx0);
265  }
266 
267  return -1;
268 }
std::vector< TinyEvent > _prevse
long long deltaBXinCycle(const TinyEvent &se, const int bx0) const
Definition: TinyEvent.h:79
long long EventWithHistory::deltaBXinCycle ( const unsigned int  ev1,
const int  bx0 
) const

Definition at line 270 of file EventWithHistory.cc.

References deltaBXinCycle().

270  {
271  return deltaBXinCycle(0,ev1,bx0);
272 }
long long deltaBXinCycle(const unsigned int ev2, const unsigned int ev1, const int bx0) const
long long EventWithHistory::deltaBXinCycle ( const int  bx0) const

Definition at line 274 of file EventWithHistory.cc.

References deltaBXinCycle().

274  {
275  return deltaBXinCycle(0,1,bx0);
276 }
long long deltaBXinCycle(const unsigned int ev2, const unsigned int ev1, const int bx0) const
long long EventWithHistory::deltaBXinCycle ( const TinyEvent se,
const int  bx0 
) const

Definition at line 278 of file EventWithHistory.cc.

References TinyEvent::deltaBXinCycle().

278  {
279 
280  return TinyEvent::deltaBXinCycle(se,bx0);
281 
282 }
long long deltaBXinCycle(const TinyEvent &se, const int bx0) const
Definition: TinyEvent.h:79
unsigned int EventWithHistory::depth ( void  ) const

Definition at line 195 of file EventWithHistory.cc.

References _prevse.

Referenced by add(), EventWithHistoryFilter::is_selected(), isFutureHistory(), and operator==().

195 { return _prevse.size(); }
std::vector< TinyEvent > _prevse
const edm::EventNumber_t EventWithHistory::event ( ) const

Definition at line 183 of file EventWithHistory.cc.

References TinyEvent::_event.

Referenced by Types.EventID::cppID(), core.AutoHandle.AutoHandle::Load(), and core.AutoHandle.AutoHandle::product().

183 { return TinyEvent::_event; }
edm::EventNumber_t _event
Definition: TinyEvent.h:87
const TinyEvent * EventWithHistory::get ( const unsigned int  ev) const
bool EventWithHistory::isFutureHistory ( ) const

Definition at line 197 of file EventWithHistory.cc.

References _prevse, depth(), and TinyEvent::isNextOf().

Referenced by add().

197  {
198 
199  return (depth()>0 && _prevse[0].isNextOf(*this));
200 
201 }
unsigned int depth() const
std::vector< TinyEvent > _prevse
int isNextOf(const TinyEvent &se) const
Definition: TinyEvent.h:51
EventWithHistory & EventWithHistory::operator= ( const EventWithHistory he)

Definition at line 112 of file EventWithHistory.cc.

References _prevse, and TinyEvent::operator=().

112  {
113 
114  if(this != &he) {
116  _prevse = he._prevse;
117  }
118  return *this;
119 }
std::vector< TinyEvent > _prevse
TinyEvent & operator=(const TinyEvent &se)
Definition: TinyEvent.h:29
int EventWithHistory::operator== ( const EventWithHistory other) const

Definition at line 123 of file EventWithHistory.cc.

References _prevse, depth(), cond::serialization::equal(), i, and TinyEvent::operator==().

123  {
124 
125  int equal = TinyEvent::operator==(other);
126 
127  // depth is not checked anymore
128 
129  // equal = equal && (depth() == other.depth());
130 
131  if(equal) {
132  for(unsigned int i=0;i<((depth()<other.depth())?depth():other.depth());i++) {
133  equal = equal && (_prevse[i] == other._prevse[i]);
134  }
135  }
136 
137  return equal;
138 }
unsigned int depth() const
int i
Definition: DBlmapReader.cc:9
bool equal(const T &first, const T &second)
Definition: Equal.h:34
std::vector< TinyEvent > _prevse
int operator==(const TinyEvent &other) const
Definition: TinyEvent.h:45
const unsigned int EventWithHistory::orbit ( ) const

Definition at line 184 of file EventWithHistory.cc.

References TinyEvent::_orbit.

184 { return TinyEvent::_orbit; }
unsigned int _orbit
Definition: TinyEvent.h:88

Member Data Documentation

std::vector<TinyEvent> EventWithHistory::_prevse
private