KaliVeda
Toolkit for HIC analysis
KVDetectorSignalTrace.h
1 #pragma once
2 
3 #include "KVDetectorSignal.h"
4 #include "TGraph.h"
5 
24 {
27 public:
29  : KVDetectorSignal("SignalTrace",det)
30  {}
31 
32  template<typename TraceData>
33  void SetTrace(const std::vector<TraceData>& trace, double time_resolution)
34  {
37 
38  int i=0;
39  fTrace.Expand(trace.size());
40  fRiseTimeCalc.Expand(trace.size());
41  double sig_max = -999;
42  for(auto d : trace){
43  fTrace.SetPoint(i,i*time_resolution,(double)d);
44  if((double)d > sig_max)
45  sig_max = (double)d;
46  fRiseTimeCalc.SetPoint(i,i*time_resolution,sig_max);
47  ++i;
48  }
49  fRiseTimeCalc.Scale(1./sig_max);
50  }
51 
52  Double_t GetValue(const KVNameValueList& params = "") const override;
53 
55  {
56  return fTrace;
57  }
59  {
60  return fRiseTimeCalc;
61  }
62 
64 };
#define d(i)
double Double_t
#define ClassDefOverride(name, id)
Detector signal waveform.
KVDetectorSignalTrace(const KVDetector *det)
void SetTrace(const std::vector< TraceData > &trace, double time_resolution)
Double_t GetValue(const KVNameValueList &params="") const override
Base class for output signal data produced by a detector.
Base class for detector geometry description, interface to energy-loss calculations.
Definition: KVDetector.h:160
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
virtual void Scale(Double_t c1=1., Option_t *option="y")
virtual void Expand(Int_t newsize)