File indexing completed on 2026-05-23 08:11:51
0001
0002
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
0053
0054
0055
0056
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
0092