ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtHit.cxx
Go to the documentation of this file.
1 #include "AtHit.h"
2 
3 #include <Rtypes.h>
4 
5 #include <H5Cpp.h>
6 
7 #include <cmath>
8 #include <utility>
10 
11 AtHit::AtHit(Int_t hitID) : AtHit(hitID, -1, XYZPoint(0, 0, -1000), -1) {}
12 
13 AtHit::AtHit(Int_t hitID, Int_t PadNum, XYZPoint loc, Double_t charge)
14  : fPadNum(PadNum), fHitID(hitID), fPosition(std::move(loc)), fCharge(charge)
15 {
16 }
17 
18 AtHit::AtHit(Int_t padNum, XYZPoint loc, Double_t charge) : AtHit(-1, padNum, std::move(loc), charge) {}
19 
20 std::unique_ptr<AtHit> AtHit::Clone()
21 {
22  return std::make_unique<AtHit>(*this);
23 }
24 
26 {
27  return {std::sqrt(fPositionVariance.X()), std::sqrt(fPositionVariance.Y()), std::sqrt(fPositionVariance.Z())};
28 }
29 
30 H5::CompType AtHit::GetHDF5Type()
31 {
32  H5::CompType type(sizeof(AtHit_t));
33 
34  type.insertMember("x", HOFFSET(AtHit_t, x), H5::PredType::NATIVE_DOUBLE); // NOLINT
35  type.insertMember("y", HOFFSET(AtHit_t, y), H5::PredType::NATIVE_DOUBLE); // NOLINT
36  type.insertMember("z", HOFFSET(AtHit_t, z), H5::PredType::NATIVE_DOUBLE); // NOLINT
37  type.insertMember("t", HOFFSET(AtHit_t, t), H5::PredType::NATIVE_INT); // NOLINT
38  type.insertMember("A", HOFFSET(AtHit_t, A), H5::PredType::NATIVE_DOUBLE); // NOLINT
39  type.insertMember("trackID", HOFFSET(AtHit_t, trackID), H5::PredType::NATIVE_INT); // NOLINT
40  type.insertMember("pointIDMC", HOFFSET(AtHit_t, pointIDMC), H5::PredType::NATIVE_INT); // NOLINT
41  type.insertMember("energyMC", HOFFSET(AtHit_t, energyMC), H5::PredType::NATIVE_DOUBLE); // NOLINT
42  type.insertMember("elossMC", HOFFSET(AtHit_t, elossMC), H5::PredType::NATIVE_DOUBLE); // NOLINT
43  type.insertMember("angleMC", HOFFSET(AtHit_t, angleMC), H5::PredType::NATIVE_DOUBLE); // NOLINT
44  type.insertMember("AMC", HOFFSET(AtHit_t, AMC), H5::PredType::NATIVE_INT); // NOLINT
45  type.insertMember("ZMC", HOFFSET(AtHit_t, ZMC), H5::PredType::NATIVE_INT); // NOLINT
46 
47  return type;
48 }
AtHit::GetPositionSigma
XYZVector GetPositionSigma() const
Definition: AtHit.cxx:25
AtHit::XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtHit.h:29
AtHit::fPositionVariance
XYZVector fPositionVariance
Definition: AtHit.h:37
AtHit::XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtHit.h:30
AtHit.h
y
const double * y
Definition: lmcurve.cxx:20
AtHit::GetHDF5Type
H5::CompType GetHDF5Type()
Returns the type specification of a hit.
Definition: AtHit.cxx:30
ClassImp
ClassImp(AtHit)
AtHit::AtHit
AtHit(Int_t hitID=-1)
Definition: AtHit.cxx:11
AtHit_t
Definition: AtHit.h:125
AtHit::Clone
virtual std::unique_ptr< AtHit > Clone()
Definition: AtHit.cxx:20
AtHit
Point in space with charge.
Definition: AtHit.h:27