Skip to content

Commit

Permalink
Merge pull request #13285 from cms-l1t-offline/l1t-hlt-wseeds-80x-pass2
Browse files Browse the repository at this point in the history
Updates to the new HLT L1T Seeds Module for 2016 (pass2)
  • Loading branch information
davidlange6 committed Feb 16, 2016
2 parents c717884 + 6e750a3 commit 4221a91
Show file tree
Hide file tree
Showing 18 changed files with 1,304 additions and 324 deletions.
109 changes: 104 additions & 5 deletions DataFormats/HLTReco/interface/TriggerEventWithRefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,22 @@ namespace trigger
size_type pfjets_;
size_type pftaus_;
size_type pfmets_;
size_type l1tmuon_;
size_type l1tegamma_;
size_type l1tjet_;
size_type l1ttau_;
size_type l1tetsum_;

/// constructor
TriggerFilterObject() :
filterTag_(),
photons_(0), electrons_(0), muons_(0), jets_(0), composites_(0), basemets_(0), calomets_(0), pixtracks_(0), l1em_(0), l1muon_(0), l1jet_(0), l1etmiss_(0), l1hfrings_(0), pfjets_(0), pftaus_(0), pfmets_(0) {
photons_(0), electrons_(0), muons_(0), jets_(0), composites_(0), basemets_(0), calomets_(0), pixtracks_(0), l1em_(0), l1muon_(0), l1jet_(0), l1etmiss_(0), l1hfrings_(0), pfjets_(0), pftaus_(0), pfmets_(0), l1tmuon_(0), l1tegamma_(0), l1tjet_(0), l1ttau_(0), l1tetsum_(0) {
filterTag_=edm::InputTag().encode();
}
TriggerFilterObject(const edm::InputTag& filterTag,
size_type np, size_type ne, size_type nm, size_type nj, size_type nc, size_type nB, size_type nC, size_type nt, size_type l1em, size_type l1muon, size_type l1jet, size_type l1etmiss, size_type l1hfrings, size_type pfjets, size_type pftaus, size_type pfmets) :
size_type np, size_type ne, size_type nm, size_type nj, size_type nc, size_type nB, size_type nC, size_type nt, size_type l1em, size_type l1muon, size_type l1jet, size_type l1etmiss, size_type l1hfrings, size_type pfjets, size_type pftaus, size_type pfmets, size_type l1tmuon, size_type l1tegamma, size_type l1tjet, size_type l1ttau, size_type l1tetsum) :
filterTag_(filterTag.encode()),
photons_(np), electrons_(ne), muons_(nm), jets_(nj), composites_(nc), basemets_(nB), calomets_(nC), pixtracks_(nt), l1em_(l1em), l1muon_(l1muon), l1jet_(l1jet), l1etmiss_(l1etmiss), l1hfrings_(l1hfrings), pfjets_(pfjets), pftaus_(pftaus), pfmets_(pfmets) { }
photons_(np), electrons_(ne), muons_(nm), jets_(nj), composites_(nc), basemets_(nB), calomets_(nC), pixtracks_(nt), l1em_(l1em), l1muon_(l1muon), l1jet_(l1jet), l1etmiss_(l1etmiss), l1hfrings_(l1hfrings), pfjets_(pfjets), pftaus_(pftaus), pfmets_(pfmets), l1tmuon_(l1tmuon), l1tegamma_(l1tegamma), l1tjet_(l1tjet), l1ttau_(l1ttau), l1tetsum_(l1tetsum) { }
};

/// data members
Expand All @@ -87,7 +92,9 @@ namespace trigger

/// setters - to build EDProduct
void addFilterObject(const edm::InputTag& filterTag, const TriggerFilterObjectWithRefs& tfowr) {

filterObjects_.push_back(

TriggerFilterObject(filterTag,
addObjects(tfowr.photonIds(),tfowr.photonRefs()),
addObjects(tfowr.electronIds(),tfowr.electronRefs()),
Expand All @@ -104,9 +111,16 @@ namespace trigger
addObjects(tfowr.l1hfringsIds(),tfowr.l1hfringsRefs()),
addObjects(tfowr.pfjetIds(),tfowr.pfjetRefs()),
addObjects(tfowr.pftauIds(),tfowr.pftauRefs()),
addObjects(tfowr.pfmetIds(),tfowr.pfmetRefs())
addObjects(tfowr.pfmetIds(),tfowr.pfmetRefs()),
addObjects(tfowr.l1tmuonIds(),tfowr.l1tmuonRefs()),
addObjects(tfowr.l1tegammaIds(),tfowr.l1tegammaRefs()),
addObjects(tfowr.l1tjetIds(),tfowr.l1tjetRefs()),
addObjects(tfowr.l1ttauIds(),tfowr.l1ttauRefs()),
addObjects(tfowr.l1tetsumIds(),tfowr.l1tetsumRefs())
)
);

);

}

