forked from sPHENIX-Collaboration/coresoftware
/
JetMapv1.h
79 lines (57 loc) · 2.63 KB
/
JetMapv1.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
#ifndef G4JET_JETMAPV1_H
#define G4JET_JETMAPV1_H
#include "JetMap.h"
#include "Jet.h"
#include <cstddef> // for size_t
#include <iostream>
#include <set>
class PHObject;
class JetMapv1 : public JetMap
{
public:
JetMapv1();
JetMapv1(const JetMap *jets);
JetMapv1& operator=(const JetMapv1& jets);
~JetMapv1() override;
void identify(std::ostream& os = std::cout) const override;
void Reset() override;
int isValid() const override { return 1; }
PHObject* CloneMe() const override;
// map content info ----------------------------------------------------------
void set_algo(Jet::ALGO algo) override { _algo = algo; }
Jet::ALGO get_algo() const override { return _algo; }
void set_par(float par) override { _par = par; }
float get_par() const override { return _par; }
// set access to source identifiers ------------------------------------------
bool empty_src() const override { return _src.empty(); }
void insert_src(Jet::SRC src) override { _src.insert(src); }
ConstSrcIter begin_src() const override { return _src.begin(); }
ConstSrcIter find_src(Jet::SRC src) const override { return _src.find(src); }
ConstSrcIter end_src() const override { return _src.end(); }
SrcIter begin_src() override { return _src.begin(); }
SrcIter find_src(Jet::SRC src) override { return _src.find(src); }
SrcIter end_src() override { return _src.end(); }
// map access to jets --------------------------------------------------------
bool empty() const override { return _map.empty(); }
size_t size() const override { return _map.size(); }
size_t count(unsigned int idkey) const override { return _map.count(idkey); }
void clear() override { Reset(); }
const Jet* get(unsigned int idkey) const override;
Jet* get(unsigned int idkey) override;
/// insert Jet to the map. Once inserted, the JetMap owns the Jet memory
Jet* insert(Jet* jet) override;
size_t erase(unsigned int idkey) override { return _map.erase(idkey); }
ConstIter begin() const override { return _map.begin(); }
ConstIter find(unsigned int idkey) const override { return _map.find(idkey); }
ConstIter end() const override { return _map.end(); }
Iter begin() override { return _map.begin(); }
Iter find(unsigned int idkey) override { return _map.find(idkey); }
Iter end() override { return _map.end(); }
private:
Jet::ALGO _algo; //< algorithm used to reconstruct jets
float _par; //< algorithm parameter setting (e.g. radius)
std::set<Jet::SRC> _src; //< list of sources (clusters, towers, etc)
typ_JetMap _map; //< jet algorithm output storage
ClassDefOverride(JetMapv1, 1);
};
#endif