PandaRoot
PndMapSorterTpl.h
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence version 3 (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 /*
9  * PndMapSorterTpl.h
10  *
11  * Created on: Jul 15, 2010
12  * Author: stockman
13  */
14 
15 #ifndef PndMapSorterTpl_H_
16 #define PndMapSorterTpl_H_
17 
18 //#include <iosfwd> // for ostream
19 //#include "Rtypes.h" // for PndMapSorterTpl::Class, etc
20 
21 #include <iostream> // for operator<<, ostream, etc
22 #include <map> // for multimap
23 #include <utility> // for pair
24 #include <vector> // for vector
25 
26 #include "FairTimeStamp.h"
27 #include "PndSdsDigiTopix4.h"
28 
29 template <typename TData>
31  public:
32  PndMapSorterTpl(double timeOffset = 1000000) : fOutputData(), fVerbose(0), fTimeOffset(timeOffset), fOldTS(0) {}
33 
34  virtual ~PndMapSorterTpl(){};
35 
36  // virtual FairTimeStamp* CreateElement(FairTimeStamp* data);
37 
38  virtual void AddElement(TData digi, double timestamp);
39  virtual void WriteOutAll();
40  virtual void WriteOutData(double time);
41  virtual std::vector<TData> GetOutputData() { return fOutputData; }
42 
43  virtual void DeleteOutputData() { fOutputData.clear(); }
44 
45  virtual void print(std::ostream &out = std::cout) {}
46 
47  virtual void PrintMap(std::ostream &out = std::cout)
48  {
49  int i = 0;
50  out << "PndMapSorter Print Map: " << std::endl;
51  for (auto itr : fMapBuffer) {
52  out << i++ << " : " << itr.first << std::endl;
53  }
54  out << std::endl;
55  }
56 
57  private:
58  std::multimap<double, TData> fMapBuffer;
59  std::vector<TData> fOutputData;
60  double fOldTS;
61  double fTimeOffset;
62  int fVerbose;
63 };
64 
65 #include "PndMapSorterTpl.tpl"
66 
67 #endif /* PndMapSorterTpl_H_ */
virtual void WriteOutData(double time)
PndMapSorterTpl(double timeOffset=1000000)
virtual std::vector< TData > GetOutputData()
unsigned int i
Definition: P4_F32vec4.h:21
virtual void PrintMap(std::ostream &out=std::cout)
virtual void AddElement(TData digi, double timestamp)
virtual void DeleteOutputData()
virtual ~PndMapSorterTpl()
virtual void print(std::ostream &out=std::cout)
virtual void WriteOutAll()