LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Prints the content of all the ParticleFlow particles on screen. More...
Classes | |
struct | Config |
Public Types | |
using | Parameters = art::EDAnalyzer::Table< Config > |
using | ModuleType = EDAnalyzer |
Public Member Functions | |
DumpPFParticles (Parameters const &config) | |
Default constructor. More... | |
virtual void | analyze (const art::Event &evt) override |
Does the printing. More... | |
void | doBeginJob (SharedResources const &resources) |
void | doEndJob () |
void | doRespondToOpenInputFile (FileBlock const &fb) |
void | doRespondToCloseInputFile (FileBlock const &fb) |
void | doRespondToOpenOutputFiles (FileBlock const &fb) |
void | doRespondToCloseOutputFiles (FileBlock const &fb) |
bool | doBeginRun (RunPrincipal &rp, ModuleContext const &mc) |
bool | doEndRun (RunPrincipal &rp, ModuleContext const &mc) |
bool | doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
bool | doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc) |
bool | doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed) |
ModuleDescription const & | moduleDescription () const |
void | setModuleDescription (ModuleDescription const &) |
std::array< std::vector< ProductInfo >, NumBranchTypes > const & | getConsumables () const |
void | sortConsumables (std::string const ¤t_process_name) |
std::unique_ptr< Worker > | makeWorker (WorkerParams const &wp) |
template<typename T , BranchType BT> | |
ViewToken< T > | consumesView (InputTag const &tag) |
template<typename T , BranchType BT> | |
ViewToken< T > | mayConsumeView (InputTag const &tag) |
Protected Member Functions | |
std::string const & | processName () const |
bool | wantAllEvents () const noexcept |
bool | wantEvent (ScheduleID id, Event const &e) const |
Handle< TriggerResults > | getTriggerResults (Event const &e) const |
ConsumesCollector & | consumesCollector () |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | consumes (InputTag const &) |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | consumesView (InputTag const &) |
template<typename T , BranchType = InEvent> | |
void | consumesMany () |
template<typename T , BranchType = InEvent> | |
ProductToken< T > | mayConsume (InputTag const &) |
template<typename Element , BranchType = InEvent> | |
ViewToken< Element > | mayConsumeView (InputTag const &) |
template<typename T , BranchType = InEvent> | |
void | mayConsumeMany () |
Private Member Functions | |
void | MakePFParticleGraph (art::Event const &event, art::ValidHandle< std::vector< recob::PFParticle >> const &handle) const |
Static Private Member Functions | |
static std::string | DotFileName (art::EventID const &evtID, art::Provenance const &prodInfo) |
Private Attributes | |
art::InputTag | fInputTag |
input tag of the PFParticle product More... | |
std::string | fOutputCategory |
category for LogInfo output More... | |
bool | fPrintHexFloats |
whether to print floats in base 16 More... | |
unsigned int | fMaxDepth |
maximum generation to print (0: only primaries) More... | |
bool | fMakeEventGraphs |
whether to create one DOT file per event More... | |
Prints the content of all the ParticleFlow particles on screen.
This analyser prints the content of all the ParticleFlow particles into the LogInfo/LogVerbatim stream.
"DumpPFParticles"
): the category used for the output (useful for filtering)false
): print all the floating point numbers in base 16false
): creates a DOT file for each event, with a graph of PFParticle relations; each file is named as: ProcessName_ModuleLabel_InstanceName_Run::_Subrun::_Event::_particles.dot
, where the the input label elements refer to the data product being plotted.When MakeParticleGraphs configuration option is activated, a file is created for each event, that contains the particle flow tree in GraphViz format. The GraphViz dot
command can be used to render it into a PDF, SVG, EPS or one of the many supported bitmap formats. The typical command to use is:
dot -Tpdf -oPMTrk.pdf PMTrk.dot
A bash
command to convert all files into a OutputFormat
format:
OutputFormat='pdf' for DotFile in *.dot ; do OutputFile="${DotFile%.dot}.${OutputFormat}" [[ "$OutputFile" -ot "$DotFile" ]] || continue # up to date already echo "${DotFile} => ${OutputFile} ..." dot -T"$OutputFormat" -o"$OutputFile" "$DotFile" || break done
which will also skip files already converted.
The output shows one cell ("node") per particle. The format of the node follows these prescriptions:
#
)The relations between particles in the flow are represented by connecting lines ("edges"). Connection information is redundant: the parent particle should have the daughter in the daughter list, and the daughter should have the parent particle referenced as such. Since the connection is usually from two sources, there are usually two arrow heads, each one close to the particle that provides information on that connection; all arrow heads point from parent to daughter.
If you are trying to interpret an existing diagram, the following list is more direct to the point. Nodes: represent particles (see above for the label content)
Connecting lines ("edges"):
Definition at line 131 of file DumpPFParticles_module.cc.
|
inherited |
Definition at line 22 of file EDAnalyzer.h.
Definition at line 161 of file DumpPFParticles_module.cc.
|
explicit |
Default constructor.
Definition at line 993 of file DumpPFParticles_module.cc.
References fMaxDepth.
|
overridevirtual |
Does the printing.
Definition at line 1037 of file DumpPFParticles_module.cc.
References DEFINE_ART_MODULE, art::InputTag::encode(), fInputTag, fMakeEventGraphs, fMaxDepth, fOutputCategory, fPrintHexFloats, art::ProductRetriever::getValidHandle(), art::Event::id(), and MakePFParticleGraph().
|
protectedinherited |
Definition at line 61 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumes().
|
protectedinherited |
|
protectedinherited |
Definition at line 75 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumesMany().
|
protectedinherited |
|
inherited |
Definition at line 68 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::consumesView().
|
inherited |
Definition at line 25 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 68 of file Analyzer.cc.
References art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 84 of file Analyzer.cc.
References art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 33 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 76 of file Analyzer.cc.
References art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 92 of file Analyzer.cc.
References art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 100 of file Analyzer.cc.
References e, and art::ModuleContext::scheduleID().
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 47 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 61 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 40 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
inherited |
Definition at line 54 of file Analyzer.cc.
Referenced by art::detail::Analyzer::Analyzer().
|
staticprivate |
Definition at line 1007 of file DumpPFParticles_module.cc.
References art::EventID::event(), art::Provenance::moduleLabel(), art::Provenance::processName(), art::Provenance::productInstanceName(), art::EventID::run(), art::EventID::subRun(), and util::to_string().
Referenced by MakePFParticleGraph().
|
inherited |
Definition at line 43 of file ModuleBase.cc.
References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().
|
protectedinherited |
Definition at line 75 of file Observer.cc.
References art::ProductRetriever::get(), and art::Observer::selectors_.
Referenced by art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().
|
private |
Definition at line 1017 of file DumpPFParticles_module.cc.
References DotFileName(), art::EventID::event(), art::EventID::run(), and art::EventID::subRun().
Referenced by analyze().
|
inherited |
Definition at line 37 of file ModuleBase.cc.
References art::ModuleBase::doMakeWorker(), and art::NumBranchTypes.
|
protectedinherited |
Definition at line 82 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsume().
|
protectedinherited |
Definition at line 96 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeMany().
|
protectedinherited |
|
inherited |
Definition at line 89 of file ModuleBase.h.
References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeView().
|
inherited |
Definition at line 13 of file ModuleBase.cc.
References art::errors::LogicError.
Referenced by art::OutputModule::doRespondToOpenInputFile(), art::OutputModule::doWriteEvent(), art::Modifier::fillProductDescriptions(), art::OutputModule::makePlugins_(), art::OutputWorker::OutputWorker(), reco::shower::LArPandoraModularShowerCreation::produce(), art::Modifier::registerProducts(), and art::OutputModule::registerProducts().
|
protectedinherited |
Definition at line 57 of file Observer.cc.
References art::Observer::process_name_.
Referenced by art::FileDumperOutput::printPrincipal().
|
inherited |
|
inherited |
Definition at line 49 of file ModuleBase.cc.
References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().
|
inlineprotectednoexceptinherited |
Definition at line 31 of file Observer.h.
References e, art::Observer::getTriggerResults(), art::Observer::wantAllEvents_, and art::Observer::wantEvent().
|
protectedinherited |
Definition at line 63 of file Observer.cc.
References art::Observer::rejectors_, art::Observer::selectors_, and art::Observer::wantAllEvents_.
Referenced by art::OutputModule::doEvent(), art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().
|
private |
input tag of the PFParticle product
Definition at line 170 of file DumpPFParticles_module.cc.
Referenced by analyze().
|
private |
whether to create one DOT file per event
Definition at line 174 of file DumpPFParticles_module.cc.
Referenced by analyze().
|
private |
maximum generation to print (0: only primaries)
Definition at line 173 of file DumpPFParticles_module.cc.
Referenced by analyze(), and DumpPFParticles().
|
private |
category for LogInfo output
Definition at line 171 of file DumpPFParticles_module.cc.
Referenced by analyze().
|
private |
whether to print floats in base 16
Definition at line 172 of file DumpPFParticles_module.cc.
Referenced by analyze().