#ifndef ROO_NONCPEIGEN_DECAY
#define ROO_NONCPEIGEN_DECAY
#include "RooAbsAnaConvPdf.h"
#include "RooRealProxy.h"
#include "RooCategoryProxy.h"
class RooNonCPEigenDecay : public RooAbsAnaConvPdf {
public:
enum DecayType { SingleSided, DoubleSided, Flipped };
inline RooNonCPEigenDecay( void ) { }
RooNonCPEigenDecay( const char *name, const char *title,
RooRealVar& t,
RooAbsCategory& tag,
RooAbsReal& tau,
RooAbsReal& dm,
RooAbsReal& avgW,
RooAbsReal& delW,
RooAbsCategory& rhoQ,
RooAbsReal& correctQ,
RooAbsReal& wQ,
RooAbsReal& a,
RooAbsReal& C,
RooAbsReal& delC,
RooAbsReal& S,
RooAbsReal& delS,
const RooResolutionModel& model,
DecayType type = DoubleSided );
RooNonCPEigenDecay( const char *name, const char *title,
RooRealVar& t,
RooAbsCategory& tag,
RooAbsReal& tau,
RooAbsReal& dm,
RooAbsReal& avgW,
RooAbsReal& delW,
RooAbsCategory& rhoQ,
RooAbsReal& correctQ,
RooAbsReal& a,
RooAbsReal& C,
RooAbsReal& delC,
RooAbsReal& S,
RooAbsReal& delS,
const RooResolutionModel& model,
DecayType type = DoubleSided );
RooNonCPEigenDecay(const RooNonCPEigenDecay& other, const char* name=0);
virtual TObject* clone(const char* newname) const {
return new RooNonCPEigenDecay(*this,newname);
}
virtual ~RooNonCPEigenDecay( void );
virtual Double_t coefficient( Int_t basisIndex ) const;
virtual Int_t getCoefAnalyticalIntegral( Int_t coef, RooArgSet& allVars,
RooArgSet& analVars, const char* rangeName=0 ) const;
virtual Double_t coefAnalyticalIntegral( Int_t coef, Int_t code, const char* rangeName=0 ) const;
Int_t getGenerator( const RooArgSet& directVars,
RooArgSet& generateVars, Bool_t staticInitOK=kTRUE ) const;
void initGenerator( Int_t code );
void generateEvent( Int_t code );
protected:
RooRealProxy _acp ;
RooRealProxy _avgC ;
RooRealProxy _delC ;
RooRealProxy _avgS ;
RooRealProxy _delS ;
RooRealProxy _avgW ;
RooRealProxy _delW ;
RooRealProxy _t ;
RooRealProxy _tau;
RooRealProxy _dm;
RooCategoryProxy _tag;
RooCategoryProxy _rhoQ;
RooRealProxy _correctQ;
RooRealProxy _wQ;
Double_t _genB0Frac;
Double_t _genRhoPlusFrac;
DecayType _type;
Int_t _basisExp;
Int_t _basisSin;
Int_t _basisCos;
ClassDef(RooNonCPEigenDecay,1)
};
#endif