Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CMFlashDifferenceContainer.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CMFlashDifferenceContainer.h
1 #ifndef TRACKBASE_CMFLASHDIFFERENCECONTAINER_H
2 #define TRACKBASE_CMFLASHDIFFERENCECONTAINER_H
3 
11 #include <phool/PHObject.h>
12 
13 #include <map>
14 #include <iostream> // for cout, ostream
15 #include <utility> // for pair
16 
17 class CMFlashDifference;
18 
23 {
24  public:
25 
27 
28  using Map = std::map<unsigned int, CMFlashDifference *>;
29  using Iterator = Map::iterator;
30  using ConstIterator = Map::const_iterator;
31  using Range = std::pair<Iterator, Iterator>;
32  using ConstRange = std::pair<ConstIterator, ConstIterator>;
34 
36  void Reset() override {}
37 
39  void identify(std::ostream &/*os*/ = std::cout) const override {}
40 
42  virtual void addDifferenceSpecifyKey(const unsigned int, CMFlashDifference* ) = 0;
43 
45  virtual void removeDifference(unsigned int) {}
46 
48  virtual ConstRange getDifferences() const = 0;
49 
51  virtual CMFlashDifference* findDifference(unsigned int) const { return nullptr; }
52 
54  virtual unsigned int size() const { return 0; }
55 
56  protected:
58  CMFlashDifferenceContainer() = default;
59 
60  private:
61 
62  ClassDefOverride(CMFlashDifferenceContainer, 1)
63 
64 };
65 
66 #endif //TRACKBASE_CMFLASHDIFFERENCECONTAINER_H