CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
BPHPlusMinusVertex.h
Go to the documentation of this file.
1 #ifndef HeavyFlavorAnalysis_RecoDecay_BPHPlusMinusVertex_h
2 #define HeavyFlavorAnalysis_RecoDecay_BPHPlusMinusVertex_h
3 
13 //----------------------
14 // Base Class Headers --
15 //----------------------
17 
18 //------------------------------------
19 // Collaborating Class Declarations --
20 //------------------------------------
24 
25 //---------------
26 // C++ Headers --
27 //---------------
28 
29 // ---------------------
30 // -- Class Interface --
31 // ---------------------
32 
33 class BPHPlusMinusVertex : public virtual BPHDecayVertex {
34 public:
38  // deleted copy constructor and assignment operator
39  BPHPlusMinusVertex(const BPHPlusMinusVertex& x) = delete;
41 
44  ~BPHPlusMinusVertex() override;
45 
48  virtual const ClosestApproachInRPhi& cAppInRPhi() const;
50 
51 protected:
53 
54  // utility functions to check/enforce the number of decay particles
55  // at 2
56  template <class T>
57  static bool chkName(const T& cont, const std::string& name, const std::string& msg);
58  template <class T>
59  static bool chkSize(const T& cont, const std::string& msg);
60  bool chkSize(const std::string& msg) const;
61 
62  // utility function used to cash reconstruction results
63  void setNotUpdated() const override;
64 
65 private:
66  // reconstruction results cache
67  mutable bool oldA;
69 
70  // compute closest approach distance and cache it
71  virtual void computeApp() const;
72 };
73 
74 template <class T>
76  if (cont.find(name) != cont.end())
77  return true;
78  edm::LogPrint("ParticleNotFound") << msg << ", " << name << " not found";
79  return false;
80 }
81 
82 template <class T>
84  int n = cont.size();
85  if (n == 2)
86  return true;
87  edm::LogPrint("WrongDataSize") << msg << ", size = " << n;
88  return false;
89 }
90 
91 #endif
tuple cont
load Luminosity info ##
Definition: generateEDF.py:628
void setNotUpdated() const override
static bool chkSize(const T &cont, const std::string &msg)
virtual const ClosestApproachInRPhi & cAppInRPhi() const
compute distance of closest approach
Log< level::Warning, true > LogPrint
~BPHPlusMinusVertex() override
BPHPlusMinusVertex(const BPHPlusMinusVertex &x)=delete
tuple msg
Definition: mps_check.py:285
virtual void computeApp() const
static bool chkName(const T &cont, const std::string &name, const std::string &msg)
ClosestApproachInRPhi * inRPhi
BPHPlusMinusVertex & operator=(const BPHPlusMinusVertex &x)=delete
long double T