FairRoot/PandaRoot
detectors/mvd/MvdOfflineTBAnalysis_Topix4/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)
35  : TObject(), fOutputData(), fVerbose(0), fTimeOffset(timeOffset), fOldTS(0) {
36  }
37 
38  virtual ~PndMapSorter() {};
39 
40  virtual FairTimeStamp* CreateElement(FairTimeStamp* data);
41 
42  virtual void AddElement(FairTimeStamp* digi, double timestamp);
43  virtual void WriteOutAll();
44  virtual void WriteOutData(double time);
45  virtual std::vector<FairTimeStamp*> GetOutputData() {
46  return fOutputData;
47  }
48 
49  virtual void DeleteOutputData() {
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  }
57 
58  virtual void print(std::ostream& out = std::cout) {
59  }
60 
61  virtual void PrintMap(std::ostream& out = std::cout){
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  }
69 
70 
71  private:
72  std::multimap<double, FairTimeStamp*> fMapBuffer;
73  std::vector<FairTimeStamp*> fOutputData;
74  double fOldTS;
75  double fTimeOffset;
76  int fVerbose;
77 
78  ClassDef(PndMapSorter,1)
79 
80 };
81 
82 #endif /* PndMapSorter_H_ */
TClonesArray * digi
PndTimeOffsetFinderTask * timeOffset
Int_t i
Definition: run_full.C:25
virtual FairTimeStamp * CreateElement(FairTimeStamp *data)
virtual void PrintMap(std::ostream &out=std::cout)
virtual void AddElement(FairTimeStamp *digi, double timestamp)
std::multimap< double, FairTimeStamp * > fMapBuffer
TFile * out
Definition: reco_muo.C:20
virtual void print(std::ostream &out=std::cout)
virtual std::vector< FairTimeStamp * > GetOutputData()