All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ILArPandora.h
Go to the documentation of this file.
1 /**
2  * @file larpandora/LArPandoraInterface/ILArPandora.h
3  *
4  * @brief Interface class for LArPandora producer modules, which reconstruct recob::PFParticles from recob::Hits
5  */
6 
7 #ifndef I_LAR_PANDORA_H
8 #define I_LAR_PANDORA_H 1
9 
10 #include "art/Framework/Core/EDProducer.h"
11 #include "canvas/Persistency/Common/Ptr.h"
12 
13 namespace recob {class Hit;}
14 namespace pandora {class Pandora;}
15 
16 //------------------------------------------------------------------------------------------------------------------------------------------
17 
18 namespace lar_pandora
19 {
20 
21 typedef std::map< int, art::Ptr<recob::Hit> > IdToHitMap;
22 
23 /**
24  * @brief ILArPandora class
25  */
26 class ILArPandora : public art::EDProducer
27 {
28 public:
29  /**
30  * @brief Constructor
31  *
32  * @param pset the parameter set
33  */
34  ILArPandora(fhicl::ParameterSet const &pset);
35 
36  /**
37  * @brief Destructor
38  */
39  virtual ~ILArPandora();
40 
41 protected:
42  /**
43  * @brief Create pandora instances
44  */
45  virtual void CreatePandoraInstances() = 0;
46 
47  /**
48  * @brief Configure pandora instances
49  */
50  virtual void ConfigurePandoraInstances() = 0;
51 
52  /**
53  * @brief Delete pandora instances
54  */
55  virtual void DeletePandoraInstances() = 0;
56 
57  /**
58  * @brief Create pandora input hits, mc particles etc.
59  *
60  * @param evt the art event
61  * @param idToHitMap to receive the populated pandora hit id to art hit map
62  */
63  virtual void CreatePandoraInput(art::Event &evt, IdToHitMap &idToHitMap) = 0;
64 
65  /**
66  * @brief Process pandora output particle flow objects
67  *
68  * @param evt the art event
69  * @param idToHitMap the pandora hit id to art hit map
70  */
71  virtual void ProcessPandoraOutput(art::Event &evt, const IdToHitMap &idToHitMap) = 0;
72 
73  /**
74  * @brief Run all associated pandora instances
75  */
76  virtual void RunPandoraInstances() = 0;
77 
78  /**
79  * @brief Reset all associated pandora instances
80  */
81  virtual void ResetPandoraInstances() = 0;
82 
83  const pandora::Pandora *m_pPrimaryPandora; ///< The address of the primary pandora instance
84 };
85 
86 //------------------------------------------------------------------------------------------------------------------------------------------
87 
88 inline ILArPandora::ILArPandora(fhicl::ParameterSet const &pset) :
89  EDProducer(pset),
90  m_pPrimaryPandora(nullptr)
91 {
92 }
93 
94 //------------------------------------------------------------------------------------------------------------------------------------------
95 
97 {
98 }
99 
100 } // namespace lar_pandora
101 
102 #endif // #ifndef I_LAR_PANDORA_H
ILArPandora class.
Definition: ILArPandora.h:26
std::map< int, art::Ptr< recob::Hit > > IdToHitMap
Definition: ILArPandora.h:21
virtual void CreatePandoraInput(art::Event &evt, IdToHitMap &idToHitMap)=0
Create pandora input hits, mc particles etc.
const pandora::Pandora * m_pPrimaryPandora
The address of the primary pandora instance.
Definition: ILArPandora.h:83
virtual void CreatePandoraInstances()=0
Create pandora instances.
virtual void ResetPandoraInstances()=0
Reset all associated pandora instances.
virtual ~ILArPandora()
Destructor.
Definition: ILArPandora.h:96
required by fuzzyCluster table::sbnd_g4_services gaushitTruthMatch pandora
Definition: reco_sbnd.fcl:182
virtual void ProcessPandoraOutput(art::Event &evt, const IdToHitMap &idToHitMap)=0
Process pandora output particle flow objects.
ILArPandora(fhicl::ParameterSet const &pset)
Constructor.
Definition: ILArPandora.h:88
virtual void DeletePandoraInstances()=0
Delete pandora instances.
virtual void RunPandoraInstances()=0
Run all associated pandora instances.
TCEvent evt
Definition: DataStructs.cxx:8
virtual void ConfigurePandoraInstances()=0
Configure pandora instances.