File indexing completed on 2023-03-17 10:49:15
0001 #ifndef DataFormats_BTauReco_TauImpactParameterInfo_h
0002 #define DataFormats_BTauReco_TauImpactParameterInfo_h
0003
0004 #include "DataFormats/BTauReco/interface/RefMacros.h"
0005 #include "DataFormats/Common/interface/AssociationMap.h"
0006 #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h"
0007 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0008 #include "DataFormats/BTauReco/interface/IsolatedTauTagInfo.h"
0009
0010 namespace reco {
0011
0012 struct TauImpactParameterTrackData {
0013 Measurement1D transverseIp;
0014 Measurement1D ip3D;
0015 };
0016
0017 typedef edm::AssociationMap<edm::OneToValue<reco::TrackCollection, reco::TauImpactParameterTrackData> >
0018 TrackTauImpactParameterAssociationCollection;
0019
0020 typedef TrackTauImpactParameterAssociationCollection::value_type TrackTauImpactParameterAssociation;
0021
0022 class TauImpactParameterInfo {
0023 public:
0024 TauImpactParameterInfo() {}
0025 virtual ~TauImpactParameterInfo() {}
0026
0027 virtual TauImpactParameterInfo *clone() const { return new TauImpactParameterInfo(*this); }
0028
0029 float discriminator(double, double, double, bool, bool) const;
0030 float discriminator() const;
0031
0032 const TauImpactParameterTrackData *getTrackData(const reco::TrackRef &) const;
0033 void storeTrackData(const reco::TrackRef &, const TauImpactParameterTrackData &);
0034
0035 const IsolatedTauTagInfoRef &getIsolatedTauTag() const;
0036 void setIsolatedTauTag(const IsolatedTauTagInfoRef &);
0037
0038 private:
0039 TrackTauImpactParameterAssociationCollection trackDataMap;
0040 IsolatedTauTagInfoRef isolatedTaus;
0041 };
0042
0043 DECLARE_EDM_REFS(TauImpactParameterInfo)
0044
0045 }
0046
0047 #endif