00001 #ifndef BTauReco_JetCrystalsAssociation_h 00002 #define BTauReco_JetCrystalsAssociation_h 00003 // \class JetCrystalsAssociation 00004 // 00005 // \short association of Ecal Crystals to jet 00006 // 00007 // 00008 00009 #include "DataFormats/JetReco/interface/CaloJetCollection.h" 00010 #include "DataFormats/Common/interface/Ref.h" 00011 #include "DataFormats/Common/interface/FwdRef.h" 00012 #include "DataFormats/Common/interface/RefVector.h" 00013 #include "DataFormats/Math/interface/LorentzVector.h" 00014 #include "DataFormats/Math/interface/LorentzVectorFwd.h" 00015 #include <vector> 00016 00017 namespace reco { 00018 typedef math::PtEtaPhiELorentzVector EMLorentzVector; 00019 typedef math::PtEtaPhiELorentzVectorCollection EMLorentzVectorCollection; 00020 typedef math::PtEtaPhiELorentzVectorRef EMLorentzVectorRef; 00021 typedef math::PtEtaPhiELorentzVectorRefProd EMLorentzVectorRefProd; 00022 typedef math::PtEtaPhiELorentzVectorRefVector EMLorentzVectorRefVector; 00023 /* 00024 typedef 00025 std::pair<edm::RefToBase<Jet>, EMLorentzVectorRefVector> JetCrystalsAssociation; 00026 */ 00027 struct JetCrystalsAssociation : 00028 public std::pair<edm::RefToBase<Jet>, EMLorentzVectorRefVector> 00029 { 00030 typedef std::pair<edm::RefToBase<Jet>, EMLorentzVectorRefVector> base_class; 00031 00032 JetCrystalsAssociation() : 00033 base_class() { } 00034 00035 JetCrystalsAssociation(const base_class::first_type & first, const base_class::second_type & second) : 00036 base_class(first, second) { } 00037 00038 JetCrystalsAssociation(const base_class & _pair) : 00039 base_class(_pair) { } 00040 00041 JetCrystalsAssociation(const JetCrystalsAssociation & _pair) : 00042 base_class(_pair) { } 00043 }; 00044 typedef 00045 std::vector<JetCrystalsAssociation> JetCrystalsAssociationCollection; 00046 00047 typedef 00048 edm::Ref<JetCrystalsAssociationCollection> JetCrystalsAssociationRef; 00049 00050 typedef 00051 edm::FwdRef<JetCrystalsAssociationCollection> JetCrystalsAssociationFwdRef; 00052 00053 typedef 00054 edm::RefProd<JetCrystalsAssociationCollection> JetCrystalsAssociationRefProd; 00055 00056 typedef 00057 edm::RefVector<JetCrystalsAssociationCollection> JetCrystalsAssociationRefVector; 00058 } 00059 #endif