CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CandidateBoostedDoubleSecondaryVertexComputer.h
Go to the documentation of this file.
1 #ifndef RecoBTag_SecondaryVertex_CandidateBoostedDoubleSecondaryVertexComputer_h
2 #define RecoBTag_SecondaryVertex_CandidateBoostedDoubleSecondaryVertexComputer_h
3 
16 
17 #include "fastjet/PseudoJet.hh"
18 
20 
21  public:
23 
24  void initialize(const JetTagComputerRecord &) override;
25  float discriminator(const TagInfoHelper & tagInfos) const override;
26 
27  private:
28  void calcNsubjettiness(const reco::JetBaseRef & jet, float & tau1, float & tau2, std::vector<fastjet::PseudoJet> & currentAxes) const;
29  void setTracksPVBase(const reco::TrackRef & trackRef, const reco::VertexRef & vertexRef, float & PVweight) const;
30  void setTracksPV(const reco::CandidatePtr & trackRef, const reco::VertexRef & vertexRef, float & PVweight) const;
31  void etaRelToTauAxis(const reco::VertexCompositePtrCandidate & vertex, fastjet::PseudoJet & tauAxis, std::vector<float> & tau_trackEtaRel) const;
32 
33  const double beta_;
34  const double R0_;
35 
36  const double maxSVDeltaRToJet_;
37  const bool useCondDB_;
40  const bool useGBRForest_;
41  const bool useAdaBoost_;
42  const double maxDistToAxis_;
43  const double maxDecayLen_;
46 
48  std::unique_ptr<TMVAEvaluator> mvaID;
49 
50  // static variables
51  static constexpr float dummyZ_ratio = -3.0f;
52  static constexpr float dummyTrackSip3dSig = -50.0f;
53  static constexpr float dummyTrackSip2dSigAbove = -19.0f;
54  static constexpr float dummyTrackEtaRel = -1.0f;
55  static constexpr float dummyVertexMass = -1.0f;
56  static constexpr float dummyVertexEnergyRatio = -1.0f;
57  static constexpr float dummyVertexDeltaR = -1.0f;
58  static constexpr float dummyFlightDistance2dSig = -1.0f;
59 
60  static constexpr float charmThreshold = 1.5f;
61  static constexpr float bottomThreshold = 5.2f;
62 };
63 
64 #endif // RecoBTag_SecondaryVertex_CandidateBoostedDoubleSecondaryVertexComputer_h
void setTracksPV(const reco::CandidatePtr &trackRef, const reco::VertexRef &vertexRef, float &PVweight) const
void etaRelToTauAxis(const reco::VertexCompositePtrCandidate &vertex, fastjet::PseudoJet &tauAxis, std::vector< float > &tau_trackEtaRel) const
#define constexpr
void setTracksPVBase(const reco::TrackRef &trackRef, const reco::VertexRef &vertexRef, float &PVweight) const
void calcNsubjettiness(const reco::JetBaseRef &jet, float &tau1, float &tau2, std::vector< fastjet::PseudoJet > &currentAxes) const
float discriminator(const TagInfoHelper &tagInfos) const override