NAIA  1.1.1
MCTruth.cpp
Go to the documentation of this file.
1 #include "fmt/format.h"
2 #include <bitset>
3 
4 #include "Containers/MCTruth.h"
5 
6 namespace NAIA {
7 const std::string MCTruthBase::BranchName = "MCTruthBaseData";
8 const std::string MCTruthPlus::BranchName = "MCTruthPlusData";
9 
11 
12 void MCTruthBaseData::Dump() const {
13  fmt::print("{:=^120} \n", " MCTruthBaseData ");
14 
15  fmt::print("{:<32}\n", "Primary particle");
16  fmt::print(" {:>12} {:>12} {:>12} {:>12} {:>12} {:>20}\n", "Z", "A", "Mass", "PDG", "Gen. Momentum",
17  "Gen. Position");
18  int charge = Primary.Z;
19  for (unsigned int i = 0; i < Primary.Position.size(); ++i) {
20  fmt::print(" {:>12} {:>12} {:>12.3f} {:>12} {:>12.3f} ({:6.2f}, {:6.2f}, {:6.2f})\n", charge, Primary.A,
22  Primary.Position[i][2]);
23  }
24  fmt::print("{:-^120}\n", "");
25 }
26 
27 void MCTruthPlusData::Dump() const {
28  fmt::print("{:=^120} \n", " MCTruthPlus ");
29 
30  fmt::print("{:<32}\n", "Secondary particles");
31  fmt::print(" {:>12} {:>12} {:>12} {:>12} {:>12} {:>12} {:>12} {:>12} {:>20}\n", "Z", "A", "Mass", "PDG",
32  "ID (parent)", "Proc1", "Proc2", "Gen. Momentum", "Gen. Position");
33  for (const auto &sec : Secondaries) {
34  int charge = sec.Z;
35  fmt::print(" {:>12} {:>12} {:>12.3f} {:>12} {:>12} {:>12} {:>12} {:>12.3f} ({:6.2f}, {:6.2f}, {:6.2f})\n", charge,
36  sec.A, sec.Mass, sec.PDGCode, fmt::format("{} ({})", sec.partID, sec.parentID), sec.Proc1, sec.Proc2,
37  sec.GetGenMomentum(), sec.Position[0][0], sec.Position[0][1], sec.Position[0][2]);
38  }
39  fmt::print("{:-^120}\n", "");
40 }
41 
43  Secondaries.clear();
44  TrackMCHits.clear();
45 }
46 } // namespace NAIA
NAIA::MCTruthBaseData::Dump
void Dump() const
Dump on screen container content.
Definition: MCTruth.cpp:12
NAIA::MCParticle
Simple struct to describe a MC particle.
Definition: MCTruth.h:32
NAIA::MCParticle::Z
int Z
particle charge
Definition: MCTruth.h:34
NAIA::MCTruthPlusData::Clear
void Clear()
Clear container content.
Definition: MCTruth.cpp:42
NAIA::MCParticle::Position
std::vector< TVector3 > Position
particle position at different z-heights.
Definition: MCTruth.h:38
NAIA::MCTruthPlusData::Dump
void Dump() const
Dump on screen container content.
Definition: MCTruth.cpp:27
NAIA
Definition: Event.h:13
MCTruth.h
MCTruth container class description.
NAIA::MCParticle::Mass
float Mass
particle mass in GeV/c^2
Definition: MCTruth.h:36
NAIA::MCParticle::PDGCode
int PDGCode
particle PDG code
Definition: MCTruth.h:33
NAIA::MCTruthPlusData::Secondaries
std::vector< MCParticle > Secondaries
list of particles created by interaction of the primary particle
Definition: MCTruth.h:154
NAIA::MCParticle::A
unsigned int A
particle mass number
Definition: MCTruth.h:35
NAIA::MCTruthPlusData::TrackMCHits
LayerVariable< TrMCHit > TrackMCHits
A collection of the closest MCHit to the TrTrack cluster on each layer.
Definition: MCTruth.h:155
NAIA::MCTruthBaseData::Primary
MCParticle Primary
primary particle
Definition: MCTruth.h:111
NAIA::MCTruthPlus::BranchName
static const std::string BranchName
Definition: MCTruth.h:187
NAIA::MCTruthBase::BranchName
static const std::string BranchName
Definition: MCTruth.h:172
NAIA::MCParticle::GetGenMomentum
double GetGenMomentum() const
Get the particle generation momentum.
Definition: MCTruth.h:51
NAIA::MCTruthBaseData::Clear
void Clear()
Clear container content.
Definition: MCTruth.cpp:10