All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LArDLContent.cc
Go to the documentation of this file.
1 /**
2  * @file larpandoradlcontent/LArDLContent.cc
3  *
4  * @brief Factory implementations for content intended for use with particle flow reconstruction at liquid argon time projection chambers
5  *
6  * $Log: $
7  */
8 
9 #include "Api/PandoraApi.h"
10 
11 #include "Pandora/Algorithm.h"
12 #include "Pandora/AlgorithmTool.h"
13 #include "Pandora/Pandora.h"
14 
22 
24 
25 // clang-format off
26 #define LAR_DL_ALGORITHM_LIST(d) \
27  d("LArDLMaster", DLMasterAlgorithm) \
28  d("LArDLClusterCharacterisation", DlClusterCharacterisationAlgorithm) \
29  d("LArDLHitTrackShowerId", DlHitTrackShowerIdAlgorithm) \
30  d("LArDLPfoCharacterisation", DlPfoCharacterisationAlgorithm) \
31  d("LArDLHitValidation", DlHitValidationAlgorithm) \
32  d("LArDLTrackShowerStreamSelection", DlTrackShowerStreamSelectionAlgorithm) \
33  d("LArDLVertexing", DlVertexingAlgorithm)
34 
35 #define LAR_DL_ALGORITHM_TOOL_LIST(d)
36 
37 #define DL_FACTORY Factory
38 
39 //------------------------------------------------------------------------------------------------------------------------------------------
40 //------------------------------------------------------------------------------------------------------------------------------------------
41 
42 namespace lar_dl_content
43 {
44 
45 #define LAR_DL_CONTENT_CREATE_ALGORITHM_FACTORY(a, b) \
46  class b##DL_FACTORY : public pandora::AlgorithmFactory \
47  { \
48  public: \
49  pandora::Algorithm *CreateAlgorithm() const \
50  { \
51  return new b; \
52  }; \
53  };
54 
56 
57 //------------------------------------------------------------------------------------------------------------------------------------------
58 
59 #define LAR_DL_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b) \
60  class b##DL_FACTORY : public pandora::AlgorithmToolFactory \
61  { \
62  public: \
63  pandora::AlgorithmTool *CreateAlgorithmTool() const \
64  { \
65  return new b; \
66  }; \
67  };
68 
70 
71 } // namespace lar_dl_content
72 
73 //------------------------------------------------------------------------------------------------------------------------------------------
74 //------------------------------------------------------------------------------------------------------------------------------------------
75 
76 #define LAR_DL_CONTENT_REGISTER_ALGORITHM(a, b) \
77  { \
78  const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmFactory(pandora, a, new lar_dl_content::b##DL_FACTORY)); \
79  if (pandora::STATUS_CODE_SUCCESS != statusCode) \
80  return statusCode; \
81  }
82 
83 #define LAR_DL_CONTENT_REGISTER_ALGORITHM_TOOL(a, b) \
84  { \
85  const pandora::StatusCode statusCode(PandoraApi::RegisterAlgorithmToolFactory(pandora, a, new lar_dl_content::b##DL_FACTORY)); \
86  if (pandora::STATUS_CODE_SUCCESS != statusCode) \
87  return statusCode; \
88  }
89 // clang-format on
90 
91 pandora::StatusCode LArDLContent::RegisterAlgorithms(const pandora::Pandora &pandora)
92 {
95  return pandora::STATUS_CODE_SUCCESS;
96 }
Header file detailing content for use with particle flow reconstruction at liquid argon time projecti...
#define LAR_DL_CONTENT_CREATE_ALGORITHM_FACTORY(a, b)
Definition: LArDLContent.cc:45
Header file for the cut based pfo characterisation algorithm class.
Header file for the master algorithm class.
#define LAR_DL_ALGORITHM_TOOL_LIST(d)
Definition: LArDLContent.cc:35
#define LAR_DL_CONTENT_CREATE_ALGORITHM_TOOL_FACTORY(a, b)
Definition: LArDLContent.cc:59
Header file for the deep learning track shower id validation algorithm.
#define LAR_DL_CONTENT_REGISTER_ALGORITHM_TOOL(a, b)
Definition: LArDLContent.cc:83
required by fuzzyCluster table::sbnd_g4_services gaushitTruthMatch pandora
Definition: reco_sbnd.fcl:182
Header file for the deep learning track shower id algorithm.
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:91
#define LAR_DL_ALGORITHM_LIST(d)
Definition: LArDLContent.cc:26
#define LAR_DL_CONTENT_REGISTER_ALGORITHM(a, b)
Definition: LArDLContent.cc:76