Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
ShowerTrackStartPosition_tool.cc
Go to the documentation of this file.
1//############################################################################
2//### Name: ShowerTrackStartPosition ###
3//### Author: Dom Barker ###
4//### Date: 13.05.19 ###
5//### Description: Tool for settung the shower start position to the ###
6// start of the fitted track ###
7//############################################################################
8
9//Framework Includes
10#include "art/Utilities/ToolMacros.h"
11
12//LArSoft Includes
13#include "lardataobj/RecoBase/Track.h"
15
16namespace ShowerRecoTools {
17
19
20 public:
21 ShowerTrackStartPosition(const fhicl::ParameterSet& pset);
22
23 //Generic Direction Finder
24 int CalculateElement(const art::Ptr<recob::PFParticle>& pfparticle,
25 art::Event& Event,
26 reco::shower::ShowerElementHolder& ShowerEleHolder) override;
27
28 private:
32 };
33
35 : IShowerTool(pset.get<fhicl::ParameterSet>("BaseTools"))
36 , fVerbose(pset.get<int>("Verbose"))
37 , fInitialTrackInputLabel(pset.get<std::string>("InitialTrackInputLabel"))
38 , fShowerStartPositionOutputLabel(pset.get<std::string>("ShowerStartPositionOutputLabel"))
39 {}
40
41 int ShowerTrackStartPosition::CalculateElement(const art::Ptr<recob::PFParticle>& pfparticle,
42 art::Event& Event,
43 reco::shower::ShowerElementHolder& ShowerEleHolder)
44 {
45
46 //Check the Track has been defined
47 if (!ShowerEleHolder.CheckElement("InitialTrack")) {
48 if (fVerbose)
49 mf::LogError("ShowerTrackStartPosition") << "Initial track not set" << std::endl;
50 return 1;
51 }
52 recob::Track InitialTrack;
53 ShowerEleHolder.GetElement(fInitialTrackInputLabel, InitialTrack);
54
55 //Set the shower start position as the
56 geo::Point_t StartPositionErr = {-999, -999, -999};
57
58 geo::Point_t TrajPosition = InitialTrack.LocationAtPoint(0);
59 ShowerEleHolder.SetElement(TrajPosition, StartPositionErr, fShowerStartPositionOutputLabel);
60
61 return 0;
62 }
63}
64
ShowerTrackStartPosition(const fhicl::ParameterSet &pset)
int CalculateElement(const art::Ptr< recob::PFParticle > &pfparticle, art::Event &Event, reco::shower::ShowerElementHolder &ShowerEleHolder) override
int GetElement(const std::string &Name, T &Element) const
void SetElement(T &dataproduct, const std::string &Name, bool checktag=false)
bool CheckElement(const std::string &Name) const