Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace reco
0046 
0047 #endif  // DataFormats_BTauReco_TauImpactParameterInfo_h