FairRoot/PandaRoot
PndEmcWaveformData.cxx
Go to the documentation of this file.
1 #include "PndEmcWaveformData.h"
2 
3 #include <map>
4 #include <ostream>
5 #include "assert.h"
6 
8 class PndEmcWaveform;
9 
10 using std::cout;
11 using std::pair;
12 using std::map;
13 using std::endl;
14 
16 
17 PndEmcWaveformData::PndEmcWaveformData() : FairTimeStamp(), fDetectorId(-1), fWfSimulator() {
18 }
19 
20 
21 PndEmcWaveformData::PndEmcWaveformData(Int_t detId, PndEmcAbsWaveformSimulator* wfSimulator) : FairTimeStamp(), fDetectorId(detId), fWfSimulator(wfSimulator) {
22 }
23 
24 
25 
27  return (fDetectorId < wfData.fDetectorId);
28 }
29 
30 
32  out << "waveform links to " << wfData.fHitMap.size() <<" PndEmcHits:" << endl;
33 
34  int count =0;
35  for(map<Double_t,Double_t>::iterator it = wfData.fHitMap.begin(); it!=wfData.fHitMap.end(); ++it) {
36  out <<"\t#" << count++ << "\t time: " << it->first << "\t energy: " << it->second << endl;
37  }
38 
39  return out;
40 }
41 
43  fHitMap.insert(toAdd.fHitMap.begin(), toAdd.fHitMap.end());
44  AddLinks(toAdd.GetLinks());
45  return *this;
46 }
47 
48 bool PndEmcWaveformData::equal(FairTimeStamp* data) {
49  PndEmcWaveformData* wfData = dynamic_cast<PndEmcWaveformData*>(data);
50  if(wfData != 0 && wfData->GetDetectorId() == fDetectorId) {
51  return true;
52  } else {
53  return false;
54  }
55 }
56 
57 
58 
59 
60 void PndEmcWaveformData::AddHit(const FairLink& link, Double_t absEventTime, Double_t energy) {
61  this->AddLink(link);
62  fHitMap.insert(pair<Double_t,Double_t>(absEventTime, energy));
63 }
64 
65 
67  assert(hitNo>=0 && hitNo<(int)fHitMap.size());
68  map<Double_t, Double_t>::iterator it = fHitMap.begin();
69  while(hitNo--) it++;
70  time = it->first;
71  energy = it->second;
72 }
std::ostream & operator<<(std::ostream &out, PndEmcWaveformData &wfData)
PndTransMap * map
Definition: sim_emc_apd.C:99
void GetHitParameter(Int_t hitNo, Double_t &time, Double_t &energy)
virtual bool operator<(const PndEmcWaveformData &wfData) const
virtual PndEmcWaveformData & operator+=(const PndEmcWaveformData &toAdd)
Abstract base class for waveform simulator.
Double_t
ClassImp(PndEmcWaveformData)
TFile * out
Definition: reco_muo.C:20
represents a simulated waveform in an emc crystal
virtual void AddHit(const FairLink &linkToHit, Double_t absEventTime, Double_t energy)
virtual bool equal(FairTimeStamp *data)
std::map< Double_t, Double_t > fHitMap
int count
represents a simulated waveform in an emc crystal, used by PndEmcFWEndcapTimebasedWaveforms ...
Double_t energy
Definition: plot_dirc.C:15