FairRoot/PandaRoot
PndMdtWaveform.h
Go to the documentation of this file.
1 //==========================================================================
2 // PndMdtWaveform.h
3 //
4 // Class to hold waveforms created from Mdt Digis
5 //
6 // Hits will be converted to waveforms from semi-parameterized simulation
7 //
8 // Software developed for the BaBar Detector at the SLAC B-Factory.
9 // Adapted for the PANDA experiment at GSI
10 //
11 // Jifeng Hu, hu@to.infn.it, Torino University
12 //=======================================================================
13 //#pragma once
14 #ifndef PNDMDTWAVEFORM_H
15 #define PNDMDTWAVEFORM_H
16 
17 #include <vector>
18 #include "TObject.h"
19 #include "FairTimeStamp.h"
20 #include <algorithm>
21 #include "TGraphErrors.h"
22 
23 class PndMdtWaveform: public FairTimeStamp
24 {
25 
26  public:
27 
28  // Constructors
30  PndMdtWaveform(Int_t trackId, Int_t detId, Double_t time, Bool_t isWire=kTRUE);
31  // Destructor:
32  virtual ~PndMdtWaveform();
33  // Copy:
34  PndMdtWaveform(const PndMdtWaveform& copy);
35  // Operators
36 
37  virtual PndMdtWaveform& operator=(const PndMdtWaveform& copy);
38  virtual bool operator < (const PndMdtWaveform& otherWave) const;
39  PndMdtWaveform& operator+=(const PndMdtWaveform& otherWave);
40  virtual bool equal(FairTimeStamp* data) const;
41  virtual bool equal(FairTimeStamp* data) ;
42  // Selectors
43  Bool_t IsWire() const { return fIsWireSig; }
44  Int_t GetDetectorID() const {return fDetectorId;}
45  Int_t GetTrackId() const {return fTrackId;}
46  Long_t GetWaveformLength() const { return fSignal.size(); }
47  Double_t GetActiveTime() const { return GetTimeStamp() + 10*GetWaveformLength(); }//nano seconds
48 
49  TGraphErrors* ToTGraph() const;
50 
51  const std::vector<Double_t>& GetSignal() const { return fSignal ;}
52  // Modifiers
53  void SetSignal(const std::vector<Double_t>& v) { copy(v.begin(), v.end(), fSignal.begin()); }
54 
55  virtual std::ostream& Print(std::ostream& out = std::cout) const;
56 
57 
58 
59  protected:
60  Int_t fTrackId;
61  Int_t fDetectorId;
62  Bool_t fIsWireSig; //wire or strip
63  std::vector<Double_t> fSignal; // induced current
64 
65  ClassDef(PndMdtWaveform,5)
66 };
67 #endif
virtual std::ostream & Print(std::ostream &out=std::cout) const
Double_t GetActiveTime() const
PndMdtWaveform & operator+=(const PndMdtWaveform &otherWave)
Int_t GetDetectorID() const
const std::vector< Double_t > & GetSignal() const
Long_t GetWaveformLength() const
TGraphErrors * ToTGraph() const
std::vector< Double_t > fSignal
__m128 v
Definition: P4_F32vec4.h:4
virtual bool operator<(const PndMdtWaveform &otherWave) const
Double_t
virtual bool equal(FairTimeStamp *data) const
Int_t GetTrackId() const
TFile * out
Definition: reco_muo.C:20
virtual ~PndMdtWaveform()
virtual PndMdtWaveform & operator=(const PndMdtWaveform &copy)
void SetSignal(const std::vector< Double_t > &v)
Bool_t IsWire() const