9 #include "Api/PandoraApi.h" 11 #include "Pandora/Algorithm.h" 12 #include "Pandora/AlgorithmTool.h" 13 #include "Pandora/Pandora.h" 179 #define LAR_ALGORITHM_LIST(d) \ 180 d("LArEventValidation", EventValidationAlgorithm) \ 181 d("LArPfoValidation", PfoValidationAlgorithm) \ 182 d("LArMCParticleMonitoring", MCParticleMonitoringAlgorithm) \ 183 d("LArVisualMonitoring", VisualMonitoringAlgorithm) \ 184 d("LArEventReading", EventReadingAlgorithm) \ 185 d("LArEventWriting", EventWritingAlgorithm) \ 186 d("LArCheatingClusterCharacterisation", CheatingClusterCharacterisationAlgorithm) \ 187 d("LArCheatingClusterCreation", CheatingClusterCreationAlgorithm) \ 188 d("LArCheatingCosmicRayIdentification", CheatingCosmicRayIdentificationAlg) \ 189 d("LArCheatingCosmicRayShowerMatching", CheatingCosmicRayShowerMatchingAlg) \ 190 d("LArCheatingNeutrinoCreation", CheatingNeutrinoCreationAlgorithm) \ 191 d("LArCheatingNeutrinoDaughterVertices", CheatingNeutrinoDaughterVerticesAlgorithm) \ 192 d("LArCheatingPfoCharacterisation", CheatingPfoCharacterisationAlgorithm) \ 193 d("LArCheatingPfoCreation", CheatingPfoCreationAlgorithm) \ 194 d("LArCheatingCosmicRayRemoval", CheatingCosmicRayRemovalAlgorithm) \ 195 d("LArCheatingVertexCreation", CheatingVertexCreationAlgorithm) \ 196 d("LArPcaShowerParticleBuilding", PcaShowerParticleBuildingAlgorithm) \ 197 d("LArMaster", MasterAlgorithm) \ 198 d("LArPostProcessing", PostProcessingAlgorithm) \ 199 d("LArPreProcessing", PreProcessingAlgorithm) \ 200 d("LArSlicing", SlicingAlgorithm) \ 201 d("LArTrackParticleBuilding", TrackParticleBuildingAlgorithm) \ 202 d("LArNeutrinoCreation", NeutrinoCreationAlgorithm) \ 203 d("LArNeutrinoDaughterVertices", NeutrinoDaughterVerticesAlgorithm) \ 204 d("LArNeutrinoHierarchy", NeutrinoHierarchyAlgorithm) \ 205 d("LArNeutrinoProperties", NeutrinoPropertiesAlgorithm) \ 206 d("LArTestBeamParticleCreation", TestBeamParticleCreationAlgorithm) \ 207 d("LArCosmicRayShowerMatching", CosmicRayShowerMatchingAlgorithm) \ 208 d("LArCosmicRayTrackMatching", CosmicRayTrackMatchingAlgorithm) \ 209 d("LArCosmicRayTrackRecovery", CosmicRayTrackRecoveryAlgorithm) \ 210 d("LArCosmicRayVertexBuilding", CosmicRayVertexBuildingAlgorithm) \ 211 d("LArDeltaRayIdentification", DeltaRayIdentificationAlgorithm) \ 212 d("LArDeltaRayMatching", DeltaRayMatchingAlgorithm) \ 213 d("LArUnattachedDeltaRays", UnattachedDeltaRaysAlgorithm) \ 214 d("LArThreeDHitCreation", ThreeDHitCreationAlgorithm) \ 215 d("LArThreeDLongitudinalTracks", ThreeDLongitudinalTracksAlgorithm) \ 216 d("LArSlidingConePfoMopUp", SlidingConePfoMopUpAlgorithm) \ 217 d("LArShowerPfoMopUp", ShowerPfoMopUpAlgorithm) \ 218 d("LArVertexBasedPfoMopUp", VertexBasedPfoMopUpAlgorithm) \ 219 d("LArParticleRecovery", ParticleRecoveryAlgorithm) \ 220 d("LArVertexBasedPfoRecovery", VertexBasedPfoRecoveryAlgorithm) \ 221 d("LArThreeDRemnants", ThreeDRemnantsAlgorithm) \ 222 d("LArThreeDShowers", ThreeDShowersAlgorithm) \ 223 d("LArThreeDTrackFragments", ThreeDTrackFragmentsAlgorithm) \ 224 d("LArThreeDTransverseTracks", ThreeDTransverseTracksAlgorithm) \ 225 d("LArCutClusterCharacterisation", CutClusterCharacterisationAlgorithm) \ 226 d("LArCutPfoCharacterisation", CutPfoCharacterisationAlgorithm) \ 227 d("LArShowerGrowing", ShowerGrowingAlgorithm) \ 228 d("LArSvmPfoCharacterisation", SvmPfoCharacterisationAlgorithm) \ 229 d("LArCrossGapsAssociation", CrossGapsAssociationAlgorithm) \ 230 d("LArCrossGapsExtension", CrossGapsExtensionAlgorithm) \ 231 d("LArLongitudinalAssociation", LongitudinalAssociationAlgorithm) \ 232 d("LArLongitudinalExtension", LongitudinalExtensionAlgorithm) \ 233 d("LArSimpleClusterGrowing", SimpleClusterGrowingAlgorithm) \ 234 d("LArSimpleClusterMerging", SimpleClusterMergingAlgorithm) \ 235 d("LArTransverseAssociation", TransverseAssociationAlgorithm) \ 236 d("LArTransverseExtension", TransverseExtensionAlgorithm) \ 237 d("LArSimpleClusterCreation", SimpleClusterCreationAlgorithm) \ 238 d("LArTrackClusterCreation", TrackClusterCreationAlgorithm) \ 239 d("LArClusteringParent", ClusteringParentAlgorithm) \ 240 d("LArBoundedClusterMopUp", BoundedClusterMopUpAlgorithm) \ 241 d("LArConeClusterMopUp", ConeClusterMopUpAlgorithm) \ 242 d("LArIsolatedClusterMopUp", IsolatedClusterMopUpAlgorithm) \ 243 d("LArNearbyClusterMopUp", NearbyClusterMopUpAlgorithm) \ 244 d("LArSlidingConeClusterMopUp", SlidingConeClusterMopUpAlgorithm) \ 245 d("LArCosmicRayExtension", CosmicRayExtensionAlgorithm) \ 246 d("LArCosmicRaySplitting", CosmicRaySplittingAlgorithm) \ 247 d("LArDeltaRayExtension", DeltaRayExtensionAlgorithm) \ 248 d("LArDeltaRayGrowing", DeltaRayGrowingAlgorithm) \ 249 d("LArBranchSplitting", BranchSplittingAlgorithm) \ 250 d("LArCrossedTrackSplitting", CrossedTrackSplittingAlgorithm) \ 251 d("LArDeltaRaySplitting", DeltaRaySplittingAlgorithm) \ 252 d("LArKinkSplitting", KinkSplittingAlgorithm) \ 253 d("LArLayerSplitting", LayerSplittingAlgorithm) \ 254 d("LArOvershootSplitting", OvershootSplittingAlgorithm) \ 255 d("LArTrackConsolidation", TrackConsolidationAlgorithm) \ 256 d("LArVertexSplitting", VertexSplittingAlgorithm) \ 257 d("LArTwoDParticleCreation", TwoDParticleCreationAlgorithm) \ 258 d("LArListChanging", ListChangingAlgorithm) \ 259 d("LArListDeletion", ListDeletionAlgorithm) \ 260 d("LArListMerging", ListMergingAlgorithm) \ 261 d("LArListPruning", ListPruningAlgorithm) \ 262 d("LArCandidateVertexCreation", CandidateVertexCreationAlgorithm) \ 263 d("LArEnergyKickVertexSelection", EnergyKickVertexSelectionAlgorithm) \ 264 d("LArHitAngleVertexSelection", HitAngleVertexSelectionAlgorithm) \ 265 d("LArSvmVertexSelection", SvmVertexSelectionAlgorithm) 267 #define LAR_ALGORITHM_TOOL_LIST(d) \ 268 d("LArBdtBeamParticleId", BdtBeamParticleIdTool) \ 269 d("LArBeamParticleId", BeamParticleIdTool) \ 270 d("LArCosmicRayTagging", CosmicRayTaggingTool) \ 271 d("LArNeutrinoId", NeutrinoIdTool) \ 272 d("LArSimpleNeutrinoId", SimpleNeutrinoIdTool) \ 273 d("LArStitchingCosmicRayMerging", StitchingCosmicRayMergingTool) \ 274 d("LArCosmicRayTaggingMonitoring", CosmicRayTaggingMonitoringTool) \ 275 d("LArShowerTensorVisualization", ShowerTensorVisualizationTool) \ 276 d("LArTransverseTensorVisualization", TransverseTensorVisualizationTool) \ 277 d("LArCheatingBeamParticleId", CheatingBeamParticleIdTool) \ 278 d("LArCheatingEventSlicing", CheatingEventSlicingTool) \ 279 d("LArCheatingCosmicRayTagging", CheatingCosmicRayTaggingTool) \ 280 d("LArCheatingNeutrinoId", CheatingNeutrinoIdTool) \ 281 d("LArBranchAssociatedPfos", BranchAssociatedPfosTool) \ 282 d("LArEndAssociatedPfos", EndAssociatedPfosTool) \ 283 d("LArEventSlicing", EventSlicingTool) \ 284 d("LArVertexAssociatedPfos", VertexAssociatedPfosTool) \ 285 d("LArClearShowers", ClearShowersTool) \ 286 d("LArSimpleShowers", SimpleShowersTool) \ 287 d("LArSplitShowers", SplitShowersTool) \ 288 d("LArClearTrackFragments", ClearTrackFragmentsTool) \ 289 d("LArClearLongitudinalTrackHits", ClearLongitudinalTrackHitsTool) \ 290 d("LArClearTransverseTrackHits", ClearTransverseTrackHitsTool) \ 291 d("LArDeltaRayShowerHits", DeltaRayShowerHitsTool) \ 292 d("LArMultiValuedLongitudinalTrackHits", MultiValuedLongitudinalTrackHitsTool) \ 293 d("LArMultiValuedTransverseTrackHits", MultiValuedTransverseTrackHitsTool) \ 294 d("LArThreeViewShowerHits", ThreeViewShowerHitsTool) \ 295 d("LArTwoViewShowerHits", TwoViewShowerHitsTool) \ 296 d("LArClearLongitudinalTracks", ClearLongitudinalTracksTool) \ 297 d("LArMatchedEndPoints", MatchedEndPointsTool) \ 298 d("LArClearRemnants", ClearRemnantsTool) \ 299 d("LArConnectedRemnants", ConnectedRemnantsTool) \ 300 d("LArMopUpRemnants", MopUpRemnantsTool) \ 301 d("LArClearTracks", ClearTracksTool) \ 302 d("LArLongTracks", LongTracksTool) \ 303 d("LArMissingTrack", MissingTrackTool) \ 304 d("LArMissingTrackSegment", MissingTrackSegmentTool) \ 305 d("LArOvershootTracks", OvershootTracksTool) \ 306 d("LArTracksCrossingGaps", TracksCrossingGapsTool) \ 307 d("LArTrackSplitting", TrackSplittingTool) \ 308 d("LArUndershootTracks", UndershootTracksTool) \ 309 d("LArEnergyKickFeature", EnergyKickFeatureTool) \ 310 d("LArGlobalAsymmetryFeature", GlobalAsymmetryFeatureTool) \ 311 d("LArLocalAsymmetryFeature", LocalAsymmetryFeatureTool) \ 312 d("LArRPhiFeature", RPhiFeatureTool) \ 313 d("LArShowerAsymmetryFeature", ShowerAsymmetryFeatureTool) \ 314 d("LArTwoDLinearFitFeatureTool", TwoDLinearFitFeatureTool) \ 315 d("LArThreeDLinearFitFeatureTool", ThreeDLinearFitFeatureTool) \ 316 d("LArTwoDVertexDistanceFeatureTool", TwoDVertexDistanceFeatureTool) \ 317 d("LArThreeDVertexDistanceFeatureTool", ThreeDVertexDistanceFeatureTool) \ 318 d("LArThreeDChargeFeatureTool", ThreeDChargeFeatureTool) \ 319 d("LArThreeDPCAFeatureTool", ThreeDPCAFeatureTool) \ 320 d("LArThreeDOpeningAngleFeatureTool", ThreeDOpeningAngleFeatureTool) 322 #define LAR_PARTICLE_ID_LIST(d) \ 323 d("LArMuonId", LArParticleIdPlugins::LArMuonId) 325 #define FACTORY Factory 333 #define LAR_CONTENT_CREATE_ALGORITHM_FACTORY(a, b) \ 334 class b##FACTORY : public pandora::AlgorithmFactory \ 337 pandora::Algorithm *CreateAlgorithm() const {return new b;}; \ 344 #define LAR_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b) \ 345 class b##FACTORY : public pandora::AlgorithmToolFactory \ 348 pandora::AlgorithmTool *CreateAlgorithmTool() const {return new b;}; \ 358 #define LAR_CONTENT_REGISTER_ALGORITHM(a, b) \ 360 const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmFactory(pandora, a, new lar_content::b##FACTORY)); \ 361 if (pandora::STATUS_CODE_SUCCESS != statusCode) \ 365 #define LAR_CONTENT_REGISTER_ALGORITHM_TOOL(a, b) \ 367 const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmToolFactory(pandora, a, new lar_content::b##FACTORY)); \ 368 if (pandora::STATUS_CODE_SUCCESS != statusCode) \ 376 return pandora::STATUS_CODE_SUCCESS;
381 #define LAR_CONTENT_REGISTER_PARTICLE_ID(a, b) \ 383 const pandora::StatusCode statusCode(PandoraApi::RegisterParticleIdPlugin(pandora, a, new lar_content::b)); \ 384 if (pandora::STATUS_CODE_SUCCESS != statusCode) \ 391 return pandora::STATUS_CODE_SUCCESS;
Header file for the cheating cosmic ray removal algorithm class.
Header file for the clustering parent algorithm class.
Header file for the cosmic ray identification cheater class.
Header file for the longitudinal association algorithm class.
Header file for the event writing algorithm class.
Header file for the cut based pfo characterisation algorithm class.
Header file for the cut based cluster characterisation algorithm class.
Header file for the mc particle monitoring algorithm.
#define LAR_CONTENT_CREATE_ALGORITHM_FACTORY(a, b)
Header file for the cosmic ray splitting algorithm class.
Header file for the sliding cone cluster mop up algorithm class.
#define LAR_ALGORITHM_TOOL_LIST(d)
Header file for the cosmic-ray extension algorithm class.
Header file for the pfo validation algorithm.
Header file for the overshoot splitting algorithm class.
Header file for the vertex splitting algorithm class.
Header file for the cross gaps association algorithm class.
Header file for the bounded cluster mop up algorithm class.
Header file for the crossed track splitting algorithm class.
#define LAR_PARTICLE_ID_LIST(d)
#define LAR_CONTENT_REGISTER_ALGORITHM_TOOL(a, b)
Header file for the neutrino daughter vertices algorithm class.
Header file for the lar particle id plugins class.
#define LAR_ALGORITHM_LIST(d)
Header file for the cheating cluster characterisation algorithm class.
Header file for the cosmic-ray vertex building algorithm class.
Header file for the svm pfo characterisation algorithm class.
Header file for the 3D track building algorithm class.
Header file for the list merging algorithm class.
Header file for the track consolidation algorithm class.
Header file for the cosmic ray shower matching cheater class.
Header file for the simple cluster growing algorithm class.
Header file for the cosmic ray shower matching algorithm class.
Header file for the three dimensional hit creation algorithm class.
Header file for the list pruning algorithm class.
Header file for the geometry helper class.
Header file for the candidate vertex creation algorithm class.
Header file for the cone cluster mop up algorithm class.
Header file for the simple cluster merging algorithm class.
Header file for the cheating cluster creation algorithm class.
Header file for the beam particle id tool class.
Header file for the event validation algorithm.
Header file for the cheating vertex creation algorithm class.
Header file for the neutrino creation algorithm class.
Header file for the delta ray extension algorithm class.
Header file for the cheating beam particle id tool class.
Header file for the cluster creation algorithm class.
Header file for the beam particle id tool class.
Header file for the master algorithm class.
Header file for the delta ray splitting algorithm class.
Header file for the cheating pfo characterisation algorithm class.
Header file for the list changing algorithm class.
Header file for the energy kick vertex selection algorithm class.
Header file for the post processing algorithm class.
static pandora::StatusCode RegisterBasicPlugins(const pandora::Pandora &pandora)
Register the basic lar content plugins with pandora.
Header file for the neutrino properties algorithm class.
Header file for the cheating neutrino daughter vertices algorithm class.
Header file for the three dimensional remnants algorithm class.
Header file for the cheating cluster creation algorithm class.
#define LAR_CONTENT_REGISTER_ALGORITHM(a, b)
Header file for the unattached delta rays algorithm class.
Header file for the delta ray matching algorithm class.
Header file for the sliding cone pfo mop up algorithm class.
Header file for the neutrino hierarchy algorithm class.
Header file for the three dimensional fragments algorithm base class.
Header file for the branch splitting algorithm class.
Header file for the isolated cluster mop up algorithm class.
static pandora::StatusCode RegisterAlgorithms(const pandora::Pandora &pandora)
Register all the lar content algorithms and tools with pandora.
#define LAR_CONTENT_REGISTER_PARTICLE_ID(a, b)
Header file for the svm vertex selection algorithm class.
Header file for the hit angle vertex selection algorithm class.
#define LAR_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b)
Header file for the shower growing algorithm class.
Header file for the three dimensional transverse tracks algorithm class.
Header file for the event reading algorithm class.
Header file for the transverse extension algorithm class.
Header file for the track recovery algorithm class.
Header file for the shower pfo mop up algorithm class.
Header file detailing content for use with particle flow reconstruction at liquid argon time projecti...
Header file for the visual monitoring algorithm class.
Header file for the two dimensional particle creation algorithm class.
Header file for the longitudinal extension algorithm class.
Header file for the cheating neutrino creation algorithm class.
Header file for the nearby cluster mop up algorithm class.
Header file for the three dimensional showers algorithm class.
Header file for the transverse association algorithm class.
Header file for the master algorithm class.
Header file for the test beam particle creation algorithm class.
Header file for the vertex-based particle recovery algorithm.
Header file for the neutrino event creation algorithm class.
Header file for the kink splitting algorithm class.
Header file for the pre processing algorithm class.
Header file for the delta ray identification algorithm class.
Header file for the cluster creation algorithm class.
Header file for the vertex based pfo mop up algorithm class.
Header file for the cosmic ray longitudinal track recovery algorithm class.
Header file for the list deletion algorithm class.
Header file for the cross gaps extension algorithm class.
Header file for the cosmic ray track matching algorithm class.
Header file for the three dimensional longitudinal tracks algorithm class.