#ifndef HENERGYLOSSCORRPAR_H
#define HENERGYLOSSCORRPAR_H
#include "hparcond.h"
class HEnergyLossCorrPar : public HParCond {
protected:
Int_t nThetaReg;
Double_t thetaStep;
Double_t thetaMiddle0;
Double_t momInt1;
Double_t momInt2;
Int_t nParams;
Double_t parMomCorrH[264];
Short_t typePar;
Int_t nParamsElect;
Double_t parMomCorrElect[13];
static HEnergyLossCorrPar* gEnergyLossCorrPar;
public:
HEnergyLossCorrPar(const Char_t* name = "EnergyLossCorrPar",
const Char_t* title = "Energy losses correction parameters",
const Char_t* context = "EnergyLossCorrProduction");
~HEnergyLossCorrPar(void) {}
static HEnergyLossCorrPar* getObject(void) {return gEnergyLossCorrPar;}
void clear(void);
void putParams(HParamList*);
Bool_t getParams(HParamList*);
Bool_t setDefaultPar(TString run);
Double_t getDeltaMom(Int_t pId, Double_t mom, Double_t theta) const;
Double_t getCorrMom(Int_t pId, Double_t mom, Double_t theta) const {return mom+getDeltaMom(pId,mom,theta);}
private:
void fillParMomCorrH(Int_t size,Double_t *par);
Double_t getDeltaMomT1(Int_t pId, Double_t mom, Double_t theta) const;
Double_t getDeltaMomT12(Int_t pId, Double_t mom, Double_t theta) const;
Double_t getDeltaMomT1419(Int_t pId, Double_t mom, Double_t theta) const;
Double_t binInter(Double_t b,Double_t rs, const Double_t *par) const;
ClassDef(HEnergyLossCorrPar,1)
};
#endif /*!HENERGYLOSSCORRPAR_H */