ROOT logo
#ifndef HENERGYLOSSCORRPAR_H
#define HENERGYLOSSCORRPAR_H

#include "hparcond.h"

class HEnergyLossCorrPar : public HParCond {
protected:
// for protons
  Int_t    nThetaReg;            // number of theta regions 
  Double_t thetaStep;            // size of one theta region, degrees
  Double_t thetaMiddle0;         // middle of first theta region, degrees
  Double_t momInt1;              // end of first momentum interval, MeV
  Double_t momInt2;              // end of second momentum interval, MeV
  Int_t    nParams;              // number of parameters for one theta region
  Double_t parMomCorrH[264];     // parameters. Size=nThetaReg*nParams
  Short_t  typePar;              // type of parametrisation 

//for electrons  
  Int_t    nParamsElect;         // number of parameters
  Double_t parMomCorrElect[13];   // parameters
  
  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; // units: MeV for mom, degrees for theta
  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) // Parameter container for energy loss correction
};

#endif  /*!HENERGYLOSSCORRPAR_H */









 henergylosscorrpar.h:1
 henergylosscorrpar.h:2
 henergylosscorrpar.h:3
 henergylosscorrpar.h:4
 henergylosscorrpar.h:5
 henergylosscorrpar.h:6
 henergylosscorrpar.h:7
 henergylosscorrpar.h:8
 henergylosscorrpar.h:9
 henergylosscorrpar.h:10
 henergylosscorrpar.h:11
 henergylosscorrpar.h:12
 henergylosscorrpar.h:13
 henergylosscorrpar.h:14
 henergylosscorrpar.h:15
 henergylosscorrpar.h:16
 henergylosscorrpar.h:17
 henergylosscorrpar.h:18
 henergylosscorrpar.h:19
 henergylosscorrpar.h:20
 henergylosscorrpar.h:21
 henergylosscorrpar.h:22
 henergylosscorrpar.h:23
 henergylosscorrpar.h:24
 henergylosscorrpar.h:25
 henergylosscorrpar.h:26
 henergylosscorrpar.h:27
 henergylosscorrpar.h:28
 henergylosscorrpar.h:29
 henergylosscorrpar.h:30
 henergylosscorrpar.h:31
 henergylosscorrpar.h:32
 henergylosscorrpar.h:33
 henergylosscorrpar.h:34
 henergylosscorrpar.h:35
 henergylosscorrpar.h:36
 henergylosscorrpar.h:37
 henergylosscorrpar.h:38
 henergylosscorrpar.h:39
 henergylosscorrpar.h:40
 henergylosscorrpar.h:41
 henergylosscorrpar.h:42
 henergylosscorrpar.h:43
 henergylosscorrpar.h:44
 henergylosscorrpar.h:45
 henergylosscorrpar.h:46
 henergylosscorrpar.h:47
 henergylosscorrpar.h:48
 henergylosscorrpar.h:49
 henergylosscorrpar.h:50
 henergylosscorrpar.h:51
 henergylosscorrpar.h:52
 henergylosscorrpar.h:53
 henergylosscorrpar.h:54
 henergylosscorrpar.h:55
 henergylosscorrpar.h:56
 henergylosscorrpar.h:57
 henergylosscorrpar.h:58