LArSoft  v10_06_00
Liquid Argon Software toolkit - https://larsoft.org/
LArDLContent.cc
Go to the documentation of this file.
1 
9 #include "Api/PandoraApi.h"
10 
11 #include "Pandora/Algorithm.h"
12 #include "Pandora/AlgorithmTool.h"
13 #include "Pandora/Pandora.h"
14 
28 
30 
31 // clang-format off
32 #define LAR_DL_ALGORITHM_LIST(d) \
33  d("LArDLMaster", DLMasterAlgorithm) \
34  d("LArDLClusterCharacterisation", DlClusterCharacterisationAlgorithm) \
35  d("LArDLHitTrackShowerId", DlHitTrackShowerIdAlgorithm) \
36  d("LArDLHitValidation", DlHitValidationAlgorithm) \
37  d("LArDLNeutrinoHierarchy", DLNeutrinoHierarchyAlgorithm) \
38  d("LArDLPfoCharacterisation", DlPfoCharacterisationAlgorithm) \
39  d("LArDLSecondaryVertexing", DlSecondaryVertexingAlgorithm) \
40  d("LArDLSNSignal", DlSNSignalAlgorithm) \
41  d("LArDLTrackShowerStreamSelection", DlTrackShowerStreamSelectionAlgorithm) \
42  d("LArDLVertexing", DlVertexingAlgorithm)
43 
44 #define LAR_DL_ALGORITHM_TOOL_LIST(d) \
45  d("LArDLCheatHierarchy", DLCheatHierarchyTool) \
46  d("LArDLLaterTierHierarchy", DLLaterTierHierarchyTool) \
47  d("LArDLPrimaryHierarchy", DLPrimaryHierarchyTool)
48 
49 #define DL_FACTORY Factory
50 
51 //------------------------------------------------------------------------------------------------------------------------------------------
52 //------------------------------------------------------------------------------------------------------------------------------------------
53 
54 namespace lar_dl_content
55 {
56 
57 #define LAR_DL_CONTENT_CREATE_ALGORITHM_FACTORY(a, b) \
58  class b##DL_FACTORY : public pandora::AlgorithmFactory \
59  { \
60  public: \
61  pandora::Algorithm *CreateAlgorithm() const \
62  { \
63  return new b; \
64  }; \
65  };
66 
68 
69 //------------------------------------------------------------------------------------------------------------------------------------------
70 
71 #define LAR_DL_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b) \
72  class b##DL_FACTORY : public pandora::AlgorithmToolFactory \
73  { \
74  public: \
75  pandora::AlgorithmTool *CreateAlgorithmTool() const \
76  { \
77  return new b; \
78  }; \
79  };
80 
82 
83 } // namespace lar_dl_content
84 
85 //------------------------------------------------------------------------------------------------------------------------------------------
86 //------------------------------------------------------------------------------------------------------------------------------------------
87 
88 #define LAR_DL_CONTENT_REGISTER_ALGORITHM(a, b) \
89  { \
90  const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmFactory(pandora, a, new lar_dl_content::b##DL_FACTORY)); \
91  if (pandora::STATUS_CODE_SUCCESS != statusCode) \
92  return statusCode; \
93  }
94 
95 #define LAR_DL_CONTENT_REGISTER_ALGORITHM_TOOL(a, b) \
96  { \
97  const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmToolFactory(pandora, a, new lar_dl_content::b##DL_FACTORY)); \
98  if (pandora::STATUS_CODE_SUCCESS != statusCode) \
99  return statusCode; \
100  }
101 // clang-format on
102 
103 pandora::StatusCode LArDLContent::RegisterAlgorithms(const pandora::Pandora &pandora)
104 {
107  return pandora::STATUS_CODE_SUCCESS;
108 }
Header file detailing content for use with particle flow reconstruction at liquid argon time projecti...
Header file for the cut based pfo characterisation algorithm class.
#define LAR_DL_CONTENT_REGISTER_ALGORITHM(a, b)
Definition: LArDLContent.cc:88
Header file for the DL primary hierarchy tool.
Header file for the master algorithm class.
Header file for the cheat hierarchy tool.
Header file for the deep learning track shower id validation algorithm.
#define LAR_DL_ALGORITHM_LIST(d)
Definition: LArDLContent.cc:32
#define LAR_DL_ALGORITHM_TOOL_LIST(d)
Definition: LArDLContent.cc:44
Header file for the DL neutrino hierarchy algorithm class.
#define LAR_DL_CONTENT_REGISTER_ALGORITHM_TOOL(a, b)
Definition: LArDLContent.cc:95
Header file for the deep learning track shower id algorithm.
#define LAR_DL_CONTENT_CREATE_ALGORITHM_FACTORY(a, b)
Definition: LArDLContent.cc:57
#define LAR_DL_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b)
Definition: LArDLContent.cc:71
Header file for the deep learning track shower cluster streaming algorithm.
Header file for the DL later hierarchy tool.
static pandora::StatusCode RegisterAlgorithms(const pandora::Pandora &pandora)
Register all the lar dl content algorithms and tools with pandora.