Xephyr  0.0
XeLikelihoods.h
1 #ifndef XELIKELIHOODS_H
2 #define XELIKELIHOODS_H
3 
4 #include "XeStat.h"
5 #include <TString.h>
6 #include "TGraph2D.h"
7 #include "TNtuple.h"
8 #include <cmath>
9 #include <csignal>
10 #include <iostream>
11 #include <cstdio>
12 #include <vector>
13 #include <utility> // std::pair, std::make_pair
14 #include "dataHandler.h"
15 
16 #include "XePdfObjects.h"
17 #include "plotHelpers.h"
18 
19 using namespace std;
20 
28 
29  public :
30 
31  //FIXME TODO put some comments
32 
33  ~pdfLikelihood();
34  pdfLikelihood(TString name, double wimpMass);
35 
36 
37  void initialize();
38 
39  void setData(int dataType);
40 
41  double computeTheLogLikelihood();
42 
43  void generateAsimov(double mu_prime) ;
44 
45  void generateAndUseAsimov(double mu_prime) {generateAsimov(mu_prime); useAsimovData() ;}
46 
47  void generateToyDataset(double seed, double mu_prime);
48 
49  double getSignalDefaultNorm() { return siganlDefaultNorm; } ;
50 
51  double getSignalMultiplier() { return XsecMultiplier; } ;
52 
53  void setSignalMultiplier(double val) { XsecMultiplier = val; } ;
54 
55  void setTreeIndex(int index);
56 
57  void setSignalDefaultNorm(double val) { siganlDefaultNorm = val; } ;
58 
59  double getCurrentNs();
60 
61  void checkInputs();
62 
63  // add a bkg pdf, if its shape should be considered in safeguard method
64  // Safeguarded should be true, default is false.
65  void addBkgPdfComponent(pdfComponent *addMe , bool Safeguarded = false);
66 
67  void setSignalPdf(pdfComponent *signal) {signal_component = signal; };
68 
69  void setDataHandler(dataHandler *d ) {dmData = d; useDMData(); } ;
70 
71  void setAsimovData(dataHandler *d) {asimovData = d; useAsimovData(); } ;
72 
73  int useAsimovData();
74 
75  int useDMData();
76 
77  bool isNegativeAnywhere(TH2F histo);
78 
79  void setCalibrationData(dataHandler *d ) {calibrationData = d; } ;
80 
81  void setWithSafeGuard(bool b) {withSafeGuard = b;} ;
82 
83  void setSafeGuardPosDef(bool b) {safeGuardPosDef = b;} ;
84 
85  void drawAllOnProjection(bool isS1Projection);
86 
90  void printEventSummary(bool isForWiki=false);
91 
92  vector<string> getTrueParamsNames() { return data->getTrueParamsNames(); };
93 
94  vector<double> getTrueParams() { return data->getTrueParams(); };
95 
96  double getSafeguardValue();
97 
98 
100  pdfComponent* getBkgComponent(TString name);
101 
103  vector<pdfComponent *> getBkgComponents();
104 
106  // used by drawAllOnProjection()
107  histoCompare getModelCompare();
108 
113  TH2F getOverallBkgHisto();
114 
120  TH2F getSafeguardedBkgPdf();
121 
127  TH2F getSafeguardedBkgPdfOnly();
128 
129  vector <pdfComponent*> bkg_components;
130 
133 
135  // safeguard. Used in this case for the AC that is different between data and Rn
136  // this component has to be scaled to Bkg_data ---> Nbkg/Ncal
138 
139  void setAdditionalSafeGuardComponent(TH2F *h){ safeguardAdditionalComponent = h;};
140 
141  void setFixedValueForSafeguard(double fv) { safeguard_fixValue = fv; } ;
142 
143  double LLsafeGuard();
144 
146  int numberOfSafeguarded();
147 
148  pdfComponent *signal_component;
149 
150  dataHandler *data;
151 
152  dataHandler *calibrationData;
153 
154  dataHandler *asimovData;
155 
156  dataHandler *dmData;
157 
158  double siganlDefaultNorm; //corresponding cross section of histos
159 
160  double XsecMultiplier; // handy multiplier to keep sigma [0,50]
161 
162  bool withSafeGuard;
163 
164  bool safeGuardPosDef;
165 
166  double wimp_mass;
167 
168  double safeguard_fixValue;
169 
170  LKParameter *safeGuardParam;
171 
172  double safeguard_scaling;
173 
174  //This is needed for compatibility, ancestral xephyr roots.
175  //FIXME: move getWimpMass to Asymptotics
176  double getWimpMass() {return wimp_mass;};
177  //------------------------------//
178 
179 
180 
181 };
182 
183 
184 
185 
186 
187 #endif
Definition: XeStat.h:312
Definition: dataHandler.h:36
implements 2D pdf profiled likelihood fitting.
Definition: XeLikelihoods.h:27
double wimp_mass
Force safeguard parameter to be positive.
Definition: XeLikelihoods.h:166
vector< bool > safeguarded_bkg_components
says if a bkg component needs to be safeguarded.
Definition: XeLikelihoods.h:132
void setSafeGuardPosDef(bool b)
Set whether to use safeguard or not.
Definition: XeLikelihoods.h:83
This class is supposed to compare a "base" histo with a set of other histogram. One can choose for ra...
Definition: XePdfObjects.h:200
TH2F * safeguardAdditionalComponent
is an additional component to be added in the fit to calibration for
Definition: XeLikelihoods.h:137
Definition: XeStat.h:742
Definition: XePdfObjects.h:70