File indexing completed on 2025-01-18 10:11:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef ROO_NONCPEIGEN_DECAY
0027 #define ROO_NONCPEIGEN_DECAY
0028
0029 #include "RooAbsAnaConvPdf.h"
0030 #include "RooRealProxy.h"
0031 #include "RooCategoryProxy.h"
0032
0033 class RooNonCPEigenDecay : public RooAbsAnaConvPdf {
0034
0035 public:
0036
0037 enum DecayType { SingleSided, DoubleSided, Flipped };
0038
0039
0040 inline RooNonCPEigenDecay( void ) { }
0041
0042
0043 RooNonCPEigenDecay( const char *name, const char *title,
0044 RooRealVar& t,
0045 RooAbsCategory& tag,
0046 RooAbsReal& tau,
0047 RooAbsReal& dm,
0048 RooAbsReal& avgW,
0049 RooAbsReal& delW,
0050 RooAbsCategory& rhoQ,
0051 RooAbsReal& correctQ,
0052 RooAbsReal& wQ,
0053 RooAbsReal& a,
0054 RooAbsReal& C,
0055 RooAbsReal& delC,
0056 RooAbsReal& S,
0057 RooAbsReal& delS,
0058 const RooResolutionModel& model,
0059 DecayType type = DoubleSided );
0060
0061
0062 RooNonCPEigenDecay( const char *name, const char *title,
0063 RooRealVar& t,
0064 RooAbsCategory& tag,
0065 RooAbsReal& tau,
0066 RooAbsReal& dm,
0067 RooAbsReal& avgW,
0068 RooAbsReal& delW,
0069 RooAbsCategory& rhoQ,
0070 RooAbsReal& correctQ,
0071 RooAbsReal& a,
0072 RooAbsReal& C,
0073 RooAbsReal& delC,
0074 RooAbsReal& S,
0075 RooAbsReal& delS,
0076 const RooResolutionModel& model,
0077 DecayType type = DoubleSided );
0078
0079 RooNonCPEigenDecay(const RooNonCPEigenDecay& other, const char* name=nullptr);
0080 TObject* clone(const char* newname) const override {
0081 return new RooNonCPEigenDecay(*this,newname);
0082 }
0083
0084 double coefficient( Int_t basisIndex ) const override;
0085
0086 Int_t getCoefAnalyticalIntegral( Int_t coef, RooArgSet& allVars,
0087 RooArgSet& analVars, const char* rangeName=nullptr ) const override;
0088 double coefAnalyticalIntegral( Int_t coef, Int_t code, const char* rangeName=nullptr ) const override;
0089
0090 Int_t getGenerator( const RooArgSet& directVars,
0091 RooArgSet& generateVars, bool staticInitOK=true ) const override;
0092 void initGenerator( Int_t code ) override;
0093 void generateEvent( Int_t code ) override;
0094
0095 protected:
0096
0097 RooRealProxy _acp ;
0098 RooRealProxy _avgC ;
0099 RooRealProxy _delC ;
0100 RooRealProxy _avgS ;
0101 RooRealProxy _delS ;
0102 RooRealProxy _avgW ;
0103 RooRealProxy _delW ;
0104 RooRealProxy _t ;
0105 RooRealProxy _tau;
0106 RooRealProxy _dm;
0107 RooCategoryProxy _tag;
0108 RooCategoryProxy _rhoQ;
0109 RooRealProxy _correctQ;
0110 RooRealProxy _wQ;
0111 double _genB0Frac;
0112 double _genRhoPlusFrac;
0113
0114 DecayType _type;
0115 Int_t _basisExp;
0116 Int_t _basisSin;
0117 Int_t _basisCos;
0118
0119 ClassDefOverride(RooNonCPEigenDecay,1)
0120 };
0121
0122 #endif