LArPandora.h
Go to the documentation of this file.
1 /**
2  * @file larpandora/LArPandoraInterface/LArPandora.h
3  *
4  * @brief Base producer module for reconstructing recob::PFParticles from recob::Hits
5  *
6  */
7 
8 #ifndef LAR_PANDORA_H
9 #define LAR_PANDORA_H 1
10 
15 
16 #include <memory> // std::unique_ptr<>
17 #include <string>
18 
19 namespace lar_pandora {
20 
21  /**
22  * @brief LArPandora class
23  */
24  class LArPandora : public ILArPandora {
25  public:
26  /**
27  * @brief Constructor
28  *
29  * @param pset the parameter set
30  */
31  LArPandora(fhicl::ParameterSet const& pset);
32 
33  void beginJob();
34  void produce(art::Event& evt);
35 
36  protected:
37  void CreatePandoraInput(art::Event& evt, IdToHitMap& idToHitMap);
38  void ProcessPandoraOutput(art::Event& evt, const IdToHitMap& idToHitMap);
39 
40  std::string m_configFile; ///< The config file
41 
42  bool
43  m_shouldRunAllHitsCosmicReco; ///< Steering: whether to run all hits cosmic-ray reconstruction
44  bool
45  m_shouldRunStitching; ///< Steering: whether to stitch cosmic-ray muons crossing between volumes
46  bool m_shouldRunCosmicHitRemoval; ///< Steering: whether to remove hits from tagged cosmic-rays
47  bool
48  m_shouldRunSlicing; ///< Steering: whether to slice events into separate regions for processing
49  bool
50  m_shouldRunNeutrinoRecoOption; ///< Steering: whether to run neutrino reconstruction for each slice
51  bool
52  m_shouldRunCosmicRecoOption; ///< Steering: whether to run cosmic-ray reconstruction for each slice
53  bool
54  m_shouldPerformSliceId; ///< Steering: whether to identify slices and select most appropriate pfos
55  bool m_shouldProduceAllOutcomes; ///< Steering: whether to produce all reconstruction outcomes
56  bool m_printOverallRecoStatus; ///< Steering: whether to print current operation status messages
57 
58  std::string m_generatorModuleLabel; ///< The generator module label
59  std::string m_geantModuleLabel; ///< The geant module label
60  std::string m_simChannelModuleLabel; ///< The SimChannel producer module label
61  std::string m_hitfinderModuleLabel; ///< The hit finder module label
62  std::string m_backtrackerModuleLabel; ///< The back tracker module label
63 
64  std::string m_allOutcomesInstanceLabel; ///< The instance label for all outcomes
65 
66  bool m_enableProduction; ///< Whether to persist output products
67  bool m_enableDetectorGaps; ///< Whether to pass detector gap information to Pandora instances
68  bool
69  m_enableMCParticles; ///< Whether to pass mc information to Pandora instances to aid development
70  bool
71  m_disableRealDataCheck; ///< Whether to check if the input file contains real data before accessing MC information
72  bool m_lineGapsCreated; ///< Book-keeping: whether line gap creation has been called
73 
74  LArPandoraInput::Settings m_inputSettings; ///< The lar pandora input settings
75  LArPandoraOutput::Settings m_outputSettings; ///< The lar pandora output settings
76 
77  LArDriftVolumeMap m_driftVolumeMap; ///< The map from volume id to drift volume
78  };
79 
80 } // namespace lar_pandora
81 
82 #endif // #ifndef LAR_PANDORA_H
Interface class for LArPandora producer modules, which reconstruct recob::PFParticles from recob::Hit...
std::string m_allOutcomesInstanceLabel
The instance label for all outcomes.
Definition: LArPandora.h:64
void CreatePandoraInput(art::Event &evt, IdToHitMap &idToHitMap)
Create pandora input hits, mc particles etc.
Definition: LArPandora.cxx:178
ILArPandora class.
Definition: ILArPandora.h:26
Helper functions for extracting detector geometry for use in reconsruction.
std::string string
Definition: nybbler.cc:12
std::map< unsigned int, LArDriftVolume > LArDriftVolumeMap
bool m_shouldRunAllHitsCosmicReco
Steering: whether to run all hits cosmic-ray reconstruction.
Definition: LArPandora.h:43
bool m_disableRealDataCheck
Whether to check if the input file contains real data before accessing MC information.
Definition: LArPandora.h:71
bool m_shouldProduceAllOutcomes
Steering: whether to produce all reconstruction outcomes.
Definition: LArPandora.h:55
std::map< int, art::Ptr< recob::Hit > > IdToHitMap
Definition: ILArPandora.h:21
Helper functions for processing outputs from pandora.
std::string m_backtrackerModuleLabel
The back tracker module label.
Definition: LArPandora.h:62
bool m_lineGapsCreated
Book-keeping: whether line gap creation has been called.
Definition: LArPandora.h:72
bool m_shouldRunCosmicHitRemoval
Steering: whether to remove hits from tagged cosmic-rays.
Definition: LArPandora.h:46
bool m_shouldRunNeutrinoRecoOption
Steering: whether to run neutrino reconstruction for each slice.
Definition: LArPandora.h:50
LArDriftVolumeMap m_driftVolumeMap
The map from volume id to drift volume.
Definition: LArPandora.h:77
bool m_printOverallRecoStatus
Steering: whether to print current operation status messages.
Definition: LArPandora.h:56
std::string m_generatorModuleLabel
The generator module label.
Definition: LArPandora.h:58
std::string m_geantModuleLabel
The geant module label.
Definition: LArPandora.h:59
void ProcessPandoraOutput(art::Event &evt, const IdToHitMap &idToHitMap)
Process pandora output particle flow objects.
Definition: LArPandora.cxx:244
bool m_shouldRunCosmicRecoOption
Steering: whether to run cosmic-ray reconstruction for each slice.
Definition: LArPandora.h:52
LArPandora(fhicl::ParameterSet const &pset)
Constructor.
Definition: LArPandora.cxx:44
std::string m_configFile
The config file.
Definition: LArPandora.h:40
bool m_enableDetectorGaps
Whether to pass detector gap information to Pandora instances.
Definition: LArPandora.h:67
void produce(art::Event &evt)
Definition: LArPandora.cxx:166
bool m_shouldRunStitching
Steering: whether to stitch cosmic-ray muons crossing between volumes.
Definition: LArPandora.h:45
LArPandoraInput::Settings m_inputSettings
The lar pandora input settings.
Definition: LArPandora.h:74
LArPandoraOutput::Settings m_outputSettings
The lar pandora output settings.
Definition: LArPandora.h:75
Helper functions for providing inputs to pandora.
bool m_shouldRunSlicing
Steering: whether to slice events into separate regions for processing.
Definition: LArPandora.h:48
TCEvent evt
Definition: DataStructs.cxx:7
bool m_enableMCParticles
Whether to pass mc information to Pandora instances to aid development.
Definition: LArPandora.h:69
LArPandora class.
Definition: LArPandora.h:24
bool m_enableProduction
Whether to persist output products.
Definition: LArPandora.h:66
std::string m_simChannelModuleLabel
The SimChannel producer module label.
Definition: LArPandora.h:60
bool m_shouldPerformSliceId
Steering: whether to identify slices and select most appropriate pfos.
Definition: LArPandora.h:54
std::string m_hitfinderModuleLabel
The hit finder module label.
Definition: LArPandora.h:61