FairRoot/PandaRoot
PndMdtWaveformWriteoutBuffer.cxx
Go to the documentation of this file.
1 /*
2  * PndMdtWaveformWriteoutBuffer.cxx
3  */
4 //#include <assert.h>
6 
8 
9 
10 
12  fVerbose = 0;
13 }
14 
15 
17  FairWriteoutBuffer(branchName, "PndMdtWaveform", folderName, persistance)
18 {
19  fVerbose = 0;
20 }
21 
23 }
25 {
26  FairRootManager* ioman = FairRootManager::Instance();
27  TClonesArray* myArray = ioman->GetTClonesArray(fBranchName);
28  if (fVerbose > 1) std::cout << "PndMdtWaveformWriteoutBuffer:: "<<fBranchName << *(PndMdtWaveform*)(data) << std::endl;
29  //((*myArray)[myArray->GetEntries()]) = data; //data->Clone();
30  new ((*myArray)[myArray->GetEntries()]) PndMdtWaveform(*(PndMdtWaveform*)(data));
31 }
32 
34 {
35  PndMdtWaveform* myData = ((PndMdtWaveform*)data);
36  std::map<PndMdtWaveform*, double>::iterator it = fData_map.find(myData);
37  if (it == fData_map.end())
38  return -1;
39  else
40  return it->second;
41 }
42 void PndMdtWaveformWriteoutBuffer::FillDataMap(FairTimeStamp* data, double activeTime)
43 {
44  PndMdtWaveform* myData = ((PndMdtWaveform*)data);
45  fData_map.insert(std::pair<PndMdtWaveform*,double>(myData, activeTime));
46 }
48 {
49  PndMdtWaveform* myData = ((PndMdtWaveform*)data) ;
50  std::map<PndMdtWaveform*, double>::iterator it = fData_map.find(myData);
51  if ( it != fData_map.end()){
52  fData_map.erase(it);
53  }
54 }
55 std::vector<std::pair<double, FairTimeStamp*> > PndMdtWaveformWriteoutBuffer::Modify(std::pair<double, FairTimeStamp*> oldData
56  , std::pair<double, FairTimeStamp*> newData)
57 {
58 
59  std::vector<std::pair<double, FairTimeStamp*> > result;
60  std::pair<double, FairTimeStamp*> singleResult;
61 
62  if (fVerbose > 2){
63  std::cout << "PndMdtWaveformWriteoutBuffer::Modify:: OldData: " << oldData.first << " : " << oldData.second
64  << " NewData: " << newData.first << " : " << newData.second << std::endl;
65  std::cout << "<OldData>=============================================>"<<std::endl;
66  oldData.second->Print();
67  std::cout << "<============================================</OldData>"<<std::endl;
68  std::cout << "<NewData>=============================================>"<<std::endl;
69  newData.second->Print();
70  std::cout << "<============================================</NewData>"<<std::endl;
71  }
72  PndMdtWaveform* oldWave = (PndMdtWaveform*)oldData.second;
73  PndMdtWaveform* newWave = (PndMdtWaveform*)newData.second;
74  (*oldWave) += (*newWave);
75 
76  singleResult.second = oldWave;
77  singleResult.first = oldWave->GetActiveTime();
78 
79  if (fVerbose > 2){
80  std::cout << "<ResultData>=============================================>"<<std::endl;
81  std::cout << "Resulting Data: " << singleResult.first << " : " << singleResult.second << std::endl;
82  singleResult.second->Print();
83  std::cout << "<============================================</ResultData>"<<std::endl;
84  }
85 
86  result.push_back(singleResult);
87  return result;
88 }
int fVerbose
Definition: poormantracks.C:24
Double_t GetActiveTime() const
ClassImp(PndMdtWaveformWriteoutBuffer)
virtual void FillDataMap(FairTimeStamp *data, double activeTime)
virtual std::vector< std::pair< double, FairTimeStamp * > > Modify(std::pair< double, FairTimeStamp * > oldData, std::pair< double, FairTimeStamp * > newData)
std::map< PndMdtWaveform *, double, PndMdtWaveformLess > fData_map
virtual void EraseDataFromDataMap(FairTimeStamp *data)
virtual double FindTimeForData(FairTimeStamp *data)