#ifndef HMDSLOPE_H
#define HMDSLOPE_H
#include "hreconstructor.h"
#include "TH1.h"
#include "TH2.h"
typedef Int_t MyInt;
typedef Float_t MyFloat;
class TFile;
class HCategory;
class HIterator;
class HMdcCalPar;
class HMdcCalParRaw;
typedef MyFloat MyFloatField [6][4][16][96];
typedef MyInt MyIntField [6][4][16][96];
typedef MyInt MboSlopeTrendIntField[16][96][5000];
typedef MyInt MboErrorTrendIntField[16][96][600];
class HMdcSlope : public HReconstructor {
protected:
HCategory *rawCat;
HCategory *slopeCat;
HIterator *iter;
HMdcCalParRaw *calparraw;
Char_t *fNameRoot;
Char_t *fNameNtuple;
MyFloatField *avgSlope;
MyFloatField *avgSlopeErr;
MyIntField *nEvt;
MboErrorTrendIntField *errorTrend[6][4];
Int_t slopeTrend[6][4][16][96][5000];
Bool_t trendCalculationActive;
Int_t calibrationAlgorithm;
Int_t nTimeValues;
Int_t debugActive;
Int_t fitHistMethod;
Bool_t linRegActive;
Bool_t histFitActive;
Bool_t graphFitActive;
Int_t binError;
Bool_t selectorActive;
Int_t mbSelector;
Int_t tdcSelector;
Bool_t createNtupleActive;
TFile *ntupleOutputFile;
TNtuple *ntuple;
TFile *file;
TH1F *hSlope;
TH1F *hTime;
enum calibrationMethod {HMDC_SLOPE_LIN_REG_6 = 1,
HMDC_SLOPE_HIST_FIT_5 = 2,
HMDC_SLOPE_GRAPH_FIT_5 = 3,
HMDC_SLOPE_LIN_REG_5 = 4 };
public:
HMdcSlope();
HMdcSlope(const Text_t* name,const Text_t* title);
~HMdcSlope();
Bool_t init();
Bool_t finalize();
Int_t execute();
Int_t calcBinNr(Double_t, Double_t, Double_t, Int_t);
void setOutputRoot (Char_t*);
void setOutputNtuple(Char_t*);
void selectCalibrationAlgorithm(Int_t);
void selectHistFitMethod(Int_t);
void setBinError(Int_t);
void setCreateNtupleActive(Bool_t);
void setDebugActive(Int_t);
void setGraphFitActive(Bool_t);
void setHistFitActive(Bool_t);
void setLinRegActive(Bool_t);
void setMbSelector(Int_t);
void setnTimeValues(Int_t);
void setTrendCalculationActive(Bool_t);
void setSelectorActive(Bool_t);
void setTdcSelector(Int_t);
protected:
void calc (Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Float_t, Float_t*, Float_t*);
void calc5 (Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Float_t, Float_t*, Float_t*);
void calcCHI (Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Float_t, Float_t*, Float_t*);
void calcGraph(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Float_t, Float_t*, Float_t*);
void calcSlope(Int_t, Int_t, Int_t, Int_t, Int_t, Int_t, Float_t, Float_t*, Float_t*, Float_t*, Int_t, Int_t);
void fitHistogramm(Float_t*, Float_t*, Int_t, Int_t, Int_t, Int_t, Int_t);
void fitHistogrammMeanCondition(Float_t*, Float_t*, Int_t, Int_t, Int_t, Int_t);
void fitHistogrammMaxCondition(Float_t*, Float_t*, Int_t, Int_t, Int_t, Int_t);
public:
ClassDef(HMdcSlope, 0)
};
#endif /* !HMDCSLOPE_H */
Last change: Sat May 22 13:03:35 2010
Last generated: 2010-05-22 13:03
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.