#ifndef __efficiency__ #define __efficiency__ #include #include #include class EfficiencyData { protected: ENUMARRAY _Array; double _Ener[kNBinsEner]; double _Coeff[kNBinsEner][kNDegPol], _ErrCoeff[kNBinsEner][kNDegPol]; double _ParEff[kNParEff], _ErrParEff[kNParEff]; public: EfficiencyData(ENUMARRAY); ~EfficiencyData(); }; class Efficiency : public EfficiencyData { private: TH1F *_SinTheta2, *_RawSinTheta2, *_ErrSinTheta2; TH1F *_MeanEff, *_ErrMeanEff; // vs energy int _NBins; double _EMax[NARRAY]; double _Normalisation, _SavedNormalisation; double _DeltaEFullEff, _E1, _E2, _SinTheta2Max; void SetDeltaEFullEff(double,double); void SaveNormalisation() { _SavedNormalisation=_Normalisation; } double GetNormalisation() { return _SavedNormalisation; } void Normalise(double, double); void FillSinTheta2Hist(vector&,double, double); void FitSinTheta2Hist(int); void FitEnergyHist(); public: Efficiency(ENUMARRAY); ~Efficiency(); void FcnEffFit(int &, double *, double &f, double *par, int); void FcnEffThFit(int &, double *, double &f, double *par, int); void Run(vector&,int r=-1); void ExtractFromInfillArray(vector&,vector&); double Value(double,double); double MeanValue(double,double *par=NULL); void Dump(int); void Dump(int,int); }; #endif