CMS 3D CMS Logo

BPHDecayToV0Builder.h
Go to the documentation of this file.
1 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHDecayToV0Builder_h
2 #define HeavyFlavorAnalysis_SpecificDecay_BPHDecayToV0Builder_h
3 
13 //----------------------
14 // Base Class Headers --
15 //----------------------
18 
19 //------------------------------------
20 // Collaborating Class Declarations --
21 //------------------------------------
26 
28 
30 
31 //---------------
32 // C++ Headers --
33 //---------------
34 #include <string>
35 #include <vector>
36 #include <map>
37 
38 // ---------------------
39 // -- Class Interface --
40 // ---------------------
41 
43  public virtual BPHDecayGenericBuilder<BPHPlusMinusCandidate> {
44 public:
46  struct V0Info {
48  const void* v0;
49  };
50 
54  const std::string& daug1Name,
55  const std::string& daug2Name,
56  const BPHRecoBuilder::BPHGenericCollection* daug1Collection,
57  const BPHRecoBuilder::BPHGenericCollection* daug2Collection);
59  const std::string& daug1Name,
60  const std::string& daug2Name,
61  const std::vector<reco::VertexCompositeCandidate>* v0Collection,
62  const std::string& searchList = "cfp");
64  const std::string& daug1Name,
65  const std::string& daug2Name,
66  const std::vector<reco::VertexCompositePtrCandidate>* vpCollection,
67  const std::string& searchList = "cfp");
68 
69  // deleted copy constructor and assignment operator
70  BPHDecayToV0Builder(const BPHDecayToV0Builder& x) = delete;
72 
75  ~BPHDecayToV0Builder() override;
76 
77 protected:
80 
83  const std::vector<reco::VertexCompositeCandidate>* vCollection;
84  const std::vector<reco::VertexCompositePtrCandidate>* rCollection;
86 
87  std::map<const BPHRecoCandidate*, const V0Info*> v0Map;
88 
90  virtual void buildFromBPHGenericCollection() = 0;
91  template <class T>
92  void buildFromV0(const T* v0Collection, v0Type type);
94  const reco::Candidate* c2,
95  const void* v0,
96  v0Type type) = 0;
97  void v0Clear();
98 
100  void fillRecList() override;
101 };
102 
103 #endif
BPHDecayToV0Builder(const BPHEventSetupWrapper &es, const std::string &daug1Name, const std::string &daug2Name, const BPHRecoBuilder::BPHGenericCollection *daug1Collection, const BPHRecoBuilder::BPHGenericCollection *daug2Collection)
BPHDecayToV0Builder & operator=(const BPHDecayToV0Builder &x)=delete
virtual void buildFromBPHGenericCollection()=0
build candidates and link to V0
const BPHRecoBuilder::BPHGenericCollection * p2Collection
BPHGenericPtr< BPHPlusMinusCandidate >::type BPHPlusMinusCandidatePtr
std::map< const BPHRecoCandidate *, const V0Info * > v0Map
const BPHRecoBuilder::BPHGenericCollection * p1Collection
const std::vector< reco::VertexCompositeCandidate > * vCollection
virtual BPHPlusMinusCandidatePtr buildCandidate(const reco::Candidate *c1, const reco::Candidate *c2, const void *v0, v0Type type)=0
void buildFromV0(const T *v0Collection, v0Type type)
common object to interface with edm collections
const std::vector< reco::VertexCompositePtrCandidate > * rCollection
void fillRecList() override
build candidates
long double T