PandaRoot
PndSdsChargeConversion.h
Go to the documentation of this file.
1 #ifndef PNDSDSCHARGECONVERSION_H
2 #define PNDSDSCHARGECONVERSION_H
3 
6 
7 #include <map>
8 #include "TObject.h"
9 #include "TString.h"
10 #include "PndSdsDigi.h"
11 
13 
14 class PndSdsChargeConversion : public TObject {
15  public:
16  PndSdsChargeConversion(ConvType type) : fParams(), it(), fConvType(type){};
18  virtual void StartExecute(){};
19  virtual void EndExecute(){};
20  virtual Double_t ChargeToDigiValue(Double_t Charge) = 0;
21  virtual Double_t DigiValueToCharge(Double_t digi) = 0;
22  virtual Double_t DigiValueToCharge(PndSdsDigi &digi);
23  virtual Double_t GetRelativeError(Double_t Charge) = 0;
24  virtual Double_t GetTimeStamp(Double_t tof, Double_t charge, Double_t MCEventTime) = 0;
25  virtual Double_t GetTimeWalk(Double_t) { return 0; }; // charge //[R.K.03/2017] unused variable(s) ///< Time between hit in detector and the time stamp assigned to the hit
26  // virtual Double_t GetTimeWalk(Int_t tot){
27  // return GetTimeWalk(DigiValueToCharge(tot));
28  // }
29  virtual Double_t GetTimeStampErrorAfterCorrection() { return 1; }
30 
31  virtual Double_t GetTimeStep() { return 0; };
32 
33  Double_t GetParameter(TString param)
34  {
35  it = fParams.find(param);
36  if (it == fParams.end()) {
37  Error("GetParameter(TString param)", "No parameter named: %s", param.Data());
38  return -1;
39  }
40  return it->second;
41  };
42  void SetParameter(TString param, Double_t value)
43  {
44  if (value < 0)
45  Error("SetParameter(TString param, Double_t value)", "invalid value for param: %s", param.Data());
46  fParams.insert(std::pair<TString, Double_t>(param, value));
47  };
48 
49  private:
50  std::map<TString, Double_t> fParams;
51  std::map<TString, Double_t>::iterator it;
52  ConvType fConvType;
53 
54  ClassDef(PndSdsChargeConversion, 2);
55 };
56 #endif /* PNDSDSCHARGECONVERSION_H */
Base class for Digi information.
Definition: PndSdsDigi.h:29
virtual Double_t GetTimeStep()
virtual Double_t GetRelativeError(Double_t Charge)=0
virtual Double_t GetTimeStamp(Double_t tof, Double_t charge, Double_t MCEventTime)=0
absolute time stamp of a hit in ns (clock is taken into account)
virtual Double_t DigiValueToCharge(Double_t digi)=0
Converts a given digitized charge into charge in electrons.
PndSdsChargeConversion(ConvType type)
Double_t GetParameter(TString param)
virtual Double_t GetTimeStampErrorAfterCorrection()
virtual Double_t ChargeToDigiValue(Double_t Charge)=0
Converts a given charge in electrons into the electronics answer e.g. ToT [ns].
virtual Double_t GetTimeWalk(Double_t)
void SetParameter(TString param, Double_t value)