FairRoot/PandaRoot
Public Member Functions | Private Attributes | List of all members
PndMapSorter Class Reference

#include <PndMapSorter.h>

Inheritance diagram for PndMapSorter:

Public Member Functions

 PndMapSorter (double timeOffset=1000000)
 
virtual ~PndMapSorter ()
 
virtual FairTimeStamp * CreateElement (FairTimeStamp *data)
 
virtual void AddElement (FairTimeStamp *digi, double timestamp)
 
virtual void WriteOutAll ()
 
virtual void WriteOutData (double time)
 
virtual std::vector
< FairTimeStamp * > 
GetOutputData ()
 
virtual void DeleteOutputData ()
 
virtual void print (std::ostream &out=std::cout)
 
virtual void PrintMap (std::ostream &out=std::cout)
 
 PndMapSorter (double timeOffset=1000000)
 
virtual ~PndMapSorter ()
 
virtual FairTimeStamp * CreateElement (FairTimeStamp *data)
 
virtual void AddElement (FairTimeStamp *digi, double timestamp)
 
virtual void AddElements (std::vector< FairTimeStamp * > dataArray)
 
virtual void WriteOutAll ()
 
virtual void WriteOutData (double time)
 
virtual std::vector
< FairTimeStamp * > 
GetOutputData ()
 
virtual void DeleteOutputData ()
 
virtual void print (std::ostream &out=std::cout)
 
virtual void PrintMap (std::ostream &out=std::cout)
 

Private Attributes

std::multimap< double,
FairTimeStamp * > 
fMapBuffer
 
std::vector< FairTimeStamp * > fOutputData
 
double fOldTS
 
double fTimeOffset
 
int fVerbose
 

Detailed Description

Definition at line 31 of file detectors/mvd/MvdOfflineTBAnalysis_Topix4/PndMapSorter.h.

Constructor & Destructor Documentation

PndMapSorter::PndMapSorter ( double  timeOffset = 1000000)
inline
virtual PndMapSorter::~PndMapSorter ( )
inlinevirtual

Definition at line 38 of file detectors/mvd/MvdOfflineTBAnalysis_Topix4/PndMapSorter.h.

38 {};
PndMapSorter::PndMapSorter ( double  timeOffset = 1000000)
inline
virtual PndMapSorter::~PndMapSorter ( )
inlinevirtual

Definition at line 38 of file tools/PndMQ/PndMapSorter.h.

38 {};

Member Function Documentation

void PndMapSorter::AddElement ( FairTimeStamp *  digi,
double  timestamp 
)
virtual

Definition at line 23 of file detectors/mvd/MvdOfflineTBAnalysis_Topix4/PndMapSorter.cxx.

References CreateElement(), fMapBuffer, and fVerbose.

Referenced by AddElements(), PndMapSorterTask::Exec(), and PndMapSorterTask::FinishTask().

24 {
25  if (fVerbose > 0)
26  std::cout << "PndMapSorter::AddElement " << timestamp << std::endl;
27  fMapBuffer.insert(std::pair<double,FairTimeStamp*>(timestamp, CreateElement(digi)));
28 }
TClonesArray * digi
virtual FairTimeStamp * CreateElement(FairTimeStamp *data)
std::multimap< double, FairTimeStamp * > fMapBuffer
virtual void PndMapSorter::AddElement ( FairTimeStamp *  digi,
double  timestamp 
)
virtual
virtual void PndMapSorter::AddElements ( std::vector< FairTimeStamp * >  dataArray)
inlinevirtual

Definition at line 43 of file tools/PndMQ/PndMapSorter.h.

References AddElement().

Referenced by PndMQMvdPixelDigiProcessorBursts::ProcessData(), and PndMQFileSinkBursts::Run().

43  {
44  for(auto dataItr : dataArray)
45  AddElement(dataItr, dataItr->GetTimeStamp());
46  }
virtual void AddElement(FairTimeStamp *digi, double timestamp)
virtual FairTimeStamp* PndMapSorter::CreateElement ( FairTimeStamp *  data)
virtual
FairTimeStamp * PndMapSorter::CreateElement ( FairTimeStamp *  data)
virtual

Definition at line 18 of file detectors/mvd/MvdOfflineTBAnalysis_Topix4/PndMapSorter.cxx.

Referenced by AddElement().

19 {
20  return (FairTimeStamp*)data->Clone();
21 }
virtual void PndMapSorter::DeleteOutputData ( )
inlinevirtual

Definition at line 49 of file detectors/mvd/MvdOfflineTBAnalysis_Topix4/PndMapSorter.h.

References fOutputData.

Referenced by PndMapSorterTask::Exec(), and PndMapSorterTask::FinishTask().

49  {
50 // std::cout << "DeleteOutputData size: " << fOutputData.size() << std::endl;
51  for (int itr = 0; itr < fOutputData.size(); itr++){
52  // std::cout << itr << " " << fOutputData[itr] << std::endl;
53  // delete(fOutputData[itr]);
54  }
55  fOutputData.clear();
56  }
virtual void PndMapSorter::DeleteOutputData ( )
inlinevirtual

Definition at line 53 of file tools/PndMQ/PndMapSorter.h.

References fOutputData.

