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 //----------------------
15 
16 //------------------------------------
17 // Collaborating Class Declarations --
18 //------------------------------------
22 
24 
25 class BPHMuonPtSelect;
26 class BPHMuonEtaSelect;
27 class BPHChi2Select;
28 class BPHMassSelect;
29 class BPHRecoSelect;
30 class BPHMomentumSelect;
31 class BPHVertexSelect;
32 
33 //---------------
34 // C++ Headers --
35 //---------------
36 #include <string>
37 #include <vector>
38 #include <map>
39 
40 // ---------------------
41 // -- Class Interface --
42 // ---------------------
43 
45 public:
46  enum oniaType { Phi, Psi1, Psi2, Ups, Ups1, Ups2, Ups3 };
47 
51  const BPHRecoBuilder::BPHGenericCollection* muPosCollection,
52  const BPHRecoBuilder::BPHGenericCollection* muNegCollection);
53 
56  virtual ~BPHOniaToMuMuBuilder();
57 
60  std::vector<BPHPlusMinusConstCandPtr> build();
62 
65  std::vector<BPHPlusMinusConstCandPtr> getList(oniaType type,
66  BPHRecoSelect* dSel = nullptr,
67  BPHMomentumSelect* mSel = nullptr,
68  BPHVertexSelect* vSel = nullptr,
69  BPHFitSelect* kSel = nullptr);
70 
74 
76  void setPtMin(oniaType type, double pt);
77  void setEtaMax(oniaType type, double eta);
78  void setMassMin(oniaType type, double m);
79  void setMassMax(oniaType type, double m);
80  void setProbMin(oniaType type, double p);
81  void setConstr(oniaType type, double mass, double sigma);
82 
84  double getPtMin(oniaType type) const;
85  double getEtaMax(oniaType type) const;
86  double getMassMin(oniaType type) const;
87  double getMassMax(oniaType type) const;
88  double getProbMin(oniaType type) const;
89  double getConstrMass(oniaType type) const;
90  double getConstrSigma(oniaType type) const;
91 
92 private:
93  // private copy and assigment constructors
96 
99 
103 
104  struct OniaParameters {
109  double mass;
110  double sigma;
111  bool updated;
112  };
113  bool updated;
114 
115  std::map<oniaType, OniaParameters> oniaPar;
116  std::map<oniaType, std::vector<BPHPlusMinusConstCandPtr> > oniaList;
117  std::vector<BPHPlusMinusConstCandPtr> fullList;
118 
119  void setNotUpdated();
120  void setParameters(oniaType type,
121  double ptMin,
122  double etaMax,
123  double massMin,
124  double massMax,
125  double probMin,
126  double mass,
127  double sigma);
128  void extractList(oniaType type);
129 };
130 
131 #endif
type
Definition: HCALResponse.h:21
const BPHRecoBuilder::BPHGenericCollection * posCollection
double getMassMax(oniaType type) const
void setMassMax(oniaType type, double m)
double getConstrMass(oniaType type) const
double getProbMin(oniaType type) const
BPHPlusMinusConstCandPtr getOriginalCandidate(const BPHRecoCandidate &cand)
void setProbMin(oniaType type, double p)
std::map< oniaType, std::vector< BPHPlusMinusConstCandPtr > > oniaList
double getMassMin(oniaType type) const
void setParameters(oniaType type, double ptMin, double etaMax, double massMin, double massMax, double probMin, double mass, double sigma)
BPHGenericPtr< const BPHPlusMinusCandidate >::type BPHPlusMinusConstCandPtr
double getConstrSigma(oniaType type) const
void extractList(oniaType type)
BPHOniaToMuMuBuilder(const edm::EventSetup &es, const BPHRecoBuilder::BPHGenericCollection *muPosCollection, const BPHRecoBuilder::BPHGenericCollection *muNegCollection)
BPHOniaToMuMuBuilder & operator=(const BPHOniaToMuMuBuilder &x)=delete
double getEtaMax(oniaType type) const
const BPHRecoBuilder::BPHGenericCollection * negCollection
double getPtMin(oniaType type) const
get current cuts
std::vector< BPHPlusMinusConstCandPtr > build()
build resonance candidates
std::map< oniaType, OniaParameters > oniaPar
void setConstr(oniaType type, double mass, double sigma)
void setEtaMax(oniaType type, double eta)
std::vector< BPHPlusMinusConstCandPtr > fullList
std::vector< BPHPlusMinusConstCandPtr > getList(oniaType type, BPHRecoSelect *dSel=0, BPHMomentumSelect *mSel=0, BPHVertexSelect *vSel=0, BPHFitSelect *kSel=0)
void setMassMin(oniaType type, double m)
const edm::EventSetup * evSetup
void setPtMin(oniaType type, double pt)
set cuts