/// getters - for user access
Expand Down Expand Up @@ -228,6 +242,36 @@ namespace trigger
return std::pair<size_type,size_type>(begin,end);
}

std::pair<size_type,size_type> l1tmuonSlice(size_type filter) const {
const size_type begin(filter==0? 0 : filterObjects_.at(filter-1).l1tmuon_);
const size_type end(filterObjects_.at(filter).l1tmuon_);
return std::pair<size_type,size_type>(begin,end);
}

std::pair<size_type,size_type> l1tegammaSlice(size_type filter) const {
const size_type begin(filter==0? 0 : filterObjects_.at(filter-1).l1tegamma_);
const size_type end(filterObjects_.at(filter).l1tegamma_);
return std::pair<size_type,size_type>(begin,end);
}

std::pair<size_type,size_type> l1tjetSlice(size_type filter) const {
const size_type begin(filter==0? 0 : filterObjects_.at(filter-1).l1tjet_);
const size_type end(filterObjects_.at(filter).l1tjet_);
return std::pair<size_type,size_type>(begin,end);
}

std::pair<size_type,size_type> l1ttauSlice(size_type filter) const {
const size_type begin(filter==0? 0 : filterObjects_.at(filter-1).l1ttau_);
const size_type end(filterObjects_.at(filter).l1ttau_);
return std::pair<size_type,size_type>(begin,end);
}

std::pair<size_type,size_type> l1tetsumSlice(size_type filter) const {
const size_type begin(filter==0? 0 : filterObjects_.at(filter-1).l1tetsum_);
const size_type end(filterObjects_.at(filter).l1tetsum_);
return std::pair<size_type,size_type>(begin,end);
}


/// extract Ref<C>s for a specific filter and of specific physics type

Expand Down Expand Up @@ -407,6 +451,61 @@ namespace trigger
TriggerRefsCollections::getObjects(id,pfmets,begin,end);
}

void getObjects(size_type filter, Vids& ids, VRl1tmuon& l1tmuon) const {
const size_type begin(l1tmuonSlice(filter).first);
const size_type end(l1tmuonSlice(filter).second);
TriggerRefsCollections::getObjects(ids,l1tmuon,begin,end);
}
void getObjects(size_type filter, int id, VRl1tmuon& l1tmuon) const {
const size_type begin(l1tmuonSlice(filter).first);
const size_type end(l1tmuonSlice(filter).second);
TriggerRefsCollections::getObjects(id,l1tmuon,begin,end);
}

void getObjects(size_type filter, Vids& ids, VRl1tegamma& l1tegamma) const {
const size_type begin(l1tegammaSlice(filter).first);
const size_type end(l1tegammaSlice(filter).second);
TriggerRefsCollections::getObjects(ids,l1tegamma,begin,end);
}
void getObjects(size_type filter, int id, VRl1tegamma& l1tegamma) const {
const size_type begin(l1tegammaSlice(filter).first);
const size_type end(l1tegammaSlice(filter).second);
TriggerRefsCollections::getObjects(id,l1tegamma,begin,end);
}

void getObjects(size_type filter, Vids& ids, VRl1tjet& l1tjet) const {
const size_type begin(l1tjetSlice(filter).first);
const size_type end(l1tjetSlice(filter).second);
TriggerRefsCollections::getObjects(ids,l1tjet,begin,end);
}
void getObjects(size_type filter, int id, VRl1tjet& l1tjet) const {
const size_type begin(l1tjetSlice(filter).first);
const size_type end(l1tjetSlice(filter).second);
TriggerRefsCollections::getObjects(id,l1tjet,begin,end);
}

void getObjects(size_type filter, Vids& ids, VRl1ttau& l1ttau) const {
const size_type begin(l1ttauSlice(filter).first);
const size_type end(l1ttauSlice(filter).second);
TriggerRefsCollections::getObjects(ids,l1ttau,begin,end);
}
void getObjects(size_type filter, int id, VRl1ttau& l1ttau) const {
const size_type begin(l1ttauSlice(filter).first);
const size_type end(l1ttauSlice(filter).second);
TriggerRefsCollections::getObjects(id,l1ttau,begin,end);
}

void getObjects(size_type filter, Vids& ids, VRl1tetsum& l1tetsum) const {
const size_type begin(l1tetsumSlice(filter).first);
const size_type end(l1tetsumSlice(filter).second);
TriggerRefsCollections::getObjects(ids,l1tetsum,begin,end);
}
void getObjects(size_type filter, int id, VRl1tetsum& l1tetsum) const {
const size_type begin(l1tetsumSlice(filter).first);
const size_type end(l1tetsumSlice(filter).second);
TriggerRefsCollections::getObjects(id,l1tetsum,begin,end);
}

};

}
Expand Down
106 changes: 100 additions & 6 deletions DataFormats/HLTReco/interface/TriggerRefsCollections.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@
#include "DataFormats/JetReco/interface/PFJetCollection.h"
#include "DataFormats/TauReco/interface/PFTauFwd.h"

#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/MessageLogger/interface/MessageDrop.h"

#include <cassert>
#include <vector>

Expand Down Expand Up @@ -191,11 +194,16 @@ namespace trigger
std::swap(l1hfringsIds_, other.l1hfringsIds_);
std::swap(l1hfringsRefs_, other.l1hfringsRefs_);

std::swap(l1tmuonIds_, other.l1tmuonIds_);
std::swap(l1tegammaIds_, other.l1tegammaIds_);
std::swap(l1tjetIds_, other.l1tjetIds_);
std::swap(l1ttauIds_, other.l1ttauIds_);
std::swap(l1tetsumIds_, other.l1tetsumIds_);
std::swap(l1tmuonIds_, other.l1tmuonIds_);
std::swap(l1tmuonRefs_, other.l1tmuonRefs_);
std::swap(l1tegammaIds_, other.l1tegammaIds_);
std::swap(l1tegammaRefs_, other.l1tegammaRefs_);
std::swap(l1tjetIds_, other.l1tjetIds_);
std::swap(l1tjetRefs_, other.l1tjetRefs_);
std::swap(l1ttauIds_, other.l1ttauIds_);
std::swap(l1ttauRefs_, other.l1ttauRefs_);
std::swap(l1tetsumIds_, other.l1tetsumIds_);
std::swap(l1tetsumRefs_, other.l1tetsumRefs_);

std::swap(pfjetIds_, other.pfjetIds_);
std::swap(pfjetRefs_, other.pfjetRefs_);
Expand Down Expand Up @@ -838,6 +846,23 @@ namespace trigger
}
return;
}

void getObjects(Vids& ids, VRl1tmuon& refs) const {
getObjects(ids,refs,0,l1tmuonIds_.size());
}
void getObjects(Vids& ids, VRl1tmuon& refs, size_type begin, size_type end) const {
assert (begin<=end);
assert (end<=l1tmuonIds_.size());
const size_type n(end-begin);
ids.resize(n);
refs.resize(n);
size_type j(0);
for (size_type i=begin; i!=end; ++i) {
ids[j]=l1tmuonIds_[i];
refs[j]=l1tmuonRefs_[i];
++j;
}
}
void getObjects(int id, VRl1tmuon& refs) const {
getObjects(id,refs,0,l1tmuonIds_.size());
}
Expand All @@ -853,6 +878,23 @@ namespace trigger
}
return;
}

void getObjects(Vids& ids, VRl1tegamma& refs) const {
getObjects(ids,refs,0,l1tegammaIds_.size());
}
void getObjects(Vids& ids, VRl1tegamma& refs, size_type begin, size_type end) const {
assert (begin<=end);
assert (end<=l1tegammaIds_.size());
const size_type n(end-begin);
ids.resize(n);
refs.resize(n);
size_type j(0);
for (size_type i=begin; i!=end; ++i) {
ids[j]=l1tegammaIds_[i];
refs[j]=l1tegammaRefs_[i];
++j;
}
}
void getObjects(int id, VRl1tegamma& refs) const {
getObjects(id,refs,0,l1tegammaIds_.size());
}
Expand All @@ -868,6 +910,23 @@ namespace trigger
}
return;
}

