38 :
IShowerTool(pset.get<fhicl::ParameterSet>(
"BaseTools"))
39 , fPFParticleLabel(pset.get<
art::InputTag>(
"PFParticleLabel"))
40 , fVerbose(pset.get<int>(
"Verbose"))
41 , fShowerPCAInputLabel(pset.get<std::string>(
"ShowerPCAInputLabel"))
42 , fShowerLengthOutputLabel(pset.get<std::string>(
"ShowerLengthOutputLabel"))
43 , fShowerOpeningAngleOutputLabel(pset.get<std::string>(
"ShowerOpeningAngleOutputLabel"))
44 , fNSigma(pset.get<float>(
"NSigma"))
48 const art::Ptr<recob::PFParticle>& pfparticle,
55 mf::LogError(
"ShowerPCAEigenvalueLength") <<
"PCA not set, returning " << std::endl;
59 recob::PCAxis PCA = recob::PCAxis();
62 const double* eigenValues = PCA.getEigenValues();
72 double primaryEigenValue = (eigenValues)[0];
73 double ShowerLength = std::sqrt(primaryEigenValue) * 2 *
fNSigma;
74 double ShowerLengthError = -999;
77 double secondaryEigenValue = (eigenValues)[1];
78 double ShowerWidth = std::sqrt(secondaryEigenValue) * 2 *
fNSigma;
80 double ShowerAngle = std::atan(ShowerWidth / ShowerLength);
81 double ShowerAngleError = -999;