Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef CLUSHITSVERBOSE__H
0002 #define CLUSHITSVERBOSE__H
0003 
0004 #include "TrkrDefs.h"
0005 
0006 #include <phool/PHObject.h>
0007 
0008 #include <array>
0009 #include <map>
0010 #include <vector>
0011 
0012 class ClusHitsVerbose : public PHObject
0013 {
0014  public:
0015   using BinData = std::pair<int, int>;  // index + energy for a given bin (MVTX, INTT, or TPC)
0016   using Vector = std::vector<BinData>;  // listing in phi and z (will need two of them)
0017   using Map = std::map<TrkrDefs::cluskey, std::array<Vector, 4>>;
0018   // ^ what is stored:: first: Phi data,  Z data, cut Phi data, cut Z data */
0019   void Reset() override {}
0020 
0021   virtual bool hasClusKey(TrkrDefs::cluskey) const { return false; };
0022   virtual Vector& phiBins(TrkrDefs::cluskey);
0023   virtual Vector& zBins(TrkrDefs::cluskey);
0024   virtual Vector& phiCutBins(TrkrDefs::cluskey);
0025   virtual Vector& zCutBins(TrkrDefs::cluskey);
0026   virtual Map& getMap();
0027 
0028   // convenience classes;
0029   // ROOT's default library has vector<vector<int>> but not vec<vec<pair<int,int>>>
0030   using VecInt = std::vector<int>;
0031   using PairVector = std::pair<VecInt, VecInt>;          //
0032   virtual PairVector phiBins_pvecIE(TrkrDefs::cluskey);  // IE for integer-energy
0033   virtual PairVector phiCutBins_pvecIE(TrkrDefs::cluskey);
0034   virtual PairVector zBins_pvecIE(TrkrDefs::cluskey);
0035   virtual PairVector zCutBins_pvecIE(TrkrDefs::cluskey);
0036   virtual void addPhiHit(int, int) { return; }
0037   virtual void addZHit(int, int) { return; }
0038   virtual void addPhiCutHit(int, int) { return; }
0039   virtual void addZCutHit(int, int) { return; }
0040   virtual void push_hits(TrkrDefs::cluskey) { return; }
0041 
0042   // PHObject virtual overload
0043   void identify(std::ostream& os = std::cout) const override
0044   {
0045     os << "ClusHitsVerbose base class" << std::endl;
0046   };
0047 
0048  protected:
0049   ClusHitsVerbose() = default;
0050   ClassDefOverride(ClusHitsVerbose, 1)
0051 };
0052 
0053 #endif  // G4TRACKING_CLUSHITSVERBOSE_H