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