FairRoot/PandaRoot
Public Member Functions | Protected Attributes | List of all members
PndMdtWaveform Class Reference

#include <PndMdtWaveform.h>

Inheritance diagram for PndMdtWaveform:

Public Member Functions

 PndMdtWaveform ()
 
 PndMdtWaveform (Int_t trackId, Int_t detId, Double_t time, Bool_t isWire=kTRUE)
 
virtual ~PndMdtWaveform ()
 
 PndMdtWaveform (const PndMdtWaveform &copy)
 
virtual PndMdtWaveformoperator= (const PndMdtWaveform &copy)
 
virtual bool operator< (const PndMdtWaveform &otherWave) const
 
PndMdtWaveformoperator+= (const PndMdtWaveform &otherWave)
 
virtual bool equal (FairTimeStamp *data) const
 
virtual bool equal (FairTimeStamp *data)
 
Bool_t IsWire () const
 
Int_t GetDetectorID () const
 
Int_t GetTrackId () const
 
Long_t GetWaveformLength () const
 
Double_t GetActiveTime () const
 
TGraphErrors * ToTGraph () const
 
const std::vector< Double_t > & GetSignal () const
 
void SetSignal (const std::vector< Double_t > &v)
 
virtual std::ostreamPrint (std::ostream &out=std::cout) const
 

Protected Attributes

Int_t fTrackId
 
Int_t fDetectorId
 
Bool_t fIsWireSig
 
std::vector< Double_tfSignal
 

Detailed Description

Definition at line 23 of file PndMdtWaveform.h.

Constructor & Destructor Documentation

PndMdtWaveform::PndMdtWaveform ( )

Definition at line 30 of file PndMdtWaveform.cxx.

30  :
31  FairTimeStamp()
32  ,fTrackId(-1)
33  ,fDetectorId(-1)
34  ,fSignal(40,0.)
35 { }
std::vector< Double_t > fSignal
PndMdtWaveform::PndMdtWaveform ( Int_t  trackId,
Int_t  detId,
Double_t  time,
Bool_t  isWire = kTRUE 
)

Definition at line 40 of file PndMdtWaveform.cxx.

40  :
41  fTrackId(trackId)
42  ,fDetectorId(detId)
43  ,fIsWireSig(isWire)
44  ,fSignal(40,0.)
45 {
46  SetTimeStamp(time);
47 }
std::vector< Double_t > fSignal
PndMdtWaveform::~PndMdtWaveform ( )
virtual

Definition at line 74 of file PndMdtWaveform.cxx.

References fSignal.

75 {
76  fSignal.clear();
77 }
std::vector< Double_t > fSignal
PndMdtWaveform::PndMdtWaveform ( const PndMdtWaveform copy)

Definition at line 49 of file PndMdtWaveform.cxx.

49  :FairTimeStamp(copy),
50  fTrackId(copy.fTrackId)
51  ,fDetectorId ( copy.fDetectorId)
52  ,fIsWireSig(copy.fIsWireSig)
53  ,fSignal(copy.fSignal)
54 {
55  SetTimeStamp(copy.GetTimeStamp());
56  SetTimeStampError(copy.GetTimeStampError());
57 }
std::vector< Double_t > fSignal

Member Function Documentation

bool PndMdtWaveform::equal ( FairTimeStamp *  data) const
virtual

Definition at line 135 of file PndMdtWaveform.cxx.

References GetDetectorID().

136 {
137  PndMdtWaveform* other = (PndMdtWaveform*)(data);
138  if(GetDetectorID() == other->GetDetectorID()) return true;
139  return false;
140 }
Int_t GetDetectorID() const
bool PndMdtWaveform::equal ( FairTimeStamp *  data)
virtual

Definition at line 141 of file PndMdtWaveform.cxx.

References GetDetectorID().

142 {
143  PndMdtWaveform* other = (PndMdtWaveform*)(data);
144  if(GetDetectorID() == other->GetDetectorID()) return true;
145  return false;
146 }
Int_t GetDetectorID() const
Double_t PndMdtWaveform::GetActiveTime ( ) const
inline

Definition at line 47 of file PndMdtWaveform.h.

References GetWaveformLength().

Referenced by PndMdtPointsToWaveform::exec_t(), PndMdtWaveformWriteoutBuffer::Modify(), and operator<().

47 { return GetTimeStamp() + 10*GetWaveformLength(); }//nano seconds
Long_t GetWaveformLength() const
Int_t PndMdtWaveform::GetDetectorID ( ) const
inline

Definition at line 44 of file PndMdtWaveform.h.

References fDetectorId.

Referenced by equal(), PndMdtDigitization::exec_e(), PndMdtDigitization::exec_t(), and operator<().

44 {return fDetectorId;}
const std::vector<Double_t>& PndMdtWaveform::GetSignal ( ) const
inline

Definition at line 51 of file PndMdtWaveform.h.

References fSignal.

Referenced by PndMdtDigitization::Digitize(), and PndMdtPointsToWaveform::Digitize().

51 { return fSignal ;}
std::vector< Double_t > fSignal
Int_t PndMdtWaveform::GetTrackId ( ) const
inline

Definition at line 45 of file PndMdtWaveform.h.

References fTrackId.

