MINT2
DecRateCoeff_Bd.h
Go to the documentation of this file.
1 
13 #ifndef DECRATECOEFF_BD
14 #define DECRATECOEFF_BD
15 
16 #include "RooAbsReal.h"
17 #include "RooRealProxy.h"
18 #include "RooAbsCategory.h"
19 #include "RooCategoryProxy.h"
20 
21 class DecRateCoeff_Bd : public RooAbsReal {
22 public:
23  enum CoeffType {
24  kSin = 3,
25  kCos = 2,
26  kSinh = 1,
27  kCosh = 0
28  };
29 
32 
33  DecRateCoeff_Bd(const std::string& name,
34  const std::string& title,
35  CoeffType _coeff_type_,
36  RooAbsCategory& _finalstate_,
37  RooAbsReal& _cp_coeff_,
38  RooAbsReal& _cp_coeff_bar_,
39  RooAbsCategory& _tag_os_,
40  RooAbsReal& _eta_os_,
41  RooAbsReal& _p0_os_,
42  RooAbsReal& _p1_os_,
43  RooAbsReal& _delta_p0_os_,
44  RooAbsReal& _delta_p1_os_,
45  RooAbsReal& _avg_eta_os_,
46  RooAbsReal& _tageff_os_,
47  RooAbsReal& _tageff_asym_os_,
48  RooAbsCategory& _tag_ss_,
49  RooAbsReal& _eta_ss_,
50  RooAbsReal& _p0_ss_,
51  RooAbsReal& _p1_ss_,
52  RooAbsReal& _delta_p0_ss_,
53  RooAbsReal& _delta_p1_ss_,
54  RooAbsReal& _avg_eta_ss_,
55  RooAbsReal& _tageff_ss_,
56  RooAbsReal& _tageff_asym_ss_,
57  RooAbsReal& _production_asym_,
58  RooAbsReal& _detection_asym_);
59 
60  DecRateCoeff_Bd(const std::string& name,
61  const std::string& title,
62  CoeffType _coeff_type_,
63  RooAbsCategory& _finalstate_,
64  RooAbsReal& _cp_coeff_,
65  RooAbsReal& _cp_coeff_bar_,
66  RooAbsCategory& _tag_os_,
67  RooAbsReal& _eta_os_,
68  RooAbsReal& _p0_os_,
69  RooAbsReal& _p1_os_,
70  RooAbsReal& _delta_p0_os_,
71  RooAbsReal& _delta_p1_os_,
72  RooAbsReal& _avg_eta_os_,
73  RooAbsReal& _tageff_os_,
74  RooAbsReal& _tageff_asym_os_,
75  RooAbsReal& _production_asym_,
76  RooAbsReal& _detection_asym_);
77 
78  DecRateCoeff_Bd(const DecRateCoeff_Bd& other, const char* name=0) ;
79  TObject* clone(const char* newname) const { return new DecRateCoeff_Bd(*this,newname); }
80  inline ~DecRateCoeff_Bd() { }
81 
82  Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
83  Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet, const char* rangeName=0) const ;
84  Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
85  Double_t evaluate() const ;
86  std::pair<double, double> calibrate(double eta, double avg_eta, double p0, double p1, double delta_p0, double delta_p1) const ;
87 
88 
89 protected:
90 
91  RooRealProxy cp_coeff_ ;
92  RooRealProxy cp_coeff_bar_ ;
94  RooCategoryProxy finalstate_;
95 
96  RooCategoryProxy tag_os_ ;
97  RooRealProxy eta_os_ ;
98  RooRealProxy avg_eta_os_ ;
99  RooRealProxy p0_os_ ;
100  RooRealProxy p1_os_ ;
101  RooRealProxy delta_p0_os_ ;
102  RooRealProxy delta_p1_os_ ;
103  RooRealProxy tageff_os_;
104  RooRealProxy tageff_asym_os_;
105 
106  RooCategoryProxy tag_ss_ ;
107  RooRealProxy eta_ss_ ;
108  RooRealProxy avg_eta_ss_ ;
109  RooRealProxy p0_ss_ ;
110  RooRealProxy p1_ss_ ;
111  RooRealProxy delta_p0_ss_ ;
112  RooRealProxy delta_p1_ss_ ;
113  RooRealProxy tageff_ss_;
114  RooRealProxy tageff_asym_ss_;
115 
116  RooRealProxy production_asym_ ;
117  RooRealProxy detection_asym_ ;
118 
119  Bool_t onetagger_;
120 
121 private:
122 
123  Double_t evaluate(double cp_coeff,
124  double cp_coeff_bar,
125  CoeffType coeff_type,
126  int finalstate,
127  int tag_os,
128  double eta_os,
129  double avg_eta_os,
130  double p0_os,
131  double p1_os,
132  double delta_p0_os,
133  double delta_p1_os,
134  double tageff_os,
135  double tageff_asym_os,
136  int tag_ss,
137  double eta_ss,
138  double avg_eta_ss,
139  double p0_ss,
140  double p1_ss,
141  double delta_p0_ss,
142  double delta_p1_ss,
143  double tageff_ss,
144  double tageff_asym_ss,
145  double production_asym,
146  double detection_asym) const ;
147 
148  bool isTagInRange(const RooCategoryProxy& tag, int tag_state, const char* rangeName) const ;
149  bool hasTagState(const RooCategoryProxy& tag, int tag_state) const;
150 
151  bool isFinalstateInRange(const RooCategoryProxy& finalstate, int finalstate_state, const char* rangeName) const ;
152  bool hasFinalstateState(const RooCategoryProxy& finalstate, int finalstate_state) const ;
153 
154  int getIndex(const RooCategoryProxy& tag) const;
155 
156  //ClassDef(DecRateCoeff_Bd,1) // CP coefficient for RooBDecay PDF
157 };
158 
159 #endif
RooRealProxy p1_ss_
RooRealProxy tageff_ss_
int getIndex(const RooCategoryProxy &tag) const
RooRealProxy cp_coeff_bar_
RooRealProxy tageff_asym_os_
Double_t analyticalIntegral(Int_t code, const char *rangeName=0) const
RooRealProxy delta_p0_ss_
Double_t evaluate() const
RooRealProxy p1_os_
RooCategoryProxy tag_ss_
RooRealProxy tageff_os_
DecRateCoeff_Bd()
default constructor for ROOT I/O
RooRealProxy cp_coeff_
bool isFinalstateInRange(const RooCategoryProxy &finalstate, int finalstate_state, const char *rangeName) const
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
RooCategoryProxy finalstate_
RooRealProxy avg_eta_os_
RooRealProxy delta_p0_os_
RooRealProxy p0_os_
RooRealProxy delta_p1_os_
RooRealProxy delta_p1_ss_
std::pair< double, double > calibrate(double eta, double avg_eta, double p0, double p1, double delta_p0, double delta_p1) const
Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &analVars, const RooArgSet *normSet, const char *rangeName=0) const
RooRealProxy p0_ss_
RooRealProxy eta_ss_
RooRealProxy avg_eta_ss_
CoeffType coeff_type_
bool hasFinalstateState(const RooCategoryProxy &finalstate, int finalstate_state) const
RooRealProxy production_asym_
cosh/sinh/cos/sin coefficients in decay rate equations
TObject * clone(const char *newname) const
RooCategoryProxy tag_os_
bool hasTagState(const RooCategoryProxy &tag, int tag_state) const
RooRealProxy detection_asym_
bool isTagInRange(const RooCategoryProxy &tag, int tag_state, const char *rangeName) const
RooRealProxy eta_os_
RooRealProxy tageff_asym_ss_