00001 #ifndef HZZ4LROOPDFS
00002 #define HZZ4LROOPDFS
00003
00004 #include "RooAbsPdf.h"
00005 #include "RooRealProxy.h"
00006 #include "RooCategoryProxy.h"
00007 #include "RooAbsReal.h"
00008 #include "RooAbsCategory.h"
00009
00010 #include <iostream>
00011 #include <fstream>
00012 #include <string>
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 class RooqqZZPdf : public RooAbsPdf {
00040 public:
00041 RooqqZZPdf() {} ;
00042 RooqqZZPdf(const char *name, const char *title,
00043 RooAbsReal& _m4l,
00044 RooAbsReal& _a1,
00045 RooAbsReal& _a2,
00046 RooAbsReal& _a3,
00047 RooAbsReal& _b1,
00048 RooAbsReal& _b2,
00049 RooAbsReal& _b3,
00050 RooAbsReal& _frac);
00051 RooqqZZPdf(const RooqqZZPdf& other, const char* name=0) ;
00052 virtual TObject* clone(const char* newname) const { return new RooqqZZPdf(*this,newname); }
00053 inline virtual ~RooqqZZPdf() { }
00054
00055 protected:
00056
00057 RooRealProxy m4l ;
00058 RooRealProxy a1 ;
00059 RooRealProxy a2 ;
00060 RooRealProxy a3 ;
00061 RooRealProxy b1 ;
00062 RooRealProxy b2 ;
00063 RooRealProxy b3 ;
00064 RooRealProxy frac ;
00065
00066 Double_t evaluate() const ;
00067
00068 private:
00069
00070 ClassDef(RooqqZZPdf,1)
00071 };
00072
00073
00074
00075 class RooggZZPdf : public RooAbsPdf {
00076 public:
00077 RooggZZPdf() {} ;
00078 RooggZZPdf(const char *name, const char *title,
00079 RooAbsReal& _m4l,
00080 RooAbsReal& _a1,
00081 RooAbsReal& _a2,
00082 RooAbsReal& _a3,
00083 RooAbsReal& _b1,
00084 RooAbsReal& _b2,
00085 RooAbsReal& _b3,
00086 RooAbsReal& _frac);
00087 RooggZZPdf(const RooggZZPdf& other, const char* name=0) ;
00088 virtual TObject* clone(const char* newname) const { return new RooggZZPdf(*this,newname); }
00089 inline virtual ~RooggZZPdf() { }
00090
00091 protected:
00092
00093 RooRealProxy m4l ;
00094 RooRealProxy a1 ;
00095 RooRealProxy a2 ;
00096 RooRealProxy a3 ;
00097 RooRealProxy b1 ;
00098 RooRealProxy b2 ;
00099 RooRealProxy b3 ;
00100 RooRealProxy frac ;
00101
00102 Double_t evaluate() const ;
00103
00104 private:
00105
00106 ClassDef(RooggZZPdf,1)
00107 };
00108
00109
00110
00111
00112 class RooqqZZPdf_v2 : public RooAbsPdf {
00113 public:
00114 RooqqZZPdf_v2() {} ;
00115 RooqqZZPdf_v2(const char *name, const char *title,
00116 RooAbsReal& _m4l,
00117 RooAbsReal& _a0,
00118 RooAbsReal& _a1,
00119 RooAbsReal& _a2,
00120 RooAbsReal& _a3,
00121 RooAbsReal& _a4,
00122 RooAbsReal& _a5,
00123 RooAbsReal& _a6,
00124 RooAbsReal& _a7,
00125 RooAbsReal& _a8,
00126 RooAbsReal& _a9,
00127 RooAbsReal& _a10,
00128 RooAbsReal& _a11,
00129 RooAbsReal& _a12,
00130 RooAbsReal& _a13
00131
00132 );
00133 RooqqZZPdf_v2(const RooqqZZPdf_v2& other, const char* name=0) ;
00134 virtual TObject* clone(const char* newname) const { return new RooqqZZPdf_v2(*this,newname); }
00135 inline virtual ~RooqqZZPdf_v2() { }
00136
00137 protected:
00138
00139 RooRealProxy m4l ;
00140 RooRealProxy a0 ;
00141 RooRealProxy a1 ;
00142 RooRealProxy a2 ;
00143 RooRealProxy a3 ;
00144 RooRealProxy a4 ;
00145 RooRealProxy a5 ;
00146 RooRealProxy a6 ;
00147 RooRealProxy a7 ;
00148 RooRealProxy a8 ;
00149 RooRealProxy a9 ;
00150 RooRealProxy a10 ;
00151 RooRealProxy a11 ;
00152 RooRealProxy a12 ;
00153 RooRealProxy a13 ;
00154
00155
00156 Double_t evaluate() const ;
00157
00158 private:
00159
00160 ClassDef(RooqqZZPdf_v2,1)
00161 };
00162
00163
00164
00165 class RooggZZPdf_v2 : public RooAbsPdf {
00166 public:
00167 RooggZZPdf_v2() {} ;
00168 RooggZZPdf_v2(const char *name, const char *title,
00169 RooAbsReal& _m4l,
00170 RooAbsReal& _a0,
00171 RooAbsReal& _a1,
00172 RooAbsReal& _a2,
00173 RooAbsReal& _a3,
00174 RooAbsReal& _a4,
00175 RooAbsReal& _a5,
00176 RooAbsReal& _a6,
00177 RooAbsReal& _a7,
00178 RooAbsReal& _a8,
00179 RooAbsReal& _a9
00180
00181 );
00182 RooggZZPdf_v2(const RooggZZPdf_v2& other, const char* name=0) ;
00183 virtual TObject* clone(const char* newname) const { return new RooggZZPdf_v2(*this,newname); }
00184 inline virtual ~RooggZZPdf_v2() { }
00185
00186 protected:
00187
00188 RooRealProxy m4l ;
00189 RooRealProxy a0 ;
00190 RooRealProxy a1 ;
00191 RooRealProxy a2 ;
00192 RooRealProxy a3 ;
00193 RooRealProxy a4 ;
00194 RooRealProxy a5 ;
00195 RooRealProxy a6 ;
00196 RooRealProxy a7 ;
00197 RooRealProxy a8 ;
00198 RooRealProxy a9 ;
00199
00200 Double_t evaluate() const ;
00201
00202 private:
00203
00204 ClassDef(RooggZZPdf_v2,1)
00205 };
00206
00207 class RooBetaFunc_v2 : public RooAbsPdf {
00208 public:
00209 RooBetaFunc_v2();
00210 RooBetaFunc_v2(const char *name, const char *title,
00211 RooAbsReal& _mZstar,
00212 RooAbsReal& _mZ,
00213 RooAbsReal& _m0,
00214 RooAbsReal& _mZZ,
00215 RooAbsReal& _Gamma,
00216 RooAbsReal& _Gamma0,
00217 RooAbsReal& _a0,
00218 RooAbsReal& _a1,
00219 RooAbsReal& _a2,
00220 RooAbsReal& _a3,
00221 RooAbsReal& _f,
00222 RooAbsReal& _f0
00223 );
00224 RooBetaFunc_v2(const RooBetaFunc_v2& other, const char* name=0) ;
00225 virtual TObject* clone(const char* newname) const { return new RooBetaFunc_v2(*this,newname); }
00226 inline virtual ~RooBetaFunc_v2() { }
00227
00228 protected:
00229
00230 RooRealProxy mZstar;
00231 RooRealProxy mZ;
00232 RooRealProxy m0;
00233 RooRealProxy mZZ;
00234 RooRealProxy Gamma;
00235 RooRealProxy Gamma0;
00236 RooRealProxy a0;
00237 RooRealProxy a1;
00238 RooRealProxy a2;
00239 RooRealProxy a3;
00240 RooRealProxy f;
00241 RooRealProxy f0;
00242
00243 Double_t evaluate() const ;
00244
00245 private:
00246
00247 ClassDef(RooBetaFunc_v2,1)
00248 };
00249
00250 class Roo4lMasses2D_Bkg : public RooAbsPdf {
00251 public:
00252 Roo4lMasses2D_Bkg();
00253 Roo4lMasses2D_Bkg(const char *name, const char *title,
00254 RooAbsReal& _mZstar,
00255 RooAbsReal& _mZZ,
00256 RooAbsReal& _channelVal
00257 );
00258 Roo4lMasses2D_Bkg(const Roo4lMasses2D_Bkg& other, const char* name=0) ;
00259 virtual TObject* clone(const char* newname) const { return new Roo4lMasses2D_Bkg(*this,newname); }
00260 inline virtual ~Roo4lMasses2D_Bkg() { }
00261
00262 protected:
00263
00264 RooRealProxy mZstar;
00265 RooRealProxy mZZ;
00266 RooRealProxy channelVal;
00267
00268 Double_t evaluate() const ;
00269 Double_t UnitStep(double arg) const;
00270 private:
00271
00272 ClassDef(Roo4lMasses2D_Bkg,1)
00273 };
00274
00275
00276
00277 class Roo4lMasses2D_BkgGGZZ : public RooAbsPdf {
00278 public:
00279 Roo4lMasses2D_BkgGGZZ();
00280 Roo4lMasses2D_BkgGGZZ(const char *name, const char *title,
00281 RooAbsReal& _mZstar,
00282 RooAbsReal& _mZZ,
00283 RooAbsReal& _channelVal
00284 );
00285 Roo4lMasses2D_BkgGGZZ(const Roo4lMasses2D_BkgGGZZ& other, const char* name=0) ;
00286 virtual TObject* clone(const char* newname) const { return new Roo4lMasses2D_BkgGGZZ(*this,newname); }
00287 inline virtual ~Roo4lMasses2D_BkgGGZZ() { }
00288
00289 protected:
00290
00291 RooRealProxy mZstar;
00292 RooRealProxy mZZ;
00293 RooRealProxy channelVal;
00294
00295 Double_t evaluate() const ;
00296 Double_t UnitStep(double arg) const;
00297 private:
00298
00299 ClassDef(Roo4lMasses2D_BkgGGZZ,1)
00300 };
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310 class Roo4lMasses2D : public RooAbsPdf {
00311 public:
00312 Roo4lMasses2D();
00313 Roo4lMasses2D(const char *name, const char *title,
00314 RooAbsReal& _mZstar,
00315 RooAbsReal& _mZ,
00316 RooAbsReal& _mZZ,
00317 RooAbsReal& _Gamma,
00318 RooAbsReal& _p0,
00319 RooAbsReal& _p1,
00320 RooAbsReal& _p2,
00321 RooAbsReal& _CBmean,
00322 RooAbsReal& _CBwidth,
00323 RooAbsReal& _CBalpha,
00324 RooAbsReal& _CBn
00325 );
00326 Roo4lMasses2D(const Roo4lMasses2D& other, const char* name=0) ;
00327 virtual TObject* clone(const char* newname) const { return new Roo4lMasses2D(*this,newname); }
00328 inline virtual ~Roo4lMasses2D() { }
00329
00330 protected:
00331
00332 RooRealProxy mZstar;
00333 RooRealProxy mZ;
00334 RooRealProxy mZZ;
00335 RooRealProxy Gamma;
00336 RooRealProxy p0;
00337 RooRealProxy p1;
00338 RooRealProxy p2;
00339 RooRealProxy CBmean;
00340 RooRealProxy CBwidth;
00341 RooRealProxy CBalpha;
00342 RooRealProxy CBn;
00343
00344 Double_t evaluate() const ;
00345
00346 private:
00347
00348 ClassDef(Roo4lMasses2D,1)
00349 };
00350
00351
00352
00353 class RooFourMuMassShapePdf2 : public RooAbsPdf {
00354 public:
00355 RooFourMuMassShapePdf2() {} ;
00356 RooFourMuMassShapePdf2(const char *name, const char *title,
00357 RooAbsReal& _m4l,
00358 RooAbsReal& _mH);
00359 RooFourMuMassShapePdf2(const RooFourMuMassShapePdf2& other, const char* name=0) ;
00360 virtual TObject* clone(const char* newname) const { return new RooFourMuMassShapePdf2(*this,newname); }
00361 inline virtual ~RooFourMuMassShapePdf2() { }
00362
00363 protected:
00364
00365 RooRealProxy m4l ;
00366 RooRealProxy mH ;
00367
00368 Double_t evaluate() const ;
00369
00370
00371 private:
00372
00373 ClassDef(RooFourMuMassShapePdf2,2)
00374 };
00375
00376
00377 class RooFourEMassShapePdf2 : public RooAbsPdf {
00378 public:
00379 RooFourEMassShapePdf2() {} ;
00380 RooFourEMassShapePdf2(const char *name, const char *title,
00381 RooAbsReal& _m4l,
00382 RooAbsReal& _mH);
00383 RooFourEMassShapePdf2(const RooFourEMassShapePdf2& other, const char* name=0) ;
00384 virtual TObject* clone(const char* newname) const { return new RooFourEMassShapePdf2(*this,newname); }
00385 inline virtual ~RooFourEMassShapePdf2() { }
00386
00387 protected:
00388
00389 RooRealProxy m4l ;
00390 RooRealProxy mH ;
00391
00392 Double_t evaluate() const ;
00393
00394
00395 private:
00396
00397 ClassDef(RooFourEMassShapePdf2,2)
00398 };
00399
00400
00401
00402 class RooTwoETwoMuMassShapePdf2 : public RooAbsPdf {
00403 public:
00404 RooTwoETwoMuMassShapePdf2() {} ;
00405 RooTwoETwoMuMassShapePdf2(const char *name, const char *title,
00406 RooAbsReal& _m4l,
00407 RooAbsReal& _mH);
00408 RooTwoETwoMuMassShapePdf2(const RooTwoETwoMuMassShapePdf2& other, const char* name=0) ;
00409 virtual TObject* clone(const char* newname) const { return new RooTwoETwoMuMassShapePdf2(*this,newname); }
00410 inline virtual ~RooTwoETwoMuMassShapePdf2() { }
00411
00412 protected:
00413
00414 RooRealProxy m4l ;
00415 RooRealProxy mH ;
00416
00417 Double_t evaluate() const ;
00418
00419
00420 private:
00421
00422 ClassDef(RooTwoETwoMuMassShapePdf2,2)
00423 };
00424
00425
00426 class RooFourMuMassRes : public RooAbsPdf {
00427 public:
00428 RooFourMuMassRes() {} ;
00429 RooFourMuMassRes(const char *name, const char *title,
00430 RooAbsReal& _m4l,
00431 RooAbsReal& _mH);
00432 RooFourMuMassRes(const RooFourMuMassRes& other, const char* name=0) ;
00433 virtual TObject* clone(const char* newname) const { return new RooFourMuMassRes(*this,newname); }
00434 inline virtual ~RooFourMuMassRes() { }
00435
00436 protected:
00437
00438 RooRealProxy m4l ;
00439 RooRealProxy mH ;
00440
00441 Double_t evaluate() const ;
00442
00443 private:
00444
00445 ClassDef(RooFourMuMassRes,1)
00446 };
00447
00448 class RooFourEMassRes : public RooAbsPdf {
00449 public:
00450 RooFourEMassRes() {} ;
00451 RooFourEMassRes(const char *name, const char *title,
00452 RooAbsReal& _m4l,
00453 RooAbsReal& _mH);
00454 RooFourEMassRes(const RooFourEMassRes& other, const char* name=0) ;
00455 virtual TObject* clone(const char* newname) const { return new RooFourEMassRes(*this,newname); }
00456 inline virtual ~RooFourEMassRes() { }
00457
00458 protected:
00459
00460 RooRealProxy m4l ;
00461 RooRealProxy mH ;
00462
00463 Double_t evaluate() const ;
00464
00465 private:
00466
00467 ClassDef(RooFourEMassRes,1)
00468 };
00469
00470
00471 class RooTwoETwoMuMassRes : public RooAbsPdf {
00472 public:
00473 RooTwoETwoMuMassRes() {} ;
00474 RooTwoETwoMuMassRes(const char *name, const char *title,
00475 RooAbsReal& _m4l,
00476 RooAbsReal& _mH);
00477 RooTwoETwoMuMassRes(const RooTwoETwoMuMassRes& other, const char* name=0) ;
00478 virtual TObject* clone(const char* newname) const { return new RooTwoETwoMuMassRes(*this,newname); }
00479 inline virtual ~RooTwoETwoMuMassRes() { }
00480
00481 protected:
00482
00483 RooRealProxy m4l ;
00484 RooRealProxy mH ;
00485
00486
00487 Double_t evaluate() const ;
00488
00489 private:
00490
00491 ClassDef(RooTwoETwoMuMassRes,1)
00492 };
00493
00494 class RooRelBW1 : public RooAbsPdf {
00495 public:
00496 RooRelBW1() {} ;
00497 RooRelBW1(const char *name, const char *title,
00498 RooAbsReal& _m,
00499 RooAbsReal& _mean,
00500 RooAbsReal& _gamma);
00501 RooRelBW1(const RooRelBW1& other, const char* name=0) ;
00502 virtual TObject* clone(const char* newname) const { return new RooRelBW1(*this,newname); }
00503 inline virtual ~RooRelBW1() { }
00504
00505 protected:
00506
00507 RooRealProxy m ;
00508 RooRealProxy mean ;
00509 RooRealProxy gamma ;
00510
00511 Double_t evaluate() const ;
00512
00513 private:
00514
00515 ClassDef(RooRelBW1,1)
00516 };
00517
00519
00520 class RooRelBWUF : public RooAbsPdf {
00521 public:
00522 RooRelBWUF() {} ;
00523 RooRelBWUF(const char *name, const char *title,
00524 RooAbsReal& _m4l,
00525 RooAbsReal& _mH);
00526 RooRelBWUF(const RooRelBWUF& other, const char* name=0) ;
00527 virtual TObject* clone(const char* newname) const { return new RooRelBWUF(*this,newname); }
00528 inline virtual ~RooRelBWUF() { }
00529
00530 protected:
00531
00532 RooRealProxy m4l ;
00533 RooRealProxy mH ;
00534
00535 Double_t evaluate() const ;
00536
00537 private:
00538
00539 ClassDef(RooRelBWUF,2)
00540 };
00541
00542
00544
00545 class RooRelBWUF_SM4 : public RooAbsPdf {
00546 public:
00547 RooRelBWUF_SM4() {} ;
00548 RooRelBWUF_SM4(const char *name, const char *title,
00549 RooAbsReal& _m4l,
00550 RooAbsReal& _mH);
00551 RooRelBWUF_SM4(const RooRelBWUF_SM4& other, const char* name=0) ;
00552 virtual TObject* clone(const char* newname) const { return new RooRelBWUF_SM4(*this,newname); }
00553 inline virtual ~RooRelBWUF_SM4() { }
00554
00555 protected:
00556
00557 RooRealProxy m4l ;
00558 RooRealProxy mH ;
00559
00560 Double_t evaluate() const ;
00561
00562 private:
00563
00564 ClassDef(RooRelBWUF_SM4,2)
00565 };
00566
00567
00569
00570 class RooRelBWUFParam : public RooAbsPdf {
00571 public:
00572 RooRelBWUFParam() {} ;
00573 RooRelBWUFParam(const char *name, const char *title,
00574 RooAbsReal& _m4l,
00575 RooAbsReal& _mH,
00576 RooAbsReal& _scaleParam);
00577 RooRelBWUFParam(const RooRelBWUFParam& other, const char* name=0) ;
00578 virtual TObject* clone(const char* newname) const { return new RooRelBWUFParam(*this,newname); }
00579 inline virtual ~RooRelBWUFParam() { }
00580
00581 protected:
00582
00583 RooRealProxy m4l ;
00584 RooRealProxy mH ;
00585 RooRealProxy scaleParam ;
00586
00587 Double_t evaluate() const ;
00588
00589 private:
00590
00591 ClassDef(RooRelBWUFParam,2)
00592 };
00593
00594
00595
00596 #endif