Templated PAT object container. More...
#include <DataFormats/PatCandidates/interface/PATObject.h>
Public Types | |
typedef ObjectType | base_type |
Public Member Functions | |
void | addGenParticleRef (const reco::GenParticleRef &ref) |
void | addTriggerObjectMatch (const TriggerObjectStandAlone &trigObj) |
add a trigger match | |
void | addUserCand (const std::string &label, const reco::CandidatePtr &data) |
Set user-defined int. | |
template<typename T > | |
void | addUserData (const std::string &label, const T &data, bool transientOnly=false) |
void | addUserDataFromPtr (const std::string &label, const edm::Ptr< pat::UserData > &data) |
void | addUserFloat (const std::string &label, float data) |
Set user-defined float. | |
void | addUserInt (const std::string &label, int32_t data) |
Set user-defined int. | |
std::vector< std::pair < std::string, pat::LookupTableRecord > > | efficiencies () const |
Returns the efficiencies as <name,value> pairs (by value) | |
const pat::LookupTableRecord & | efficiency (const std::string &name) const |
Returns an efficiency given its name. | |
const std::vector< std::string > & | efficiencyNames () const |
Returns the list of the names of the stored efficiencies. | |
const std::vector < pat::LookupTableRecord > & | efficiencyValues () const |
Returns the list of the values of the stored efficiencies (the ordering is the same as in efficiencyNames()) | |
void | embedGenParticle () |
const reco::GenParticle * | genParticle (size_t idx=0) const |
reco::GenParticleRef | genParticleById (int pdgId, int status, uint8_t autoCharge=0) const |
reco::GenParticleRef | genParticleRef (size_t idx=0) const |
std::vector< reco::GenParticleRef > | genParticleRefs () const |
size_t | genParticlesSize () const |
Number of generator level particles stored as ref or embedded. | |
const pat::CandKinResolution & | getKinResolution (const std::string &label="") const |
bool | hasKinResolution (const std::string &label="") const |
Check if the kinematic resolutions are stored into this object (possibly specifying a label for them) | |
bool | hasOverlaps (const std::string &label) const |
Returns true if there was at least one overlap for this test label. | |
bool | hasUserCand (const std::string &key) const |
Return true if there is a user-defined int with a given name. | |
bool | hasUserData (const std::string &key) const |
Check if user data with a specific type is present. | |
bool | hasUserFloat (const std::string &key) const |
Return true if there is a user-defined float with a given name. | |
bool | hasUserInt (const std::string &key) const |
Return true if there is a user-defined int with a given name. | |
const reco::Candidate * | originalObject () const |
access to the original object; returns zero for null Ref and throws for unavailable collection | |
const edm::Ptr< reco::Candidate > & | originalObjectRef () const |
reference to original object. Returns a null reference if not available | |
const std::vector< std::string > & | overlapLabels () const |
Returns the labels of the overlap tests that found at least one overlap. | |
const reco::CandidatePtrVector & | overlaps (const std::string &label) const |
PATObject (const edm::Ptr< ObjectType > &ref) | |
constructor from reference | |
PATObject (const ObjectType &obj) | |
constructor from a base object (leaves invalid reference to original object!) | |
PATObject (const edm::RefToBase< ObjectType > &ref) | |
constructor from reference | |
PATObject () | |
default constructor | |
double | resolE (const std::string &label="") const |
Resolution on energy, possibly with a label to specify which resolution to use. | |
double | resolEt (const std::string &label="") const |
Resolution on et, possibly with a label to specify which resolution to use. | |
double | resolEta (const std::string &label="") const |
Resolution on eta, possibly with a label to specify which resolution to use. | |
double | resolM (const std::string &label="") const |
double | resolP (const std::string &label="") const |
Resolution on p, possibly with a label to specify which resolution to use. | |
double | resolPhi (const std::string &label="") const |
Resolution on phi, possibly with a label to specify which resolution to use. | |
double | resolPInv (const std::string &label="") const |
Resolution on 1/p, possibly with a label to specify which resolution to use. | |
double | resolPt (const std::string &label="") const |
Resolution on pt, possibly with a label to specify which resolution to use. | |
double | resolPx (const std::string &label="") const |
Resolution on px, possibly with a label to specify which resolution to use. | |
double | resolPy (const std::string &label="") const |
Resolution on py, possibly with a label to specify which resolution to use. | |
double | resolPz (const std::string &label="") const |
Resolution on pz, possibly with a label to specify which resolution to use. | |
double | resolTheta (const std::string &label="") const |
Resolution on theta, possibly with a label to specify which resolution to use. | |
void | setEfficiency (const std::string &name, const pat::LookupTableRecord &value) |
void | setGenParticle (const reco::GenParticle &particle) |
Set the generator level particle from a particle not in the Event (embedding it, of course) | |
void | setGenParticleRef (const reco::GenParticleRef &ref, bool embed=false) |
Set the generator level particle reference. | |
void | setKinResolution (const pat::CandKinResolution &resol, const std::string &label="") |
Add a kinematic resolution to this object (possibly with a label) | |
void | setOverlaps (const std::string &label, const reco::CandidatePtrVector &overlaps) |
const TriggerObjectStandAlone * | triggerObjectMatch (const size_t idx=0) const |
get one matched trigger object by index | |
const TriggerObjectStandAlone * | triggerObjectMatchByAlgorithm (const std::string &nameAlgorithm, const bool algoCondAccepted=true, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByAlgorithm (const char *nameAlgorithm, const bool algoCondAccepted=true, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByAlgorithm (const std::string &nameAlgorithm, const unsigned algoCondAccepted, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByAlgorithm (const char *nameAlgorithm, const unsigned algoCondAccepted, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByCollection (const std::string &coll, const size_t idx=0) const |
get one matched trigger object from a certain collection by index | |
const TriggerObjectStandAlone * | triggerObjectMatchByCollection (const char *coll, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByCondition (const std::string &nameCondition, const size_t idx=0) const |
get one matched L1 object used in a succeeding object combination of a certain L1 condition by index | |
const TriggerObjectStandAlone * | triggerObjectMatchByCondition (const char *nameCondition, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByFilter (const std::string &labelFilter, const size_t idx=0) const |
get one matched HLT object used in a certain HLT filter by index | |
const TriggerObjectStandAlone * | triggerObjectMatchByFilter (const char *labelFilter, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByFilterID (const unsigned triggerObjectType, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByPath (const std::string &namePath, const bool pathLastFilterAccepted=true, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByPath (const char *namePath, const bool pathLastFilterAccepted=true, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByPath (const std::string &namePath, const unsigned pathLastFilterAccepted, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByPath (const char *namePath, const unsigned pathLastFilterAccepted, const size_t idx=0) const |
const TriggerObjectStandAlone * | triggerObjectMatchByType (const trigger::TriggerObjectType triggerObjectType, const size_t idx=0) const |
get one matched trigger object of a certain type by index | |
const TriggerObjectStandAlone * | triggerObjectMatchByType (const unsigned triggerObjectType, const size_t idx=0) const |
const TriggerObjectStandAloneCollection & | triggerObjectMatches () const |
get all matched trigger objects | |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByAlgorithm (const std::string &nameAlgorithm, const unsigned algoCondAccepted) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByAlgorithm (const std::string &nameAlgorithm, const bool algoCondAccepted=true) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByAlgorithm (const char *nameAlgorithm, const bool algoCondAccepted=true) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByAlgorithm (const char *nameAlgorithm, const unsigned algoCondAccepted) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByCollection (const std::string &coll) const |
get all matched trigger objects from a certain collection | |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByCollection (const char *coll) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByCondition (const std::string &nameCondition) const |
get all matched L1 objects used in a succeeding object combination of a certain L1 condition | |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByCondition (const char *nameCondition) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByFilter (const char *labelFilter) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByFilter (const std::string &labelFilter) const |
get all matched HLT objects used in a certain HLT filter | |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByFilterID (const unsigned triggerObjectType) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByPath (const char *namePath, const bool pathLastFilterAccepted=true) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByPath (const std::string &namePath, const unsigned pathLastFilterAccepted) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByPath (const std::string &namePath, const bool pathLastFilterAccepted=true) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByPath (const char *namePath, const unsigned pathLastFilterAccepted) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByType (const trigger::TriggerObjectType triggerObjectType) const |
const TriggerObjectStandAloneCollection | triggerObjectMatchesByType (const unsigned triggerObjectType) const |
reco::CandidatePtr | userCand (const std::string &key) const |
const std::vector< std::string > & | userCandNames () const |
Get list of user-defined cand names. | |
template<typename T > | |
const T * | userData (const std::string &key) const |
Returns user-defined data. Returns NULL if the data is not present, or not of type T. | |
const void * | userDataBare (const std::string &key) const |
const std::vector< std::string > & | userDataNames () const |
Get list of user data object names. | |
const std::string & | userDataObjectType (const std::string &key) const |
Get human-readable type of user data object, for debugging. | |
float | userFloat (const std::string &key) const |
const std::vector< std::string > & | userFloatNames () const |
Get list of user-defined float names. | |
int32_t | userInt (const std::string &key) const |
const std::vector< std::string > & | userIntNames () const |
Get list of user-defined int names. | |
virtual | ~PATObject () |
destructor | |
Protected Attributes | |
std::vector< std::string > | efficiencyNames_ |
vector of the efficiencies (names) | |
std::vector < pat::LookupTableRecord > | efficiencyValues_ |
vector of the efficiencies (values) | |
std::vector< reco::GenParticle > | genParticleEmbedded_ |
vector to hold an embedded generator level particle | |
std::vector< reco::GenParticleRef > | genParticleRef_ |
Reference to a generator level particle. | |
std::vector< std::string > | kinResolutionLabels_ |
std::vector < pat::CandKinResolution > | kinResolutions_ |
Kinematic resolutions. | |
std::vector < reco::CandidatePtrVector > | overlapItems_ |
Overlapping items (sorted by distance) | |
std::vector< std::string > | overlapLabels_ |
Overlapping test labels (only if there are any overlaps) | |
edm::Ptr< reco::Candidate > | refToOrig_ |
TriggerObjectStandAloneCollection | triggerObjectMatchesEmbedded_ |
vector of trigger matches | |
std::vector< std::string > | userCandLabels_ |
std::vector< reco::CandidatePtr > | userCands_ |
std::vector< std::string > | userDataLabels_ |
User data object. | |
pat::UserDataCollection | userDataObjects_ |
std::vector< std::string > | userFloatLabels_ |
std::vector< float > | userFloats_ |
std::vector< std::string > | userIntLabels_ |
std::vector< int32_t > | userInts_ |
Private Member Functions | |
const pat::UserData * | userDataObject_ (const std::string &key) const |
Templated PAT object container.
PATObject is the templated base PAT object that wraps around reco objects.
Please post comments and questions to the Physics Tools hypernews: https://hypernews.cern.ch/HyperNews/CMS/get/physTools.html
Definition at line 42 of file PATObject.h.
typedef ObjectType pat::PATObject< ObjectType >::base_type |
Definition at line 45 of file PATObject.h.
pat::PATObject< ObjectType >::PATObject | ( | ) |
pat::PATObject< ObjectType >::PATObject | ( | const ObjectType & | obj | ) |
constructor from a base object (leaves invalid reference to original object!)
Definition at line 441 of file PATObject.h.
: ObjectType(obj), refToOrig_() { }
pat::PATObject< ObjectType >::PATObject | ( | const edm::RefToBase< ObjectType > & | ref | ) |
constructor from reference
Definition at line 446 of file PATObject.h.
: ObjectType(*ref), refToOrig_(ref.id(), ref.get(), ref.key()) // correct way to convert RefToBase=>Ptr, if ref is guaranteed to be available // which happens to be true, otherwise the line before this throws ex. already { }
pat::PATObject< ObjectType >::PATObject | ( | const edm::Ptr< ObjectType > & | ref | ) |
constructor from reference
Definition at line 453 of file PATObject.h.
: ObjectType(*ref), refToOrig_(ref) { }
virtual pat::PATObject< ObjectType >::~PATObject | ( | ) | [inline, virtual] |
void pat::PATObject< ObjectType >::addGenParticleRef | ( | const reco::GenParticleRef & | ref | ) |
Add a generator level particle reference If there is already an embedded particle, this ref will be embedded too
Definition at line 649 of file PATObject.h.
References edm::Ref< C, T, F >::isNonnull().
Referenced by pat::PATElectronProducer::fillElectron(), pat::PATElectronProducer::fillElectron2(), pat::PATMuonProducer::fillMuon(), pat::PATPhotonProducer::produce(), pat::PATTauProducer::produce(), pat::PATPFParticleProducer::produce(), and pat::PATGenericParticleProducer::produce().
{ if (!genParticleEmbedded_.empty()) { // we're embedding if (ref.isNonnull()) genParticleEmbedded_.push_back(*ref); } else { genParticleRef_.push_back(ref); } }
void pat::PATObject< ObjectType >::addTriggerObjectMatch | ( | const TriggerObjectStandAlone & | trigObj | ) | [inline] |
add a trigger match
Definition at line 193 of file PATObject.h.
{ triggerObjectMatchesEmbedded_.push_back( trigObj ); };
void pat::PATObject< ObjectType >::addUserCand | ( | const std::string & | label, |
const reco::CandidatePtr & | data | ||
) |
Set user-defined int.
Definition at line 790 of file PATObject.h.
{ userCandLabels_.push_back(label); userCands_.push_back( data ); }
void pat::PATObject< ObjectType >::addUserData | ( | const std::string & | label, |
const T & | data, | ||
bool | transientOnly = false |
||
) | [inline] |
Set user-defined data Needs dictionaries for T and for pat::UserHolder<T>, and it will throw exception if they're missing, unless transientOnly is set to true
Definition at line 295 of file PATObject.h.
{ userDataLabels_.push_back(label); userDataObjects_.push_back(pat::UserData::make<T>(data, transientOnly)); }
void pat::PATObject< ObjectType >::addUserDataFromPtr | ( | const std::string & | label, |
const edm::Ptr< pat::UserData > & | data | ||
) | [inline] |
Set user-defined data. To be used only to fill from ValueMap<Ptr<UserData>> Do not use unless you know what you are doing.
Definition at line 302 of file PATObject.h.
{ userDataLabels_.push_back(label); userDataObjects_.push_back(data->clone()); }
void pat::PATObject< ObjectType >::addUserFloat | ( | const std::string & | label, |
float | data | ||
) |
Set user-defined float.
Definition at line 753 of file PATObject.h.
Referenced by ZMuMuUserDataOneTrack::produce(), ZMuMuUserData::produce(), ZMuMuTrackUserData::produce(), ZMuMuMuonUserData::produce(), and PatJPsiProducer::produce().
{ userFloatLabels_.push_back(label); userFloats_.push_back( data ); }
void pat::PATObject< ObjectType >::addUserInt | ( | const std::string & | label, |
int32_t | data | ||
) |
Set user-defined int.
std::vector< std::pair< std::string, pat::LookupTableRecord > > pat::PATObject< ObjectType >::efficiencies | ( | ) | const |
Returns the efficiencies as <name,value> pairs (by value)
Definition at line 616 of file PATObject.h.
References runTheMatrix::ret.
{ std::vector<std::pair<std::string,pat::LookupTableRecord> > ret; std::vector<std::string>::const_iterator itn = efficiencyNames_.begin(), edn = efficiencyNames_.end(); std::vector<pat::LookupTableRecord>::const_iterator itv = efficiencyValues_.begin(); for ( ; itn != edn; ++itn, ++itv) { ret.push_back( std::pair<std::string,pat::LookupTableRecord>(*itn, *itv) ); } return ret; }
const pat::LookupTableRecord & pat::PATObject< ObjectType >::efficiency | ( | const std::string & | name | ) | const |
Returns an efficiency given its name.
Definition at line 605 of file PATObject.h.
References Exception, and AlCaRecoCosmics_cfg::name.
{ // find the name in the (sorted) list of names std::vector<std::string>::const_iterator it = std::lower_bound(efficiencyNames_.begin(), efficiencyNames_.end(), name); if ((it == efficiencyNames_.end()) || (*it != name)) { throw cms::Exception("Invalid Label") << "There is no efficiency with name '" << name << "' in this PAT Object\n"; } return efficiencyValues_[it - efficiencyNames_.begin()]; }
const std::vector<std::string>& pat::PATObject< ObjectType >::efficiencyNames | ( | ) | const [inline] |
Returns the list of the names of the stored efficiencies.
Definition at line 200 of file PATObject.h.
{ return efficiencyNames_; }
const std::vector<pat::LookupTableRecord>& pat::PATObject< ObjectType >::efficiencyValues | ( | ) | const [inline] |
Returns the list of the values of the stored efficiencies (the ordering is the same as in efficiencyNames())
Definition at line 202 of file PATObject.h.
{ return efficiencyValues_; }
void pat::PATObject< ObjectType >::embedGenParticle | ( | ) |
Embed the generator level particle(s) in this PATObject Note that generator level particles can only be all embedded or all not embedded.
Definition at line 665 of file PATObject.h.
Referenced by pat::PATElectronProducer::fillElectron(), pat::PATElectronProducer::fillElectron2(), pat::PATMuonProducer::fillMuon(), pat::PATPhotonProducer::produce(), pat::PATTauProducer::produce(), pat::PATGenericParticleProducer::produce(), and pat::PATPFParticleProducer::produce().
{ genParticleEmbedded_.clear(); for (std::vector<reco::GenParticleRef>::const_iterator it = genParticleRef_.begin(); it != genParticleRef_.end(); ++it) { if (it->isNonnull()) genParticleEmbedded_.push_back(**it); } genParticleRef_.clear(); }
const reco::GenParticle* pat::PATObject< ObjectType >::genParticle | ( | size_t | idx = 0 | ) | const [inline] |
Get generator level particle, as C++ pointer (might be 0 if the ref was null) If you stored multiple GenParticles, you can specify which one you want.
Definition at line 229 of file PATObject.h.
Referenced by ZMuMu_Radiative_analyzer::analyze(), and gamma_radiative_analyzer::analyze().
{ reco::GenParticleRef ref = genParticleRef(idx); return ref.isNonnull() ? ref.get() : 0; }
reco::GenParticleRef pat::PATObject< ObjectType >::genParticleById | ( | int | pdgId, |
int | status, | ||
uint8_t | autoCharge = 0 |
||
) | const |
Get a generator level particle reference with a given pdg id and status If there is no MC match with that pdgId and status, it will return a null ref Note: this might be a transient ref if the genParticle was embedded If status == 0, only the pdgId will be checked; likewise, if pdgId == 0, only the status will be checked. When autoCharge is set to true, and a charged reco particle is matched to a charged gen particle, positive pdgId means 'same charge', negative pdgId means 'opposite charge'; for example, electron.genParticleById(11,0,true) will get an e^+ matched to e^+ or e^- matched to e^-, while genParticleById(-15,0,true) will get e^+ matched to e^- or vice versa. If a neutral reco particle is matched to a charged gen particle, the sign of the pdgId passed to getParticleById must match that of the gen particle; for example photon.getParticleById(11) will match gamma to e^-, while genParticleById(-11) will match gamma to e^+ (pdgId=-11)
Definition at line 684 of file PATObject.h.
References abs, reco::LeafCandidate::charge(), DeDxDiscriminatorTools::charge(), end, g, reco::LeafCandidate::pdgId(), ntuplemaker::status, and reco::LeafCandidate::status().
{ // get a vector, avoiding an unneeded copy if there is no embedding const std::vector<reco::GenParticleRef> & vec = (genParticleEmbedded_.empty() ? genParticleRef_ : genParticleRefs()); for (std::vector<reco::GenParticleRef>::const_iterator ref = vec.begin(), end = vec.end(); ref != end; ++ref) { if (ref->isNonnull()) { const reco::GenParticle & g = **ref; if ((status != 0) && (g.status() != status)) continue; if (pdgId == 0) { return *ref; } else if (!autoCharge) { if (pdgId == g.pdgId()) return *ref; } else if (abs(pdgId) == abs(g.pdgId())) { // I want pdgId > 0 to match "correct charge" (for charged particles) if (g.charge() == 0) return *ref; else if ((this->charge() == 0) && (pdgId == g.pdgId())) return *ref; else if (g.charge()*this->charge()*pdgId > 0) return *ref; } } } return reco::GenParticleRef(); }
reco::GenParticleRef pat::PATObject< ObjectType >::genParticleRef | ( | size_t | idx = 0 | ) | const [inline] |
Get generator level particle reference (might be a transient ref if the genParticle was embedded) If you stored multiple GenParticles, you can specify which one you want.
Definition at line 210 of file PATObject.h.
Referenced by DimuonStatistics::analyze(), pat::PATObject< reco::Muon >::genParticle(), and DimuonMCMatcher::produce().
{ if (idx >= genParticlesSize()) return reco::GenParticleRef(); return genParticleEmbedded_.empty() ? genParticleRef_[idx] : reco::GenParticleRef(&genParticleEmbedded_, idx); }
std::vector< reco::GenParticleRef > pat::PATObject< ObjectType >::genParticleRefs | ( | ) | const |
Return the list of generator level particles. Note that the refs can be transient refs to embedded GenParticles
Definition at line 674 of file PATObject.h.
References i, n, and runTheMatrix::ret.
Referenced by getGenTau().
{ if (genParticleEmbedded_.empty()) return genParticleRef_; std::vector<reco::GenParticleRef> ret(genParticleEmbedded_.size()); for (size_t i = 0, n = ret.size(); i < n; ++i) { ret[i] = reco::GenParticleRef(&genParticleEmbedded_, i); } return ret; }
size_t pat::PATObject< ObjectType >::genParticlesSize | ( | ) | const [inline] |
Number of generator level particles stored as ref or embedded.
Definition at line 234 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::genParticleRef().
{ return genParticleEmbedded_.empty() ? genParticleRef_.size() : genParticleEmbedded_.size(); }
const pat::CandKinResolution & pat::PATObject< ObjectType >::getKinResolution | ( | const std::string & | label = "" | ) | const |
Return the kinematic resolutions associated to this object, possibly specifying a label for it. If not present, it will throw an exception.
Definition at line 799 of file PATObject.h.
References Exception, spr::find(), label, and match().
Referenced by pat::PATObject< reco::Muon >::resolE(), pat::PATObject< reco::Muon >::resolEt(), pat::PATObject< reco::Muon >::resolEta(), pat::PATObject< reco::Muon >::resolM(), pat::PATObject< reco::Muon >::resolP(), pat::PATObject< reco::Muon >::resolPhi(), pat::PATObject< reco::Muon >::resolPInv(), pat::PATObject< reco::Muon >::resolPt(), pat::PATObject< reco::Muon >::resolPx(), pat::PATObject< reco::Muon >::resolPy(), pat::PATObject< reco::Muon >::resolPz(), and pat::PATObject< reco::Muon >::resolTheta().
{ if (label.empty()) { if (kinResolutionLabels_.size()+1 == kinResolutions_.size()) { return kinResolutions_[0]; } else { throw cms::Exception("Missing Data", "This object does not contain an un-labelled kinematic resolution"); } } else { std::vector<std::string>::const_iterator match = std::find(kinResolutionLabels_.begin(), kinResolutionLabels_.end(), label); if (match == kinResolutionLabels_.end()) { cms::Exception ex("Missing Data"); ex << "This object does not contain a kinematic resolution with name '" << label << "'.\n"; ex << "The known labels are: " ; for (std::vector<std::string>::const_iterator it = kinResolutionLabels_.begin(); it != kinResolutionLabels_.end(); ++it) { ex << "'" << *it << "' "; } ex << "\n"; throw ex; } else { if (kinResolutionLabels_.size()+1 == kinResolutions_.size()) { // skip un-labelled resolution return kinResolutions_[match - kinResolutionLabels_.begin() + 1]; } else { // all are labelled, so this is the real index return kinResolutions_[match - kinResolutionLabels_.begin()]; } } } }
bool pat::PATObject< ObjectType >::hasKinResolution | ( | const std::string & | label = "" | ) | const |
Check if the kinematic resolutions are stored into this object (possibly specifying a label for them)
Definition at line 830 of file PATObject.h.
References spr::find(), label, and match().
{ if (label.empty()) { return (kinResolutionLabels_.size()+1 == kinResolutions_.size()); } else { std::vector<std::string>::const_iterator match = std::find(kinResolutionLabels_.begin(), kinResolutionLabels_.end(), label); return match != kinResolutionLabels_.end(); } }
bool pat::PATObject< ObjectType >::hasOverlaps | ( | const std::string & | label | ) | const |
Returns true if there was at least one overlap for this test label.
Definition at line 707 of file PATObject.h.
References spr::find(), and label.
{ return std::find(overlapLabels_.begin(), overlapLabels_.end(), label) != overlapLabels_.end(); }
bool pat::PATObject< ObjectType >::hasUserCand | ( | const std::string & | key | ) | const [inline] |
Return true if there is a user-defined int with a given name.
Definition at line 338 of file PATObject.h.
{ return std::find(userCandLabels_.begin(), userCandLabels_.end(), key) != userCandLabels_.end(); }
bool pat::PATObject< ObjectType >::hasUserData | ( | const std::string & | key | ) | const [inline] |
Check if user data with a specific type is present.
Definition at line 271 of file PATObject.h.
{ return (userDataObject_(key) != 0); }
bool pat::PATObject< ObjectType >::hasUserFloat | ( | const std::string & | key | ) | const [inline] |
Return true if there is a user-defined float with a given name.
Definition at line 315 of file PATObject.h.
{ return std::find(userFloatLabels_.begin(), userFloatLabels_.end(), key) != userFloatLabels_.end(); }
bool pat::PATObject< ObjectType >::hasUserInt | ( | const std::string & | key | ) | const [inline] |
Return true if there is a user-defined int with a given name.
Definition at line 326 of file PATObject.h.
{ return std::find(userIntLabels_.begin(), userIntLabels_.end(), key) != userIntLabels_.end(); }
const reco::Candidate * pat::PATObject< ObjectType >::originalObject | ( | ) | const |
access to the original object; returns zero for null Ref and throws for unavailable collection
Definition at line 459 of file PATObject.h.
References Exception, and edm::errors::ProductNotFound.
{ if (refToOrig_.isNull()) { // this object was not produced from a reference, so no link to the // original object exists -> return a 0-pointer return 0; } else if (!refToOrig_.isAvailable()) { throw edm::Exception(edm::errors::ProductNotFound) << "The original collection from which this PAT object was made is not present any more in the event, hence you cannot access the originating object anymore."; } else { return refToOrig_.get(); } }
const edm::Ptr< reco::Candidate > & pat::PATObject< ObjectType >::originalObjectRef | ( | ) | const |
reference to original object. Returns a null reference if not available
Definition at line 472 of file PATObject.h.
{ return refToOrig_; }
const std::vector<std::string>& pat::PATObject< ObjectType >::overlapLabels | ( | ) | const [inline] |
Returns the labels of the overlap tests that found at least one overlap.
Definition at line 258 of file PATObject.h.
{ return overlapLabels_; }
const reco::CandidatePtrVector & pat::PATObject< ObjectType >::overlaps | ( | const std::string & | label | ) | const |
Return the list of overlaps for one label (can be empty) The original ordering of items is kept (usually it's by increasing deltaR from this item)
Definition at line 712 of file PATObject.h.
References evf::evt::EMPTY, spr::find(), label, and match().
{ static const reco::CandidatePtrVector EMPTY; std::vector<std::string>::const_iterator match = std::find(overlapLabels_.begin(), overlapLabels_.end(), label); if (match == overlapLabels_.end()) return EMPTY; return overlapItems_[match - overlapLabels_.begin()]; }
double pat::PATObject< ObjectType >::resolE | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on energy, possibly with a label to specify which resolution to use.
Definition at line 363 of file PATObject.h.
{ return getKinResolution(label).resolE(this->p4()); }
double pat::PATObject< ObjectType >::resolEt | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on et, possibly with a label to specify which resolution to use.
Definition at line 366 of file PATObject.h.
{ return getKinResolution(label).resolEt(this->p4()); }
double pat::PATObject< ObjectType >::resolEta | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on eta, possibly with a label to specify which resolution to use.
Definition at line 354 of file PATObject.h.
{ return getKinResolution(label).resolEta(this->p4()); }
double pat::PATObject< ObjectType >::resolM | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on mass, possibly with a label to specify which resolution to use Note: this will be zero if a mass-constrained parametrization is used for this object
Definition at line 388 of file PATObject.h.
{ return getKinResolution(label).resolM(this->p4()); }
double pat::PATObject< ObjectType >::resolP | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on p, possibly with a label to specify which resolution to use.
Definition at line 369 of file PATObject.h.
{ return getKinResolution(label).resolP(this->p4()); }
double pat::PATObject< ObjectType >::resolPhi | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on phi, possibly with a label to specify which resolution to use.
Definition at line 360 of file PATObject.h.
{ return getKinResolution(label).resolPhi(this->p4()); }
double pat::PATObject< ObjectType >::resolPInv | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on 1/p, possibly with a label to specify which resolution to use.
Definition at line 375 of file PATObject.h.
{ return getKinResolution(label).resolPInv(this->p4()); }
double pat::PATObject< ObjectType >::resolPt | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on pt, possibly with a label to specify which resolution to use.
Definition at line 372 of file PATObject.h.
{ return getKinResolution(label).resolPt(this->p4()); }
double pat::PATObject< ObjectType >::resolPx | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on px, possibly with a label to specify which resolution to use.
Definition at line 378 of file PATObject.h.
{ return getKinResolution(label).resolPx(this->p4()); }
double pat::PATObject< ObjectType >::resolPy | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on py, possibly with a label to specify which resolution to use.
Definition at line 381 of file PATObject.h.
{ return getKinResolution(label).resolPy(this->p4()); }
double pat::PATObject< ObjectType >::resolPz | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on pz, possibly with a label to specify which resolution to use.
Definition at line 384 of file PATObject.h.
{ return getKinResolution(label).resolPz(this->p4()); }
double pat::PATObject< ObjectType >::resolTheta | ( | const std::string & | label = "" | ) | const [inline] |
Resolution on theta, possibly with a label to specify which resolution to use.
Definition at line 357 of file PATObject.h.
{ return getKinResolution(label).resolTheta(this->p4()); }
void pat::PATObject< ObjectType >::setEfficiency | ( | const std::string & | name, |
const pat::LookupTableRecord & | value | ||
) |
Store one efficiency in this item, in addition to the existing ones If an efficiency with the same name exists, the old value is replaced by this one Calling this method many times with names not sorted alphabetically will be slow
Definition at line 627 of file PATObject.h.
References edm::eventsetup::heterocontainer::insert(), AlCaRecoCosmics_cfg::name, and relativeConstraints::value.
Referenced by pat::helper::EfficiencyLoader::setEfficiencies().
{ // look for the name, or to the place where we can insert it without violating the alphabetic order std::vector<std::string>::iterator it = std::lower_bound(efficiencyNames_.begin(), efficiencyNames_.end(), name); if (it == efficiencyNames_.end()) { // insert at the end efficiencyNames_.push_back(name); efficiencyValues_.push_back(value); } else if (*it == name) { // replace existing efficiencyValues_[it - efficiencyNames_.begin()] = value; } else { // insert in the middle :-( efficiencyNames_. insert(it, name); efficiencyValues_.insert( efficiencyValues_.begin() + (it - efficiencyNames_.begin()), value ); } }
void pat::PATObject< ObjectType >::setGenParticle | ( | const reco::GenParticle & | particle | ) |
Set the generator level particle from a particle not in the Event (embedding it, of course)
Definition at line 658 of file PATObject.h.
{ genParticleEmbedded_.clear(); genParticleEmbedded_.push_back(particle); genParticleRef_.clear(); }
void pat::PATObject< ObjectType >::setGenParticleRef | ( | const reco::GenParticleRef & | ref, |
bool | embed = false |
||
) |
Set the generator level particle reference.
Definition at line 642 of file PATObject.h.
{ genParticleRef_ = std::vector<reco::GenParticleRef>(1,ref); genParticleEmbedded_.clear(); if (embed) embedGenParticle(); }
void pat::PATObject< ObjectType >::setKinResolution | ( | const pat::CandKinResolution & | resol, |
const std::string & | label = "" |
||
) |
Add a kinematic resolution to this object (possibly with a label)
Definition at line 840 of file PATObject.h.
References spr::find(), label, and match().
Referenced by pat::helper::KinResolutionsLoader::setResolutions().
{ if (label.empty()) { if (kinResolutionLabels_.size()+1 == kinResolutions_.size()) { // There is already an un-labelled object. Replace it kinResolutions_[0] = resol; } else { // Insert. Note that the un-labelled is always the first, so we need to insert before begin() // (for an empty vector, this should not cost more than push_back) kinResolutions_.insert(kinResolutions_.begin(), resol); } } else { std::vector<std::string>::iterator match = std::find(kinResolutionLabels_.begin(), kinResolutionLabels_.end(), label); if (match != kinResolutionLabels_.end()) { // Existing object: replace if (kinResolutionLabels_.size()+1 == kinResolutions_.size()) { kinResolutions_[(match - kinResolutionLabels_.begin())+1] = resol; } else { kinResolutions_[(match - kinResolutionLabels_.begin())] = resol; } } else { kinResolutionLabels_.push_back(label); kinResolutions_.push_back(resol); } } }
void pat::PATObject< ObjectType >::setOverlaps | ( | const std::string & | label, |
const reco::CandidatePtrVector & | overlaps | ||
) |
Sets the list of overlapping items for one label Note that adding an empty PtrVector has no effect at all Items within the list should already be sorted appropriately (this method won't sort them)
Definition at line 720 of file PATObject.h.
References edm::PtrVectorBase::empty(), spr::find(), label, match(), and analyzePatCleaning_cfg::overlaps.
{ if (!overlaps.empty()) { std::vector<std::string>::const_iterator match = std::find(overlapLabels_.begin(), overlapLabels_.end(), label); if (match == overlapLabels_.end()) { overlapLabels_.push_back(label); overlapItems_.push_back(overlaps); } else { overlapItems_[match - overlapLabels_.begin()] = overlaps; } } }
const TriggerObjectStandAlone * pat::PATObject< ObjectType >::triggerObjectMatch | ( | const size_t | idx = 0 | ) | const |
get one matched trigger object by index
Definition at line 475 of file PATObject.h.
References edm::Ref< C, T, F >::get(), edm::Ref< C, T, F >::isNonnull(), and findQualityFiles::size.
{ if ( idx >= triggerObjectMatches().size() ) return 0; TriggerObjectStandAloneRef ref( &triggerObjectMatchesEmbedded_, idx ); return ref.isNonnull() ? ref.get() : 0; }
const TriggerObjectStandAlone * pat::PATObject< ObjectType >::triggerObjectMatchByAlgorithm | ( | const std::string & | nameAlgorithm, |
const bool | algoCondAccepted = true , |
||
const size_t | idx = 0 |
||
) | const |
get one matched L1 object used in a succeeding object combination of a condition in a certain L1 (physics) algorithm by index; if 'algoCondAccepted' is set to 'true' (default), only objects used in succeeding conditions of succeeding algorithms are considered ("firing" objects)
Definition at line 553 of file PATObject.h.
References i, and edm::Ref< C, T, F >::isNonnull().
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchByAlgorithm().
{ std::vector< size_t > refs; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasAlgorithmName( nameAlgorithm, algoCondAccepted ) ) refs.push_back( i ); } if ( idx >= refs.size() ) return 0; TriggerObjectStandAloneRef ref( &triggerObjectMatchesEmbedded_, refs.at( idx ) ); return ref.isNonnull() ? ref.get() : 0; }
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByAlgorithm | ( | const std::string & | nameAlgorithm, |
const unsigned | algoCondAccepted, | ||
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 141 of file PATObject.h.
{ return triggerObjectMatchByAlgorithm( nameAlgorithm, bool( algoCondAccepted ), idx ); };
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByAlgorithm | ( | const char * | nameAlgorithm, |
const bool | algoCondAccepted = true , |
||
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 137 of file PATObject.h.
{ return triggerObjectMatchByAlgorithm( std::string( nameAlgorithm ), algoCondAccepted, idx ); };
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByAlgorithm | ( | const char * | nameAlgorithm, |
const unsigned | algoCondAccepted, | ||
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 145 of file PATObject.h.
{ return triggerObjectMatchByAlgorithm( std::string( nameAlgorithm ), bool( algoCondAccepted ), idx ); };
const TriggerObjectStandAlone * pat::PATObject< ObjectType >::triggerObjectMatchByCollection | ( | const std::string & | coll, |
const size_t | idx = 0 |
||
) | const |
get one matched trigger object from a certain collection by index
Definition at line 511 of file PATObject.h.
References i, and edm::Ref< C, T, F >::isNonnull().
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchByCollection().
{ std::vector< size_t > refs; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasCollection( coll ) ) { refs.push_back( i ); } } if ( idx >= refs.size() ) return 0; TriggerObjectStandAloneRef ref( &triggerObjectMatchesEmbedded_, refs.at( idx ) ); return ref.isNonnull() ? ref.get() : 0; }
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByCollection | ( | const char * | coll, |
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 101 of file PATObject.h.
{ return triggerObjectMatchByCollection( std::string( coll ), idx ); };
const TriggerObjectStandAlone * pat::PATObject< ObjectType >::triggerObjectMatchByCondition | ( | const std::string & | nameCondition, |
const size_t | idx = 0 |
||
) | const |
get one matched L1 object used in a succeeding object combination of a certain L1 condition by index
Definition at line 533 of file PATObject.h.
References i, and edm::Ref< C, T, F >::isNonnull().
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchByCondition().
{ std::vector< size_t > refs; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasConditionName( nameCondition ) ) refs.push_back( i ); } if ( idx >= refs.size() ) return 0; TriggerObjectStandAloneRef ref( &triggerObjectMatchesEmbedded_, refs.at( idx ) ); return ref.isNonnull() ? ref.get() : 0; }
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByCondition | ( | const char * | nameCondition, |
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 113 of file PATObject.h.
{ return triggerObjectMatchByCondition( std::string( nameCondition ), idx ); };
const TriggerObjectStandAlone * pat::PATObject< ObjectType >::triggerObjectMatchByFilter | ( | const std::string & | labelFilter, |
const size_t | idx = 0 |
||
) | const |
get one matched HLT object used in a certain HLT filter by index
Definition at line 573 of file PATObject.h.
References i, and edm::Ref< C, T, F >::isNonnull().
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchByFilter().
{ std::vector< size_t > refs; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasFilterLabel( labelFilter ) ) refs.push_back( i ); } if ( idx >= refs.size() ) return 0; TriggerObjectStandAloneRef ref( &triggerObjectMatchesEmbedded_, refs.at( idx ) ); return ref.isNonnull() ? ref.get() : 0; }
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByFilter | ( | const char * | labelFilter, |
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 157 of file PATObject.h.
{ return triggerObjectMatchByFilter( std::string( labelFilter ), idx ); };
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByFilterID | ( | const unsigned | triggerObjectType, |
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 89 of file PATObject.h.
{ return triggerObjectMatchByType( trigger::TriggerObjectType( triggerObjectType ), idx ); };
const TriggerObjectStandAlone * pat::PATObject< ObjectType >::triggerObjectMatchByPath | ( | const std::string & | namePath, |
const bool | pathLastFilterAccepted = true , |
||
const size_t | idx = 0 |
||
) | const |
get one matched HLT object used in a certain HLT path by index; if 'pathLastFilterAccepted' is set to 'true' (default), only objects used in the finalfilter of succeeding path are considered ("firing" objects)
Definition at line 593 of file PATObject.h.
References i, and edm::Ref< C, T, F >::isNonnull().
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchByPath().
{ std::vector< size_t > refs; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasPathName( namePath, pathLastFilterAccepted ) ) refs.push_back( i ); } if ( idx >= refs.size() ) return 0; TriggerObjectStandAloneRef ref( &triggerObjectMatchesEmbedded_, refs.at( idx ) ); return ref.isNonnull() ? ref.get() : 0; }
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByPath | ( | const char * | namePath, |
const bool | pathLastFilterAccepted = true , |
||
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 181 of file PATObject.h.
{ return triggerObjectMatchByPath( std::string( namePath ), pathLastFilterAccepted, idx ); };
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByPath | ( | const std::string & | namePath, |
const unsigned | pathLastFilterAccepted, | ||
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 185 of file PATObject.h.
{ return triggerObjectMatchByPath( namePath, bool( pathLastFilterAccepted ), idx ); };
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByPath | ( | const char * | namePath, |
const unsigned | pathLastFilterAccepted, | ||
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 189 of file PATObject.h.
{ return triggerObjectMatchByPath( std::string( namePath ), bool( pathLastFilterAccepted ), idx ); };
const TriggerObjectStandAlone * pat::PATObject< ObjectType >::triggerObjectMatchByType | ( | const trigger::TriggerObjectType | triggerObjectType, |
const size_t | idx = 0 |
||
) | const |
get one matched trigger object of a certain type by index
Definition at line 491 of file PATObject.h.
References i, and edm::Ref< C, T, F >::isNonnull().
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchByFilterID(), and pat::PATObject< reco::Muon >::triggerObjectMatchByType().
{ std::vector< size_t > refs; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasTriggerObjectType( triggerObjectType ) ) refs.push_back( i ); } if ( idx >= refs.size() ) return 0; TriggerObjectStandAloneRef ref( &triggerObjectMatchesEmbedded_, refs.at( idx ) ); return ref.isNonnull() ? ref.get() : 0; }
const TriggerObjectStandAlone* pat::PATObject< ObjectType >::triggerObjectMatchByType | ( | const unsigned | triggerObjectType, |
const size_t | idx = 0 |
||
) | const [inline] |
Definition at line 85 of file PATObject.h.
{ return triggerObjectMatchByType( trigger::TriggerObjectType( triggerObjectType ), idx ); };
const TriggerObjectStandAloneCollection& pat::PATObject< ObjectType >::triggerObjectMatches | ( | ) | const [inline] |
get all matched trigger objects
access to embedded trigger matches: duplicated functions using 'char*' instead of 'std::string' are needed in order to work properly in CINT command lines; duplicated functions using 'unsigned' instead of 'bool' are needed in order to work properly in the cut string parser;
Definition at line 70 of file PATObject.h.
{ return triggerObjectMatchesEmbedded_; };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByAlgorithm | ( | const char * | nameAlgorithm, |
const unsigned | algoCondAccepted | ||
) | const [inline] |
Definition at line 129 of file PATObject.h.
{ return triggerObjectMatchesByAlgorithm( std::string( nameAlgorithm ), bool( algoCondAccepted ) ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByAlgorithm | ( | const std::string & | nameAlgorithm, |
const unsigned | algoCondAccepted | ||
) | const [inline] |
Definition at line 125 of file PATObject.h.
{ return triggerObjectMatchesByAlgorithm( nameAlgorithm, bool( algoCondAccepted ) ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByAlgorithm | ( | const char * | nameAlgorithm, |
const bool | algoCondAccepted = true |
||
) | const [inline] |
Definition at line 121 of file PATObject.h.
{ return triggerObjectMatchesByAlgorithm( std::string( nameAlgorithm ), algoCondAccepted ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByAlgorithm | ( | const std::string & | nameAlgorithm, |
const bool | algoCondAccepted = true |
||
) | const |
get all matched L1 objects used in a succeeding object combination of a condition in a certain L1 (physics) algorithm; if 'algoCondAccepted' is set to 'true' (default), only objects used in succeeding conditions of succeeding algorithms are considered ("firing" objects)
Definition at line 544 of file PATObject.h.
References i.
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchesByAlgorithm().
{ TriggerObjectStandAloneCollection matches; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasAlgorithmName( nameAlgorithm, algoCondAccepted ) ) matches.push_back( *( triggerObjectMatch( i ) ) ); } return matches; }
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByCollection | ( | const char * | coll | ) | const [inline] |
Definition at line 95 of file PATObject.h.
{ return triggerObjectMatchesByCollection( std::string( coll ) ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByCollection | ( | const std::string & | coll | ) | const |
get all matched trigger objects from a certain collection
Definition at line 502 of file PATObject.h.
References i.
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchesByCollection().
{ TriggerObjectStandAloneCollection matches; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasCollection( coll ) ) matches.push_back( *( triggerObjectMatch( i ) ) ); } return matches; }
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByCondition | ( | const char * | nameCondition | ) | const [inline] |
Definition at line 107 of file PATObject.h.
{ return triggerObjectMatchesByCondition( std::string( nameCondition ) ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByCondition | ( | const std::string & | nameCondition | ) | const |
get all matched L1 objects used in a succeeding object combination of a certain L1 condition
Definition at line 524 of file PATObject.h.
References i.
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchesByCondition().
{ TriggerObjectStandAloneCollection matches; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasConditionName( nameCondition ) ) matches.push_back( *( triggerObjectMatch( i ) ) ); } return matches; }
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByFilter | ( | const std::string & | labelFilter | ) | const |
get all matched HLT objects used in a certain HLT filter
Definition at line 564 of file PATObject.h.
References i.
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchesByFilter().
{ TriggerObjectStandAloneCollection matches; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasFilterLabel( labelFilter ) ) matches.push_back( *( triggerObjectMatch( i ) ) ); } return matches; }
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByFilter | ( | const char * | labelFilter | ) | const [inline] |
Definition at line 151 of file PATObject.h.
{ return triggerObjectMatchesByFilter( std::string( labelFilter ) ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByFilterID | ( | const unsigned | triggerObjectType | ) | const [inline] |
Definition at line 80 of file PATObject.h.
{ return triggerObjectMatchesByType( trigger::TriggerObjectType( triggerObjectType ) ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByPath | ( | const std::string & | namePath, |
const unsigned | pathLastFilterAccepted | ||
) | const [inline] |
Definition at line 169 of file PATObject.h.
{ return triggerObjectMatchesByPath( namePath, bool( pathLastFilterAccepted ) ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByPath | ( | const char * | namePath, |
const unsigned | pathLastFilterAccepted | ||
) | const [inline] |
Definition at line 173 of file PATObject.h.
{ return triggerObjectMatchesByPath( std::string( namePath ), bool( pathLastFilterAccepted ) ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByPath | ( | const std::string & | namePath, |
const bool | pathLastFilterAccepted = true |
||
) | const |
get all matched HLT objects used in a certain HLT path; if 'pathLastFilterAccepted' is set to 'true' (default), only objects used in the finalfilter of succeeding path are considered ("firing" objects)
Definition at line 584 of file PATObject.h.
References i.
Referenced by ZMuMu_efficiencyAnalyzer::analyze(), testAnalyzer::analyze(), ZMuMu_Radiative_analyzer::analyze(), ZMuMu_vtxAnalyzer::analyze(), ZMuMu_MCanalyzer::analyze(), modules::ZHLTMatchFilter::operator()(), ZToLLEdmNtupleDumper::produce(), ZMuMuMuonUserData::produce(), and pat::PATObject< reco::Muon >::triggerObjectMatchesByPath().
{ TriggerObjectStandAloneCollection matches; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasPathName( namePath, pathLastFilterAccepted ) ) matches.push_back( *( triggerObjectMatch( i ) ) ); } return matches; }
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByPath | ( | const char * | namePath, |
const bool | pathLastFilterAccepted = true |
||
) | const [inline] |
Definition at line 165 of file PATObject.h.
{ return triggerObjectMatchesByPath( std::string( namePath ), pathLastFilterAccepted ); };
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByType | ( | const trigger::TriggerObjectType | triggerObjectType | ) | const |
get all matched trigger objects of a certain type; trigger object types are defined in 'enum trigger::TriggerObjectType' (DataFormats/HLTReco/interface/TriggerTypeDefs.h)
Definition at line 482 of file PATObject.h.
References i.
Referenced by pat::PATObject< reco::Muon >::triggerObjectMatchesByFilterID(), and pat::PATObject< reco::Muon >::triggerObjectMatchesByType().
{ TriggerObjectStandAloneCollection matches; for ( size_t i = 0; i < triggerObjectMatches().size(); ++i ) { if ( triggerObjectMatch( i ) != 0 && triggerObjectMatch( i )->hasTriggerObjectType( triggerObjectType ) ) matches.push_back( *( triggerObjectMatch( i ) ) ); } return matches; }
const TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesByType | ( | const unsigned | triggerObjectType | ) | const [inline] |
Definition at line 76 of file PATObject.h.
{ return triggerObjectMatchesByType( trigger::TriggerObjectType( triggerObjectType ) ); };
reco::CandidatePtr pat::PATObject< ObjectType >::userCand | ( | const std::string & | key | ) | const |
Get user-defined candidate ptr Note: it will a null pointer if the key is not found; you can check if the key exists with 'hasUserInt' method.
Definition at line 780 of file PATObject.h.
References spr::find(), and combine::key.
{ std::vector<std::string>::const_iterator it = std::find(userCandLabels_.begin(), userCandLabels_.end(), key); if (it != userCandLabels_.end()) { return userCands_[it - userCandLabels_.begin()]; } return reco::CandidatePtr(); }
const std::vector<std::string>& pat::PATObject< ObjectType >::userCandNames | ( | ) | const [inline] |
Get list of user-defined cand names.
Definition at line 336 of file PATObject.h.
{ return userCandLabels_; }
const T* pat::PATObject< ObjectType >::userData | ( | const std::string & | key | ) | const [inline] |
Returns user-defined data. Returns NULL if the data is not present, or not of type T.
Definition at line 265 of file PATObject.h.
{ const pat::UserData * data = userDataObject_(key); return (data != 0 ? data->template get<T>() : 0); }
const void* pat::PATObject< ObjectType >::userDataBare | ( | const std::string & | key | ) | const [inline] |
Get the data as a void *, for CINT usage. COMPLETELY UNSUPPORTED, USE ONLY FOR DEBUGGING
Definition at line 285 of file PATObject.h.
{ const pat::UserData * data = userDataObject_(key); return (data != 0 ? data->bareData() : 0); }
const std::vector<std::string>& pat::PATObject< ObjectType >::userDataNames | ( | ) | const [inline] |
Get list of user data object names.
Definition at line 281 of file PATObject.h.
{ return userDataLabels_; }
const pat::UserData * pat::PATObject< ObjectType >::userDataObject_ | ( | const std::string & | key | ) | const [private] |
Definition at line 733 of file PATObject.h.
References spr::find(), and combine::key.
Referenced by pat::PATObject< reco::Muon >::hasUserData(), pat::PATObject< reco::Muon >::userData(), pat::PATObject< reco::Muon >::userDataBare(), and pat::PATObject< reco::Muon >::userDataObjectType().
{ std::vector<std::string>::const_iterator it = std::find(userDataLabels_.begin(), userDataLabels_.end(), key); if (it != userDataLabels_.end()) { return & userDataObjects_[it - userDataLabels_.begin()]; } return 0; }
const std::string& pat::PATObject< ObjectType >::userDataObjectType | ( | const std::string & | key | ) | const [inline] |
Get human-readable type of user data object, for debugging.
Definition at line 275 of file PATObject.h.
{ static const std::string EMPTY(""); const pat::UserData * data = userDataObject_(key); return (data != 0 ? data->typeName() : EMPTY); };
float pat::PATObject< ObjectType >::userFloat | ( | const std::string & | key | ) | const |
Get user-defined float Note: it will return 0.0 if the key is not found; you can check if the key exists with 'hasUserFloat' method.
Definition at line 743 of file PATObject.h.
References spr::find(), and combine::key.
Referenced by MuScleFitMuonSelector::selectMuons().
{ std::vector<std::string>::const_iterator it = std::find(userFloatLabels_.begin(), userFloatLabels_.end(), key); if (it != userFloatLabels_.end()) { return userFloats_[it - userFloatLabels_.begin()]; } return 0.0; }
const std::vector<std::string>& pat::PATObject< ObjectType >::userFloatNames | ( | ) | const [inline] |
Get list of user-defined float names.
Definition at line 313 of file PATObject.h.
{ return userFloatLabels_; }
int pat::PATObject< ObjectType >::userInt | ( | const std::string & | key | ) | const |
Get user-defined int Note: it will return 0 if the key is not found; you can check if the key exists with 'hasUserInt' method.
Definition at line 762 of file PATObject.h.
References spr::find(), and combine::key.
{ std::vector<std::string>::const_iterator it = std::find(userIntLabels_.begin(), userIntLabels_.end(), key); if (it != userIntLabels_.end()) { return userInts_[it - userIntLabels_.begin()]; } return 0; }
const std::vector<std::string>& pat::PATObject< ObjectType >::userIntNames | ( | ) | const [inline] |
Get list of user-defined int names.
Definition at line 324 of file PATObject.h.
{ return userIntLabels_; }
std::vector<std::string> pat::PATObject< ObjectType >::efficiencyNames_ [protected] |
vector of the efficiencies (names)
Definition at line 402 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::efficiencyNames().
std::vector<pat::LookupTableRecord> pat::PATObject< ObjectType >::efficiencyValues_ [protected] |
vector of the efficiencies (values)
Definition at line 400 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::efficiencyValues().
std::vector<reco::GenParticle> pat::PATObject< ObjectType >::genParticleEmbedded_ [protected] |
vector to hold an embedded generator level particle
Definition at line 407 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::genParticleRef(), and pat::PATObject< reco::Muon >::genParticlesSize().
std::vector<reco::GenParticleRef> pat::PATObject< ObjectType >::genParticleRef_ [protected] |
Reference to a generator level particle.
Definition at line 405 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::genParticleRef(), and pat::PATObject< reco::Muon >::genParticlesSize().
std::vector<std::string> pat::PATObject< ObjectType >::kinResolutionLabels_ [protected] |
Labels for the kinematic resolutions. if (kinResolutions_.size() == kinResolutionLabels_.size()+1), then the first resolution has no label.
Definition at line 431 of file PATObject.h.
std::vector<pat::CandKinResolution> pat::PATObject< ObjectType >::kinResolutions_ [protected] |
Kinematic resolutions.
Definition at line 428 of file PATObject.h.
std::vector<reco::CandidatePtrVector> pat::PATObject< ObjectType >::overlapItems_ [protected] |
Overlapping items (sorted by distance)
Definition at line 412 of file PATObject.h.
std::vector<std::string> pat::PATObject< ObjectType >::overlapLabels_ [protected] |
Overlapping test labels (only if there are any overlaps)
Definition at line 410 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::overlapLabels().
edm::Ptr<reco::Candidate> pat::PATObject< ObjectType >::refToOrig_ [protected] |
Definition at line 394 of file PATObject.h.
TriggerObjectStandAloneCollection pat::PATObject< ObjectType >::triggerObjectMatchesEmbedded_ [protected] |
vector of trigger matches
Definition at line 397 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::addTriggerObjectMatch(), and pat::PATObject< reco::Muon >::triggerObjectMatches().
std::vector<std::string> pat::PATObject< ObjectType >::userCandLabels_ [protected] |
Definition at line 424 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::hasUserCand(), and pat::PATObject< reco::Muon >::userCandNames().
std::vector<reco::CandidatePtr> pat::PATObject< ObjectType >::userCands_ [protected] |
Definition at line 425 of file PATObject.h.
std::vector<std::string> pat::PATObject< ObjectType >::userDataLabels_ [protected] |
User data object.
Definition at line 415 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::addUserData(), pat::PATObject< reco::Muon >::addUserDataFromPtr(), and pat::PATObject< reco::Muon >::userDataNames().
pat::UserDataCollection pat::PATObject< ObjectType >::userDataObjects_ [protected] |
Definition at line 416 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::addUserData(), and pat::PATObject< reco::Muon >::addUserDataFromPtr().
std::vector<std::string> pat::PATObject< ObjectType >::userFloatLabels_ [protected] |
Definition at line 418 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::hasUserFloat(), and pat::PATObject< reco::Muon >::userFloatNames().
std::vector<float> pat::PATObject< ObjectType >::userFloats_ [protected] |
Definition at line 419 of file PATObject.h.
std::vector<std::string> pat::PATObject< ObjectType >::userIntLabels_ [protected] |
Definition at line 421 of file PATObject.h.
Referenced by pat::PATObject< reco::Muon >::hasUserInt(), and pat::PATObject< reco::Muon >::userIntNames().
std::vector<int32_t> pat::PATObject< ObjectType >::userInts_ [protected] |
Definition at line 422 of file PATObject.h.