Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:13

0001 #ifndef TRACKBASE_TRKRHITTRUTHASSOC_H
0002 #define TRACKBASE_TRKRHITTRUTHASSOC_H
0003 
0004 /**
0005  * @file trackbase/TrkrHitCellAssoc
0006  * @author D. McGlinchey, H. PEREIRA DA COSTA
0007  * @date June 2018
0008  * @brief Association object for PHG4Hits contributiong to TrkrHits
0009  */
0010 
0011 #include "TrkrDefs.h"
0012 
0013 #include <g4main/PHG4HitDefs.h>
0014 #include <phool/PHObject.h>
0015 
0016 #include <iostream>  // for cout, ostream
0017 #include <map>
0018 #include <utility>  // for pair
0019 
0020 /**
0021  * @brief Association object for PHG4Cells contributiong to TrkrHits
0022  *
0023  * Association object holding a multimap of PHG4Cells associated with a given TrkrHit
0024  */
0025 class TrkrHitTruthAssoc : public PHObject
0026 {
0027  public:
0028   //! typedefs for convenience
0029   using MMap = std::multimap<TrkrDefs::hitsetkey, std::pair<TrkrDefs::hitkey, PHG4HitDefs::keytype> >;
0030   using Iterator = MMap::iterator;
0031   using ConstIterator = MMap::const_iterator;
0032   using Range = std::pair<Iterator, Iterator>;
0033   using ConstRange = std::pair<ConstIterator, ConstIterator>;
0034 
0035   void Reset() override
0036   {
0037   }
0038 
0039   void identify(std::ostream & /*os*/ = std::cout) const override
0040   {
0041   }
0042 
0043   /**
0044    * @brief Add an association between hit and cell
0045    * @param[in] hset TrkrHitSet key
0046    * @param[in] hidx TrkrHit index in TrkrHitSet
0047    * @param[in] ckey Key for assocuated g4hit
0048    */
0049   virtual void addAssoc(const TrkrDefs::hitsetkey /*hitsetkey*/, const TrkrDefs::hitkey /*hitkey*/, const PHG4HitDefs::keytype /*g4hitkey*/)
0050   {
0051   }
0052 
0053   /**
0054    * @brief Add an association between hit and cell if it does not already exist
0055    * @param[in] hset TrkrHitSet key
0056    * @param[in] hidx TrkrHit index in TrkrHitSet
0057    * @param[in] ckey Key for assocuated g4hit
0058    */
0059   virtual void findOrAddAssoc(const TrkrDefs::hitsetkey /*hitsetkey*/, const TrkrDefs::hitkey /*hitkey*/, const PHG4HitDefs::keytype /*g4hitkey*/)
0060   {
0061   }
0062 
0063   virtual void removeAssoc(const TrkrDefs::hitsetkey /*hitsetkey*/, const TrkrDefs::hitkey /*hitkey*/)
0064   {
0065   }
0066 
0067   /**
0068    * @brief Get cell keys associated with desired hit
0069    * @param[in] hset TrkrHitSet key
0070    * @param[in] hidx TrkrHit index in TrkrHitSet
0071    */
0072   virtual void getG4Hits(const TrkrDefs::hitsetkey /*hitsetkey*/, const unsigned int /*hidx*/, MMap & /*temp_map*/) const
0073   {
0074   }
0075 
0076  protected:
0077   //! ctor
0078   TrkrHitTruthAssoc() = default;
0079 
0080  private:
0081   ClassDefOverride(TrkrHitTruthAssoc, 1);
0082 };
0083 
0084 #endif  // TRACKBASE_TRKRHITTRUTHASSOC_H