Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:19:54

0001 #ifndef DECAYFINDER_DECAYFINDERCONTAINERBASE_H
0002 #define DECAYFINDER_DECAYFINDERCONTAINERBASE_H
0003 
0004 #include <phool/PHObject.h>
0005 
0006 #include <cstddef>   // for size_t
0007 #include <iostream>  // for cout, ostream
0008 #include <map>
0009 #include <utility>  // for pair
0010 #include <vector>
0011 
0012 /**
0013  * @brief DecayFinder container object
0014  *
0015  * Container for DecayFinder objects, based off KFParticle_Container
0016  */
0017 
0018 class DecayFinderContainerBase : public PHObject
0019 {
0020  public:
0021   // Each decay is stored as an initial pair of embedding ID and barcode.
0022   // This pair matches with another int, the PDGID
0023   using Decay = std::vector<std::pair<std::pair<int, int>, int>>;
0024   using Map = std::map<unsigned int, Decay>;
0025   using ConstIter = Map::const_iterator;
0026   using Iter = Map::iterator;
0027 
0028   ~DecayFinderContainerBase() override = default;
0029 
0030   void identify(std::ostream& os = std::cout) const override
0031   {
0032     os << "DecayFinderContainer base class" << std::endl;
0033   }
0034   void Reset() override;
0035   int isValid() const override { return 0; }
0036   PHObject* CloneMe() const override { return nullptr; }
0037 
0038   virtual bool empty() const { return true; }
0039   virtual size_t size() const { return 0; }
0040   virtual size_t count(unsigned int /*unused*/) const { return 0; }
0041   virtual void clear();
0042 
0043   virtual const Decay get(unsigned int) const;
0044   virtual Decay get(unsigned int);
0045 
0046   virtual ConstIter begin() const;
0047   virtual ConstIter find(unsigned int) const;
0048   virtual ConstIter end() const;
0049 
0050   virtual Iter begin();
0051   virtual Iter find(unsigned int);
0052   virtual Iter end();
0053 
0054   virtual Decay insert(const Decay&);
0055 
0056   virtual Map returnDecaysByPDGid(int);
0057 
0058   virtual size_t erase(unsigned int key);
0059 
0060  protected:
0061   DecayFinderContainerBase() = default;
0062 
0063  private:
0064   ClassDefOverride(DecayFinderContainerBase, 1);
0065 };
0066 
0067 #endif  // DECAYFINDER_DECAYFINDERCONTAINERBASE_H