CMS 3D CMS Logo

BPHOniaToMuMuBuilder.h
Go to the documentation of this file.
1 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHOniaToMuMuBuilder_h
2 #define HeavyFlavorAnalysis_SpecificDecay_BPHOniaToMuMuBuilder_h
3 
12 //----------------------
13 // Base Class Headers --
14 //----------------------
17 
18 //------------------------------------
19 // Collaborating Class Declarations --
20 //------------------------------------
24 
26 class BPHMuonPtSelect;
27 class BPHMuonEtaSelect;
28 class BPHChi2Select;
29 class BPHMassSelect;
30 class BPHRecoSelect;
31 class BPHMomentumSelect;
32 class BPHVertexSelect;
33 
34 //---------------
35 // C++ Headers --
36 //---------------
37 #include <string>
38 #include <vector>
39 #include <map>
40 
41 // ---------------------
42 // -- Class Interface --
43 // ---------------------
44 
46  public virtual BPHDecayGenericBuilder<BPHPlusMinusCandidate> {
47 public:
48  enum oniaType { NRes, Phi, Psi1, Psi2, Ups, Ups1, Ups2, Ups3 };
49 
53  const BPHRecoBuilder::BPHGenericCollection* muPosCollection,
54  const BPHRecoBuilder::BPHGenericCollection* muNegCollection);
55 
56  // deleted copy constructor and assignment operator
59 
62  ~BPHOniaToMuMuBuilder() override;
63 
66  void fillRecList() override;
68 
71  std::vector<BPHPlusMinusConstCandPtr> getList(oniaType type,
72  BPHRecoSelect* dSel = nullptr,
73  BPHMomentumSelect* mSel = nullptr,
74  BPHVertexSelect* vSel = nullptr,
75  BPHFitSelect* kSel = nullptr);
76 
80 
82  void setPtMin(oniaType type, double pt);
83  void setEtaMax(oniaType type, double eta);
84  void setMassMin(oniaType type, double m);
85  void setMassMax(oniaType type, double m);
86  void setProbMin(oniaType type, double p);
87  void setConstr(oniaType type, double mass, double sigma);
88 
90  double getPtMin(oniaType type) const;
91  double getEtaMax(oniaType type) const;
92  double getMassMin(oniaType type) const;
93  double getMassMax(oniaType type) const;
94  double getProbMin(oniaType type) const;
95  double getConstrMass(oniaType type) const;
96  double getConstrSigma(oniaType type) const;
97 
98 private:
101 
104 
105  struct OniaParameters {
110  double mass;
111  double sigma;
112  bool outdated;
113  };
114 
115  std::map<oniaType, OniaParameters> oniaPar;
116  std::map<oniaType, std::vector<BPHPlusMinusConstCandPtr> > oniaList;
117 
118  void setNotUpdated();
120  double ptMin,
121  double etaMax,
122  double massMin,
123  double massMax,
124  double probMin,
125  double mass,
126  double sigma);
127  void extractList(oniaType type);
128 };
129 
130 #endif
const BPHRecoBuilder::BPHGenericCollection * posCollection
void setMassMax(oniaType type, double m)
constexpr float ptMin
BPHPlusMinusConstCandPtr getOriginalCandidate(const BPHRecoCandidate &cand)
void setProbMin(oniaType type, double p)
double getConstrSigma(oniaType type) const
std::map< oniaType, std::vector< BPHPlusMinusConstCandPtr > > oniaList
void setParameters(oniaType type, double ptMin, double etaMax, double massMin, double massMax, double probMin, double mass, double sigma)
double getEtaMax(oniaType type) const
BPHGenericPtr< const BPHPlusMinusCandidate >::type BPHPlusMinusConstCandPtr
double getMassMin() const
get current cuts
std::vector< BPHPlusMinusConstCandPtr > getList(oniaType type, BPHRecoSelect *dSel=nullptr, BPHMomentumSelect *mSel=nullptr, BPHVertexSelect *vSel=nullptr, BPHFitSelect *kSel=nullptr)
double getPtMin(oniaType type) const
get current cuts
void extractList(oniaType type)
BPHOniaToMuMuBuilder & operator=(const BPHOniaToMuMuBuilder &x)=delete
double getConstrMass(oniaType type) const
const BPHRecoBuilder::BPHGenericCollection * negCollection
BPHOniaToMuMuBuilder(const BPHEventSetupWrapper &es, const BPHRecoBuilder::BPHGenericCollection *muPosCollection, const BPHRecoBuilder::BPHGenericCollection *muNegCollection)
common object to interface with edm collections
void fillRecList() override
build resonance candidates
std::map< oniaType, OniaParameters > oniaPar
void setConstr(oniaType type, double mass, double sigma)
void setEtaMax(oniaType type, double eta)
void setMassMin(oniaType type, double m)
void setPtMin(oniaType type, double pt)
set cuts