LArSoft  v10_04_05
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 
24 
26 
27 // clang-format off
28 #define LAR_DL_ALGORITHM_LIST(d) \
29  d("LArDLMaster", DLMasterAlgorithm) \
30  d("LArDLClusterCharacterisation", DlClusterCharacterisationAlgorithm) \
31  d("LArDLHitTrackShowerId", DlHitTrackShowerIdAlgorithm) \
32  d("LArDLPfoCharacterisation", DlPfoCharacterisationAlgorithm) \
33  d("LArDLHitValidation", DlHitValidationAlgorithm) \
34  d("LArDLTrackShowerStreamSelection", DlTrackShowerStreamSelectionAlgorithm) \
35  d("LArDLSNSignal", DlSNSignalAlgorithm) \
36  d("LArDLVertexing", DlVertexingAlgorithm) \
37  d("LArDLSecondaryVertexing", DlSecondaryVertexingAlgorithm)
38 
39 #define LAR_DL_ALGORITHM_TOOL_LIST(d)
40 
41 #define DL_FACTORY Factory
42 
43 //------------------------------------------------------------------------------------------------------------------------------------------
44 //------------------------------------------------------------------------------------------------------------------------------------------
45 
46 namespace lar_dl_content
47 {
48 
49 #define LAR_DL_CONTENT_CREATE_ALGORITHM_FACTORY(a, b) \
50  class b##DL_FACTORY : public pandora::AlgorithmFactory \
51  { \
52  public: \
53  pandora::Algorithm *CreateAlgorithm() const \
54  { \
55  return new b; \
56  }; \
57  };
58 
60 
61 //------------------------------------------------------------------------------------------------------------------------------------------
62 
63 #define LAR_DL_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b) \
64  class b##DL_FACTORY : public pandora::AlgorithmToolFactory \
65  { \
66  public: \
67  pandora::AlgorithmTool *CreateAlgorithmTool() const \
68  { \
69  return new b; \
70  }; \
71  };
72 
74 
75 } // namespace lar_dl_content
76 
77 //------------------------------------------------------------------------------------------------------------------------------------------
78 //------------------------------------------------------------------------------------------------------------------------------------------
79 
80 #define LAR_DL_CONTENT_REGISTER_ALGORITHM(a, b) \
81  { \
82  const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmFactory(pandora, a, new lar_dl_content::b##DL_FACTORY)); \
83  if (pandora::STATUS_CODE_SUCCESS != statusCode) \
84  return statusCode; \
85  }
86 
87 #define LAR_DL_CONTENT_REGISTER_ALGORITHM_TOOL(a, b) \
88  { \
89  const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmToolFactory(pandora, a, new lar_dl_content::b##DL_FACTORY)); \
90  if (pandora::STATUS_CODE_SUCCESS != statusCode) \
91  return statusCode; \
92  }
93 // clang-format on
94 
95 pandora::StatusCode LArDLContent::RegisterAlgorithms(const pandora::Pandora &pandora)
96 {
99  return pandora::STATUS_CODE_SUCCESS;
100 }
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:80
#define LAR_DL_ALGORITHM_LIST(d)
Definition: LArDLContent.cc:28
Header file for the master algorithm class.
#define LAR_DL_ALGORITHM_TOOL_LIST(d)
Definition: LArDLContent.cc:39
Header file for the deep learning track shower id validation algorithm.
#define LAR_DL_CONTENT_REGISTER_ALGORITHM_TOOL(a, b)
Definition: LArDLContent.cc:87
Header file for the deep learning track shower id algorithm.
#define LAR_DL_CONTENT_CREATE_ALGORITHM_FACTORY(a, b)
Definition: LArDLContent.cc:49
#define LAR_DL_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b)
Definition: LArDLContent.cc:63
Header file for the deep learning track shower cluster streaming algorithm.
static pandora::StatusCode RegisterAlgorithms(const pandora::Pandora &pandora)
Register all the lar dl content algorithms and tools with pandora.
Definition: LArDLContent.cc:95