-
Notifications
You must be signed in to change notification settings - Fork 429
Expand file tree
/
Copy pathProcessNormalization.h
More file actions
57 lines (48 loc) · 2.12 KB
/
ProcessNormalization.h
File metadata and controls
57 lines (48 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#ifndef HiggsAnalysis_CombinedLimit_ProcessNormalization_h
#define HiggsAnalysis_CombinedLimit_ProcessNormalization_h
#include <TIterator.h>
#include <RooAbsReal.h>
#include "RooListProxy.h"
//_________________________________________________
/*
BEGIN_HTML
<p>
ProcessNormalization is helper class for implementing process normalizations
</p>
END_HTML
*/
//
class SimNLLDerivativesHelper;
class DerivativeLogNormal;
class DerivativeRateParam;
class ProcessNormalization : public RooAbsReal {
public:
ProcessNormalization() : nominalValue_(1) {}
ProcessNormalization(const char *name, const char *title, double nominal=1) ;
ProcessNormalization(const char *name, const char *title, RooAbsReal &nominal) ;
ProcessNormalization(const ProcessNormalization &other, const char *newname = 0) ;
~ProcessNormalization() ;
TObject * clone(const char *newname) const { return new ProcessNormalization(*this, newname); }
void setNominalValue(double nominal) { nominalValue_ = nominal; }
void addLogNormal(double kappa, RooAbsReal &theta) ;
void addAsymmLogNormal(double kappaLo, double kappaHi, RooAbsReal &theta) ;
void addOtherFactor(RooAbsReal &factor) ;
void dump() const ;
protected:
Double_t evaluate() const;
private:
friend SimNLLDerivativesHelper;
friend DerivativeLogNormal;
friend DerivativeRateParam;
// ---- PERSISTENT ----
double nominalValue_;
std::vector<double> logKappa_; // Logarithm of symmetric kappas
RooListProxy thetaList_; // List of nuisances for symmetric kappas
std::vector<std::pair<double,double> > logAsymmKappa_; // Logarithm of asymmetric kappas (low, high)
RooListProxy asymmThetaList_; // List of nuisances for asymmetric kappas
RooListProxy otherFactorList_; // Other multiplicative terms
// get the kappa for the appropriate x
Double_t logKappaForX(double x, const std::pair<double,double> &logKappas ) const ;
ClassDef(ProcessNormalization,1) // Process normalization interpolator
};
#endif