library: libRooFit #include "RooNonCPEigenDecay.h" |
RooNonCPEigenDecay
class description - header file - source file - inheritance tree (.pdf)
public:
RooNonCPEigenDecay()
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, RooNonCPEigenDecay::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, RooNonCPEigenDecay::DecayType type = DoubleSided)
RooNonCPEigenDecay(const RooNonCPEigenDecay& other, const char* name = "0")
virtual ~RooNonCPEigenDecay()
static TClass* Class()
virtual TObject* clone(const char* newname) const
virtual Double_t coefAnalyticalIntegral(Int_t coef, Int_t code, const char* rangeName = "0") const
virtual Double_t coefficient(Int_t basisIndex) const
virtual void generateEvent(Int_t code)
virtual Int_t getCoefAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName = "0") const
virtual Int_t getGenerator(const RooArgSet& directVars, RooArgSet& generateVars, Bool_t staticInitOK = kTRUE) const
virtual void initGenerator(Int_t code)
virtual TClass* IsA() const
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
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
RooNonCPEigenDecay::DecayType _type
Int_t _basisExp
Int_t _basisSin
Int_t _basisCos
public:
static const RooNonCPEigenDecay::DecayType SingleSided
static const RooNonCPEigenDecay::DecayType DoubleSided
static const RooNonCPEigenDecay::DecayType Flipped
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& acp, RooAbsReal& C, RooAbsReal& delC, RooAbsReal& S, RooAbsReal& delS, const RooResolutionModel& model, DecayType type )
RooNonCPEigenDecay( const char *name, const char *title, RooRealVar& t, RooAbsCategory& tag, RooAbsReal& tau, RooAbsReal& dm, RooAbsReal& avgW, RooAbsReal& delW, RooAbsCategory& rhoQ, RooAbsReal& correctQ, RooAbsReal& acp, RooAbsReal& C, RooAbsReal& delC, RooAbsReal& S, RooAbsReal& delS, const RooResolutionModel& model, DecayType type )
Double_t coefAnalyticalIntegral( Int_t basisIndex, Int_t code, const char* /*rangeName*/ )
{
correct for the right/wrong charge...
Int_t rhoQc = _rhoQ*int(_correctQ);
Double_t a_sin_p = _avgS + _delS;
Double_t a_sin_m = _avgS - _delS;
Double_t a_cos_p = _avgC + _delC;
Double_t a_cos_m = _avgC - _delC;
switch(code) {
No integration
case 0: return coefficient(basisIndex);
Integration over 'tag'
case 1:
if (basisIndex == _basisExp) return 2*(1 + rhoQc*_acp*(1 - 2*_wQ));
if (basisIndex == _basisSin || basisIndex==_basisCos) return 0;
assert( kFALSE );
Integration over 'rhoQ'
case 2:
if (basisIndex == _basisExp) return 2*(1 + 0.5*_tag*(2.*_delW));
if (basisIndex == _basisSin)
return - ( (1 - _acp)*a_sin_m + (1 + _acp)*a_sin_p )*(1 - 2*_avgW)*_tag;
if (basisIndex == _basisCos)
return + ( (1 - _acp)*a_cos_m + (1 + _acp)*a_cos_p )*(1 - 2*_avgW)*_tag;
assert( kFALSE );
Integration over 'tag' and 'rhoQ'
case 3:
if (basisIndex == _basisExp) return 2*2; // for both: tag and charge
if (basisIndex == _basisSin || basisIndex==_basisCos) return 0;
assert( kFALSE );
default:
assert( kFALSE );
}
return 0;
}
Int_t RooNonCPEigenDecay::getGenerator( const RooArgSet& directVars,
RooArgSet& generateVars, Bool_t staticInitOK ) const
{
if (staticInitOK) {
if (matchArgs( directVars, generateVars, _t, _tag, _rhoQ )) return 4;
if (matchArgs( directVars, generateVars, _t, _rhoQ )) return 3;
if (matchArgs( directVars, generateVars, _t, _tag )) return 2;
}
if (matchArgs( directVars, generateVars, _t )) return 1;
return 0;
}
void RooNonCPEigenDecay::initGenerator( Int_t code )
{
if (code == 2 || code == 4) {
Calculate the fraction of mixed events to generate
Last update: Tue Jul 11 11:46:00 2006
Copyright (c) 2000-2005, Regents of the University of California, *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.