Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DataFormats_BTauReco_interface_HTTTopJetTagInfo_h
0002 #define DataFormats_BTauReco_interface_HTTTopJetTagInfo_h
0003 
0004 // \class HTTTopJetTagInfo
0005 //
0006 // \short specific tag info for HEPTopTagger tagging algorithm
0007 // HTTTopJetTagInfo is a class to hold the discriminator variables for the
0008 // HEPTopTagger algorithm.
0009 //
0010 //
0011 // \author Gregor Kasieczka (based on  CATopJetTagInfo by Salvatore Rappoccio)
0012 // \version first version on 25 Sep 2014
0013 
0014 #include "DataFormats/BTauReco/interface/RefMacros.h"
0015 #include "DataFormats/BTauReco/interface/JetTagInfo.h"
0016 #include "DataFormats/BTauReco/interface/TaggingVariable.h"
0017 #include <vector>
0018 
0019 namespace reco {
0020 
0021   class HTTTopJetProperties {
0022   public:
0023     HTTTopJetProperties()
0024         : fjPt(0.),
0025           fjMass(0.),
0026           fjEta(0.),
0027           fjPhi(0.),
0028           topMass(0.),
0029           unfilteredMass(0.),
0030           prunedMass(0.),
0031           fRec(0.),
0032           massRatioPassed(0.),
0033           ropt(0.),
0034           roptCalc(0.),
0035           ptForRoptCalc(0.),
0036           tau1Unfiltered(0.),
0037           tau2Unfiltered(0.),
0038           tau3Unfiltered(0.),
0039           tau1Filtered(0.),
0040           tau2Filtered(0.),
0041           tau3Filtered(0.),
0042           qWeight(0.),
0043           qEpsilon(0.),
0044           qSigmaM(0.) {}
0045 
0046     double fjPt;             //<! Mass of the inital Fatjet passed to the TT
0047     double fjMass;           //<! Mass of the inital Fatjet passed to the TT
0048     double fjEta;            //<! Mass of the inital Fatjet passed to the TT
0049     double fjPhi;            //<! Mass of the inital Fatjet passed to the TT
0050     double topMass;          //<! Mass of the HTT top quark candidate [GeV]
0051     double unfilteredMass;   //<! Unfiltered mass of the triplet [GeV]
0052     double prunedMass;       //<! Mass of the pruned fat jet [GeV]
0053     double fRec;             //<! Minimum distance of m_ij/m_123 from m_W/m_top
0054     double massRatioPassed;  //<! Did the candidate pass the default mass ratio?
0055     double ropt;             //<! R_opt found in Optimal procedure.
0056     double roptCalc;         //<! R_opt calc for a top quark based on filtered fat-jet pT.
0057     double ptForRoptCalc;    //<! Filtered initial fatjet pT calculation of Ropt
0058     double tau1Unfiltered;   //<! 1-subjettiness, no filtering
0059     double tau2Unfiltered;   //<! 2-subjettiness, no filtering
0060     double tau3Unfiltered;   //<! 3-subjettiness, no filtering
0061     double tau1Filtered;     //<! 1-subjettiness, with filtering
0062     double tau2Filtered;     //<! 2-subjettiness, with filtering
0063     double tau3Filtered;     //<! 3-subjettiness, with filtering
0064     double qWeight;          //<! maximal weight of jet using Q-jet approach
0065     double qEpsilon;         //<! fraction of jets tagged with Q-jets
0066     double qSigmaM;          //<! Width of Q-jet mass distribution
0067   };
0068 
0069   class HTTTopJetTagInfo : public JetTagInfo {
0070   public:
0071     typedef edm::RefToBase<Jet> jet_type;
0072     typedef HTTTopJetProperties properties_type;
0073 
0074     HTTTopJetTagInfo(void) {}
0075 
0076     ~HTTTopJetTagInfo(void) override {}
0077 
0078     HTTTopJetTagInfo* clone(void) const override { return new HTTTopJetTagInfo(*this); }
0079 
0080     const properties_type& properties() const { return properties_; }
0081 
0082     void insert(const edm::RefToBase<Jet>& jet, const HTTTopJetProperties& properties) {
0083       setJetRef(jet);
0084       properties_ = properties;
0085     }
0086 
0087   protected:
0088     properties_type properties_;
0089   };
0090 
0091   DECLARE_EDM_REFS(HTTTopJetTagInfo)
0092 
0093 }  // namespace reco
0094 
0095 #endif  // AnalysisDataFormats_TopObjects_interface_HTTTopJetTagInfo_h