JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
TensorPdfFactory Class Referenceabstract

#include <TensorPdfFactory.h>

Inheritance diagram for TensorPdfFactory:
Inheritance graph
[legend]
Collaboration diagram for TensorPdfFactory:
Collaboration graph
[legend]

Public Member Functions

 TensorPdfFactory (RooSpin::modelMeasurables const &measurables_, RooSpin::VdecayType V1decay_=RooSpin::kVdecayType_Zll, RooSpin::VdecayType V2decay_=RooSpin::kVdecayType_Zll, Bool_t OnshellH_=true)
 
virtual ~TensorPdfFactory ()
 
virtual void makeCouplingsConst (bool yesNo=true)
 
virtual void addHypothesis (int ig, double initval, double iphase=0)
 
virtual void setTensorPolarization (int ig, double initval)
 
virtual void resetHypotheses ()
 
virtual RooSpinTwogetPDF ()=0
 
- Public Member Functions inherited from SpinPdfFactory
 SpinPdfFactory (RooSpin::modelMeasurables const &measurables_, RooSpin::VdecayType V1decay_=RooSpin::kVdecayType_Zll, RooSpin::VdecayType V2decay_=RooSpin::kVdecayType_Zll, Bool_t OnshellH_=true)
 
virtual ~SpinPdfFactory ()
 
virtual void getMVGamV (Double_t *mV=0, Double_t *gamV=0) const
 
virtual void getMVprimeGamVprime (Double_t *mV=0, Double_t *gamV=0) const
 
virtual void makeParamsConst (bool yesNo)
 
virtual void resetVdecay (RooSpin::VdecayType V1decay_, RooSpin::VdecayType V2decay_)
 
virtual void resetVdecayParams (Double_t mWval, Double_t gamWval, Double_t mZval, Double_t gamZval, Double_t Sin2ThetaWval, Double_t vevval)
 
virtual void resetVprimeffCouplings (Double_t gVprimeff_decay1[2], Double_t gVprimeff_decay2[2])
 
virtual void resetVprimeMasses (Double_t mWval, Double_t gamWval, Double_t mZval, Double_t gamZval)
 
virtual void resetHiggsMassWidth (Double_t mXval, Double_t gamXval=0.)
 
virtual void defaultIntegration ()
 
virtual void alwaysIntegrate (Int_t code=1)
 
void setVerbosity (TVar::VerbosityLevel verbosity)
 

Public Attributes

RooSpinTwo::modelCouplings couplings
 
- Public Attributes inherited from SpinPdfFactory
RooSpin::modelMeasurables measurables
 
RooSpin::modelParameters parameters
 

Protected Member Functions

virtual void initGVals ()
 
virtual void destroyGVals ()
 
virtual void initPDF ()=0
 
virtual void destroyPDF ()=0
 
- Protected Member Functions inherited from SpinPdfFactory
virtual void initMeasurables (RooSpin::modelMeasurables const &measurables_)
 
virtual void initMassPole ()
 
virtual void initVdecayParams ()
 
virtual void destroyMassPole ()
 
virtual void destroyVdecayParams ()
 

Additional Inherited Members

- Static Public Member Functions inherited from SpinPdfFactory
static void setVariableValue (RooRealVar *var, Double_t val)
 
- Protected Attributes inherited from SpinPdfFactory
RooSpin::VdecayType V1decay
 
RooSpin::VdecayType V2decay
 
Bool_t OnshellH
 
RooSpinPDF_base
 

Detailed Description

Definition at line 10 of file TensorPdfFactory.h.

Constructor & Destructor Documentation

◆ TensorPdfFactory()

TensorPdfFactory::TensorPdfFactory ( RooSpin::modelMeasurables const &  measurables_,
RooSpin::VdecayType  V1decay_ = RooSpin::kVdecayType_Zll,
RooSpin::VdecayType  V2decay_ = RooSpin::kVdecayType_Zll,
Bool_t  OnshellH_ = true 
)

Definition at line 8 of file TensorPdfFactory.cc.

8  :
9 SpinPdfFactory(measurables_, V1decay_, V2decay_, OnshellH_)
10 {
11  initGVals();
12 }

◆ ~TensorPdfFactory()

TensorPdfFactory::~TensorPdfFactory ( )
virtual

Definition at line 14 of file TensorPdfFactory.cc.

14  {
15  destroyGVals();
16 }

Member Function Documentation

◆ addHypothesis()

void TensorPdfFactory::addHypothesis ( int  ig,
double  initval,
double  iphase = 0 
)
virtual

Definition at line 56 of file TensorPdfFactory.cc.

56  {
57  if (ig>=(int)SIZE_GVV || ig<0) MELAerr << "Invalid g" << ig << endl;
58  else{
59  ((RooRealVar*)couplings.bList[ig][0])->setVal(initval*cos(iphase));
60  ((RooRealVar*)couplings.bList[ig][1])->setVal(initval*sin(iphase));
61  }
62 }

◆ destroyGVals()

void TensorPdfFactory::destroyGVals ( )
protectedvirtual

Implements SpinPdfFactory.

Definition at line 44 of file TensorPdfFactory.cc.

44  {
45  for (int v=0; v<(int)SIZE_GVV; v++){
46  for (int im=0; im<2; im++){
47  delete couplings.bList[v][im];
48  }
49  }
50  delete couplings.Lambda;
51 
52  delete couplings.f_spinz1;
53  delete couplings.f_spinz2;
54 }

◆ destroyPDF()

virtual void TensorPdfFactory::destroyPDF ( )
protectedpure virtual

