Xephyr  0.0
AsymptoticExclusion.h
1 #ifndef AsymptoticExclusion_h
2 #define AsymptoticExclusion_h
3 
4 #include "XeStat.h"
5 #include "XePdfObjects.h"
6 #include "TGraphAsymmErrors.h"
7 #include "XeUtils.h"
8 
9 using namespace ROOT;
10 using namespace Math;
11 
17 class AsymptoticExclusion : public XeStat{
18  public:
19 
21  AsymptoticExclusion(ProfileLikelihood *pl, double confidenceLevel);
22 
23  ProfileLikelihood* getProfileLikelihood() {return plike;};
24  TGraphAsymmErrors getExpectedMedian() {return expectedMedian;};
25  TGraphAsymmErrors getExpected2Sigma() {return expected2Sigma;};
26  TGraph getObservedLimit() {return observedLimit;};
27  double getMass() {return plike->getWimpMass();};
28 
34  void generateAndSetAsimov(double mu_prime);
35 
39  void setRealData();
40 
46  void setToyDataset(double seed, double mu_prime);
47 
53  double computeQTestStat(double mu, bool useStoredFit = false);
54 
58  void computeSensitivity();
59 
61  double computeSensitivityHagar();
62 
63 
72  double computeExpectedLimit(double sigma_0, double N, double CL);
73 
77  double conditionalFit(double mu);
78 
84  double unconditionalFit();
85 
89  double getMu_hat();
90 
95  double computeSigmaAsimov(double mu_prime);
96 
97 
101  void setNscanPoints(int nPoints){nScanPoints = nPoints;};
102 
103 
104 
108  void writeToFile(TString prefix ="limit_");
109 
110  TGraph getSigmaScan(){return sigmaScan;};
111 
112  TGraph getqTestScan() {return qTestScan;};
113 
114 
119  void computeLimits();
120 
124  double compute_pval_s_plus_b(double q_obs);
125  double compute_pval_b(double q_obs, double mu_val, double sigma_val);
126 
127  void setScanMin(double mi) {scanMin = mi;};
128  void setScanMax(double ma) {scanMax = ma;};
129 
130  void LikelihoodScan();
131 
132  void setQTilde(bool doSet) {useQtilde = doSet;};
133 
138  void setAlternativeXAxisVal(double x) { AlternativeX = x;};
139 
140  void setAlternative2DHistoRange(int Nx, double xmin, double xmax, int Ny, double ymin, double ymax);
141 
142  TGraph getqTestScanData() {return qTestScanData;};
143 
144  double getObsLimitCLS(){return Obslimit;}
145  double getObsLimitnoCLS(){return ObslimitnoCLS;}
146 
147 
148  private:
152  void computeSetAsimovSigma();
153 
154  ProfileLikelihood *plike; // handler on profile likelihood
155 
156  double Obslimit, ObslimitnoCLS;
157 
158  TGraphAsymmErrors expectedMedian; //Graph holding the informations
159  TGraphAsymmErrors expected2Sigma;
160  TGraph observedLimit;
161  TGraph observedLimitNoCLS;
162  TGraph sigmaScan;
163  TGraph qTestScan;
164  TGraph qTestScanData;
165  TH1F pulls_uncond;
166  TH1F pulls_cond;
167  TH2F Histo2D_mass_vs_x; //2D histo of the observed limits as a
168  //function of mass and the additional variable X,
169  //specified with setAlternativeXAxisVal()
170 
171  int nScanPoints; // Number of points for which mu is computed in limit calculation, default 100.
172 
173  vector<double> asimovSigmaSet;
174  vector<double> muStepsSet;
175 
176  double cl; // confidence level DEFAULT = 0.1
177  double stored3Sigma_mu;
178  double storedMedian_mu;
179 
180  double scanMin;
181  double scanMax;
182 
183  bool useQtilde;
184 
185  double AlternativeX;
186 
187 };
188 
189 
190 #endif
Definition: XeStat.h:180
void setAlternativeXAxisVal(double x)
Definition: AsymptoticExclusion.h:138
Definition: AsymptoticExclusion.h:17
void setNscanPoints(int nPoints)
Definition: AsymptoticExclusion.h:101
Definition: XeStat.h:742