#ifndef PNDSDSCHARGECONVERSION_H #define PNDSDSCHARGECONVERSION_H //! base class for energy loss <-> digi value conversion //! @author D.-L.Pohl #include #include "TObject.h" #include "TString.h" #include "PndSdsDigi.h" enum ConvType{kUndefined,kIdeal,kToT}; class PndSdsChargeConversion : public TObject { public : PndSdsChargeConversion(ConvType type){fConvType = type;}; virtual ~PndSdsChargeConversion(){}; virtual void StartExecute(){}; virtual void EndExecute(){}; virtual Double_t ChargeToDigiValue(Double_t Charge) = 0; virtual Double_t DigiValueToCharge(Double_t digi) = 0; virtual Double_t DigiValueToCharge(PndSdsDigi &digi); Double_t GetParameter(TString param){ it=fParams.find(param); if (it == fParams.end()){ Error("GetParameter(TString param)","No parameter named: "+param); return -1; } return it->second; }; void SetParameter(TString param, Double_t value){ if (value < 0 ) Error("SetParameter(TString param, Double_t value)","invalid value for param "+ param); fParams.insert(std::pair(param, value)); }; private : std::map fParams; std::map::iterator it; ConvType fConvType; ClassDef(PndSdsChargeConversion,1); }; #endif /* PNDSDSCHARGECONVERSION_H */