Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:03:47

0001 #ifndef DataFormats_BTauReco_TauMassTagInfo_h
0002 #define DataFormats_BTauReco_TauMassTagInfo_h
0003 
0004 #include <vector>
0005 #include <map>
0006 
0007 #include "DataFormats/BTauReco/interface/RefMacros.h"
0008 #include "DataFormats/Common/interface/AssociationMap.h"
0009 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
0010 #include "DataFormats/BTauReco/interface/JTATagInfo.h"
0011 #include "DataFormats/BTauReco/interface/IsolatedTauTagInfo.h"
0012 
0013 namespace reco {
0014 
0015   class TauMassTagInfo : public JTATagInfo {
0016   public:
0017     typedef edm::AssociationMap<edm::OneToValue<BasicClusterCollection, float, unsigned short> >
0018         ClusterTrackAssociationCollection;
0019 
0020     typedef ClusterTrackAssociationCollection::value_type ClusterTrackAssociation;
0021 
0022     TauMassTagInfo() {}
0023     ~TauMassTagInfo() override {}
0024 
0025     TauMassTagInfo* clone() const override { return new TauMassTagInfo(*this); }
0026 
0027     //default discriminator: returns the discriminator of the jet tag
0028     float discriminator() const { return -1.; }
0029 
0030     float discriminator(
0031         double matching_cone, double leading_trk_pt, double signal_cone, double cluster_track_cone, double m_cut) const;
0032 
0033     void setIsolatedTauTag(const IsolatedTauTagInfoRef);
0034     const IsolatedTauTagInfoRef& getIsolatedTauTag() const;
0035 
0036     void storeClusterTrackCollection(reco::BasicClusterRef clusterRef, float dr);
0037     TauMassTagInfo::ClusterTrackAssociationCollection clusterTrackCollection() const { return clusterMap; }
0038 
0039     double getInvariantMassTrk(double matching_cone, double leading_trk_pt, double signal_cone) const;
0040     double getInvariantMass(double matching_cone,
0041                             double leading_trk_pt,
0042                             double signal_cone,
0043                             double cluster_track_cone) const;
0044 
0045   private:
0046     bool calculateTrkP4(double matching_cone,
0047                         double leading_trk_pt,
0048                         double signal_cone,
0049                         math::XYZTLorentzVector& p4) const;
0050 
0051     IsolatedTauTagInfoRef isolatedTau;
0052     ClusterTrackAssociationCollection clusterMap;  // const?
0053   };
0054 
0055   DECLARE_EDM_REFS(TauMassTagInfo)
0056 
0057 }  // namespace reco
0058 #endif