Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:38

0001 #ifndef JETBASE_JETMAPV1_H
0002 #define JETBASE_JETMAPV1_H
0003 
0004 #include "JetMap.h"
0005 
0006 #include "Jet.h"
0007 
0008 #include <cstddef>  // for size_t
0009 #include <iostream>
0010 #include <set>
0011 
0012 class PHObject;
0013 
0014 class JetMapv1 : public JetMap
0015 {
0016  public:
0017   JetMapv1() = default;
0018   explicit JetMapv1(const JetMap& jets);
0019   JetMapv1& operator=(const JetMap& jets);
0020   ~JetMapv1() override;
0021 
0022   void identify(std::ostream& os = std::cout) const override;
0023   void Reset() override;
0024   int isValid() const override { return 1; }
0025   PHObject* CloneMe() const override { return new JetMapv1(*this); }
0026 
0027   // map content info ----------------------------------------------------------
0028 
0029   void set_algo(Jet::ALGO algo) override { _algo = algo; }
0030   Jet::ALGO get_algo() const override { return _algo; }
0031 
0032   void set_par(float par) override { _par = par; }
0033   float get_par() const override { return _par; }
0034 
0035   // set access to source identifiers ------------------------------------------
0036 
0037   bool empty_src() const override { return _src.empty(); }
0038   void insert_src(Jet::SRC src) override { _src.insert(src); }
0039 
0040   ConstSrcIter begin_src() const override { return _src.begin(); }
0041   ConstSrcIter find_src(Jet::SRC src) const override { return _src.find(src); }
0042   ConstSrcIter end_src() const override { return _src.end(); }
0043 
0044   SrcIter begin_src() override { return _src.begin(); }
0045   SrcIter find_src(Jet::SRC src) override { return _src.find(src); }
0046   SrcIter end_src() override { return _src.end(); }
0047 
0048   // map access to jets --------------------------------------------------------
0049 
0050   bool empty() const override { return _map.empty(); }
0051   size_t size() const override { return _map.size(); }
0052   size_t count(unsigned int idkey) const override { return _map.count(idkey); }
0053   void clear() override { Reset(); }
0054 
0055   const Jet* get(unsigned int idkey) const override;
0056   Jet* get(unsigned int idkey) override;
0057 
0058   /// insert Jet to the map. Once inserted, the JetMap owns the Jet memory
0059   Jet* insert(Jet* jet) override;
0060   size_t erase(unsigned int idkey) override { return _map.erase(idkey); }
0061 
0062   ConstIter begin() const override { return _map.begin(); }
0063   ConstIter find(unsigned int idkey) const override { return _map.find(idkey); }
0064   ConstIter end() const override { return _map.end(); }
0065 
0066   Iter begin() override { return _map.begin(); }
0067   Iter find(unsigned int idkey) override { return _map.find(idkey); }
0068   Iter end() override { return _map.end(); }
0069 
0070   std::vector<Jet*> vec() override;  // defaulted to PT in JetMap.h
0071 
0072  private:
0073   Jet::ALGO _algo {Jet::NONE};  //< algorithm used to reconstruct jets
0074   float _par {std::numeric_limits<float>::quiet_NaN()};             //< algorithm parameter setting (e.g. radius)
0075   std::set<Jet::SRC> _src;      //< list of sources (clusters, towers, etc)
0076   typ_JetMap _map;              //< jet algorithm output storage
0077 
0078   ClassDefOverride(JetMapv1, 1);
0079 };
0080 
0081 #endif