Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:17:11

0001 #ifndef JETBASE_JETMAP_H
0002 #define JETBASE_JETMAP_H
0003 
0004 #include "Jet.h"
0005 
0006 #include <phool/PHObject.h>
0007 
0008 #include <cstddef>  // for size_t
0009 #include <functional>
0010 #include <iostream>
0011 #include <limits>
0012 #include <map>
0013 #include <set>
0014 #include <vector>
0015 
0016 class JetMap : public PHObject
0017 {
0018  public:
0019   // jet object iterators
0020   typedef std::map<unsigned int, Jet*> typ_JetMap;
0021   typedef typ_JetMap::const_iterator ConstIter;
0022   typedef typ_JetMap::iterator Iter;
0023 
0024   typedef std::vector<Jet*> vec_JetMap;  // to be used when sorting typ_JetMap to iterate over
0025 
0026   // source identifier iterators
0027   typedef std::set<Jet::SRC>::const_iterator ConstSrcIter;
0028   typedef std::set<Jet::SRC>::iterator SrcIter;
0029 
0030   JetMap() = default;
0031   ~JetMap() override = default;
0032 
0033   void identify(std::ostream& os = std::cout) const override;
0034   int isValid() const override { return 0; }
0035   PHObject* CloneMe() const override { return nullptr; }
0036 
0037   // map content info ----------------------------------------------------------
0038 
0039   virtual void set_algo(Jet::ALGO /*algo*/) { return; }
0040   virtual Jet::ALGO get_algo() const { return Jet::NONE; }
0041 
0042   virtual void set_par(float) { return; }
0043   virtual float get_par() const { return std::numeric_limits<float>::quiet_NaN(); }
0044 
0045   // set access to list of source identifiers ----------------------------------
0046 
0047   virtual bool empty_src() const { return true; }
0048   virtual void insert_src(Jet::SRC /*src*/) { return; }
0049 
0050   virtual ConstSrcIter begin_src() const;
0051   virtual ConstSrcIter find_src(Jet::SRC src) const;
0052   virtual ConstSrcIter end_src() const;
0053 
0054   virtual SrcIter begin_src();
0055   virtual SrcIter find_src(Jet::SRC src);
0056   virtual SrcIter end_src();
0057 
0058   // map access to jets --------------------------------------------------------
0059 
0060   virtual bool empty() const { return true; }
0061   virtual size_t size() const { return 0; }
0062   virtual size_t count(unsigned int /*idkey*/) const { return 0; }
0063   virtual void clear() { return; }
0064 
0065   virtual const Jet* get(unsigned int /*idkey*/) const { return nullptr; }
0066   virtual Jet* get(unsigned int /*idkey*/) { return nullptr; }
0067 
0068   virtual Jet* insert(Jet* /*jet*/) { return nullptr; }
0069   virtual size_t erase(unsigned int /*idkey*/) { return 0; }
0070 
0071   virtual ConstIter begin() const;
0072   virtual ConstIter find(unsigned int idkey) const;
0073   virtual ConstIter end() const;
0074 
0075   virtual Iter begin();
0076   virtual Iter find(unsigned int idkey);
0077   virtual Iter end();
0078 
0079   virtual std::vector<Jet*> vec() = 0;
0080 
0081  private:
0082   ClassDefOverride(JetMap, 1);
0083 };
0084 
0085 #endif