Implements SpinPdfFactory.

Implemented in TensorPdfFactory_ppHVV.

◆ getPDF()

virtual RooSpinTwo* TensorPdfFactory::getPDF ( )
pure virtual

Implemented in TensorPdfFactory_ppHVV.

◆ initGVals()

void TensorPdfFactory::initGVals ( )
protectedvirtual

Implements SpinPdfFactory.

Definition at line 17 of file TensorPdfFactory.cc.

17  {
18  couplings.Lambda = new RooRealVar("Lambda", "Lambda", 1000.);
19 
20  for (int v=0; v<(int)SIZE_GVV; v++){
21  for (int im=0; im<2; im++){
22  TString strcore;
23  double initval = 0;
24  TString strapp = "Val";
25  if (im==1) strapp.Append("Im");
26  strapp.Prepend(Form("%i", v+1));
27 
28  strcore = "g";
29  strcore.Append(strapp);
30  RooRealVar* gVal = new RooRealVar(strcore, strcore, initval, -1e15, 1e15);
31  gVal->removeMin();
32  gVal->removeMax();
33  couplings.bList[v][im] = (RooAbsReal*)gVal;
34  }
35  }
36 
37  for (int f=0; f<2; f++){
38  TString strcore = Form("f_spinz%i", f+1);
39  RooRealVar* fVal = new RooRealVar(strcore, strcore, 0., 0., 1.);
40  if (f==0) couplings.f_spinz1 = (RooRealVar*)fVal;
41  else couplings.f_spinz2 = (RooRealVar*)fVal;
42  }
43 }

◆ initPDF()

virtual void TensorPdfFactory::initPDF ( )
protectedpure virtual

Implements SpinPdfFactory.

Implemented in TensorPdfFactory_ppHVV.

◆ makeCouplingsConst()

void TensorPdfFactory::makeCouplingsConst ( bool  yesNo = true)
virtual

Implements SpinPdfFactory.

Definition at line 78 of file TensorPdfFactory.cc.

78  {
79  couplings.Lambda->setConstant(true); // The user is not allowed to change this value!
80 
81  // Set fqq, fz2
82  couplings.f_spinz1->setConstant(yesNo);
83  couplings.f_spinz2->setConstant(yesNo);
84 
85  // Set the b decay couplings
86  for (int ig=0; ig<(int)SIZE_GVV; ig++){
87  for (int im=0; im<2; im++){
88  if (dynamic_cast<RooRealVar*>(couplings.bList[ig][im])!=0) ((RooRealVar*)couplings.bList[ig][im])->setConstant(yesNo);
89  }
90  }
91 }

◆ resetHypotheses()

void TensorPdfFactory::resetHypotheses ( )
virtual

Implements SpinPdfFactory.

Definition at line 70 of file TensorPdfFactory.cc.

70  {
71  for (int ig=0; ig<(int)SIZE_GVV; ig++){
72  for (int im=0; im<2; im++) ((RooRealVar*)couplings.bList[ig][im])->setVal(0.);
73  }
74  ((RooRealVar*)couplings.f_spinz1)->setVal(0.);
75  ((RooRealVar*)couplings.f_spinz2)->setVal(0.);
76 }

◆ setTensorPolarization()

void TensorPdfFactory::setTensorPolarization ( int  ig,
double  initval 
)
virtual

Definition at line 63 of file TensorPdfFactory.cc.

63  {
64  if (ig>2 || ig<=0) MELAerr << "Cannot set f_spinz" << ig << ". Please st f_spinz1 or f_spinz2 only." << endl;
65  else{
66  if (ig==1) ((RooRealVar*)couplings.f_spinz1)->setVal(initval);
67  else ((RooRealVar*)couplings.f_spinz2)->setVal(initval);
68  }
69 }

Member Data Documentation

◆ couplings

RooSpinTwo::modelCouplings TensorPdfFactory::couplings

Definition at line 12 of file TensorPdfFactory.h.


The documentation for this class was generated from the following files:
TensorPdfFactory::couplings
RooSpinTwo::modelCouplings couplings
Definition: TensorPdfFactory.h:12
RooSpinTwo::modelCouplings::Lambda
RooRealVar * Lambda
Definition: RooSpinTwo.h:12
SIZE_GVV
@ SIZE_GVV
Definition: raw_couplings.txt:158
RooSpinTwo::modelCouplings::f_spinz1
RooRealVar * f_spinz1
Definition: RooSpinTwo.h:13
TensorPdfFactory::initGVals
virtual void initGVals()
Definition: TensorPdfFactory.cc:17
RooSpinTwo::modelCouplings::f_spinz2
RooRealVar * f_spinz2
Definition: RooSpinTwo.h:14
SpinPdfFactory::SpinPdfFactory
SpinPdfFactory(RooSpin::modelMeasurables const &measurables_, RooSpin::VdecayType V1decay_=RooSpin::kVdecayType_Zll, RooSpin::VdecayType V2decay_=RooSpin::kVdecayType_Zll, Bool_t OnshellH_=true)
Definition: SpinPdfFactory.cc:8
testME_all.int
int
Definition: testME_all.py:13
TensorPdfFactory::destroyGVals
virtual void destroyGVals()
Definition: TensorPdfFactory.cc:44
MELAStreamHelpers::MELAerr
MELAOutputStreamer MELAerr
globalc::f
double complex, dimension(2) f
Definition: reductionC.F90:50
RooSpinTwo::modelCouplings::bList
RooAbsReal * bList[SIZE_GVV][2]
Definition: RooSpinTwo.h:11