LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
LArPandoraInput.h
Go to the documentation of this file.
1 
7 #ifndef LAR_PANDORA_INPUT_H
8 #define LAR_PANDORA_INPUT_H 1
9 
10 namespace detinfo {
11  class DetectorPropertiesData;
12 }
13 
17 
19 
20 namespace pandora {
21  class Pandora;
22 }
23 
24 namespace lar_pandora {
25 
30  public:
34  class Settings {
35  public:
39  Settings();
40 
41  const pandora::Pandora* m_pPrimaryPandora;
47  double m_dx_cm;
48  double m_int_cm;
49  double m_rad_cm;
50  double m_dEdX_mip;
51  double m_mips_max;
53  double m_mips_to_gev;
55  };
56 
66  static void CreatePandoraHits2D(const art::Event& evt,
67  const Settings& settings,
68  const LArDriftVolumeMap& driftVolumeMap,
69  const HitVector& hitVector,
70  IdToHitMap& idToHitMap);
71 
78  static void CreatePandoraLArTPCs(const Settings& settings,
79  const LArDriftVolumeList& driftVolumeList);
80 
88  static void CreatePandoraDetectorGaps(const Settings& settings,
89  const LArDriftVolumeList& driftVolumeList,
90  const LArDetectorGapList& listOfGaps);
91 
98  static void CreatePandoraReadoutGaps(const Settings& settings,
99  const LArDriftVolumeMap& driftVolumeMap);
100 
108  static void CreatePandoraMCParticles(const Settings& settings,
109  const MCTruthToMCParticles& truthToParticles,
110  const MCParticlesToMCTruth& particlesToTruth,
111  const RawMCParticleVector& generatorMCParticleVector);
112 
119  static void FindPrimaryParticles(const RawMCParticleVector& mcParticleVector,
120  std::map<const simb::MCParticle, bool>& primaryMCParticleMap);
121 
128  static bool IsPrimaryMCParticle(const art::Ptr<simb::MCParticle>& mcParticle,
129  std::map<const simb::MCParticle, bool>& primaryMCParticleMap);
130 
138  static void CreatePandoraMCLinks2D(const Settings& settings,
139  const HitMap& hitMap,
140  const HitsToTrackIDEs& hitToParticleMap);
141 
142  private:
143  typedef std::map<std::string, lar_content::MCProcess> MCProcessMap;
144 
153  static void GetTrueStartAndEndPoints(const Settings& settings,
154  const art::Ptr<simb::MCParticle>& particle,
155  int& startT,
156  int& endT);
157 
167  static void GetTrueStartAndEndPoints(const geo::TPCID& ref_tpcid,
168  const art::Ptr<simb::MCParticle>& particle,
169  int& startT,
170  int& endT);
171 
179  static float GetTrueX0(const art::Event& evt,
180  const art::Ptr<simb::MCParticle>& particle,
181  const int nT);
182 
190  static double GetMips(const detinfo::DetectorPropertiesData& detProp,
191  const Settings& settings,
192  const double hit_Charge,
193  const geo::View_t hit_View);
194 
200  static void FillMCProcessMap(MCProcessMap& processMap);
201  };
202 
203 } // namespace lar_pandora
204 
205 #endif // #ifndef LAR_PANDORA_INPUT_H
std::map< int, art::Ptr< recob::Hit > > IdToHitMap
Definition: ILArPandora.h:24
Interface class for LArPandora producer modules, which reconstruct recob::PFParticles from recob::Hit...
Helper functions for extracting detector geometry for use in reconsruction.
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
std::map< unsigned int, LArDriftVolume > LArDriftVolumeMap
std::map< art::Ptr< simb::MCParticle >, art::Ptr< simb::MCTruth > > MCParticlesToMCTruth
std::vector< LArDriftVolume > LArDriftVolumeList
const pandora::Pandora * m_pPrimaryPandora
std::map< int, art::Ptr< recob::Hit > > HitMap
std::map< art::Ptr< recob::Hit >, TrackIDEVector > HitsToTrackIDEs
std::vector< simb::MCParticle > RawMCParticleVector
std::map< art::Ptr< simb::MCTruth >, MCParticleVector > MCTruthToMCParticles
General LArSoft Utilities.
The data type to uniquely identify a TPC.
Definition: geo_types.h:381
Header file for the lar mc particle class.
std::vector< art::Ptr< recob::Hit > > HitVector
std::map< std::string, lar_content::MCProcess > MCProcessMap
std::vector< LArDetectorGap > LArDetectorGapList
TCEvent evt
Definition: DataStructs.cxx:8
helper function for LArPandoraInterface producer module
Definition: fwd.h:26
LArPandoraInput class.