ATLAS Offline Software
Loading...
Searching...
No Matches
GenGauss3Dclone Class Reference

#include <GenGauss3Dclone.h>

Inheritance diagram for GenGauss3Dclone:
Collaboration diagram for GenGauss3Dclone:

Public Member Functions

 GenGauss3Dclone ()
 GenGauss3Dclone (const char *name, const char *title, RooArgList &_xvec, RooArgList &_muvex, RooAbsReal &_vxx, RooAbsReal &_vxy, RooAbsReal &_vxz, RooAbsReal &_vyy, RooAbsReal &_vyz, RooAbsReal &_vzz, TMatrixDSym &dummyMatrix)
 GenGauss3Dclone (const GenGauss3Dclone &other, const char *name=0)
virtual TObject * clone (const char *newname) const
virtual ~GenGauss3Dclone ()
Int_t getAnalyticalIntegral (RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const
Double_t analyticalIntegral (Int_t code, const char *rangeName=0) const
void generateEvent (Int_t code)
void updateCov ()

Protected Member Functions

Double_t evaluate () const

Protected Attributes

RooRealProxy xvec
RooRealProxy muvec
RooRealProxy vxx
RooRealProxy vxy
RooRealProxy vxz
RooRealProxy vyy
RooRealProxy vyz
RooRealProxy vzz

Detailed Description

Definition at line 22 of file GenGauss3Dclone.h.

Constructor & Destructor Documentation

◆ GenGauss3Dclone() [1/3]

GenGauss3Dclone::GenGauss3Dclone ( )
inline

Definition at line 24 of file GenGauss3Dclone.h.

24{} ;

◆ GenGauss3Dclone() [2/3]

GenGauss3Dclone::GenGauss3Dclone ( const char * name,
const char * title,
RooArgList & _xvec,
RooArgList & _muvex,
RooAbsReal & _vxx,
RooAbsReal & _vxy,
RooAbsReal & _vxz,
RooAbsReal & _vyy,
RooAbsReal & _vyz,
RooAbsReal & _vzz,
TMatrixDSym & dummyMatrix )

◆ GenGauss3Dclone() [3/3]

GenGauss3Dclone::GenGauss3Dclone ( const GenGauss3Dclone & other,
const char * name = 0 )

Definition at line 50 of file GenGauss3Dclone.cxx.

50 :
51 RooMultiVarGaussian(other,name),
52 vxx("vxx",this,other.vxx),
53 vxy("vxy",this,other.vxy),
54 vxz("vxz",this,other.vxz),
55 vyy("vyy",this,other.vyy),
56 vyz("vyz",this,other.vyz),
57 vzz("vzz",this,other.vzz)
58 //nUpdates(0),
59 //nChanged(0),
60 //oldVxx(-1),
61 //oldVxy(-1),
62 //oldVyy(-1),
63 //oldVzz(-1)
64 {
65 }
RooRealProxy vxx
RooRealProxy vyy
RooRealProxy vxy
RooRealProxy vyz
RooRealProxy vxz
RooRealProxy vzz

◆ ~GenGauss3Dclone()

virtual GenGauss3Dclone::~GenGauss3Dclone ( )
inlinevirtual

Definition at line 37 of file GenGauss3Dclone.h.

37{ }

Member Function Documentation

◆ analyticalIntegral()

Double_t GenGauss3Dclone::analyticalIntegral ( Int_t code,
const char * rangeName = 0 ) const

Definition at line 139 of file GenGauss3Dclone.cxx.

140 {
141 // RETURN ANALYTICAL INTEGRAL DEFINED BY RETURN CODE ASSIGNED BY getAnalyticalIntegral
142 // THE MEMBER FUNCTION x.min(rangeName) AND x.max(rangeName) WILL RETURN THE INTEGRATION
143 // BOUNDARIES FOR EACH OBSERVABLE x
144
145 // assert(code==1) ;
146 // return (x.max(rangeName)-x.min(rangeName)) ;
147
148 // Since we need to update _cov here, must get rid of const
149 GenGauss3Dclone* self = const_cast<GenGauss3Dclone*>(this);
150 self->updateCov();
151
152 // Prevent caching of partial integrals - these may depend on the
153 // particular covariance matrix!
154 _anaIntCache.clear();
155
156 return RooMultiVarGaussian::analyticalIntegral(code,rangeName) ;
157}

◆ clone()

virtual TObject * GenGauss3Dclone::clone ( const char * newname) const
inlinevirtual

Definition at line 36 of file GenGauss3Dclone.h.

36{ return new GenGauss3Dclone(*this,newname); }

◆ evaluate()

Double_t GenGauss3Dclone::evaluate ( ) const
protected

Definition at line 107 of file GenGauss3Dclone.cxx.

108 {
109 // ENTER EXPRESSION IN TERMS OF VARIABLE ARGUMENTS HERE
110
111 // Since we need to update _cov here, must get rid of const
112 GenGauss3Dclone* self = const_cast<GenGauss3Dclone*>(this);
113 self->updateCov();
114
115 return RooMultiVarGaussian::evaluate();
116 }

◆ generateEvent()

void GenGauss3Dclone::generateEvent ( Int_t code)

Definition at line 160 of file GenGauss3Dclone.cxx.

160 {
161 _genCache.clear() ;
162 updateCov();
163 _genCache.clear() ;
164 return RooMultiVarGaussian::generateEvent(code);
165 }

◆ getAnalyticalIntegral()

Int_t GenGauss3Dclone::getAnalyticalIntegral ( RooArgSet & allVars,
RooArgSet & analVars,
const char * rangeName = 0 ) const

Definition at line 120 of file GenGauss3Dclone.cxx.

121 {
122 // LIST HERE OVER WHICH VARIABLES ANALYTICAL INTEGRATION IS SUPPORTED,
123 // ASSIGN A NUMERIC CODE FOR EACH SUPPORTED (SET OF) PARAMETERS
124 // THE EXAMPLE BELOW ASSIGNS CODE 1 TO INTEGRATION OVER VARIABLE X
125 // YOU CAN ALSO IMPLEMENT MORE THAN ONE ANALYTICAL INTEGRAL BY REPEATING THE matchArgs
126 // EXPRESSION MULTIPLE TIMES
127
128 // if (matchArgs(allVars,analVars,x)) return 1 ;
129
130 // Since we need to update _cov here, must get rid of const
131 GenGauss3Dclone* self = const_cast<GenGauss3Dclone*>(this);
132 self->updateCov();
133
134 return RooMultiVarGaussian::getAnalyticalIntegral(allVars,analVars,rangeName) ;
135 }

◆ updateCov()

void GenGauss3Dclone::updateCov ( )

Definition at line 68 of file GenGauss3Dclone.cxx.

68 {
69 //nUpdates++;
70 //if (vxx==oldVxx &&
71 // vyy==oldVyy &&
72 // vxy==oldVxy &&
73 // vzz==oldVzz)
74 // return;
75 //oldVxx = vxx;
76 //oldVyy = vyy;
77 //oldVxy = vxy;
78 //oldVzz = vzz;
79
80 //nChanged++;
81 //if (nUpdates % 10000 == 0) {
82 // cout << nUpdates << " calls to updateCov" << endl;
83 // cout << nChanged << " calls required recalculation of of covariance matrix" << endl << endl;
84 //}
85
86 _cov(0,0) = vxx;
87 _cov(0,1) = vxy;
88 _cov(0,2) = vxz;
89 _cov(1,0) = vxy;
90 _cov(1,1) = vyy;
91 _cov(1,2) = vyz;
92 _cov(2,0) = vxz;
93 _cov(2,1) = vyz;
94 _cov(2,2) = vzz;
95 _det = _cov.Determinant();
96
97 int n = _cov.GetNrows();
98 for (int i=0;i<n;i++) {
99 for (int j=0;j<n;j++) {
100 _covI(i,j)=_cov(i,j);
101 }
102 }
103 _covI.Invert();
104 }

Member Data Documentation

◆ muvec

RooRealProxy GenGauss3Dclone::muvec
protected

Definition at line 49 of file GenGauss3Dclone.h.

◆ vxx

RooRealProxy GenGauss3Dclone::vxx
protected

Definition at line 50 of file GenGauss3Dclone.h.

◆ vxy

RooRealProxy GenGauss3Dclone::vxy
protected

Definition at line 51 of file GenGauss3Dclone.h.

◆ vxz

RooRealProxy GenGauss3Dclone::vxz
protected

Definition at line 52 of file GenGauss3Dclone.h.

◆ vyy

RooRealProxy GenGauss3Dclone::vyy
protected

Definition at line 53 of file GenGauss3Dclone.h.

◆ vyz

RooRealProxy GenGauss3Dclone::vyz
protected

Definition at line 54 of file GenGauss3Dclone.h.

◆ vzz

RooRealProxy GenGauss3Dclone::vzz
protected

Definition at line 55 of file GenGauss3Dclone.h.

◆ xvec

RooRealProxy GenGauss3Dclone::xvec
protected

Definition at line 48 of file GenGauss3Dclone.h.


The documentation for this class was generated from the following files: