1 | #ifndef MARS_MHMcUnfoldCoeff
|
---|
2 | #define MARS_MHMcUnfoldCoeff
|
---|
3 |
|
---|
4 | #ifndef MARS_MH
|
---|
5 | #include "MH.h"
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | class TF1;
|
---|
9 | class TH1D;
|
---|
10 | class TH2D;
|
---|
11 | class MBinning;
|
---|
12 |
|
---|
13 | class MHMcUnfoldCoeff : public MH
|
---|
14 | {
|
---|
15 | private:
|
---|
16 |
|
---|
17 | TH1D* fHistAll; // histogram of all events (fine bins)
|
---|
18 | TH1D* fHistWeight; // histogram of weights (fine bins)
|
---|
19 |
|
---|
20 | TH2D* fHistMcE; // histogram of MC energy for survivors (coarse bins)
|
---|
21 | TH2D* fHistEstE; // histogram of estimated energy for survivors (coarse bins)
|
---|
22 | TH2D* fHistCoeff; // histogram of coefficients for iterative unfolding
|
---|
23 |
|
---|
24 | Int_t fNsubbins; // number of subbins per coarse bin
|
---|
25 | Double_t fEmin; // [GeV] absolute minimum energy where weights are computed
|
---|
26 | Double_t fEmax; // [GeV] absolute maximum energy where weights are computed
|
---|
27 | Int_t fNumMin; // minimum number of events in a fine bin required to compute the weight
|
---|
28 |
|
---|
29 | MBinning* fFineBinning; // fine binning (used for weights)
|
---|
30 |
|
---|
31 | public:
|
---|
32 |
|
---|
33 | MHMcUnfoldCoeff(const char *name=NULL, const char *title=NULL);
|
---|
34 |
|
---|
35 | virtual ~MHMcUnfoldCoeff();
|
---|
36 |
|
---|
37 | void FillAll(Double_t energy);
|
---|
38 | void FillSel(Double_t mcenergy,Double_t estenergy,Double_t theta);
|
---|
39 | void Draw(Option_t* option="");
|
---|
40 | void ComputeWeights(TF1* spectrum);
|
---|
41 | void ComputeCoefficients();
|
---|
42 |
|
---|
43 | void SetCoarseBinnings(const MBinning& binsEnergy,const MBinning& binsTheta);
|
---|
44 | void SetNsubbins(Int_t n) {fNsubbins=n;}
|
---|
45 | void SetEmax(Double_t emax) {fEmax=emax;}
|
---|
46 | void SetEmin(Double_t emin) {fEmin=emin;}
|
---|
47 | void SetNumMin(Int_t n) {fNumMin=n;}
|
---|
48 |
|
---|
49 | const TH1D* GetHistAll() const {return fHistAll;}
|
---|
50 | const TH1D* GetHistWeight() const {return fHistWeight;}
|
---|
51 | const TH2D* GetHistMcE() const {return fHistMcE;}
|
---|
52 | const TH2D* GetHistEstE() const {return fHistEstE;}
|
---|
53 | const TH2D* GetHistCoeff() const {return fHistCoeff;}
|
---|
54 |
|
---|
55 | ClassDef(MHMcUnfoldCoeff, 1) // Data Container to store Unfolding Coefficients
|
---|
56 | };
|
---|
57 |
|
---|
58 | #endif
|
---|
59 |
|
---|