9 #include "Api/PandoraApi.h"
11 #include "Pandora/Algorithm.h"
12 #include "Pandora/AlgorithmTool.h"
13 #include "Pandora/Pandora.h"
216 #define LAR_ALGORITHM_LIST(d) \
217 d("LArMuonLeadingEventValidation", MuonLeadingEventValidationAlgorithm) \
218 d("LArNeutrinoEventValidation", NeutrinoEventValidationAlgorithm) \
219 d("LArTestBeamEventValidation", TestBeamEventValidationAlgorithm) \
220 d("LArTestBeamHierarchyEventValidation", TestBeamHierarchyEventValidationAlgorithm) \
221 d("LArHierarchyMonitoring", HierarchyMonitoringAlgorithm) \
222 d("LArHierarchyValidation", HierarchyValidationAlgorithm) \
223 d("LArPfoValidation", PfoValidationAlgorithm) \
224 d("LArMCParticleMonitoring", MCParticleMonitoringAlgorithm) \
225 d("LArVertexMonitoring", VertexMonitoringAlgorithm) \
226 d("LArVisualMonitoring", VisualMonitoringAlgorithm) \
227 d("LArVisualParticleMonitoring", VisualParticleMonitoringAlgorithm) \
228 d("LArEventReading", EventReadingAlgorithm) \
229 d("LArEventWriting", EventWritingAlgorithm) \
230 d("LArCheatingClusterCharacterisation", CheatingClusterCharacterisationAlgorithm) \
231 d("LArCheatingClusterCreation", CheatingClusterCreationAlgorithm) \
232 d("LArCheatingCosmicRayIdentification", CheatingCosmicRayIdentificationAlg) \
233 d("LArCheatingCosmicRayShowerMatching", CheatingCosmicRayShowerMatchingAlg) \
234 d("LArCheatingNeutrinoCreation", CheatingNeutrinoCreationAlgorithm) \
235 d("LArCheatingNeutrinoDaughterVertices", CheatingNeutrinoDaughterVerticesAlgorithm) \
236 d("LArCheatingPfoCharacterisation", CheatingPfoCharacterisationAlgorithm) \
237 d("LArCheatingPfoCreation", CheatingPfoCreationAlgorithm) \
238 d("LArCheatingCosmicRayRemoval", CheatingCosmicRayRemovalAlgorithm) \
239 d("LArCheatingVertexCreation", CheatingVertexCreationAlgorithm) \
240 d("LArCheatingVertexSelection", CheatingVertexSelectionAlgorithm) \
241 d("LArPcaShowerParticleBuilding", PcaShowerParticleBuildingAlgorithm) \
242 d("LArMaster", MasterAlgorithm) \
243 d("LArPostProcessing", PostProcessingAlgorithm) \
244 d("LArPreProcessing", PreProcessingAlgorithm) \
245 d("LArSlicing", SlicingAlgorithm) \
246 d("LArStreaming", StreamingAlgorithm) \
247 d("LArTrackParticleBuilding", TrackParticleBuildingAlgorithm) \
248 d("LArNeutrinoCreation", NeutrinoCreationAlgorithm) \
249 d("LArNeutrinoDaughterVertices", NeutrinoDaughterVerticesAlgorithm) \
250 d("LArNeutrinoHierarchy", NeutrinoHierarchyAlgorithm) \
251 d("LArNeutrinoProperties", NeutrinoPropertiesAlgorithm) \
252 d("LArTestBeamParticleCreation", TestBeamParticleCreationAlgorithm) \
253 d("LArCosmicRayShowerMatching", CosmicRayShowerMatchingAlgorithm) \
254 d("LArCosmicRayTrackMatching", CosmicRayTrackMatchingAlgorithm) \
255 d("LArCosmicRayTrackRecovery", CosmicRayTrackRecoveryAlgorithm) \
256 d("LArCosmicRayVertexBuilding", CosmicRayVertexBuildingAlgorithm) \
257 d("LArDeltaRayIdentification", DeltaRayIdentificationAlgorithm) \
258 d("LArDeltaRayMatching", DeltaRayMatchingAlgorithm) \
259 d("LArDeltaRayParent", DeltaRayParentAlgorithm) \
260 d("LArThreeViewDeltaRayMatching", ThreeViewDeltaRayMatchingAlgorithm) \
261 d("LArTwoViewDeltaRayMatching", TwoViewDeltaRayMatchingAlgorithm) \
262 d("LArOneViewDeltaRayMatching", OneViewDeltaRayMatchingAlgorithm) \
263 d("LArUnattachedDeltaRays", UnattachedDeltaRaysAlgorithm) \
264 d("LArThreeDHitCreation", ThreeDHitCreationAlgorithm) \
265 d("LArThreeDLongitudinalTracks", ThreeViewLongitudinalTracksAlgorithm) \
266 d("LArRecursivePfoMopUp", RecursivePfoMopUpAlgorithm) \
267 d("LArSlidingConePfoMopUp", SlidingConePfoMopUpAlgorithm) \
268 d("LArShowerHierarchyMopUp", ShowerHierarchyMopUpAlgorithm) \
269 d("LArShowerPfoMopUp", ShowerPfoMopUpAlgorithm) \
270 d("LArVertexBasedPfoMopUp", VertexBasedPfoMopUpAlgorithm) \
271 d("LArParticleRecovery", ParticleRecoveryAlgorithm) \
272 d("LArVertexBasedPfoRecovery", VertexBasedPfoRecoveryAlgorithm) \
273 d("LArThreeDRemnants", ThreeViewRemnantsAlgorithm) \
274 d("LArThreeDShowers", ThreeViewShowersAlgorithm) \
275 d("LArThreeDTrackFragments", ThreeViewTrackFragmentsAlgorithm) \
276 d("LArThreeDTransverseTracks", ThreeViewTransverseTracksAlgorithm) \
277 d("LArTwoViewTransverseTracks", TwoViewTransverseTracksAlgorithm) \
278 d("LArCutClusterCharacterisation", CutClusterCharacterisationAlgorithm) \
279 d("LArCutPfoCharacterisation", CutPfoCharacterisationAlgorithm) \
280 d("LArShowerGrowing", ShowerGrowingAlgorithm) \
281 d("LArBdtPfoCharacterisation", BdtPfoCharacterisationAlgorithm) \
282 d("LArSvmPfoCharacterisation", SvmPfoCharacterisationAlgorithm) \
283 d("LArCrossGapsAssociation", CrossGapsAssociationAlgorithm) \
284 d("LArCrossGapsExtension", CrossGapsExtensionAlgorithm) \
285 d("LArHitWidthClusterMerging", HitWidthClusterMergingAlgorithm) \
286 d("LArLongitudinalAssociation", LongitudinalAssociationAlgorithm) \
287 d("LArLongitudinalExtension", LongitudinalExtensionAlgorithm) \
288 d("LArSimpleClusterGrowing", SimpleClusterGrowingAlgorithm) \
289 d("LArSimpleClusterMerging", SimpleClusterMergingAlgorithm) \
290 d("LArTransverseAssociation", TransverseAssociationAlgorithm) \
291 d("LArTransverseExtension", TransverseExtensionAlgorithm) \
292 d("LArSimpleClusterCreation", SimpleClusterCreationAlgorithm) \
293 d("LArTrackClusterCreation", TrackClusterCreationAlgorithm) \
294 d("LArClusteringParent", ClusteringParentAlgorithm) \
295 d("LArBoundedClusterMopUp", BoundedClusterMopUpAlgorithm) \
296 d("LArConeClusterMopUp", ConeClusterMopUpAlgorithm) \
297 d("LArIsolatedClusterMopUp", IsolatedClusterMopUpAlgorithm) \
298 d("LArNearbyClusterMopUp", NearbyClusterMopUpAlgorithm) \
299 d("LArSlidingConeClusterMopUp", SlidingConeClusterMopUpAlgorithm) \
300 d("LArCosmicRayExtension", CosmicRayExtensionAlgorithm) \
301 d("LArCosmicRaySplitting", CosmicRaySplittingAlgorithm) \
302 d("LArDeltaRayExtension", DeltaRayExtensionAlgorithm) \
303 d("LArDeltaRayGrowing", DeltaRayGrowingAlgorithm) \
304 d("LArTrackMergeRefinement", TrackMergeRefinementAlgorithm) \
305 d("LArBranchSplitting", BranchSplittingAlgorithm) \
306 d("LArCrossedTrackSplitting", CrossedTrackSplittingAlgorithm) \
307 d("LArDeltaRaySplitting", DeltaRaySplittingAlgorithm) \
308 d("LArKinkSplitting", KinkSplittingAlgorithm) \
309 d("LArLayerSplitting", LayerSplittingAlgorithm) \
310 d("LArOvershootSplitting", OvershootSplittingAlgorithm) \
311 d("LArTrackConsolidation", TrackConsolidationAlgorithm) \
312 d("LArVertexSplitting", VertexSplittingAlgorithm) \
313 d("LArTwoDParticleCreation", TwoDParticleCreationAlgorithm) \
314 d("LArListChanging", ListChangingAlgorithm) \
315 d("LArListDeletion", ListDeletionAlgorithm) \
316 d("LArListMerging", ListMergingAlgorithm) \
317 d("LArPfoHitCleaning", PfoHitCleaningAlgorithm) \
318 d("LArListPruning", ListPruningAlgorithm) \
319 d("LArCandidateVertexCreation", CandidateVertexCreationAlgorithm) \
320 d("LArEnergyKickVertexSelection", EnergyKickVertexSelectionAlgorithm) \
321 d("LArHitAngleVertexSelection", HitAngleVertexSelectionAlgorithm) \
322 d("LArBdtVertexSelection", BdtVertexSelectionAlgorithm) \
323 d("LArSvmVertexSelection", SvmVertexSelectionAlgorithm) \
324 d("LArVertexRefinement", VertexRefinementAlgorithm)
326 #define LAR_ALGORITHM_TOOL_LIST(d) \
327 d("LArBdtBeamParticleId", BdtBeamParticleIdTool) \
328 d("LArBeamParticleId", BeamParticleIdTool) \
329 d("LArCosmicRayTagging", CosmicRayTaggingTool) \
330 d("LArBdtNeutrinoId", BdtNeutrinoIdTool) \
331 d("LArSvmNeutrinoId", SvmNeutrinoIdTool) \
332 d("LArSimpleNeutrinoId", SimpleNeutrinoIdTool) \
333 d("LArStitchingCosmicRayMerging", StitchingCosmicRayMergingTool) \
334 d("LArCosmicRayTaggingMonitoring", CosmicRayTaggingMonitoringTool) \
335 d("LArShowerTensorVisualization", ShowerTensorVisualizationTool) \
336 d("LArTransverseMatrixVisualization", TransverseMatrixVisualizationTool) \
337 d("LArTransverseTensorVisualization", TransverseTensorVisualizationTool) \
338 d("LArAmbiguousDeltaRay", AmbiguousDeltaRayTool) \
339 d("LArCosmicRayRemoval", CosmicRayRemovalTool) \
340 d("LArDeltaRayRemoval", DeltaRayRemovalTool) \
341 d("LArDeltaRayMerge", DeltaRayMergeTool) \
342 d("LArTwoViewAmbiguousDeltaRay", TwoViewAmbiguousDeltaRayTool) \
343 d("LArTwoViewCosmicRayRemoval", TwoViewCosmicRayRemovalTool) \
344 d("LArUnambiguousDeltaRay", UnambiguousDeltaRayTool) \
345 d("LArCheatingBeamParticleId", CheatingBeamParticleIdTool) \
346 d("LArCheatingBeamParticleSliceSelection", CheatingBeamParticleSliceSelectionTool) \
347 d("LArCheatingEventSlicing", CheatingEventSlicingTool) \
348 d("LArCheatingCosmicRayTagging", CheatingCosmicRayTaggingTool) \
349 d("LArCheatingNeutrinoId", CheatingNeutrinoIdTool) \
350 d("LArCheatingNeutrinoSliceSelection", CheatingNeutrinoSliceSelectionTool) \
351 d("LArBranchAssociatedPfos", BranchAssociatedPfosTool) \
352 d("LArEndAssociatedPfos", EndAssociatedPfosTool) \
353 d("LArEventSlicing", EventSlicingTool) \
354 d("LArVertexAssociatedPfos", VertexAssociatedPfosTool) \
355 d("LArClearShowers", ClearShowersTool) \
356 d("LArSimpleShowers", SimpleShowersTool) \
357 d("LArSplitShowers", SplitShowersTool) \
358 d("LArClearTrackFragments", ClearTrackFragmentsTool) \
359 d("LArClearLongitudinalTrackHits", ClearLongitudinalTrackHitsTool) \
360 d("LArClearTransverseTrackHits", ClearTransverseTrackHitsTool) \
361 d("LArDeltaRayShowerHits", DeltaRayShowerHitsTool) \
362 d("LArMultiValuedLongitudinalTrackHits", MultiValuedLongitudinalTrackHitsTool) \
363 d("LArMultiValuedTransverseTrackHits", MultiValuedTransverseTrackHitsTool) \
364 d("LArThreeViewShowerHits", ThreeViewShowerHitsTool) \
365 d("LArTwoViewShowerHits", TwoViewShowerHitsTool) \
366 d("LArClearLongitudinalTracks", ClearLongitudinalTracksTool) \
367 d("LArMatchedEndPoints", MatchedEndPointsTool) \
368 d("LArClearRemnants", ClearRemnantsTool) \
369 d("LArConnectedRemnants", ConnectedRemnantsTool) \
370 d("LArMopUpRemnants", MopUpRemnantsTool) \
371 d("LArClearTracks", ClearTracksTool) \
372 d("LArLongTracks", LongTracksTool) \
373 d("LArMissingTrack", MissingTrackTool) \
374 d("LArMissingTrackSegment", MissingTrackSegmentTool) \
375 d("LArOvershootTracks", OvershootTracksTool) \
376 d("LArTracksCrossingGaps", TracksCrossingGapsTool) \
377 d("LArTrackSplitting", TrackSplittingTool) \
378 d("LArUndershootTracks", UndershootTracksTool) \
379 d("LArTwoViewClearTracks", TwoViewClearTracksTool) \
380 d("LArTwoViewLongTracks", TwoViewLongTracksTool) \
381 d("LArTwoViewSimpleTracks", TwoViewSimpleTracksTool) \
382 d("LArTwoViewThreeDKink", TwoViewThreeDKinkTool) \
383 d("LArEnergyKickFeature", EnergyKickFeatureTool) \
384 d("LArEnergyDepositionAsymmetryFeature", EnergyDepositionAsymmetryFeatureTool) \
385 d("LArGlobalAsymmetryFeature", GlobalAsymmetryFeatureTool) \
386 d("LArLocalAsymmetryFeature", LocalAsymmetryFeatureTool) \
387 d("LArRPhiFeature", RPhiFeatureTool) \
388 d("LArShowerAsymmetryFeature", ShowerAsymmetryFeatureTool) \
389 d("LArTwoDShowerFitFeatureTool", TwoDShowerFitFeatureTool) \
390 d("LArTwoDLinearFitFeatureTool", TwoDLinearFitFeatureTool) \
391 d("LArThreeDLinearFitFeatureTool", ThreeDLinearFitFeatureTool) \
392 d("LArTwoDVertexDistanceFeatureTool", TwoDVertexDistanceFeatureTool) \
393 d("LArThreeDVertexDistanceFeatureTool", ThreeDVertexDistanceFeatureTool) \
394 d("LArThreeDChargeFeatureTool", ThreeDChargeFeatureTool) \
395 d("LArThreeDPCAFeatureTool", ThreeDPCAFeatureTool) \
396 d("LArThreeDOpeningAngleFeatureTool", ThreeDOpeningAngleFeatureTool) \
397 d("LArPfoHierarchyFeatureTool", PfoHierarchyFeatureTool) \
398 d("LArConeChargeFeatureTool", ConeChargeFeatureTool)
400 #define LAR_PARTICLE_ID_LIST(d) \
401 d("LArMuonId", LArParticleIdPlugins::LArMuonId)
403 #define FACTORY Factory
408 namespace lar_content
411 #define LAR_CONTENT_CREATE_ALGORITHM_FACTORY(a, b) \
412 class b##FACTORY : public pandora::AlgorithmFactory \
415 pandora::Algorithm *CreateAlgorithm() const {return new b;}; \
422 #define LAR_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b) \
423 class b##FACTORY : public pandora::AlgorithmToolFactory \
426 pandora::AlgorithmTool *CreateAlgorithmTool() const {return new b;}; \
436 #define LAR_CONTENT_REGISTER_ALGORITHM(a, b) \
438 const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmFactory(pandora, a, new lar_content::b##FACTORY)); \
439 if (pandora::STATUS_CODE_SUCCESS != statusCode) \
443 #define LAR_CONTENT_REGISTER_ALGORITHM_TOOL(a, b) \
445 const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmToolFactory(pandora, a, new lar_content::b##FACTORY)); \
446 if (pandora::STATUS_CODE_SUCCESS != statusCode) \
454 return pandora::STATUS_CODE_SUCCESS;
459 #define LAR_CONTENT_REGISTER_PARTICLE_ID(a, b) \
461 const pandora::StatusCode statusCode(PandoraApi::RegisterParticleIdPlugin(pandora, a, new lar_content::b)); \
462 if (pandora::STATUS_CODE_SUCCESS != statusCode) \
469 return pandora::STATUS_CODE_SUCCESS;
Header file for the mva pfo characterisation algorithm class.
Header file for the one viw delta ray matching algorithm.
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 neutrino event validation algorithm.
Header file for the cut based pfo characterisation algorithm class.
Header file for the cut based cluster characterisation algorithm class.
Header file for the track merge refinement class.
Header file for the mc particle monitoring algorithm.
Header file for the cosmic ray splitting algorithm class.
Header file for the sliding cone cluster mop up algorithm class.
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 hit width cluster merging 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.
#define LAR_CONTENT_REGISTER_ALGORITHM_TOOL(a, b)
Header file for the crossed track splitting algorithm class.
Header file for the mva vertex selection algorithm class.
Header file for the neutrino daughter vertices algorithm class.
Header file for the lar particle id plugins class.
#define LAR_PARTICLE_ID_LIST(d)
Header file for the shower hierarchy mop up algorithm class.
Header file for the cheating cluster characterisation algorithm class.
Header file for the cosmic-ray vertex building algorithm class.
Header file for the 3D track building algorithm class.
Header file for the list merging algorithm class.
Header file for the test beam hierarchy event validation algorithm.
Header file for the test beam slice selection tool 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.
#define LAR_CONTENT_CREATE_ALGORITHM_FACTORY(a, b)
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 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.
Header file for the particle visualisation algorithm.
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 view transverse tracks algorithm class.
Header file for the cheating cluster creation algorithm class.
#define LAR_ALGORITHM_TOOL_LIST(d)
Header file for the cheating vertex selection algorithm class.
Header file for the unattached delta rays algorithm class.
Header file for the delta ray matching algorithm class.
Header file for the two view transverse tracks algorithm class.
Header file for the sliding cone pfo mop up algorithm class.
#define LAR_CONTENT_REGISTER_PARTICLE_ID(a, b)
Header file for the three view fragments algorithm base class.
Header file for the particle visualisation algorithm.
Header file for the neutrino hierarchy algorithm 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_CREATE_ALGORITHM_TOOL_FACTORY(a, b)
Header file for the hit angle vertex selection algorithm class.
Header file for the shower growing algorithm class.
required by fuzzyCluster table::sbnd_g4_services gaushitTruthMatch pandora
Header file for the pfo hit cleaning algorithm class.
#define LAR_CONTENT_REGISTER_ALGORITHM(a, b)
Header file for the event reading algorithm class.
Header file for the particle visualisation algorithm.
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 for the three view longitudinal tracks algorithm class.
Header file detailing content for use with particle flow reconstruction at liquid argon time projecti...
Header file for the test beam event validation algorithm.
Header file for the visual monitoring algorithm class.
Header file for the two dimensional particle creation algorithm class.
Header file for the muon leading event validation algorithm.
Header file for the longitudinal extension algorithm class.
#define LAR_ALGORITHM_LIST(d)
Header file for the cheating neutrino creation algorithm class.
Header file for the nearby cluster mop up 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 delta ray parent 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 vertex refinement algorithm class.
Header file for the hierarchy validation algorithm.
Header file for the cluster creation algorithm class.
Header file for the three view showers 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 three view remnants algorithm class.
Header file for the cosmic ray track matching algorithm class.