Go to the documentation of this file.00001 #ifndef JetReco_JetExtendedAssociation_h
00002 #define JetReco_JetExtendedAssociation_h
00003
00013 #include "DataFormats/Common/interface/AssociationVector.h"
00014 #include "DataFormats/JetReco/interface/JetCollection.h"
00015 #include "DataFormats/Common/interface/Ref.h"
00016 #include "DataFormats/Common/interface/RefToBase.h"
00017 #include "DataFormats/Common/interface/RefVector.h"
00018 #include "DataFormats/Math/interface/LorentzVector.h"
00019
00020 namespace fwlite {
00021 class Event;
00022 }
00023
00024 namespace reco {
00025 namespace JetExtendedAssociation {
00026 class JetExtendedData;
00027 typedef math::PtEtaPhiELorentzVectorF LorentzVector;
00028 typedef reco::JetExtendedAssociation::JetExtendedData Value;
00029 typedef std::vector<Value> Values;
00030 typedef edm::AssociationVector<reco::JetRefBaseProd, Values> Container;
00031 typedef Container::value_type value_type;
00032 typedef Container::transient_vector_type transient_vector_type;
00033 typedef edm::Ref <Container> Ref;
00034 typedef edm::RefProd <Container> RefProd;
00035 typedef edm::RefVector <Container> RefVector;
00036
00037
00039 int tracksAtVertexNumber (const Container&, const reco::JetBaseRef&);
00041 int tracksAtVertexNumber (const Container&, const reco::Jet&);
00043 const LorentzVector& tracksAtVertexP4 (const Container&, const reco::JetBaseRef&);
00044 const LorentzVector& tracksAtVertexP4 (const Container&, const reco::Jet&);
00046 int tracksAtCaloNumber (const Container&, const reco::JetBaseRef&);
00048 int tracksAtCaloNumber (const Container&, const reco::Jet&);
00050 const LorentzVector& tracksAtCaloP4 (const Container&, const reco::JetBaseRef&);
00052 const LorentzVector& tracksAtCaloP4 (const Container&, const reco::Jet&);
00053
00055 bool setValue (Container&, const reco::JetBaseRef&, const JetExtendedData&);
00057 bool setValue (Container*, const reco::JetBaseRef&, const JetExtendedData&);
00059 const JetExtendedData& getValue (const Container&, const reco::JetBaseRef&);
00061 const JetExtendedData& getValue (const Container&, const reco::Jet&);
00063 std::vector<reco::JetBaseRef > allJets (const Container&);
00065 bool hasJet (const Container&, const reco::JetBaseRef&);
00067 bool hasJet (const Container&, const reco::Jet&);
00068
00069 class JetExtendedData {
00070 public:
00071 JetExtendedData ();
00072 ~JetExtendedData () {}
00073 int mTracksAtVertexNumber;
00074 LorentzVector mTracksAtVertexP4;
00075 int mTracksAtCaloNumber;
00076 LorentzVector mTracksAtCaloP4;
00077 };
00078 }
00079 }
00080
00081 #endif