45 {return fTrackId;}
Long_t PndMdtWaveform::GetWaveformLength ( ) const
inline

Definition at line 46 of file PndMdtWaveform.h.

References fSignal.

Referenced by GetActiveTime(), and operator+=().

46 { return fSignal.size(); }
std::vector< Double_t > fSignal
Bool_t PndMdtWaveform::IsWire ( ) const
inline

Definition at line 43 of file PndMdtWaveform.h.

References fIsWireSig.

Referenced by PndMdtDigitization::exec_e(), and PndMdtDigitization::exec_t().

43 { return fIsWireSig; }
PndMdtWaveform & PndMdtWaveform::operator+= ( const PndMdtWaveform otherWave)

Definition at line 93 of file PndMdtWaveform.cxx.

References fSignal, and GetWaveformLength().

93  {
94  if(this != &otherWave)
95  {
96  Int_t k =0;
97  Int_t IDX = 0;
98  for(; (IDX < GetWaveformLength()) && (k < otherWave.GetWaveformLength()); ++ IDX){
99  if((GetTimeStamp() + IDX*10.) < otherWave.GetTimeStamp()){
100  continue;
101  }
102  fSignal[IDX] += otherWave.fSignal[k];
103  ++k;
104  }
105  if(k < otherWave.GetWaveformLength()){
106  fSignal.reserve( GetWaveformLength() + otherWave.GetWaveformLength() - (k+1));
107  for(; IDX < GetWaveformLength(); ++IDX, ++k){
108  fSignal.push_back(otherWave.fSignal[k]);
109  }
110  }
111  }
112  return *this;
113 }
Long_t GetWaveformLength() const
std::vector< Double_t > fSignal
bool PndMdtWaveform::operator< ( const PndMdtWaveform otherWave) const
virtual

Definition at line 83 of file PndMdtWaveform.cxx.

References GetActiveTime(), and GetDetectorID().

84 {
85  if(GetDetectorID() < otherWave.GetDetectorID())
86  return true;
87  if(GetDetectorID() > otherWave.GetDetectorID())
88  return false;
89  if(GetTimeStamp() < otherWave.GetTimeStamp())
90  return GetActiveTime() < otherWave.GetTimeStamp();
91  return false;
92 }
Double_t GetActiveTime() const
Int_t GetDetectorID() const
PndMdtWaveform & PndMdtWaveform::operator= ( const PndMdtWaveform copy)
virtual

Definition at line 59 of file PndMdtWaveform.cxx.

References fDetectorId, fSignal, and fTrackId.

59  {
60  if(this != &copy){
61  fTrackId = copy.fTrackId;
62  fDetectorId = copy.fDetectorId;
63  fSignal = copy.fSignal;
64  SetTimeStamp(copy.GetTimeStamp());
65  SetTimeStampError(copy.GetTimeStampError());
66  }
67  return *this;
68 }
std::vector< Double_t > fSignal
std::ostream & PndMdtWaveform::Print ( std::ostream out = std::cout) const
virtual

Definition at line 125 of file PndMdtWaveform.cxx.

References fSignal, and out.

126 {
127  std::vector<Double_t>::const_iterator it = fSignal.begin();
128  std::vector<Double_t>::const_iterator it_end = fSignal.end();
129  cout<<"PndMdtWaveform::"<<fSignal.size()<<" :[";
130  for(; it != it_end; ++it)
131  out<<*it<<", ";
132  out<<"]"<<endl;
133  return out;
134 }
std::vector< Double_t > fSignal
TFile * out
Definition: reco_muo.C:20
void PndMdtWaveform::SetSignal ( const std::vector< Double_t > &  v)
inline

Definition at line 53 of file PndMdtWaveform.h.

References fSignal.

Referenced by PndMdtPointsToWaveform::exec_e(), and PndMdtPointsToWaveform::exec_t().

53 { copy(v.begin(), v.end(), fSignal.begin()); }
std::vector< Double_t > fSignal
__m128 v
Definition: P4_F32vec4.h:4
TGraphErrors * PndMdtWaveform::ToTGraph ( ) const

Definition at line 115 of file PndMdtWaveform.cxx.

References fSignal, g, and i.

116 {
117  //free this object outside
118  TGraphErrors* g = new TGraphErrors(fSignal.size());
119  for(size_t i = 0; i< fSignal.size(); ++i){
120  g->SetPoint(i, i*10, fSignal[i]);//every 10 nano seconds
121  g->SetPointError(i, 0, 0);
122  }
123  return g;
124 }
Int_t i
Definition: run_full.C:25
TFile * g
std::vector< Double_t > fSignal

Member Data Documentation

Int_t PndMdtWaveform::fDetectorId
protected

Definition at line 61 of file PndMdtWaveform.h.

Referenced by GetDetectorID(), and operator=().

Bool_t PndMdtWaveform::fIsWireSig
protected

Definition at line 62 of file PndMdtWaveform.h.

Referenced by IsWire().

std::vector<Double_t> PndMdtWaveform::fSignal
protected
Int_t PndMdtWaveform::fTrackId
protected

Definition at line 60 of file PndMdtWaveform.h.

Referenced by GetTrackId(), and operator=().


The documentation for this class was generated from the following files: