ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Jet.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Jet.h
1 #ifndef G4JET_JET_H
2 #define G4JET_JET_H
3 
4 #include <phool/PHObject.h>
5 
6 #include <cmath>
7 #include <cstddef> // for size_t
8 #include <iostream>
9 #include <map>
10 
11 class Jet : public PHObject
12 {
13  public:
14  // enums can be extended with new values, but values not altered
15 
16  enum ALGO
17  {
18  NONE = 0,
19  ANTIKT = 1,
20  KT = 2,
22  };
23 
24  enum SRC
25  {
26  VOID = 0,
27  PARTICLE = 1,
28  TRACK = 2,
39  CEMC_TOWER_RETOWER = 13, /* needed for HI jet reco */
42  HCALOUT_TOWER_SUB1 = 16, /* needed for HI jet reco */
45  HCALOUT_TOWER_SUB1CS = 19, /* needed for CS subtraction w/ HI jet reco */
46  HEPMC_IMPORT = 20, /*Direct import HEPMC containers, such as sHijing HIJFRG truth jets loaded by JetHepMCLoader*/
47  HCAL_TOPO_CLUSTER = 21, /* I+HOCal 3-D topoCluster input */
48  ECAL_TOPO_CLUSTER = 22, /* EMCal 3-D topoCluster input */
49  EEMC_TOWER = 23,
51  };
52 
53  enum PROPERTY
54  {
55 
58 
61 
65 
69 
71  prop_zg = 5,
72  prop_Rg = 6,
73  prop_mu = 7,
74 
75  };
76 
77  Jet() {}
78  ~Jet() override {}
79 
80  void identify(std::ostream& os = std::cout) const override;
81  int isValid() const override { return 0; }
82  PHObject* CloneMe() const override { return nullptr; }
83 
84  // jet info ------------------------------------------------------------------
85 
86  virtual unsigned int get_id() const { return 0xFFFFFFFF; }
87  virtual void set_id(unsigned int) { return; }
88 
89  virtual float get_px() const { return NAN; }
90  virtual void set_px(float) { return; }
91 
92  virtual float get_py() const { return NAN; }
93  virtual void set_py(float) { return; }
94 
95  virtual float get_pz() const { return NAN; }
96  virtual void set_pz(float) { return; }
97 
98  virtual float get_e() const { return NAN; }
99  virtual void set_e(float) { return; }
100 
101  virtual float get_p() const { return NAN; }
102  virtual float get_pt() const { return NAN; }
103  virtual float get_et() const { return NAN; }
104  virtual float get_eta() const { return NAN; }
105  virtual float get_phi() const { return NAN; }
106  virtual float get_mass() const { return NAN; }
107  virtual float get_mass2() const { return NAN; }
108 
109  // extended jet info ---------------------------------------------------------
110 
111  virtual bool has_property(Jet::PROPERTY /*prop_id*/) const { return false; }
112  virtual float get_property(Jet::PROPERTY /*prop_id*/) const { return NAN; }
113  virtual void set_property(Jet::PROPERTY /*prop_id*/, float /*value*/) { return; }
114  virtual void print_property(std::ostream& /*os*/) const { return; }
115 
116  // component id storage ------------------------------------------------------
117 
124  typedef std::multimap<Jet::SRC, unsigned int> typ_comp_ids;
125  typedef typ_comp_ids::const_iterator ConstIter;
126  typedef typ_comp_ids::iterator Iter;
127 
128  virtual bool empty_comp() const { return true; }
129  virtual size_t size_comp() const { return 0; }
130  virtual size_t count_comp(Jet::SRC /*source*/) const { return 0; }
131 
132  virtual void clear_comp() { return; }
133  virtual void insert_comp(Jet::SRC /*source*/, unsigned int /*compid*/) { return; }
134  virtual size_t erase_comp(Jet::SRC /*source*/) { return 0; }
135  virtual void erase_comp(Iter /*iter*/) { return; }
136  virtual void erase_comp(Iter /*first*/, Iter /*last*/) { return; }
137 
138  virtual ConstIter begin_comp() const;
139  virtual ConstIter lower_bound_comp(Jet::SRC source) const;
140  virtual ConstIter upper_bound_comp(Jet::SRC source) const;
141  virtual ConstIter find(Jet::SRC source) const;
142  virtual ConstIter end_comp() const;
143 
144  virtual Iter begin_comp();
145  virtual Iter lower_bound_comp(Jet::SRC source);
146  virtual Iter upper_bound_comp(Jet::SRC source);
147  virtual Iter find(Jet::SRC source);
148  virtual Iter end_comp();
149 
150  ClassDefOverride(Jet, 1);
151 };
152 
153 #endif