53  {
54 // std::cout << "DeleteOutputData size: " << fOutputData.size() << std::endl;
55  for (int itr = 0; itr < fOutputData.size(); itr++){
56  // std::cout << itr << " " << fOutputData[itr] << std::endl;
57  // delete(fOutputData[itr]);
58  }
59  fOutputData.clear();
60  }
virtual std::vector<FairTimeStamp*> PndMapSorter::GetOutputData ( )
inlinevirtual
virtual std::vector<FairTimeStamp*> PndMapSorter::GetOutputData ( )
inlinevirtual

Definition at line 49 of file tools/PndMQ/PndMapSorter.h.

References fOutputData.

49  {
50  return fOutputData;
51  }
virtual void PndMapSorter::print ( std::ostream out = std::cout)
inlinevirtual
virtual void PndMapSorter::print ( std::ostream out = std::cout)
inlinevirtual

Definition at line 62 of file tools/PndMQ/PndMapSorter.h.

62  {
63  }
virtual void PndMapSorter::PrintMap ( std::ostream out = std::cout)
inlinevirtual

Definition at line 61 of file detectors/mvd/MvdOfflineTBAnalysis_Topix4/PndMapSorter.h.

References fMapBuffer, i, and out.

61  {
62  int i = 0;
63  out << "PndMapsSorter Print Map: " << std::endl;
64  for (std::multimap<double, FairTimeStamp*>::iterator itr = fMapBuffer.begin(); itr != fMapBuffer.end(); itr++){
65  out << i++ << " : " << itr->first << std::endl;
66  }
67  out << std::endl;
68  }
Int_t i
Definition: run_full.C:25
std::multimap< double, FairTimeStamp * > fMapBuffer
virtual void PndMapSorter::PrintMap ( std::ostream out = std::cout)
inlinevirtual

Definition at line 65 of file tools/PndMQ/PndMapSorter.h.

References fMapBuffer, i, and out.

65  {
66  int i = 0;
67  out << "PndMapsSorter Print Map: " << std::endl;
68  for (std::multimap<double, FairTimeStamp*>::iterator itr = fMapBuffer.begin(); itr != fMapBuffer.end(); itr++){
69  out << i++ << " : " << itr->first << std::endl;
70  }
71  out << std::endl;
72  }
Int_t i
Definition: run_full.C:25
std::multimap< double, FairTimeStamp * > fMapBuffer
void PndMapSorter::WriteOutAll ( )
virtual

Definition at line 52 of file detectors/mvd/MvdOfflineTBAnalysis_Topix4/PndMapSorter.cxx.

References fMapBuffer, fOutputData, and fVerbose.

Referenced by PndMapSorterTask::FinishTask(), PndMQMvdPixelDigiProcessorBursts::ProcessData(), and PndMQFileSinkBursts::Run().

52  {
53  if (fVerbose > 0)
54  std::cout << "PndMapSorter::WriteOutAll called!" << std::endl;
55  for (std::multimap<double, FairTimeStamp*>::iterator itr = fMapBuffer.begin(); itr != fMapBuffer.end(); itr++)
56  fOutputData.push_back(itr->second);
57 }
std::multimap< double, FairTimeStamp * > fMapBuffer
virtual void PndMapSorter::WriteOutAll ( )
virtual
void PndMapSorter::WriteOutData ( double  time)
virtual

Definition at line 30 of file detectors/mvd/MvdOfflineTBAnalysis_Topix4/PndMapSorter.cxx.

References fMapBuffer, fOldTS, fOutputData, fTimeOffset, and fVerbose.

Referenced by PndMapSorterTask::Exec().

31 {
32  if (time > fTimeOffset){
33  if (fVerbose > 0)
34  std::cout << "PndMapSorter::WriteOutData for time " << time << std::endl;
35  // std::cout << "PrintMap before!" << std::endl;
36  // PrintMap();
37  for (std::multimap<double, FairTimeStamp*>::iterator itr = fMapBuffer.begin(); itr != fMapBuffer.lower_bound(time - fTimeOffset); itr++){
38  fOutputData.push_back(itr->second);
39  if (fVerbose > 1){
40  std::cout << "TS: " << itr->first << " " << itr->second->GetTimeStamp() << " diff " << itr->first - fOldTS << std::endl;
41  }
42  if (itr->first - fOldTS < 0)
43  std::cout << "*** Error *** PndMapSorter::WriteOutData negative difference " << itr->first << " - " << fOldTS << std::endl;
44  fOldTS = itr->first;
45  }
46  fMapBuffer.erase(fMapBuffer.begin(), fMapBuffer.lower_bound(time - fTimeOffset));
47 // std::cout << "PrintMap after!" << std::endl;
48 // PrintMap();
49  }
50 }
std::multimap< double, FairTimeStamp * > fMapBuffer
virtual void PndMapSorter::WriteOutData ( double  time)
virtual

Member Data Documentation

std::multimap< double, FairTimeStamp * > PndMapSorter::fMapBuffer
private
double PndMapSorter::fOldTS
private
std::vector< FairTimeStamp * > PndMapSorter::fOutputData
private
double PndMapSorter::fTimeOffset
private
int PndMapSorter::fVerbose
private

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