Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-05-23 08:11:51

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef SILICONCALOMATCHING_H
0004 #define SILICONCALOMATCHING_H
0005 
0006 #include <fun4all/SubsysReco.h>
0007 
0008 #include <string>
0009 #include <vector>
0010 
0011 class PHCompositeNode;
0012 class SvtxTrackMap;
0013 class SvtxVertexMap;
0014 class ActsGeometry;
0015 class TrkrClusterContainer;
0016 class RawClusterContainer;
0017 
0018 class SvtxTrack;
0019 class SvtxTrackState;
0020 class SvtxCluster;
0021 
0022 class RawCluster;
0023 class RawClusterContainer;
0024 
0025 class SiliconCaloTrack;
0026 class SiliconCaloTrackMap;
0027 
0028 
0029 class SiliconCaloMatching : public SubsysReco
0030 {
0031 public:
0032   SiliconCaloMatching(const std::string &name = "SiliconCaloMatching");
0033 
0034   ~SiliconCaloMatching() override = default;
0035 
0036   int InitRun(PHCompositeNode *topNode) override;
0037   int process_event(PHCompositeNode *topNode) override;
0038   int EndRun(const int runnumber) override;
0039   int End(PHCompositeNode *topNode) override;
0040 
0041   void setMC(const bool input) { isMC = input; }
0042 
0043   void setTrackMapName( const std::string &name) { _trackMapName  = name; }
0044   void setVertexMapName(const std::string &name) { _vertexMapName = name; }
0045   void setClusterContainerName(     const std::string &name) { _clusterContainerName = name; }
0046   void setEMCalClusterContainerName(const std::string &name) { _emcalClusName = name; }
0047 
0048   void setEmcalRadius(float radius) { _caloRadiusEMCal = radius; }
0049   void setEmcalLowEcut(float ecut)  { _emcal_low_cut = ecut; }
0050 
0051 /*
0052   void setTopoCluster(bool topo)
0053   {
0054     if (topo)
0055     {
0056       setClusterContainerName("TOPOCLUSTER_EMCAL");
0057     }
0058   }
0059 */
0060 
0061 protected:
0062   std::string _clusterContainerName = "TRKR_CLUSTER";
0063   std::string _actsgeometryName     = "ActsGeometry";
0064   std::string _trackMapName         = "SvtxTrackMap";
0065   std::string _vertexMapName        = "SvtxVertexMap";
0066   std::string _emcalClusName        = "CLUSTER_CEMC";
0067 
0068   double _emcal_low_cut      = 0.18;
0069   float  _caloRadiusEMCal    = 93.5;
0070   float  _caloThicknessEMCal = 20.4997;
0071 
0072   bool isMC = false;
0073 
0074 private:
0075   bool  getNodes(PHCompositeNode *topNode);
0076   void  getCaloPosition(RawCluster* calo, float& x, float& y, float& z);
0077 
0078   float calculatePt(SvtxTrack* track, RawCluster* emc);
0079 
0080 private:
0081   SvtxTrackMap*         _trackmap   = nullptr;
0082   SvtxVertexMap*        _vertexmap  = nullptr;
0083   ActsGeometry*         _geometry   = nullptr;
0084   TrkrClusterContainer* _clustermap = nullptr;
0085   RawClusterContainer*  _emcClusmap = nullptr;
0086 
0087   SiliconCaloTrackMap*  _sicalomap  = nullptr;
0088 
0089 };
0090 
0091 #endif  // SILICONSEEDSANA_H
0092