File indexing completed on 2024-04-06 12:04:24
0001 #ifndef JetReco_JetExtendedAssociation_h
0002 #define JetReco_JetExtendedAssociation_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "DataFormats/Common/interface/AssociationVector.h"
0013 #include "DataFormats/JetReco/interface/JetCollection.h"
0014 #include "DataFormats/Common/interface/Ref.h"
0015 #include "DataFormats/Common/interface/RefToBase.h"
0016 #include "DataFormats/Common/interface/RefVector.h"
0017 #include "DataFormats/Math/interface/LorentzVector.h"
0018
0019 namespace fwlite {
0020 class Event;
0021 }
0022
0023 namespace reco {
0024 namespace JetExtendedAssociation {
0025 class JetExtendedData;
0026 typedef math::PtEtaPhiELorentzVectorF LorentzVector;
0027 typedef reco::JetExtendedAssociation::JetExtendedData Value;
0028 typedef std::vector<Value> Values;
0029 typedef edm::AssociationVector<reco::JetRefBaseProd, Values> Container;
0030 typedef Container::value_type value_type;
0031 typedef Container::transient_vector_type transient_vector_type;
0032 typedef edm::Ref<Container> Ref;
0033 typedef edm::RefProd<Container> RefProd;
0034 typedef edm::RefVector<Container> RefVector;
0035
0036
0037 int tracksAtVertexNumber(const Container&, const reco::JetBaseRef&);
0038
0039 int tracksAtVertexNumber(const Container&, const reco::Jet&);
0040
0041 const LorentzVector& tracksAtVertexP4(const Container&, const reco::JetBaseRef&);
0042 const LorentzVector& tracksAtVertexP4(const Container&, const reco::Jet&);
0043
0044 int tracksAtCaloNumber(const Container&, const reco::JetBaseRef&);
0045
0046 int tracksAtCaloNumber(const Container&, const reco::Jet&);
0047
0048 const LorentzVector& tracksAtCaloP4(const Container&, const reco::JetBaseRef&);
0049
0050 const LorentzVector& tracksAtCaloP4(const Container&, const reco::Jet&);
0051
0052
0053 bool setValue(Container&, const reco::JetBaseRef&, const JetExtendedData&);
0054
0055 bool setValue(Container*, const reco::JetBaseRef&, const JetExtendedData&);
0056
0057 const JetExtendedData& getValue(const Container&, const reco::JetBaseRef&);
0058
0059 const JetExtendedData& getValue(const Container&, const reco::Jet&);
0060
0061 std::vector<reco::JetBaseRef> allJets(const Container&);
0062
0063 bool hasJet(const Container&, const reco::JetBaseRef&);
0064
0065 bool hasJet(const Container&, const reco::Jet&);
0066
0067 class JetExtendedData {
0068 public:
0069 JetExtendedData();
0070 ~JetExtendedData() {}
0071 int mTracksAtVertexNumber;
0072 LorentzVector mTracksAtVertexP4;
0073 int mTracksAtCaloNumber;
0074 LorentzVector mTracksAtCaloP4;
0075 };
0076 }
0077 }
0078
0079 #endif