FairRoot/PandaRoot
PndGemDigiWriteoutBuffer.cxx
Go to the documentation of this file.
1 /*
2  * PndGemDigiWriteoutBuffer.cxx
3  *
4  * Created on: May 10, 2011
5  * Author: stockman
6  */
7 
9 
11 
12 #include "PndGemDigi.h"
13 
14 
16  : FairWriteoutBuffer()
17 {
18 
19  // TODO Auto-generated constructor stub
20 
21 }
22 
23 
25  : FairWriteoutBuffer(branchName, "PndGemDigi", folderName, persistance)
26 {
27 }
28 
30  // TODO Auto-generated destructor stub
31 }
32 
33 std::vector<std::pair<double, FairTimeStamp*> > PndGemDigiWriteoutBuffer::Modify(std::pair<double, FairTimeStamp*> oldData, std::pair<double, FairTimeStamp*> newData) {
34  std::vector<std::pair<double, FairTimeStamp*> > result;
35  std::pair<double, FairTimeStamp*> singleResult;
36  if (newData.first > 0)
37  singleResult.first = oldData.first + newData.first;
38  singleResult.second = oldData.second;
39  ((PndGemDigi*)singleResult.second)->AddCharge(((PndGemDigi*)newData.second)->GetCharge());
40  if (fVerbose > 0){
41  std::cout << "Modify hit" << std::endl;
42  std::cout << "OldData: " << oldData.first << " : " << oldData.second << " NewData: " << newData.first << " : " << newData.second << std::endl;
43  std::cout << "Resulting Data: " << singleResult.first << " : " << singleResult.second << std::endl;
44  }
45 
46  result.push_back(singleResult);
47  return result;
48 }
49 
51 {
52  FairRootManager* ioman = FairRootManager::Instance();
53  TClonesArray* myArray = ioman->GetTClonesArray(fBranchName);
54  if (fVerbose > 1) std::cout << "Data Inserted: " << *(PndGemDigi*)(data) << std::endl;
55  new ((*myArray)[myArray->GetEntries()]) PndGemDigi(*(PndGemDigi*)(data));
56 }
57 
58 double PndGemDigiWriteoutBuffer::FindTimeForData(FairTimeStamp* data)
59 {
60  std::map<PndGemDigi, double>::iterator it;
61  PndGemDigi myData = *(PndGemDigi*)data;
62  it = fData_map.find(myData);
63  if (it == fData_map.end())
64  return -1;
65  else
66  return it->second;
67 }
68 void PndGemDigiWriteoutBuffer::FillDataMap(FairTimeStamp* data, double activeTime)
69 {
70  PndGemDigi myData = *(PndGemDigi*)data;
71  fData_map[myData] = activeTime;
72 }
74 {
75  PndGemDigi myData = *(PndGemDigi*)data;
76  if (fData_map.find(myData) != fData_map.end())
77  fData_map.erase(fData_map.find(myData));
78 }
int fVerbose
Definition: poormantracks.C:24
virtual void FillDataMap(FairTimeStamp *data, double activeTime)
void AddNewDataToTClonesArray(FairTimeStamp *)
virtual void EraseDataFromDataMap(FairTimeStamp *data)
ClassImp(PndGemDigiWriteoutBuffer)
std::map< PndGemDigi, double > fData_map
virtual std::vector< std::pair< double, FairTimeStamp * > > Modify(std::pair< double, FairTimeStamp * > oldData, std::pair< double, FairTimeStamp * > newData)
virtual double FindTimeForData(FairTimeStamp *data)