FairRoot/PandaRoot
tools/PndMQ/PndMapSorter.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  * PndMapSorter.h
10  *
11  * Created on: Jul 15, 2010
12  * Author: stockman
13  */
14 
15 #ifndef PndMapSorter_H_
16 #define PndMapSorter_H_
17 
18 
19 //#include "TObject.h" // for TObject
20 
21 #include <iosfwd> // for ostream
22 #include "Rtypes.h" // for PndMapSorter::Class, etc
23 
24 #include <iostream> // for operator<<, ostream, etc
25 #include <map> // for multimap
26 #include <utility> // for pair
27 #include <vector> // for vector
28 
29 #include "FairTimeStamp.h"
30 
31 class PndMapSorter //: public TObject
32 {
33  public:
34  PndMapSorter(double timeOffset = 1000000)
36  }
37 
38  virtual ~PndMapSorter() {};
39 
40  virtual FairTimeStamp* CreateElement(FairTimeStamp* data);
41 
42  virtual void AddElement(FairTimeStamp* digi, double timestamp);
43  virtual void AddElements(std::vector<FairTimeStamp*> dataArray){
44  for(auto dataItr : dataArray)
45  AddElement(dataItr, dataItr->GetTimeStamp());
46  }
47  virtual void WriteOutAll();
48  virtual void WriteOutData(double time);
49  virtual std::vector<FairTimeStamp*> GetOutputData() {
50  return fOutputData;
51  }
52 
53  virtual void DeleteOutputData() {
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  }
61 
62  virtual void print(std::ostream& out = std::cout) {
63  }
64 
65  virtual void PrintMap(std::ostream& out = std::cout){
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  }
73 
74 
75  private:
76  std::multimap<double, FairTimeStamp*> fMapBuffer;
77  std::vector<FairTimeStamp*> fOutputData;
78  double fOldTS;
79  double fTimeOffset;
80  int fVerbose;
81 
82 // ClassDef(PndMapSorter,1)
83 
84 };
85 
86 #endif /* PndMapSorter_H_ */
TClonesArray * digi
PndTimeOffsetFinderTask * timeOffset
Int_t i
Definition: run_full.C:25
virtual FairTimeStamp * CreateElement(FairTimeStamp *data)
virtual void DeleteOutputData()
virtual void PrintMap(std::ostream &out=std::cout)
virtual void AddElement(FairTimeStamp *digi, double timestamp)
std::multimap< double, FairTimeStamp * > fMapBuffer
PndMapSorter(double timeOffset=1000000)
TFile * out
Definition: reco_muo.C:20
virtual void print(std::ostream &out=std::cout)
virtual void AddElements(std::vector< FairTimeStamp * > dataArray)
virtual std::vector< FairTimeStamp * > GetOutputData()