24 for(std::vector<edm::EventAuxiliary>::const_reverse_iterator eaux=veaux.rbegin();eaux!=veaux.rend();eaux++) {
25 if(eaux!=veaux.rbegin()) {
32 const long long orbitoffset,
const int bxoffset):
36 std::map<int,TinyEvent> tmpmap;
38 for(L1AcceptBunchCrossingCollection::const_iterator l1abc=l1abcc.begin();l1abc!=l1abcc.end();++l1abc) {
39 if(event.
id().
event() > (
unsigned int)(-1*l1abc->l1AcceptOffset()) ) {
40 unsigned int 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;
54 if(l1abc->eventType()!=0) {
56 tmpmap[l1abc->l1AcceptOffset()]=tmpse;
59 edm::LogWarning(
"L1AcceptBunchCrossingNoType") <<
"L1AcceptBunchCrossing with no type found: ";
60 for(L1AcceptBunchCrossingCollection::const_iterator debu=l1abcc.begin();debu!=l1abcc.end();++debu) {
66 edm::LogError(
"L1AcceptBunchCrossingOffsetTooLarge") <<
" Too large orbit offset "
68 << l1abc->orbitNumber();
72 edm::LogInfo(
"L1AcceptBunchCrossingNegativeEvent") <<
"L1AcceptBunchCrossing with negative event: ";
73 for(L1AcceptBunchCrossingCollection::const_iterator debu=l1abcc.begin();debu!=l1abcc.end();++debu) {
79 if(tmpmap.find(0)!=tmpmap.end()) {
87 while(tmpmap.find(counter)!=tmpmap.end()) {
89 if(tmpmap[counter+1].
deltaBX(tmpmap[counter]) > 0) {
90 _prevse.push_back(tmpmap[counter]);
94 edm::LogWarning(
"L1AcceptBunchCrossingNotInOrder") <<
"L1AcceptBunchCrossing not in order: ";
95 for(L1AcceptBunchCrossingCollection::const_iterator debu=l1abcc.begin();debu!=l1abcc.end();++debu) {
104 edm::LogWarning(
"L1AcceptBunchCrossingNoCollection") <<
" L1AcceptBunchCrossing with offset=0 not found "
105 <<
" likely L1ABCCollection is empty ";
144 for(std::vector<TinyEvent>::const_iterator
ev=he._prevse.begin();
ev!=he._prevse.end();
ev++) {
145 if(!
add(*
ev,idepth))
return 0;
152 bool isfuture = (idepth <0);
153 const unsigned int adepth =
abs(idepth);
159 if(adepth==0)
return 0;
160 if(
_prevse.size()>= adepth)
return 0;
189 if(ev==0)
return this;
205 if(ev2==ev1)
return 0;
207 if(ev2<ev1 && ev1<=
_prevse.size()) {
257 if(ev2==ev1 && ev1<=
_prevse.size()) {
262 if(ev2<ev1 && ev1<=
_prevse.size()) {
unsigned int depth() const
long long absoluteBXinCycle(const int bx0) const
EventNumber_t event() const
long long deltaBX() const
const unsigned int orbit() const
const TinyEvent * get(const unsigned int ev) const
long long absoluteBXinCycle(const unsigned int ev1, const int bx0) const
bool equal(const T &first, const T &second)
std::vector< TinyEvent > _prevse
Abs< T >::type abs(const T &t)
std::vector< L1AcceptBunchCrossing > L1AcceptBunchCrossingCollection
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
int add(const EventWithHistory &he, const int idepth)
TinyEvent & operator=(const TinyEvent &se)
long long absoluteBX() const
long long deltaBX(const TinyEvent &se) const
int isNextOf(const TinyEvent &se) const
long long deltaBXinCycle(const unsigned int ev2, const unsigned int ev1, const int bx0) const
bool isFutureHistory() const
long long absoluteBX() const
static std::atomic< unsigned int > counter
EventWithHistory & operator=(const EventWithHistory &he)
const unsigned int event() const
int operator==(const TinyEvent &other) const
int operator==(const EventWithHistory &other) const
tuple size
Write out results.
long long deltaBXinCycle(const TinyEvent &se, const int bx0) const