Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
RooBCPEffDecay.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitModels *
4  * File: $Id: RooBCPEffDecay.h,v 1.13 2007/05/11 09:13:07 verkerke Exp $
5  * Authors: *
6  * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7  * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8  * *
9  * Copyright (c) 2000-2005, Regents of the University of California *
10  * and Stanford University. All rights reserved. *
11  * *
12  * Redistribution and use in source and binary forms, *
13  * with or without modification, are permitted according to the terms *
14  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15  *****************************************************************************/
16 #ifndef ROO_BCP_EFF_DECAY
17 #define ROO_BCP_EFF_DECAY
18 
19 #include "RooAbsAnaConvPdf.h"
20 #include "RooRealProxy.h"
21 #include "RooCategoryProxy.h"
22 
23 class RooBCPEffDecay : public RooAbsAnaConvPdf {
24 public:
25 
26  enum DecayType { SingleSided, DoubleSided, Flipped };
27 
28  // Constructors, assignment etc
29  inline RooBCPEffDecay() { }
30  RooBCPEffDecay(const char *name, const char *title,
31  RooRealVar& t, RooAbsCategory& tag,
32  RooAbsReal& tau, RooAbsReal& dm,
33  RooAbsReal& avgMistag, RooAbsReal& CPeigenval,
34  RooAbsReal& a, RooAbsReal& b,
35  RooAbsReal& effRatio, RooAbsReal& delMistag,
36  const RooResolutionModel& model, DecayType type=DoubleSided) ;
37 
38  RooBCPEffDecay(const RooBCPEffDecay& other, const char* name=0);
39  virtual TObject* clone(const char* newname) const { return new RooBCPEffDecay(*this,newname) ; }
40  virtual ~RooBCPEffDecay();
41 
42  virtual Double_t coefficient(Int_t basisIndex) const ;
43 
44  virtual Int_t getCoefAnalyticalIntegral(Int_t coef, RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
45  virtual Double_t coefAnalyticalIntegral(Int_t coef, Int_t code, const char* rangeName=0) const ;
46 
47  Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const;
48  void initGenerator(Int_t code) ;
49  void generateEvent(Int_t code) ;
50 
51 protected:
52 
53  RooRealProxy _absLambda ;
54  RooRealProxy _argLambda ;
55  RooRealProxy _effRatio ;
56  RooRealProxy _CPeigenval ;
57  RooRealProxy _avgMistag ;
58  RooRealProxy _delMistag ;
59  RooRealProxy _t ;
60  RooRealProxy _tau ;
61  RooRealProxy _dm ;
62  RooCategoryProxy _tag ;
63  Double_t _genB0Frac ;
64 
65  DecayType _type ;
66  Int_t _basisExp ;
67  Int_t _basisSin ;
68  Int_t _basisCos ;
69 
70  ClassDef(RooBCPEffDecay,1) // B Mixing decay PDF
71 };
72 
73 #endif