From e2adfdd1e83c01702dc44571b06d4c2241bca1c2 Mon Sep 17 00:00:00 2001 From: Ishangoel11 <112987387+Ishangoel11@users.noreply.github.com> Date: Wed, 3 Jun 2026 16:36:21 -0500 Subject: [PATCH] Add files via upload --- offline/packages/trackbase/Makefile.am | 686 +++++++++--------- offline/packages/trackbase/TrkrCluster.h | 248 ++++--- offline/packages/trackbase/TrkrClusterv6.cc | 141 ++++ offline/packages/trackbase/TrkrClusterv6.h | 261 +++++++ .../packages/trackbase/TrkrClusterv6LinkDef.h | 5 + 5 files changed, 889 insertions(+), 452 deletions(-) create mode 100644 offline/packages/trackbase/TrkrClusterv6.cc create mode 100644 offline/packages/trackbase/TrkrClusterv6.h create mode 100644 offline/packages/trackbase/TrkrClusterv6LinkDef.h diff --git a/offline/packages/trackbase/Makefile.am b/offline/packages/trackbase/Makefile.am index bcb0b81d96..531485b50e 100644 --- a/offline/packages/trackbase/Makefile.am +++ b/offline/packages/trackbase/Makefile.am @@ -1,340 +1,346 @@ -############################################## -# please add new classes in alphabetical order - -AUTOMAKE_OPTIONS = foreign - - -if USE_ONLINE -# list of shared libraries to produce -lib_LTLIBRARIES = \ - libtrack_io.la - -pkginclude_HEADERS = \ - TrkrDefs.h - -libtrack_io_la_SOURCES = \ - TrkrDefs.cc - -noinst_PROGRAMS = \ - testexternals_track_io - -else - -# list of shared libraries to produce -lib_LTLIBRARIES = \ - libtrack_io.la \ - libtrack.la - -AM_CPPFLAGS = \ - -I$(includedir) \ - -isystem$(OFFLINE_MAIN)/include \ - -isystem$(ROOTSYS)/include - -AM_LDFLAGS = \ - -L$(libdir) \ - -L$(OFFLINE_MAIN)/lib \ - -L$(OFFLINE_MAIN)/lib64 \ - -L$(ROOTSYS)/lib - - -pkginclude_HEADERS = \ - ActsAborter.h \ - ActsGeometry.h \ - ActsSourceLink.h \ - ActsSurfaceMaps.h \ - ActsTrackFittingAlgorithm.h \ - ActsTrackingGeometry.h \ - alignmentTransformationContainer.h \ - AlignmentTransformation.h \ - CommonOptions.h \ - CMFlashCluster.h \ - CMFlashClusterContainer.h \ - CMFlashClusterContainerv1.h \ - CMFlashClusterv1.h \ - CMFlashClusterv2.h \ - CMFlashClusterv3.h \ - CMFlashDifference.h \ - CMFlashDifferenceContainer.h \ - CMFlashDifferenceContainerv1.h \ - CMFlashDifferencev1.h \ - Calibrator.h \ - ClusHitsVerbose.h \ - ClusHitsVerbosev1.h \ - ClusterErrorPara.h \ - IBaseDetector.h \ - InttDefs.h \ - InttEventInfo.h \ - InttEventInfov1.h \ - LaserCluster.h \ - LaserClusterContainer.h \ - LaserClusterContainerv1.h \ - LaserClusterv1.h \ - LaserClusterv2.h \ - MaterialWiper.h \ - MagneticFieldOptions.h \ - MvtxDefs.h \ - MvtxEventInfo.h \ - MvtxEventInfov1.h \ - MvtxEventInfov2.h \ - MvtxEventInfov3.h \ - RawHit.h \ - RawHitSet.h \ - RawHitSetContainer.h \ - RawHitSetContainerv1.h \ - RawHitSetv1.h \ - RawHitTpc.h \ - RawHitv1.h \ - ResidualOutlierFinder.h \ - SpacePoint.h \ - sPHENIXActsDetectorElement.h \ - TGeoDetectorWithOptions.h \ - TpcDefs.h \ - TpcSeedTrackMap.h \ - TpcSeedTrackMapv1.h \ - TpcTpotEventInfo.h \ - TpcTpotEventInfov1.h \ - TrackVertexCrossingAssoc.h \ - TrackVertexCrossingAssoc_v1.h \ - TrackFitUtils.h \ - TrkrCluster.h \ - TrkrClusterContainer.h \ - TrkrClusterContainerv1.h \ - TrkrClusterContainerv2.h \ - TrkrClusterContainerv3.h \ - TrkrClusterContainerv4.h \ - TrkrClusterCrossingAssoc.h \ - TrkrClusterCrossingAssocv1.h \ - TrkrClusterHitAssoc.h \ - TrkrClusterHitAssocv1.h \ - TrkrClusterHitAssocv2.h \ - TrkrClusterHitAssocv3.h \ - TrkrClusterIterationMap.h \ - TrkrClusterIterationMapv1.h \ - TrkrClusterv1.h \ - TrkrClusterv2.h \ - TrkrClusterv3.h \ - TrkrClusterv4.h \ - TrkrClusterv5.h \ - TrkrDefs.h \ - TrkrHit.h \ - TrkrHitSet.h \ - TrkrHitSetContMvtxHelper.h \ - TrkrHitSetContMvtxHelperv1.h \ - TrkrHitSetContainer.h \ - TrkrHitSetContainerv1.h \ - TrkrHitSetContainerv2.h \ - TrkrHitSetv1.h \ - TrkrHitSetTpc.h \ - TrkrHitSetTpcv1.h \ - TrkrHitTruthAssoc.h \ - TrkrHitTruthAssocv1.h \ - TrkrHitv1.h \ - TrkrHitv2.h - -ROOTDICTS = \ - CMFlashClusterContainer_Dict.cc \ - CMFlashClusterContainerv1_Dict.cc \ - CMFlashCluster_Dict.cc \ - CMFlashClusterv1_Dict.cc \ - CMFlashClusterv2_Dict.cc \ - CMFlashClusterv3_Dict.cc \ - CMFlashDifferenceContainer_Dict.cc \ - CMFlashDifferenceContainerv1_Dict.cc \ - CMFlashDifference_Dict.cc \ - CMFlashDifferencev1_Dict.cc \ - ClusHitsVerbose_Dict.cc \ - ClusHitsVerbosev1_Dict.cc \ - InttEventInfo_Dict.cc \ - InttEventInfov1_Dict.cc \ - LaserClusterContainer_Dict.cc \ - LaserClusterContainerv1_Dict.cc \ - LaserCluster_Dict.cc \ - LaserClusterv1_Dict.cc \ - LaserClusterv2_Dict.cc \ - MvtxEventInfo_Dict.cc \ - MvtxEventInfov1_Dict.cc \ - MvtxEventInfov2_Dict.cc \ - MvtxEventInfov3_Dict.cc \ - RawHitSetContainer_Dict.cc \ - RawHitSetContainerv1_Dict.cc \ - RawHitSet_Dict.cc \ - RawHitSetv1_Dict.cc \ - RawHitTpc_Dict.cc \ - RawHit_Dict.cc \ - RawHitv1_Dict.cc \ - TpcSeedTrackMap_Dict.cc \ - TpcSeedTrackMapv1_Dict.cc \ - TpcTpotEventInfo_Dict.cc \ - TpcTpotEventInfov1_Dict.cc \ - TrackVertexCrossingAssoc_Dict.cc \ - TrackVertexCrossingAssoc_v1_Dict.cc \ - TrkrClusterContainer_Dict.cc \ - TrkrClusterContainerv1_Dict.cc \ - TrkrClusterContainerv2_Dict.cc \ - TrkrClusterContainerv3_Dict.cc \ - TrkrClusterContainerv4_Dict.cc \ - TrkrClusterCrossingAssoc_Dict.cc \ - TrkrClusterCrossingAssocv1_Dict.cc \ - TrkrClusterHitAssoc_Dict.cc \ - TrkrClusterHitAssocv1_Dict.cc \ - TrkrClusterHitAssocv2_Dict.cc \ - TrkrClusterHitAssocv3_Dict.cc \ - TrkrClusterIterationMap_Dict.cc \ - TrkrClusterIterationMapv1_Dict.cc \ - TrkrCluster_Dict.cc \ - TrkrClusterv1_Dict.cc \ - TrkrClusterv2_Dict.cc \ - TrkrClusterv3_Dict.cc \ - TrkrClusterv4_Dict.cc \ - TrkrClusterv5_Dict.cc \ - TrkrHitSetContMvtxHelper_Dict.cc \ - TrkrHitSetContMvtxHelperv1_Dict.cc \ - TrkrHitSetContainer_Dict.cc \ - TrkrHitSetContainerv1_Dict.cc \ - TrkrHitSetContainerv2_Dict.cc \ - TrkrHitSet_Dict.cc \ - TrkrHitSetv1_Dict.cc \ - TrkrHitSetTpc_Dict.cc \ - TrkrHitSetTpcv1_Dict.cc \ - TrkrHitTruthAssoc_Dict.cc \ - TrkrHitTruthAssocv1_Dict.cc \ - TrkrHit_Dict.cc \ - TrkrHitv1_Dict.cc \ - TrkrHitv2_Dict.cc - - -pcmdir = $(libdir) -nobase_dist_pcm_DATA = $(ROOTDICTS:.cc=_rdict.pcm) - -# sources for io library -libtrack_la_SOURCES = \ - ActsGeometry.cc \ - ActsSurfaceMaps.cc \ - AlignmentTransformation.cc \ - alignmentTransformationContainer.cc \ - Calibrator.cc \ - ClusterErrorPara.cc \ - CommonOptions.cc \ - MagneticFieldOptions.cc \ - sPHENIXActsDetectorElement.cc \ - TGeoDetectorWithOptions.cc \ - TrackFittingAlgorithmFunctionsKalman.cc \ - TrackFitUtils.cc - -# sources for io library -libtrack_io_la_SOURCES = \ - $(ROOTDICTS) \ - CMFlashClusterContainerv1.cc \ - CMFlashClusterv1.cc \ - CMFlashClusterv2.cc \ - CMFlashClusterv3.cc \ - CMFlashDifferenceContainerv1.cc \ - CMFlashDifferencev1.cc \ - ClusHitsVerbose.cc \ - ClusHitsVerbosev1.cc \ - InttDefs.cc \ - InttEventInfo.cc \ - InttEventInfov1.cc \ - LaserClusterContainerv1.cc \ - LaserClusterv1.cc \ - LaserClusterv2.cc \ - MvtxDefs.cc \ - MvtxEventInfo.cc \ - MvtxEventInfov1.cc \ - MvtxEventInfov2.cc \ - MvtxEventInfov3.cc \ - RawHitSet.cc \ - RawHitSetContainer.cc \ - RawHitSetContainerv1.cc \ - RawHitSetv1.cc \ - RawHitTpc.cc \ - RawHitv1.cc \ - TpcDefs.cc \ - TpcSeedTrackMap.cc \ - TpcSeedTrackMapv1.cc \ - TpcTpotEventInfov1.cc \ - TrackVertexCrossingAssoc.cc \ - TrackVertexCrossingAssoc_v1.cc \ - TrkrClusterContainer.cc \ - TrkrClusterContainerv1.cc \ - TrkrClusterContainerv2.cc \ - TrkrClusterContainerv3.cc \ - TrkrClusterContainerv4.cc \ - TrkrClusterCrossingAssoc.cc \ - TrkrClusterCrossingAssocv1.cc \ - TrkrClusterHitAssoc.cc \ - TrkrClusterHitAssocv1.cc \ - TrkrClusterHitAssocv2.cc \ - TrkrClusterHitAssocv3.cc \ - TrkrClusterIterationMap.cc \ - TrkrClusterIterationMapv1.cc \ - TrkrClusterv1.cc \ - TrkrClusterv2.cc \ - TrkrClusterv3.cc \ - TrkrClusterv4.cc \ - TrkrClusterv5.cc \ - TrkrDefs.cc \ - TrkrHitSet.cc \ - TrkrHitSetContMvtxHelper.cc \ - TrkrHitSetContMvtxHelperv1.cc \ - TrkrHitSetContainer.cc \ - TrkrHitSetContainerv1.cc \ - TrkrHitSetContainerv2.cc \ - TrkrHitSetv1.cc \ - TrkrHitSetTpc.cc \ - TrkrHitSetTpcv1.cc \ - TrkrHitTruthAssocv1.cc \ - TrkrHitv1.cc \ - TrkrHitv2.cc - -libtrack_la_LIBADD = \ - libtrack_io.la \ - -lActsCore \ - -lActsPluginRoot \ - -lActsExamplesDetectorTGeo \ - -lffamodules \ - -lboost_program_options - -libtrack_io_la_LIBADD = \ - -lphool \ - -lphg4hit - -noinst_PROGRAMS = \ - testexternals_track \ - testexternals_track_io - -testexternals_track_SOURCES = testexternals.cc -testexternals_track_LDADD = libtrack.la - -endif - -# Rule for generating table CINT dictionaries. -%_Dict.cc: %.h %LinkDef.h - rootcint -f $@ @CINTDEFS@ $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $^ - -#just to get the dependency -%_Dict_rdict.pcm: %_Dict.cc ; - -################################################ -# linking tests - -BUILT_SOURCES = testexternals.cc - - -#testexternals_track_util_SOURCES = testexternals.cc -#testexternals_track_util_LDADD = libtrack_util.la - -testexternals_track_io_SOURCES = testexternals.cc -testexternals_track_io_LDADD = libtrack_io.la - -testexternals.cc: - echo "//*** this is a generated file. Do not commit, do not edit" > $@ - echo "int main()" >> $@ - echo "{" >> $@ - echo " return 0;" >> $@ - echo "}" >> $@ - -################################################ - -clean-local: - rm -f *Dict* $(BUILT_SOURCES) *.pcm +############################################## +# please add new classes in alphabetical order + +AUTOMAKE_OPTIONS = foreign + + +if USE_ONLINE +# list of shared libraries to produce +lib_LTLIBRARIES = \ + libtrack_io.la + +pkginclude_HEADERS = \ + TrkrDefs.h + +libtrack_io_la_SOURCES = \ + TrkrDefs.cc + +noinst_PROGRAMS = \ + testexternals_track_io + +else + +# list of shared libraries to produce +lib_LTLIBRARIES = \ + libtrack_io.la \ + libtrack.la + +AM_CPPFLAGS = \ + -I$(includedir) \ + -isystem$(OFFLINE_MAIN)/include \ + -isystem$(ROOTSYS)/include + +AM_LDFLAGS = \ + -L$(libdir) \ + -L$(OFFLINE_MAIN)/lib \ + -L$(OFFLINE_MAIN)/lib64 \ + -L$(ROOTSYS)/lib + + +pkginclude_HEADERS = \ + ActsAborter.h \ + ActsGeometry.h \ + ActsGsfTrackFittingAlgorithm.h \ + ActsSourceLink.h \ + ActsSurfaceMaps.h \ + ActsTrackFittingAlgorithm.h \ + ActsTrackingGeometry.h \ + alignmentTransformationContainer.h \ + AlignmentTransformation.h \ + CommonOptions.h \ + CMFlashCluster.h \ + CMFlashClusterContainer.h \ + CMFlashClusterContainerv1.h \ + CMFlashClusterv1.h \ + CMFlashClusterv2.h \ + CMFlashClusterv3.h \ + CMFlashDifference.h \ + CMFlashDifferenceContainer.h \ + CMFlashDifferenceContainerv1.h \ + CMFlashDifferencev1.h \ + Calibrator.h \ + ClusHitsVerbose.h \ + ClusHitsVerbosev1.h \ + ClusterErrorPara.h \ + IBaseDetector.h \ + InttDefs.h \ + InttEventInfo.h \ + InttEventInfov1.h \ + LaserCluster.h \ + LaserClusterContainer.h \ + LaserClusterContainerv1.h \ + LaserClusterv1.h \ + LaserClusterv2.h \ + MagneticFieldOptions.h \ + MaterialWiper.h \ + MvtxDefs.h \ + MvtxEventInfo.h \ + MvtxEventInfov1.h \ + MvtxEventInfov2.h \ + MvtxEventInfov3.h \ + RawHit.h \ + RawHitSet.h \ + RawHitSetContainer.h \ + RawHitSetContainerv1.h \ + RawHitSetv1.h \ + RawHitTpc.h \ + RawHitv1.h \ + ResidualOutlierFinder.h \ + SpacePoint.h \ + sPHENIXActsDetectorElement.h \ + TGeoDetectorWithOptions.h \ + TpcDefs.h \ + TpcSeedTrackMap.h \ + TpcSeedTrackMapv1.h \ + TpcTpotEventInfo.h \ + TpcTpotEventInfov1.h \ + TrackVertexCrossingAssoc.h \ + TrackVertexCrossingAssoc_v1.h \ + TrackFitUtils.h \ + TrkrCluster.h \ + TrkrClusterContainer.h \ + TrkrClusterContainerv1.h \ + TrkrClusterContainerv2.h \ + TrkrClusterContainerv3.h \ + TrkrClusterContainerv4.h \ + TrkrClusterCrossingAssoc.h \ + TrkrClusterCrossingAssocv1.h \ + TrkrClusterHitAssoc.h \ + TrkrClusterHitAssocv1.h \ + TrkrClusterHitAssocv2.h \ + TrkrClusterHitAssocv3.h \ + TrkrClusterIterationMap.h \ + TrkrClusterIterationMapv1.h \ + TrkrClusterv1.h \ + TrkrClusterv2.h \ + TrkrClusterv3.h \ + TrkrClusterv4.h \ + TrkrClusterv5.h \ + TrkrClusterv6.h \ + TrkrDefs.h \ + TrkrHit.h \ + TrkrHitSet.h \ + TrkrHitSetContMvtxHelper.h \ + TrkrHitSetContMvtxHelperv1.h \ + TrkrHitSetContainer.h \ + TrkrHitSetContainerv1.h \ + TrkrHitSetContainerv2.h \ + TrkrHitSetv1.h \ + TrkrHitSetTpc.h \ + TrkrHitSetTpcv1.h \ + TrkrHitTruthAssoc.h \ + TrkrHitTruthAssocv1.h \ + TrkrHitv1.h \ + TrkrHitv2.h + +ROOTDICTS = \ + CMFlashClusterContainer_Dict.cc \ + CMFlashClusterContainerv1_Dict.cc \ + CMFlashCluster_Dict.cc \ + CMFlashClusterv1_Dict.cc \ + CMFlashClusterv2_Dict.cc \ + CMFlashClusterv3_Dict.cc \ + CMFlashDifferenceContainer_Dict.cc \ + CMFlashDifferenceContainerv1_Dict.cc \ + CMFlashDifference_Dict.cc \ + CMFlashDifferencev1_Dict.cc \ + ClusHitsVerbose_Dict.cc \ + ClusHitsVerbosev1_Dict.cc \ + InttEventInfo_Dict.cc \ + InttEventInfov1_Dict.cc \ + LaserClusterContainer_Dict.cc \ + LaserClusterContainerv1_Dict.cc \ + LaserCluster_Dict.cc \ + LaserClusterv1_Dict.cc \ + LaserClusterv2_Dict.cc \ + MvtxEventInfo_Dict.cc \ + MvtxEventInfov1_Dict.cc \ + MvtxEventInfov2_Dict.cc \ + MvtxEventInfov3_Dict.cc \ + RawHitSetContainer_Dict.cc \ + RawHitSetContainerv1_Dict.cc \ + RawHitSet_Dict.cc \ + RawHitSetv1_Dict.cc \ + RawHitTpc_Dict.cc \ + RawHit_Dict.cc \ + RawHitv1_Dict.cc \ + TpcSeedTrackMap_Dict.cc \ + TpcSeedTrackMapv1_Dict.cc \ + TpcTpotEventInfo_Dict.cc \ + TpcTpotEventInfov1_Dict.cc \ + TrackVertexCrossingAssoc_Dict.cc \ + TrackVertexCrossingAssoc_v1_Dict.cc \ + TrkrClusterContainer_Dict.cc \ + TrkrClusterContainerv1_Dict.cc \ + TrkrClusterContainerv2_Dict.cc \ + TrkrClusterContainerv3_Dict.cc \ + TrkrClusterContainerv4_Dict.cc \ + TrkrClusterCrossingAssoc_Dict.cc \ + TrkrClusterCrossingAssocv1_Dict.cc \ + TrkrClusterHitAssoc_Dict.cc \ + TrkrClusterHitAssocv1_Dict.cc \ + TrkrClusterHitAssocv2_Dict.cc \ + TrkrClusterHitAssocv3_Dict.cc \ + TrkrClusterIterationMap_Dict.cc \ + TrkrClusterIterationMapv1_Dict.cc \ + TrkrCluster_Dict.cc \ + TrkrClusterv1_Dict.cc \ + TrkrClusterv2_Dict.cc \ + TrkrClusterv3_Dict.cc \ + TrkrClusterv4_Dict.cc \ + TrkrClusterv5_Dict.cc \ + TrkrClusterv6_Dict.cc \ + TrkrHitSetContMvtxHelper_Dict.cc \ + TrkrHitSetContMvtxHelperv1_Dict.cc \ + TrkrHitSetContainer_Dict.cc \ + TrkrHitSetContainerv1_Dict.cc \ + TrkrHitSetContainerv2_Dict.cc \ + TrkrHitSet_Dict.cc \ + TrkrHitSetv1_Dict.cc \ + TrkrHitSetTpc_Dict.cc \ + TrkrHitSetTpcv1_Dict.cc \ + TrkrHitTruthAssoc_Dict.cc \ + TrkrHitTruthAssocv1_Dict.cc \ + TrkrHit_Dict.cc \ + TrkrHitv1_Dict.cc \ + TrkrHitv2_Dict.cc + + +pcmdir = $(libdir) +nobase_dist_pcm_DATA = $(ROOTDICTS:.cc=_rdict.pcm) + +# sources for io library +libtrack_la_SOURCES = \ + ActsGeometry.cc \ + ActsSurfaceMaps.cc \ + AlignmentTransformation.cc \ + alignmentTransformationContainer.cc \ + Calibrator.cc \ + ClusterErrorPara.cc \ + CommonOptions.cc \ + MagneticFieldOptions.cc \ + sPHENIXActsDetectorElement.cc \ + TGeoDetectorWithOptions.cc \ + TrackFittingAlgorithmFunctionsGsf.cc \ + TrackFittingAlgorithmFunctionsKalman.cc \ + TrackFitUtils.cc + +# sources for io library +libtrack_io_la_SOURCES = \ + $(ROOTDICTS) \ + CMFlashClusterContainerv1.cc \ + CMFlashClusterv1.cc \ + CMFlashClusterv2.cc \ + CMFlashClusterv3.cc \ + CMFlashDifferenceContainerv1.cc \ + CMFlashDifferencev1.cc \ + ClusHitsVerbose.cc \ + ClusHitsVerbosev1.cc \ + InttDefs.cc \ + InttEventInfo.cc \ + InttEventInfov1.cc \ + LaserClusterContainerv1.cc \ + LaserClusterv1.cc \ + LaserClusterv2.cc \ + MvtxDefs.cc \ + MvtxEventInfo.cc \ + MvtxEventInfov1.cc \ + MvtxEventInfov2.cc \ + MvtxEventInfov3.cc \ + RawHitSet.cc \ + RawHitSetContainer.cc \ + RawHitSetContainerv1.cc \ + RawHitSetv1.cc \ + RawHitTpc.cc \ + RawHitv1.cc \ + TpcDefs.cc \ + TpcSeedTrackMap.cc \ + TpcSeedTrackMapv1.cc \ + TpcTpotEventInfov1.cc \ + TrackVertexCrossingAssoc.cc \ + TrackVertexCrossingAssoc_v1.cc \ + TrkrClusterContainer.cc \ + TrkrClusterContainerv1.cc \ + TrkrClusterContainerv2.cc \ + TrkrClusterContainerv3.cc \ + TrkrClusterContainerv4.cc \ + TrkrClusterCrossingAssoc.cc \ + TrkrClusterCrossingAssocv1.cc \ + TrkrClusterHitAssoc.cc \ + TrkrClusterHitAssocv1.cc \ + TrkrClusterHitAssocv2.cc \ + TrkrClusterHitAssocv3.cc \ + TrkrClusterIterationMap.cc \ + TrkrClusterIterationMapv1.cc \ + TrkrClusterv1.cc \ + TrkrClusterv2.cc \ + TrkrClusterv3.cc \ + TrkrClusterv4.cc \ + TrkrClusterv5.cc \ + TrkrClusterv6.cc \ + TrkrDefs.cc \ + TrkrHitSet.cc \ + TrkrHitSetContMvtxHelper.cc \ + TrkrHitSetContMvtxHelperv1.cc \ + TrkrHitSetContainer.cc \ + TrkrHitSetContainerv1.cc \ + TrkrHitSetContainerv2.cc \ + TrkrHitSetv1.cc \ + TrkrHitSetTpc.cc \ + TrkrHitSetTpcv1.cc \ + TrkrHitTruthAssocv1.cc \ + TrkrHitv1.cc \ + TrkrHitv2.cc + +libtrack_la_LIBADD = \ + libtrack_io.la \ + -lActsCore \ + -lActsExamplesMagneticField \ + -lActsPluginTGeo \ + -lActsExamplesDetectorTGeo \ + -lffamodules \ + -lboost_program_options + +libtrack_io_la_LIBADD = \ + -lphool \ + -lphg4hit + +noinst_PROGRAMS = \ + testexternals_track \ + testexternals_track_io + +testexternals_track_SOURCES = testexternals.cc +testexternals_track_LDADD = libtrack.la + +endif + +# Rule for generating table CINT dictionaries. +%_Dict.cc: %.h %LinkDef.h + rootcint -f $@ @CINTDEFS@ $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $^ + +#just to get the dependency +%_Dict_rdict.pcm: %_Dict.cc ; + +################################################ +# linking tests + +BUILT_SOURCES = testexternals.cc + + +#testexternals_track_util_SOURCES = testexternals.cc +#testexternals_track_util_LDADD = libtrack_util.la + +testexternals_track_io_SOURCES = testexternals.cc +testexternals_track_io_LDADD = libtrack_io.la + +testexternals.cc: + echo "//*** this is a generated file. Do not commit, do not edit" > $@ + echo "int main()" >> $@ + echo "{" >> $@ + echo " return 0;" >> $@ + echo "}" >> $@ + +################################################ + +clean-local: + rm -f *Dict* $(BUILT_SOURCES) *.pcm diff --git a/offline/packages/trackbase/TrkrCluster.h b/offline/packages/trackbase/TrkrCluster.h index 7fd091a527..af48a8573e 100644 --- a/offline/packages/trackbase/TrkrCluster.h +++ b/offline/packages/trackbase/TrkrCluster.h @@ -1,112 +1,136 @@ -/** - * @file trackbase/TrkrCluster.h - * @author D. McGlinchey - * @date June 2018 - * @brief Base class for cluster object - */ -#ifndef TRACKBASE_TRKRCLUSTER_H -#define TRACKBASE_TRKRCLUSTER_H - -#include "TrkrDefs.h" - -#include - -#include -#include -#include -#include - -/** - * @brief Base class for cluster object - * - * Virtual base class for cluster object used for all tracking subsystems - */ -class TrkrCluster : public PHObject -{ - public: - //! dtor - ~TrkrCluster() override = default; - - // PHObject virtual overloads - void identify(std::ostream& os = std::cout) const override - { - os << "TrkrCluster base class" << std::endl; - } - void Reset() override {} - int isValid() const override { return 0; } - - //! import PHObject CopyFrom, in order to avoid clang warning - using PHObject::CopyFrom; - - //! copy content from base class - virtual void CopyFrom(const TrkrCluster&) - { - } - - //! copy content from base class - virtual void CopyFrom(TrkrCluster*) - { - } - - // - // cluster position - // - virtual float getLocalX() const { return NAN; } - virtual void setLocalX(float) {} - virtual float getLocalY() const { return NAN; } - virtual void setLocalY(float) {} - - // - // cluster info - // - virtual void setAdc(unsigned int) {} - virtual unsigned int getAdc() const { return UINT_MAX; } - virtual void setMaxAdc(uint16_t) {} - virtual unsigned int getMaxAdc() const { return UINT_MAX; } - virtual char getOverlap() const { return std::numeric_limits::max(); } - virtual void setOverlap(char) {} - virtual char getEdge() const { return std::numeric_limits::max(); } - virtual void setEdge(char) {} - virtual void setTime(const float) {} - virtual float getTime() const { return NAN; } - virtual char getSize() const { return std::numeric_limits::max(); } - - // - // convenience interface - // - virtual float getPhiSize() const { return NAN; } - virtual float getZSize() const { return NAN; } - virtual float getPhiError() const { return NAN; } - virtual float getRPhiError() const { return NAN; } - virtual float getZError() const { return NAN; } - - /// Acts functions, for Acts modules use only - virtual void setActsLocalError(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {} - virtual float getActsLocalError(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; } - virtual TrkrDefs::subsurfkey getSubSurfKey() const { return TrkrDefs::SUBSURFKEYMAX; } - virtual void setSubSurfKey(TrkrDefs::subsurfkey /*id*/) {} - - // Global coordinate functions are deprecated, use local - // coordinate functions only - virtual float getX() const { return NAN; } - virtual void setX(float) {} - virtual float getY() const { return NAN; } - virtual void setY(float) {} - virtual float getZ() const { return NAN; } - virtual void setZ(float) {} - virtual float getPosition(int /*coor*/) const { return NAN; } - virtual void setPosition(int /*coor*/, float /*xi*/) {} - virtual void setGlobal() {} - virtual void setLocal() {} - virtual bool isGlobal() const { return true; } - virtual float getError(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; } - virtual void setError(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {} - virtual float getSize(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; } - virtual void setSize(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {} - - protected: - TrkrCluster() = default; - ClassDefOverride(TrkrCluster, 1) -}; - -#endif // TRACKBASE_TRKRCLUSTER_H +/** + * @file trackbase/TrkrCluster.h + * @author D. McGlinchey + * @date June 2018 + * @brief Base class for cluster object + */ +#ifndef TRACKBASE_TRKRCLUSTER_H +#define TRACKBASE_TRKRCLUSTER_H + +#include "TrkrDefs.h" + +#include + +#include +#include +#include +#include + +/** + * @brief Base class for cluster object + * + * Virtual base class for cluster object used for all tracking subsystems + */ +class TrkrCluster : public PHObject +{ + public: + //! dtor + ~TrkrCluster() override = default; + + // PHObject virtual overloads + void identify(std::ostream& os = std::cout) const override + { + os << "TrkrCluster base class" << std::endl; + } + void Reset() override {} + int isValid() const override { return 0; } + + //! import PHObject CopyFrom, in order to avoid clang warning + using PHObject::CopyFrom; + + //! copy content from base class + virtual void CopyFrom(const TrkrCluster&) + { + } + + //! copy content from base class + virtual void CopyFrom(TrkrCluster*) + { + } + + // + // cluster position + // + virtual float getLocalX() const { return NAN; } + virtual void setLocalX(float) {} + virtual float getLocalY() const { return NAN; } + virtual void setLocalY(float) {} + + // + // cluster info + // + virtual void setAdc(unsigned int) {} + virtual unsigned int getAdc() const { return UINT_MAX; } + virtual void setMaxAdc(uint16_t) {} + virtual unsigned int getMaxAdc() const { return UINT_MAX; } + virtual char getOverlap() const { return std::numeric_limits::max(); } + virtual void setOverlap(char) {} + virtual char getEdge() const { return std::numeric_limits::max(); } + virtual void setEdge(char) {} + virtual void setTime(const float) {} + virtual float getTime() const { return NAN; } + virtual char getSize() const { return std::numeric_limits::max(); } + + // + // convenience interface + // + virtual float getPhiSize() const { return NAN; } + virtual float getZSize() const { return NAN; } + virtual float getPhiError() const { return NAN; } + virtual float getRPhiError() const { return NAN; } + virtual float getZError() const { return NAN; } + virtual unsigned int getCenAdc() const { return UINT_MAX; } + virtual float getPadCen() const { return NAN; } + virtual float getTBinCen() const { return NAN; } + virtual float getPadMax() const { return NAN; } + virtual float getTBinMax() const { return NAN; } + virtual char getSLEdge() const { return std::numeric_limits::max(); } + virtual char getSREdge() const { return std::numeric_limits::max(); } + virtual char getTLEdge() const { return std::numeric_limits::max(); } + virtual char getTREdge() const { return std::numeric_limits::max(); } + virtual char getDLEdge() const { return std::numeric_limits::max(); } + virtual char getDREdge() const { return std::numeric_limits::max(); } + virtual char getHLEdge() const { return std::numeric_limits::max(); } + virtual char getHREdge() const { return std::numeric_limits::max(); } + virtual int getSLMix() const { return std::numeric_limits::max(); } + virtual int getSRMix() const { return std::numeric_limits::max(); } + virtual int getTLMix() const { return std::numeric_limits::max(); } + virtual int getTRMix() const { return std::numeric_limits::max(); } + virtual float getPhiBinLo() const { return NAN; } + virtual float getPhiBinHi() const { return NAN; } + virtual float getTBinLo() const { return NAN; } + virtual float getTBinHi() const { return NAN; } + virtual float getPadPhase() const { return NAN; } + virtual float getTBinPhase() const { return NAN; } + virtual float getRSize() const { return NAN; } + + /// Acts functions, for Acts modules use only + virtual void setActsLocalError(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {} + virtual float getActsLocalError(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; } + virtual TrkrDefs::subsurfkey getSubSurfKey() const { return TrkrDefs::SUBSURFKEYMAX; } + virtual void setSubSurfKey(TrkrDefs::subsurfkey /*id*/) {} + + // Global coordinate functions are deprecated, use local + // coordinate functions only + virtual float getX() const { return NAN; } + virtual void setX(float) {} + virtual float getY() const { return NAN; } + virtual void setY(float) {} + virtual float getZ() const { return NAN; } + virtual void setZ(float) {} + virtual float getPosition(int /*coor*/) const { return NAN; } + virtual void setPosition(int /*coor*/, float /*xi*/) {} + virtual void setGlobal() {} + virtual void setLocal() {} + virtual bool isGlobal() const { return true; } + virtual float getError(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; } + virtual void setError(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {} + virtual float getSize(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; } + virtual void setSize(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {} + + protected: + TrkrCluster() = default; + ClassDefOverride(TrkrCluster, 1) +}; + +#endif // TRACKBASE_TRKRCLUSTER_H diff --git a/offline/packages/trackbase/TrkrClusterv6.cc b/offline/packages/trackbase/TrkrClusterv6.cc new file mode 100644 index 0000000000..c7defdcdce --- /dev/null +++ b/offline/packages/trackbase/TrkrClusterv6.cc @@ -0,0 +1,141 @@ +/** + * @file trackbase/TrkrClusterv6.cc + * @author Ishan Goel + * @date May 2026 + * @brief Implementation of TrkrClusterv6 + */ +#include "TrkrClusterv6.h" + +#include +#include // for swap + +namespace +{ + // square convenience function + template + inline constexpr T square(const T& x) + { + return x * x; + } +} // namespace + +TrkrClusterv6::TrkrClusterv6() + : m_subsurfkey(TrkrDefs::SUBSURFKEYMAX) + , m_phierr(0) + , m_zerr(0) + , m_adc(0) + , m_maxadc(0) + , m_cenadc(0) + , m_padcen(0) + , m_tbincen(0) + , m_padmax(0) + , m_tbinmax(0) + , m_rsize(0) + , m_phisize(0) + , m_zsize(0) + , m_overlap(0) + , m_edge(0) + , m_sledge(0) + , m_sredge(0) + , m_tledge(0) + , m_tredge(0) + , m_dledge(0) + , m_dredge(0) + , m_hledge(0) + , m_hredge(0) + , m_slmix(0) + , m_srmix(0) + , m_tlmix(0) + , m_trmix(0) + , m_phibinlo(0) + , m_phibinhi(0) + , m_tbinlo(0) + , m_tbinhi(0) + , m_padphase(0) + , m_tbinphase(0) +{ + for (float& i : m_local) + { + i = NAN; + } +} + +void TrkrClusterv6::identify(std::ostream& os) const +{ + os << "---TrkrClusterv6--------------------" << std::endl; + + os << " (rphi,z) = (" << getLocalX(); + os << ", " << getLocalY() << ") cm "; + + os << " valid = " << isValid() << std::endl; + + os << std::endl; + os << "-----------------------------------------------" << std::endl; + + return; +} + +int TrkrClusterv6::isValid() const +{ + for (int i = 0; i < 2; ++i) + { + if (std::isnan(getPosition(i))) + { + return 0; + } + } + if (m_adc == 0xFFFF) + { + return 0; + } + + return 1; +} + +void TrkrClusterv6::CopyFrom(const TrkrCluster& source) +{ + // do nothing if copying onto oneself + if (this == &source) + { + return; + } + + // parent class method + TrkrCluster::CopyFrom(source); + + setLocalX(source.getLocalX()); + setLocalY(source.getLocalY()); + setSubSurfKey(source.getSubSurfKey()); + setAdc(source.getAdc()); + setMaxAdc(source.getMaxAdc()); + setCenAdc(source.getCenAdc()); + setPadCen(source.getPadCen()); + setTBinCen(source.getTBinCen()); + setPadMax(source.getPadMax()); + setTBinMax(source.getTBinMax()); + setPhiError(source.getRPhiError()); + setZError(source.getZError()); + setRSize(source.getRSize()); + setPhiSize(source.getPhiSize()); + setZSize(source.getZSize()); + setOverlap(source.getOverlap()); + setEdge(source.getEdge()); + setSLEdge(source.getSLEdge()); + setSREdge(source.getSREdge()); + setTLEdge(source.getTLEdge()); + setTREdge(source.getTREdge()); + setDLEdge(source.getDLEdge()); + setDREdge(source.getDREdge()); + setHLEdge(source.getHLEdge()); + setHREdge(source.getHREdge()); + setSLMix(source.getSLMix()); + setSRMix(source.getSRMix()); + setTLMix(source.getTLMix()); + setTRMix(source.getTRMix()); + setPhiBinLo(source.getPhiBinLo()); + setPhiBinHi(source.getPhiBinHi()); + setTBinLo(source.getTBinLo()); + setTBinHi(source.getTBinHi()); + setPadPhase(source.getPadPhase()); + setTBinPhase(source.getTBinPhase()); +} diff --git a/offline/packages/trackbase/TrkrClusterv6.h b/offline/packages/trackbase/TrkrClusterv6.h new file mode 100644 index 0000000000..96749bbaed --- /dev/null +++ b/offline/packages/trackbase/TrkrClusterv6.h @@ -0,0 +1,261 @@ +/** + * @file trackbase/TrkrClusterv6.h + * @author Ishan Goel + * @date May 2026 + * @brief Version 6 of TrkrCluster + */ +#ifndef TRACKBASE_TRKRCLUSTERV6_H +#define TRACKBASE_TRKRCLUSTERV6_H + +#include +#include "TrkrCluster.h" +#include "TrkrDefs.h" + +class PHObject; + +/** + * @brief Version 6 of TrkrCluster + * + * This version of TrkrCluster is blown up to contain a maximum of information + */ + +class TrkrClusterv6 : public TrkrCluster +{ + public: + //! ctor + TrkrClusterv6(); + + //! dtor + ~TrkrClusterv6() override = default; + + // PHObject virtual overloads + + void identify(std::ostream& os = std::cout) const override; + void Reset() override {} + int isValid() const override; + PHObject* CloneMe() const override { return new TrkrClusterv6(*this); } + + //! import PHObject CopyFrom, in order to avoid clang warning + using PHObject::CopyFrom; + + //! copy content from base class + void CopyFrom(const TrkrCluster&) override; + + //! copy content from base class + void CopyFrom(TrkrCluster* source) override + { + CopyFrom(*source); + } + + // + // cluster position + // + float getPosition(int coor) const override { return m_local[coor]; } + void setPosition(int coor, float xi) override { m_local[coor] = xi; } + float getLocalX() const override { return m_local[0]; } + void setLocalX(float loc0) override { m_local[0] = loc0; } + float getLocalY() const override { return m_local[1]; } + void setLocalY(float loc1) override { m_local[1] = loc1; } + + TrkrDefs::subsurfkey getSubSurfKey() const override { return m_subsurfkey; } + void setSubSurfKey(TrkrDefs::subsurfkey id) override { m_subsurfkey = id; } + + // + // cluster info + // + unsigned int getAdc() const override { return m_adc; } + void setAdc(unsigned int adc) override { m_adc = adc; } + + unsigned int getMaxAdc() const override { return m_maxadc; } + void setMaxAdc(uint16_t maxadc) override { m_maxadc = maxadc; } + + unsigned int getCenAdc() const override { return m_cenadc; } + void setCenAdc(uint16_t cenadc) { m_cenadc = cenadc; } + + float getPadCen() const override { return m_padcen; } + void setPadCen(float padcen) { m_padcen = padcen; } + + float getTBinCen() const override { return m_tbincen; } + void setTBinCen(float tbincen) { m_tbincen = tbincen; } + + float getPadMax() const override { return m_padmax; } + void setPadMax(float padmax) { m_padmax = padmax; } + + float getTBinMax() const override { return m_tbinmax; } + void setTBinMax(float tbinmax) { m_tbinmax = tbinmax; } + + // + // convenience interface + // + float getRPhiError() const override { return m_phierr; } + float getZError() const override { return m_zerr; } + + void setPhiError(float phierror) { m_phierr = phierror; } + void setZError(float zerror) { m_zerr = zerror; } + + /// deprecated global funtions with a warning + float getX() const override + { + std::cout << "Deprecated getx trkrcluster function!" << std::endl; + return NAN; + } + float getY() const override + { + std::cout << "Deprecated gety trkrcluster function!" << std::endl; + return NAN; + } + float getZ() const override + { + std::cout << "Deprecated getz trkrcluster function!" << std::endl; + return NAN; + } + void setX(float) override + { + std::cout << "Deprecated setx trkrcluster function!" << std::endl; + } + void setY(float) override + { + std::cout << "Deprecated sety trkrcluster function!" << std::endl; + } + void setZ(float) override + { + std::cout << "Deprecated setz trkrcluster function!" << std::endl; + } + float getSize(unsigned int, unsigned int) const override + { + std::cout << "Deprecated getsize trkrcluster function!" << std::endl; + return NAN; + } + void setSize(unsigned int, unsigned int, float) override + { + std::cout << "Deprecated setsize trkrcluster function!" << std::endl; + } + float getError(unsigned int, unsigned int) const override + { + std::cout << "Deprecated geterr trkrcluster function!" << std::endl; + return NAN; + } + void setError(unsigned int, unsigned int, float) override + { + std::cout << "Deprecated seterr trkrcluster function!" << std::endl; + } + + char getSize() const override { return m_phisize * m_zsize; } + // void setSize(char size) { m_size = size; } + + float getRSize() const override { return (float) m_rsize; } + void setRSize(char rsize) { m_rsize = rsize; } + + float getPhiSize() const override { return (float) m_phisize; } + void setPhiSize(char phisize) { m_phisize = phisize; } + + float getZSize() const override { return (float) m_zsize; } + void setZSize(char zsize) { m_zsize = zsize; } + + char getOverlap() const override { return m_overlap; } + void setOverlap(char overlap) override { m_overlap = overlap; } + + char getEdge() const override { return m_edge; } + void setEdge(char edge) override { m_edge = edge; } + + char getSLEdge() const override { return m_sledge; } + void setSLEdge(char sledge) { m_sledge = sledge; } + + char getSREdge() const override { return m_sredge; } + void setSREdge(char sredge) { m_sredge = sredge; } + + char getTLEdge() const override { return m_tledge; } + void setTLEdge(char tledge) { m_tledge = tledge; } + + char getTREdge() const override { return m_tredge; } + void setTREdge(char tredge) { m_tredge = tredge; } + + char getDLEdge() const override { return m_dledge; } + void setDLEdge(char dledge) { m_dledge = dledge; } + + char getDREdge() const override { return m_dredge; } + void setDREdge(char dredge) { m_dredge = dredge; } + + char getHLEdge() const override { return m_hledge; } + void setHLEdge(char hledge) { m_hledge = hledge; } + + char getHREdge() const override { return m_hredge; } + void setHREdge(char hredge) { m_hredge = hredge; } + + int getSLMix() const override { return (int) m_slmix; } + void setSLMix(char slmix) { m_slmix = slmix; } + + int getSRMix() const override { return (int) m_srmix; } + void setSRMix(char srmix) { m_srmix = srmix; } + + int getTLMix() const override { return (int) m_tlmix; } + void setTLMix(char tlmix) { m_tlmix = tlmix; } + + int getTRMix() const override { return (int) m_trmix; } + void setTRMix(char trmix) { m_trmix = trmix; } + + float getPhiBinLo() const override { return m_phibinlo; } + void setPhiBinLo(float phibinlo) { m_phibinlo = phibinlo; } + + float getPhiBinHi() const override { return m_phibinhi; } + void setPhiBinHi(float phibinhi) { m_phibinhi = phibinhi; } + + float getTBinLo() const override { return m_tbinlo; } + void setTBinLo(float tbinlo) { m_tbinlo = tbinlo; } + + float getTBinHi() const override { return m_tbinhi; } + void setTBinHi(float tbinhi) { m_tbinhi = tbinhi; } + + float getPadPhase() const override { return m_padphase; } + void setPadPhase(float padphase) { m_padphase = padphase; } + + float getTBinPhase() const override { return m_tbinphase; } + void setTBinPhase(float tbinphase){ m_tbinphase = tbinphase; } + + // float getPhiSize() const override + //{ std::cout << "Deprecated size function"<< std::endl; return NAN;} + // float getZSize() const override + //{std::cout << "Deprecated size function" << std::endl; return NAN;} + // float getPhiError() const override + //{ std::cout << "Deprecated getPhiError function"<< std::endl; return NAN;} + + protected: + float m_local[2]{}; //< 2D local position [cm] 2 * 32 64bit - cumul 1*64 + TrkrDefs::subsurfkey m_subsurfkey; //< unique identifier for hitsetkey-surface maps 16 bit + float m_phierr; + float m_zerr; + unsigned short int m_adc; //< cluster sum adc 16 + unsigned short int m_maxadc; //< cluster max adc 16 + unsigned short int m_cenadc; //< cluster centroid adc 16 + float m_padcen; + float m_tbincen; + float m_padmax; + float m_tbinmax; + char m_rsize; // 8bit + char m_phisize; // 8bit + char m_zsize; // 8bit + char m_overlap; // 8bit + char m_edge; // 8bit - cumul 2*64 + char m_sledge; // 8bit + char m_sredge; // 8bit + char m_tledge; // 8bit + char m_tredge; // 8bit + char m_dledge; // 8bit + char m_dredge; // 8bit + char m_hledge; // 8bit + char m_hredge; // 8bit + char m_slmix; // 8bit + char m_srmix; // 8bit + char m_tlmix; // 8bit + char m_trmix; // 8bit + float m_phibinlo; + float m_phibinhi; + float m_tbinlo; + float m_tbinhi; + float m_padphase; + float m_tbinphase; + + ClassDefOverride(TrkrClusterv6, 2) +}; + +#endif // TRACKBASE_TRKRCLUSTERV6_H diff --git a/offline/packages/trackbase/TrkrClusterv6LinkDef.h b/offline/packages/trackbase/TrkrClusterv6LinkDef.h new file mode 100644 index 0000000000..d743c84f38 --- /dev/null +++ b/offline/packages/trackbase/TrkrClusterv6LinkDef.h @@ -0,0 +1,5 @@ +#ifdef __CINT__ + +#pragma link C++ class TrkrClusterv6 + ; + +#endif