-
Notifications
You must be signed in to change notification settings - Fork 184
/
TrkrClusterContainer.h
89 lines (67 loc) · 2.11 KB
/
TrkrClusterContainer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#ifndef TRACKBASE_TRKRCLUSTERCONTAINER_H
#define TRACKBASE_TRKRCLUSTERCONTAINER_H
/**
* @file trackbase/TrkrClusterContainer.h
* @author D. McGlinchey, Hugo Pereira Da Costa
* @date June 2018
* @brief Cluster container base class
*/
#include "TrkrDefs.h"
#include <phool/PHObject.h>
#include <iostream> // for cout, ostream
#include <map>
#include <utility> // for pair
class TrkrCluster;
/**
* @brief Cluster container object
*/
class TrkrClusterContainer : public PHObject
{
public:
//!@name convenient shortuts
//@{
using Map = std::map<TrkrDefs::cluskey, TrkrCluster*>;
using Iterator = Map::iterator;
using ConstIterator = Map::const_iterator;
using Range = std::pair<Iterator, Iterator>;
using ConstRange = std::pair<ConstIterator, ConstIterator>;
using HitSetKeyList = std::vector<TrkrDefs::hitsetkey>;
//@}
//! reset method
void Reset() override {}
//! identify object
void identify(std::ostream& /*os*/ = std::cout) const override {}
//! add a cluster with specific key
virtual void addClusterSpecifyKey(const TrkrDefs::cluskey, TrkrCluster*) {}
//! remove cluster
virtual void removeCluster(TrkrDefs::cluskey) {}
//! return all clusters
virtual ConstRange getClusters() const;
//! get all clusters matching hitset
virtual ConstRange getClusters(TrkrDefs::hitsetkey);
//! find cluster matching given key
virtual TrkrCluster* findCluster(TrkrDefs::cluskey) const { return nullptr; }
//! get hitset key list
virtual HitSetKeyList getHitSetKeys() const
{
return HitSetKeyList();
}
//! get hitset key list for a given detector
virtual HitSetKeyList getHitSetKeys(const TrkrDefs::TrkrId) const
{
return HitSetKeyList();
}
//! get hitset key list for a given detector and layer
virtual HitSetKeyList getHitSetKeys(const TrkrDefs::TrkrId, const uint8_t /* layer */) const
{
return HitSetKeyList();
}
//! total number of clusters
virtual unsigned int size() const { return 0; }
protected:
//! constructor
TrkrClusterContainer() = default;
private:
ClassDefOverride(TrkrClusterContainer, 1)
};
#endif // TRACKBASE_TRKRCLUSTERCONTAINER_H