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 //------------------------------------
18 // Collaborating Class Declarations --
19 //------------------------------------
23 
25 
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 
47  public:
48 
49  enum oniaType { Phi , Psi1, Psi2, Ups , Ups1, Ups2, Ups3 };
50 
54  const edm::EventSetup& es,
55  const BPHRecoBuilder::BPHGenericCollection* muPosCollection,
56  const BPHRecoBuilder::BPHGenericCollection* muNegCollection );
57 
60  virtual ~BPHOniaToMuMuBuilder();
61 
64  std::vector<BPHPlusMinusConstCandPtr> build();
66 
69  std::vector<BPHPlusMinusConstCandPtr> getList( oniaType type,
70  BPHRecoSelect * dSel = nullptr,
71  BPHMomentumSelect* mSel = nullptr,
72  BPHVertexSelect * vSel = nullptr,
73  BPHFitSelect * kSel = nullptr );
74 
78  const BPHRecoCandidate& cand );
79 
81  void setPtMin ( oniaType type, double pt );
82  void setEtaMax ( oniaType type, double eta );
83  void setMassMin( oniaType type, double m );
84  void setMassMax( oniaType type, double m );
85  void setProbMin( oniaType type, double p );
86  void setConstr ( oniaType type, double mass, double sigma );
87 
89  double getPtMin ( oniaType type ) const;
90  double getEtaMax ( oniaType type ) const;
91  double getMassMin( oniaType type ) const;
92  double getMassMax( oniaType type ) const;
93  double getProbMin( oniaType type ) const;
94  double getConstrMass ( oniaType type ) const;
95  double getConstrSigma( oniaType type ) const;
96 
97  private:
98 
99  // private copy and assigment constructors
100  BPHOniaToMuMuBuilder ( const BPHOniaToMuMuBuilder& x ) = delete;
102 
105 
109 
110  struct OniaParameters {
115  double mass;
116  double sigma;
117  bool updated;
118  };
119  bool updated;
120 
121  std::map< oniaType, OniaParameters > oniaPar;
122  std::map< oniaType, std::vector<BPHPlusMinusConstCandPtr> > oniaList;
123  std::vector<BPHPlusMinusConstCandPtr> fullList;
124 
125  void setNotUpdated();
126  void setParameters( oniaType type,
127  double ptMin, double etaMax,
128  double massMin, double massMax,
129  double probMin,
130  double mass, double sigma );
131  void extractList( oniaType type );
132 
133 };
134 
135 
136 #endif
137 
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)
std::map< oniaType, std::vector< BPHPlusMinusConstCandPtr > > oniaList
void setProbMin(oniaType type, double p)
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
void setConstr(oniaType type, double mass, double sigma)
void setEtaMax(oniaType type, double eta)
std::map< oniaType, OniaParameters > oniaPar
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