Xephyr  0.0
ToyGenerator.h
1 #ifndef TOY_GENERATOR
2 #define TOY_GENERATOR
3 
4 
5 #include "TRandom.h"
6 #include "TRint.h"
7 #include "TString.h"
8 #include "TFile.h"
9 #include "TTree.h"
10 #include "TList.h"
11 #include "XeUtils.h"
12 #include "XeLikelihoods.h"
13 #include "TParameter.h"
14 #include "XeStat.h"
15 #include "TTree.h"
16 #include "TH2F.h"
17 #include <map>
18 #include <vector>
19 #include <stdio.h>
20 
21 using namespace std;
22 
23 
29 class ToyGenerator: public errorHandler {
30 
31  public:
34  ToyGenerator(TString sampleName, TString outDir);
35 
37  void setLikelihood(pdfLikelihood *like) {likeHood = like;};
38 
40  //
43  void setAverageCalibrationEvents(double evnt) {averageCalEvnt = evnt;} ;
44 
45 
47  //
52  void setAverageDataEvents(double evnt) {averageDataEvnt = evnt;} ;
53 
55  //
56  // generate calibration like toys, where averageCalEvnt is the poisson median
57  // of the number of generated event per toy. N is the number of toy datasets.
58  // The pdfs are taken only from pdfcomponent that are "safeguarded" in the
59  // likelihood, their relative rates are respected. Also the additional
60  // contribution from "AdditionalSafeGuardComponent" is included.
61  void generateCalibration(int N, bool randomizeNP = false);
62 
64  void generateData(double mu, int N, bool randomizeNP = false);
65 
67  void setSeed(int seed);
68 
70  void setGeneration(int generation) { Gen = generation; };
71 
73  void setLikeType(int lktype) {likelihoodType = lktype; } ;
74 
76  //
79  void randomizeNuissanceParameter();
80 
82  void setTreeName(TString newname) { treeName = newname;};
83 
84 
85  private:
86 
88  void saveParameters(TTree *f);
89 
94  double getModelIntegral();
95 
100  double getModelIntegralSafeguarded();
101 
103  vector<TH2F> getTH2OfBkg();
104 
105 
106  double averageCalEvnt;
107  double averageDataEvnt;
108  int Gen;
109  int likelihoodType;
110  TRandom3 rambo;
111  TString treeName;
112  TString dir;
113  pdfLikelihood *likeHood;
114 };
115 
116 
117 
118 
119 #endif
void setGeneration(int generation)
set the Generation, this info will be available in the generated tree (so that u can hadd them)...
Definition: ToyGenerator.h:70
implements 2D pdf profiled likelihood fitting.
Definition: XeLikelihoods.h:27
Helper Class to send consistently formatted messages. It allows different levels of severity for the ...
Definition: XeUtils.h:22
Helper class to generate toys given an input likelihood. It can generate toys for the calibration dat...
Definition: ToyGenerator.h:29
void setLikeType(int lktype)
set the LikeliHood Type, this info will be available in the generated tree (so that u can hadd them)...
Definition: ToyGenerator.h:73
void setAverageCalibrationEvents(double evnt)
the total number of events to which the calibtration pdfs will be rescaled.
Definition: ToyGenerator.h:43
void setTreeName(TString newname)
sets a new tree name prefix
Definition: ToyGenerator.h:82
void setLikelihood(pdfLikelihood *like)
pointer to the defined likelihood
Definition: ToyGenerator.h:37
void setAverageDataEvents(double evnt)
the total number of events to which the science data pdfs will be rescaled.
Definition: ToyGenerator.h:52