TauPFEssential

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
//
//

#ifndef DataFormats_PatCandidates_Tau_PFEssential_h
#define DataFormats_PatCandidates_Tau_PFEssential_h

/**
  \class    pat::tau::PFEssential TauPFEssential.h "DataFormats/PatCandidates/interface/TauPFEssential.h"
  \brief    Structure to hold information from PFTau essential for analysis inside a pat::Tau

  \author   Pavel Jez
*/

#include "DataFormats/TauReco/interface/PFTau.h"
#include "DataFormats/TauReco/interface/PFTauTransverseImpactParameter.h"
#include "DataFormats/Candidate/interface/Candidate.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"

namespace pat {
  namespace tau {

    struct TauPFEssential {
      // define a float-precision version of the typedefs in reco::PFTauTransverseImpactParameter class
      typedef math::PtEtaPhiMLorentzVectorF LorentzVector;
      typedef math::XYZPointF Point;
      typedef math::XYZVectorF Vector;
      typedef math::ErrorF<3>::type CovMatrix;

      // dummy constructor for ROOT I/O
      TauPFEssential() {}
      // constructor from PFTau
      TauPFEssential(const reco::PFTau& tau);
      // datamembers
      LorentzVector p4Jet_;
      LorentzVector p4CorrJet_;

      int decayMode_;

      Point dxy_PCA_;
      float dxy_;
      float dxy_error_;
      float dxy_Sig_;
      reco::VertexRef pv_;
      Point pvPos_;
      CovMatrix pvCov_;
      bool hasSV_;
      Vector flightLength_;
      float flightLengthSig_;
      reco::VertexRef sv_;
      Point svPos_;
      CovMatrix svCov_;
      float ip3d_;
      float ip3d_error_;
      float ecalEnergy_;
      float hcalEnergy_;
      float leadingTrackNormChi2_;
      float phiAtEcalEntrance_;
      float etaAtEcalEntrance_;
      float ecalEnergyLeadChargedHadrCand_;
      float hcalEnergyLeadChargedHadrCand_;
      float etaAtEcalEntranceLeadChargedCand_;
      float ptLeadChargedCand_;
      float emFraction_;
    };

  }  // namespace tau
}  // namespace pat

#endif