00001 #ifndef DataFormats_PatCandidates_TriggerPrimitive_h 00002 #define DataFormats_PatCandidates_TriggerPrimitive_h 00003 00004 00005 // 00006 // $Id: TriggerPrimitive.h,v 1.4 2008/09/29 16:53:05 vadler Exp $ 00007 // 00008 00009 00026 #include <string> 00027 #include "DataFormats/Candidate/interface/LeafCandidate.h" 00028 00029 #include "DataFormats/Common/interface/OwnVector.h" 00030 #include "DataFormats/Common/interface/Ref.h" 00031 #include "DataFormats/Common/interface/RefProd.h" 00032 #include "DataFormats/Common/interface/RefVector.h" 00033 #include "DataFormats/Common/interface/Association.h" 00034 00035 00036 namespace pat { 00037 00038 class TriggerPrimitive : public reco::LeafCandidate { 00039 00040 public: 00041 00042 TriggerPrimitive(); 00043 TriggerPrimitive( const reco::Particle::LorentzVector & aVec, const std::string aFilt = "", const int aType = 0, const int id = 0 ); 00044 TriggerPrimitive( const reco::Particle::PolarLorentzVector & aVec, const std::string aFilt = "", const int aType = 0, const int id = 0 ); 00045 virtual ~TriggerPrimitive(); 00046 00047 virtual TriggerPrimitive * clone() const; 00048 00049 const std::string & filterName() const; 00050 const int triggerObjectType() const; 00051 const int triggerObjectId() const; 00052 00053 void setFilterName( const std::string aFilt ); 00054 void setTriggerObjectType( const int aType ); 00055 void setTriggerObjectId( const int id ); 00056 00057 protected: 00058 00059 std::string filterName_; 00060 int triggerObjectType_; 00061 00062 }; 00063 00064 00066 typedef edm::OwnVector<TriggerPrimitive> TriggerPrimitiveCollection; 00068 typedef edm::Ref<TriggerPrimitiveCollection> TriggerPrimitiveRef; 00070 typedef edm::RefProd<TriggerPrimitiveCollection> TriggerPrimitiveRefProd; 00072 typedef edm::RefVector<TriggerPrimitiveCollection> TriggerPrimitiveRefVector; 00074 typedef edm::Association<TriggerPrimitiveCollection> TriggerPrimitiveMatch; 00075 00076 } 00077 00078 00079 #endif