RooNonCPEigenDecay.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * Project: RooFit                                                           *
00003  * Package: RooFitModels                                                     *
00004  *    File: $Id: RooNonCPEigenDecay.h,v 1.13 2007/05/11 09:13:07 verkerke Exp $
00005  * Authors:                                                                  *
00006  *   AH, Andreas Hoecker,  Orsay,            hoecker@slac.stanford.edu       *
00007  *   SL, Sandrine Laplace, Orsay,            laplace@slac.stanford.edu       *
00008  *   JS, Jan Stark,        Paris,            stark@slac.stanford.edu         *
00009  *   WV, Wouter Verkerke,  UC Santa Barbara, verkerke@slac.stanford.edu      *
00010  *                                                                           *                  
00011  * Copyright (c) 2000-2005, Regents of the University of California,         *
00012  *                          IN2P3. All rights reserved.                      *
00013  *                                                                           *
00014  * History                                                                   *
00015  *   Nov-2001   WV Created initial version                                   *
00016  *   Dec-2001   SL mischarge correction, direct CPV                          *
00017  *   Jan-2002   AH built dedicated generator + code cleaning                 *
00018  *   Mar-2002   JS committed debugged version to CVS                         *
00019  *   Apr-2002   AH allow prompt (ie, non-Pdf) mischarge treatment            *
00020  *   May-2002   JS Changed the set of CP parameters (mathematically equiv.)  *
00021  *                                                                           *
00022  * Redistribution and use in source and binary forms,                        *
00023  * with or without modification, are permitted according to the terms        *
00024  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
00025  *****************************************************************************/
00026 #ifndef ROO_NONCPEIGEN_DECAY
00027 #define ROO_NONCPEIGEN_DECAY
00028 
00029 #include "RooAbsAnaConvPdf.h"
00030 #include "RooRealProxy.h"
00031 #include "RooCategoryProxy.h"
00032 
00033 class RooNonCPEigenDecay : public RooAbsAnaConvPdf {
00034 
00035 public:
00036 
00037   enum DecayType { SingleSided, DoubleSided, Flipped };
00038 
00039   // Constructors, assignment etc
00040   inline RooNonCPEigenDecay( void ) { }
00041 
00042   // with explicit mischarge
00043   RooNonCPEigenDecay( const char *name, const char *title, 
00044                       RooRealVar&     t, 
00045                       RooAbsCategory& tag,
00046                       RooAbsReal&     tau, 
00047                       RooAbsReal&     dm,
00048                       RooAbsReal&     avgW, 
00049                       RooAbsReal&     delW, 
00050                       RooAbsCategory& rhoQ, 
00051                       RooAbsReal&     correctQ, 
00052                       RooAbsReal&     wQ,
00053                       RooAbsReal&     a,
00054                       RooAbsReal&     C,
00055                       RooAbsReal&     delC,
00056                       RooAbsReal&     S,
00057                       RooAbsReal&     delS,
00058                       const RooResolutionModel& model, 
00059                       DecayType       type = DoubleSided );
00060 
00061   // no explicit mischarge (=> set to zero)
00062   RooNonCPEigenDecay( const char *name, const char *title, 
00063                       RooRealVar&     t, 
00064                       RooAbsCategory& tag,
00065                       RooAbsReal&     tau, 
00066                       RooAbsReal&     dm,
00067                       RooAbsReal&     avgW, 
00068                       RooAbsReal&     delW, 
00069                       RooAbsCategory& rhoQ, 
00070                       RooAbsReal&     correctQ, 
00071                       RooAbsReal&     a,
00072                       RooAbsReal&     C,
00073                       RooAbsReal&     delC,
00074                       RooAbsReal&     S,
00075                       RooAbsReal&     delS,
00076                       const RooResolutionModel& model, 
00077                       DecayType       type = DoubleSided );
00078 
00079   RooNonCPEigenDecay(const RooNonCPEigenDecay& other, const char* name=0);
00080   virtual TObject* clone(const char* newname) const { 
00081     return new RooNonCPEigenDecay(*this,newname); 
00082   }
00083   virtual ~RooNonCPEigenDecay( void );
00084 
00085   virtual Double_t coefficient( Int_t basisIndex ) const;
00086 
00087   virtual Int_t getCoefAnalyticalIntegral( Int_t coef, RooArgSet& allVars, 
00088                                            RooArgSet& analVars, const char* rangeName=0 ) const;
00089   virtual Double_t coefAnalyticalIntegral( Int_t coef, Int_t code, const char* rangeName=0 ) const;
00090 
00091   Int_t getGenerator( const RooArgSet& directVars, 
00092                       RooArgSet&       generateVars, Bool_t staticInitOK=kTRUE ) const;
00093   void initGenerator( Int_t code );
00094   void generateEvent( Int_t code );
00095 
00096 protected:
00097 
00098   RooRealProxy     _acp ;
00099   RooRealProxy     _avgC ;
00100   RooRealProxy     _delC ;
00101   RooRealProxy     _avgS ;
00102   RooRealProxy     _delS ;
00103   RooRealProxy     _avgW ;
00104   RooRealProxy     _delW ;
00105   RooRealProxy     _t ;
00106   RooRealProxy     _tau;
00107   RooRealProxy     _dm;
00108   RooCategoryProxy _tag;
00109   RooCategoryProxy _rhoQ;
00110   RooRealProxy     _correctQ;
00111   RooRealProxy     _wQ;
00112   Double_t         _genB0Frac;
00113   Double_t         _genRhoPlusFrac;
00114   
00115   DecayType        _type;
00116   Int_t            _basisExp;
00117   Int_t            _basisSin;
00118   Int_t            _basisCos;
00119 
00120   ClassDef(RooNonCPEigenDecay,1) // PDF to model CP-violating decays to final states which are not CP eigenstates
00121 };
00122 
00123 #endif

Generated on Tue Jul 5 14:26:14 2011 for ROOT_528-00b_version by  doxygen 1.5.1