StdCandlesNtupleVars.h
Go to the documentation of this file.
1 #include <numeric>
2 #include <string>
3 #include <vector>
4 #include <boost/shared_ptr.hpp>
5 #include "TLorentzVector.h"
6 
7 namespace calib
8 {
9  /// Information about one of the true particles that contribute to a candidate Michel electron
11  {
12  public:
14  : pdg(0), contribEFrac(-1), fracCaptured(-1)
15  {};
16  virtual ~TrueEContrib() {};
17 
18  long int pdg;
19  double contribEFrac; ///< how much of the Michel candidate's energy is due to this particle
20  double fracCaptured; ///< how much of this particle's true energy is contained in the reconstructed Michel
21 
22  std::string geantCreationProcName; ///< GEANT4's name for the process that created this particle
23  TLorentzVector trueFourP; // in MeV/c
24  };
25 
26  /// When a Michel candidate has a contribution from a true Michel electron, we want more info about it
27  class TrueMichel : public TrueEContrib
28  {
29  public:
31  : TrueEContrib(), totalRange(-1), deadFraction(-1),
32  ElostToBrem(-1), ElostToDeadMaterials(-1)
33  {};
34  virtual ~TrueMichel() {};
35 
36  double totalRange; // what is the total true range (g/cm^2) traversed by a true Michel electron?
37  double deadFraction; // what fraction of the totalRange was through inactive materials?
38 
39  double ElostToBrem; ///< if it was a true Michel electron, how much of its total energy was radiated away in Bremsstrahlung?
40  double ElostToDeadMaterials; ///< if it was a true Michel electron, how much of its total energy was deposited in inactive materials (like PVC)? --- n.b. this is a (poor) estimate only!
41  };
42 
43  /// When a Michel candidate has a contribution from a neutron capture, that's also interesting
45  {
46  public:
48  : TrueEContrib(), GENIEProcess(0), primaryNeutron(false), nCaptureNucleus(0)
49  {};
50  virtual ~TrueNeutronCapture() {};
51 
52  unsigned int GENIEProcess; ///< which GENIE process produced this neutron capture?
53  bool primaryNeutron; ///< was this neutron "primary" (from GENIE, produced in the neutrino interaction) or "secondary" (produced in the detector)?
54  long int nCaptureNucleus; ///< what was the target nucleus? (default: 0)
55  };
56 
57  /// Information about a reconstructed Michel electron candidate
59  {
60  public:
62  : location(TVector3()), MID(-999),
63  energy(-1), hitEnergies(std::vector<double>()), deltaT(-1), deltaR(-1), t_RMS(-1),
64  nAlreadyUsedHits(-1), alreadyUsedEnergy(-1), parentFrontZ(-1)
65  {};
66 
67  ~MichelCandidate() { for (unsigned int i = 0; i < eContribs.size(); i++) if (eContribs[i]) delete eContribs[i]; };
68 
69  TVector3 location;
70 
71  double MID; // as returned by MEFinder. cut on this definitely advised.
72 
73  double energy; // in MeV. Note that this is NOT the same as the sum of the hitEnergies due to cluster weighting!
74  std::vector<double> hitEnergies;
75  double deltaT; // in ns
76  double deltaR; // in mm
77 
78  double t_RMS; // RMS of hits that went into candidate; in ns
79 
82 
83  double parentFrontZ;
84 
85  std::vector<TrueEContrib*> eContribs;
86  };
87 }
#define location
bool primaryNeutron
was this neutron "primary" (from GENIE, produced in the neutrino interaction) or "secondary" (produce...
double ElostToBrem
if it was a true Michel electron, how much of its total energy was radiated away in Bremsstrahlung...
std::string geantCreationProcName
GEANT4&#39;s name for the process that created this particle.
CDPStorage service.
double fracCaptured
how much of this particle&#39;s true energy is contained in the reconstructed Michel
std::vector< TrueEContrib * > eContribs
double energy
Definition: plottest35.C:25
double contribEFrac
how much of the Michel candidate&#39;s energy is due to this particle
double ElostToDeadMaterials
if it was a true Michel electron, how much of its total energy was deposited in inactive materials (l...
When a Michel candidate has a contribution from a true Michel electron, we want more info about it...
std::vector< double > hitEnergies
long int nCaptureNucleus
what was the target nucleus? (default: 0)
Information about a reconstructed Michel electron candidate.
Information about one of the true particles that contribute to a candidate Michel electron...
When a Michel candidate has a contribution from a neutron capture, that&#39;s also interesting.
enum BeamMode string