void getObjects(Vids& ids, VRl1tjet& refs) const {
getObjects(ids,refs,0,l1tjetIds_.size());
}
void getObjects(Vids& ids, VRl1tjet& refs, size_type begin, size_type end) const {
assert (begin<=end);
assert (end<=l1tjetIds_.size());
const size_type n(end-begin);
ids.resize(n);
refs.resize(n);
size_type j(0);
for (size_type i=begin; i!=end; ++i) {
ids[j]=l1tjetIds_[i];
refs[j]=l1tjetRefs_[i];
++j;
}
}
void getObjects(int id, VRl1tjet& refs) const {
getObjects(id,refs,0,l1tjetIds_.size());
}
Expand All @@ -883,6 +942,23 @@ namespace trigger
}
return;
}

void getObjects(Vids& ids, VRl1ttau& refs) const {
getObjects(ids,refs,0,l1ttauIds_.size());
}
void getObjects(Vids& ids, VRl1ttau& refs, size_type begin, size_type end) const {
assert (begin<=end);
assert (end<=l1ttauIds_.size());
const size_type n(end-begin);
ids.resize(n);
refs.resize(n);
size_type j(0);
for (size_type i=begin; i!=end; ++i) {
ids[j]=l1ttauIds_[i];
refs[j]=l1ttauRefs_[i];
++j;
}
}
void getObjects(int id, VRl1ttau& refs) const {
getObjects(id,refs,0,l1ttauIds_.size());
}
Expand All @@ -898,6 +974,23 @@ namespace trigger
}
return;
}

void getObjects(Vids& ids, VRl1tetsum& refs) const {
getObjects(ids,refs,0,l1tetsumIds_.size());
}
void getObjects(Vids& ids, VRl1tetsum& refs, size_type begin, size_type end) const {
assert (begin<=end);
assert (end<=l1tetsumIds_.size());
const size_type n(end-begin);
ids.resize(n);
refs.resize(n);
size_type j(0);
for (size_type i=begin; i!=end; ++i) {
ids[j]=l1tetsumIds_[i];
refs[j]=l1tetsumRefs_[i];
++j;
}
}
void getObjects(int id, VRl1tetsum& refs) const {
getObjects(id,refs,0,l1tetsumIds_.size());
}
Expand All @@ -913,6 +1006,7 @@ namespace trigger
}
return;
}

void getObjects(Vids& ids, VRpfjet& refs) const {
getObjects(ids,refs,0,pfjetIds_.size());
}
Expand Down Expand Up @@ -1088,7 +1182,7 @@ namespace trigger

size_type l1ttauSize() const {return l1ttauIds_.size();}
const Vids& l1ttauIds() const {return l1ttauIds_;}
const VRl1ttau& l1ttauRefs() const {return l1ttauRefs_;}
const VRl1ttau& l1ttauRefs() const {return l1ttauRefs_;}

size_type l1tetsumSize() const {return l1tetsumIds_.size();}
const Vids& l1tetsumIds() const {return l1tetsumIds_;}
Expand Down
3 changes: 2 additions & 1 deletion DataFormats/HLTReco/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@
<version ClassVersion="11" checksum="3351458717"/>
<version ClassVersion="10" checksum="1112210423"/>
</class>
<class name="trigger::TriggerEventWithRefs::TriggerFilterObject" ClassVersion="13">
<class name="trigger::TriggerEventWithRefs::TriggerFilterObject" ClassVersion="14">
<version ClassVersion="14" checksum="1673531968"/>
<version ClassVersion="13" checksum="1672519577"/>
<version ClassVersion="12" checksum="2301242282"/>
</class>
Expand Down
7 changes: 7 additions & 0 deletions DataFormats/L1Trigger/interface/BXVector.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ class BXVector {
// get N objects for a given BX
unsigned size( int bx ) const;

// get N objects for all BXs together
unsigned size( ) const { return data_.size();}

// add element with given BX index
void push_back( int bx, T object );

Expand Down Expand Up @@ -96,6 +99,10 @@ class BXVector {
//int bx(const_iterator & iter) const; (potentially useful)
unsigned int key(const_iterator & iter) const { return iter - begin(); }

// array subscript operator (incited by TriggerSummaryProducerAOD::fillTriggerObject...)
T& operator[](std::size_t i) { return data_[i]; }
const T& operator[](std::size_t i) const { return data_[i]; }


private:

Expand Down

0 comments on commit 4221a91

Please sign in to comment.