Skip to content

Conversation

@mkandemirr
Copy link
Contributor

Describe your changes

This tool visualizes LAPPD waveforms for each event and generates a PDF file. The necessary explanations and configuration details for this tool can be found in the Readme file.

This tool has been tested within the ToolAnalysis framework, as part of the LAPPDana toolchain, and the output file is included in the attachment.

In ToolAnalysis, there is another tool called LAPPDPlotWaveForms2D, which, contrary to what its name suggests, does not create plots. Instead, it generates a ROOT file and saves histograms in it. After taking laser data in Fermilab’s Lab 6 darkroom, the LAPPDPlotWaveForms2D tool is used within the LAPPDana toolchain to create this ROOT file, which is then visualized using an independent Python code. The new tool, LAPPDWaveformDisplay, simplifies this process by generating the visualizations in one step.

Additionally, this tool is more general and includes extra features, which are detailed in the Readme file.

LAPPDWaveformDisplay.pdf

Checklist before submitting your PR

  • This PR implements a single change (one new/modified Tool, or a set of changes to implement one new/modified feature)
  • [x ] This PR alters the minimum number of files to affect this change
  • [ x] If this PR includes a new Tool, a README and minimal demonstration ToolChain is provided
  • [ x] If a new Tool/ToolChain requires model or configuration files, their paths are not hard-coded, and means of generating those files is described in the readme, with examples provided on /pnfs/annie/persistent
  • [x ] For every new usage, there is a reason the data must be on the heap
  • [ x] For every new there is a delete, unless I explicitly know why (e.g. ROOT or a BoostStore takes ownership)

Additional Material

Attach any validation or demonstration files here. You may also link to relavant docdb articles.

@mkandemirr mkandemirr changed the title Added LAPPDWaveformDisplayTool Added LAPPDWaveformDisplay tool Mar 30, 2025
@S81D S81D self-assigned this Aug 21, 2025
DetectorGeoFile ./configfiles/LoadGeometry/DetectorGeometrySpecs.csv
LAPPDGeoFile ./configfiles/LAPPDana/LAPPDGeometry.csv
TankPMTGeoFile ./configfiles/LoadGeometry/FullTankPMTGeometry.csv
TankPMTGainFile ./configfiles/LoadGeometry/ChannelSPEGains_BeamRun20192020.csv
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it has been updated to the latest geometry file.
mIsEventRangeDefined = true;
}

std::string storeErrMsg = "Error: Data retrieval from 'Store' failed.";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a big deal but in the future it will be easier for someone to de-bug if you add independent output for which data object failed to be retrieved from the store.

@S81D
Copy link
Collaborator

S81D commented Sep 3, 2025

I think everything looks good. All instances of new appear to be deleted properly. It's a standalone tool and you implemented the change to the updated geometry file path, thanks! Good to merge.

@brichards64 brichards64 merged commit b1e47c0 into ANNIEsoft:Application Sep 19, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants