CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TriggerObjectStandAlone.h
Go to the documentation of this file.
1 #ifndef DataFormats_PatCandidates_TriggerObjectStandAlone_h
2 #define DataFormats_PatCandidates_TriggerObjectStandAlone_h
3 
4 
5 // -*- C++ -*-
6 //
7 // Package: PatCandidates
8 // Class: pat::TriggerObjectStandAlone
9 //
10 // $Id: TriggerObjectStandAlone.h,v 1.14 2011/05/24 15:56:25 vadler Exp $
11 //
28 
29 
30 namespace pat {
31 
33 
37 
39  std::vector< std::string > filterLabels_;
41  std::vector< std::string > pathNames_;
46  std::vector< bool > pathLastFilterAccepted_;
50  std::vector< bool > pathL3FilterAccepted_;
51 
53 
55  static const char wildcard_ = '*';
56 
58 
60  bool hasAnyName( const std::string & name, const std::vector< std::string > & nameVec ) const;
62  void addFilterOrCondition( const std::string & name ) { if ( ! hasFilterOrCondition( name ) ) filterLabels_.push_back( name ); };
64  void addPathOrAlgorithm( const std::string & name, bool pathLastFilterAccepted, bool pathL3FilterAccepted );
66  std::vector< std::string > filtersOrConditions() const { return filterLabels_; };
68  std::vector< std::string > pathsOrAlgorithms( bool pathLastFilterAccepted, bool pathL3FilterAccepted ) const;
70  bool hasFilterOrCondition( const std::string & name ) const;
72  bool hasPathOrAlgorithm( const std::string & name, bool pathLastFilterAccepted, bool pathL3FilterAccepted ) const;
74  bool hasLastFilter() const { return ( pathLastFilterAccepted_.size() > 0 && pathLastFilterAccepted_.size() == pathNames_.size() ); };
75  bool hasL3Filter() const { return ( pathL3FilterAccepted_.size() > 0 && pathL3FilterAccepted_.size() == pathNames_.size() ); };
76 
77  public:
78 
80 
84  TriggerObjectStandAlone( const TriggerObject & trigObj );
88  TriggerObjectStandAlone( const reco::LeafCandidate & leafCand );
90  TriggerObjectStandAlone( const reco::Particle::LorentzVector & vec, int id = 0 );
92 
95 
97 
99  void addFilterLabel( const std::string & filterLabel ) { addFilterOrCondition( filterLabel ); };
101  void addConditionName( const std::string & conditionName ) { addFilterOrCondition( conditionName ); };
103  void addPathName( const std::string & pathName, bool pathLastFilterAccepted = true, bool pathL3FilterAccepted = true ) { addPathOrAlgorithm( pathName, pathLastFilterAccepted, pathL3FilterAccepted ); };
105  void addAlgorithmName( const std::string & algorithmName, bool algoCondAccepted = true ) { addPathOrAlgorithm( algorithmName, algoCondAccepted, false ); };
107  std::vector< std::string > filterLabels() const { return filtersOrConditions(); };
109  std::vector< std::string > conditionNames() const { return filtersOrConditions(); };
111  std::vector< std::string > pathNames( bool pathLastFilterAccepted = false, bool pathL3FilterAccepted = true ) const { return pathsOrAlgorithms( pathLastFilterAccepted, pathL3FilterAccepted ); };
113  std::vector< std::string > algorithmNames( bool algoCondAccepted = true ) const { return pathsOrAlgorithms( algoCondAccepted, false ); };
117  bool hasFilterLabel( const std::string & filterLabel ) const { return hasFilterOrCondition( filterLabel ); };
119  bool hasConditionName( const std::string & conditionName ) const { return hasFilterOrCondition( conditionName ); };
121  bool hasPathName( const std::string & pathName, bool pathLastFilterAccepted = false, bool pathL3FilterAccepted = true ) const { return hasPathOrAlgorithm( pathName, pathLastFilterAccepted, pathL3FilterAccepted ); };
123  bool hasAlgorithmName( const std::string & algorithmName, bool algoCondAccepted = true ) const { return hasPathOrAlgorithm( algorithmName, algoCondAccepted, false ); };
125  virtual bool hasCollection( const std::string & collName ) const;
126  virtual bool hasCollection( const edm::InputTag & collName ) const { return hasCollection( collName.encode() ); };
128  bool hasPathLastFilterAccepted() const { return hasLastFilter(); };
129  bool hasAlgoCondAccepted() const { return hasLastFilter(); };
130  bool hasPathL3FilterAccepted() const { return hasL3Filter(); };
131 
135 
137  bool filter( const std::string & filterLabel ) const { return hasFilterLabel( filterLabel ); };
139  bool cond( const std::string & conditionName ) const { return hasConditionName( conditionName ); };
141  bool path( const std::string & pathName, unsigned pathLastFilterAccepted = 0, unsigned pathL3FilterAccepted = 1 ) const { return hasPathName( pathName, bool( pathLastFilterAccepted ), bool( pathL3FilterAccepted ) ); };
143  bool algo( const std::string & algorithmName, unsigned algoCondAccepted = 1 ) const { return hasAlgorithmName( algorithmName, bool( algoCondAccepted ) ); };
145  virtual bool coll( const std::string & collName ) const { return hasCollection( collName ); };
146 
147  };
148 
149 
151  typedef std::vector< TriggerObjectStandAlone > TriggerObjectStandAloneCollection;
162 
163 }
164 
165 
166 #endif
std::vector< std::string > pathsOrAlgorithms(bool pathLastFilterAccepted, bool pathL3FilterAccepted) const
Gets all HLT path or L1 algorithm names.
edm::RefVector< TriggerObjectStandAloneCollection > TriggerObjectStandAloneRefVector
Vector of persistent references to items in the same TriggerObjectStandAloneCollection.
bool hasPathName(const std::string &pathName, bool pathLastFilterAccepted=false, bool pathL3FilterAccepted=true) const
Checks, if a certain HLT path name is assigned.
std::vector< std::string > filterLabels() const
Gets all HLT filter labels.
edm::RefVectorIterator< TriggerObjectStandAloneCollection > TriggerObjectStandAloneRefVectorIterator
Const iterator over vector of persistent references to items in the same TriggerObjectStandAloneColle...
virtual bool hasCollection(const std::string &collName) const
Checks, if a certain label of original collection is assigned (method overrides)
static const char wildcard_
Constants.
bool algo(const std::string &algorithmName, unsigned algoCondAccepted=1) const
Calls &#39;hasAlgorithmName(...)&#39;.
std::vector< std::string > pathNames_
Vector of names of all HLT paths or L1 algorithms the trigger objects has been used in...
std::vector< std::string > algorithmNames(bool algoCondAccepted=true) const
Gets all L1 algorithm names.
std::vector< std::string > filterLabels_
Vector of labels of all HLT filters or names od L1 conditions the trigger objects has been used in...
void addAlgorithmName(const std::string &algorithmName, bool algoCondAccepted=true)
Adds a new L1 algorithm name.
std::vector< TriggerObjectStandAlone > TriggerObjectStandAloneCollection
Collection of TriggerObjectStandAlone.
std::vector< std::string > pathNames(bool pathLastFilterAccepted=false, bool pathL3FilterAccepted=true) const
Gets all HLT path names.
Analysis-level trigger object class.
Definition: TriggerObject.h:49
std::string encode() const
Definition: InputTag.cc:72
void addConditionName(const std::string &conditionName)
Adds a new L1 condition name.
void addFilterLabel(const std::string &filterLabel)
Methods.
bool hasAnyName(const std::string &name, const std::vector< std::string > &nameVec) const
Private methods.
void addPathOrAlgorithm(const std::string &name, bool pathLastFilterAccepted, bool pathL3FilterAccepted)
Adds a new HLT path or L1 algorithm name.
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:24
bool path(const std::string &pathName, unsigned pathLastFilterAccepted=0, unsigned pathL3FilterAccepted=1) const
Calls &#39;hasPathName(...)&#39;.
TriggerObject triggerObject()
Gets the pat::TriggerObject (parent class)
const std::string * pathName() const
Definition: HLTadd.h:31
bool hasAlgorithmName(const std::string &algorithmName, bool algoCondAccepted=true) const
Checks, if a certain L1 algorithm name is assigned.
void addPathName(const std::string &pathName, bool pathLastFilterAccepted=true, bool pathL3FilterAccepted=true)
Adds a new HLT path name.
std::vector< std::string > conditionNames() const
Gets all L1 condition names.
TriggerObjectStandAlone()
Constructors and Destructor.
edm::Association< TriggerObjectStandAloneCollection > TriggerObjectStandAloneMatch
Association of TriggerObjectStandAlones to store matches to Candidates.
bool hasPathLastFilterAccepted() const
Checks, if the usage indicator vector has been filled.
bool hasLastFilter() const
Check, if the usage indicator vectors have been filled.
bool hasFilterLabel(const std::string &filterLabel) const
Checks, if a certain HLT filter label is assigned.
bool hasConditionName(const std::string &conditionName) const
Checks, if a certain L1 condition name is assigned.
bool hasPathOrAlgorithm(const std::string &name, bool pathLastFilterAccepted, bool pathL3FilterAccepted) const
Checks, if a certain HLT path or L1 algorithm name is assigned.
std::vector< bool > pathL3FilterAccepted_
bool cond(const std::string &conditionName) const
Calls &#39;hasConditionName(...)&#39;.
void addFilterOrCondition(const std::string &name)
Adds a new HLT filter label or L1 condition name.
bool filter(const std::string &filterLabel) const
Calls &#39;hasFilterLabel(...)&#39;.
std::vector< std::string > filtersOrConditions() const
Gets all HLT filter labels or L1 condition names.
edm::RefProd< TriggerObjectStandAloneCollection > TriggerObjectStandAloneRefProd
Persistent reference to a TriggerObjectStandAloneCollection product.
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Particle.h:28
virtual bool coll(const std::string &collName) const
Calls &#39;hasCollection(...)&#39; (method override)
bool hasFilterOrCondition(const std::string &name) const
Checks, if a certain HLT filter label or L1 condition name is assigned.
virtual bool hasCollection(const edm::InputTag &collName) const
virtual ~TriggerObjectStandAlone()
Destructor.
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:26
std::vector< bool > pathLastFilterAccepted_
Analysis-level trigger object class (stand-alone)
edm::Ref< TriggerObjectStandAloneCollection > TriggerObjectStandAloneRef
Persistent reference to an item in a TriggerObjectStandAloneCollection.