CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
MaterialBudgetTree Class Reference

#include <MaterialBudgetTree.h>

Inheritance diagram for MaterialBudgetTree:
MaterialBudgetFormat

Public Member Functions

void endOfRun () override
 
void fillEndTrack () override
 
void fillPerStep () override
 
void fillStartTrack () override
 
 MaterialBudgetTree (std::shared_ptr< MaterialBudgetData > data, const std::string &fileName)
 
 ~MaterialBudgetTree () override
 
- Public Member Functions inherited from MaterialBudgetFormat
 MaterialBudgetFormat (std::shared_ptr< MaterialBudgetData > data)
 
virtual ~MaterialBudgetFormat ()
 

Private Member Functions

void book ()
 

Private Attributes

float t_DeltaIL [MAXSTEPS]
 
float t_DeltaIL_AIR [MAXSTEPS]
 
float t_DeltaIL_CAB [MAXSTEPS]
 
float t_DeltaIL_COL [MAXSTEPS]
 
float t_DeltaIL_ELE [MAXSTEPS]
 
float t_DeltaIL_OTH [MAXSTEPS]
 
float t_DeltaIL_SEN [MAXSTEPS]
 
float t_DeltaIL_SUP [MAXSTEPS]
 
float t_DeltaMB [MAXSTEPS]
 
float t_DeltaMB_AIR [MAXSTEPS]
 
float t_DeltaMB_CAB [MAXSTEPS]
 
float t_DeltaMB_COL [MAXSTEPS]
 
float t_DeltaMB_ELE [MAXSTEPS]
 
float t_DeltaMB_OTH [MAXSTEPS]
 
float t_DeltaMB_SEN [MAXSTEPS]
 
float t_DeltaMB_SUP [MAXSTEPS]
 
double t_FinalX [MAXSTEPS]
 
double t_FinalY [MAXSTEPS]
 
double t_FinalZ [MAXSTEPS]
 
float t_IL
 
double t_InitialX [MAXSTEPS]
 
double t_InitialY [MAXSTEPS]
 
double t_InitialZ [MAXSTEPS]
 
float t_MaterialDensity [MAXSTEPS]
 
int t_MaterialID [MAXSTEPS]
 
float t_MaterialLambda0 [MAXSTEPS]
 
const char * t_MaterialName [MAXSTEPS]
 
float t_MaterialX0 [MAXSTEPS]
 
float t_MB
 
int t_Nsteps
 
float t_ParticleEnergy
 
float t_ParticleEta
 
int t_ParticleID
 
float t_ParticleMass
 
float t_ParticlePhi
 
float t_ParticlePt
 
float t_ParticleStepFinalBeta [MAXSTEPS]
 
float t_ParticleStepFinalEnergy [MAXSTEPS]
 
float t_ParticleStepFinalEta [MAXSTEPS]
 
float t_ParticleStepFinalGamma [MAXSTEPS]
 
float t_ParticleStepFinalMass [MAXSTEPS]
 
float t_ParticleStepFinalPhi [MAXSTEPS]
 
float t_ParticleStepFinalPt [MAXSTEPS]
 
float t_ParticleStepFinalPx [MAXSTEPS]
 
float t_ParticleStepFinalPy [MAXSTEPS]
 
float t_ParticleStepFinalPz [MAXSTEPS]
 
int t_ParticleStepID [MAXSTEPS]
 
float t_ParticleStepInitialBeta [MAXSTEPS]
 
float t_ParticleStepInitialEnergy [MAXSTEPS]
 
float t_ParticleStepInitialEta [MAXSTEPS]
 
float t_ParticleStepInitialGamma [MAXSTEPS]
 
float t_ParticleStepInitialMass [MAXSTEPS]
 
float t_ParticleStepInitialPhi [MAXSTEPS]
 
float t_ParticleStepInitialPt [MAXSTEPS]
 
float t_ParticleStepInitialPx [MAXSTEPS]
 
float t_ParticleStepInitialPy [MAXSTEPS]
 
float t_ParticleStepInitialPz [MAXSTEPS]
 
int t_ParticleStepPostInteraction [MAXSTEPS]
 
int t_ParticleStepPreInteraction [MAXSTEPS]
 
int t_VolumeCopy [MAXSTEPS]
 
int t_VolumeID [MAXSTEPS]
 
const char * t_VolumeName [MAXSTEPS]
 
float t_VolumeX [MAXSTEPS]
 
float t_VolumeXaxis1 [MAXSTEPS]
 
float t_VolumeXaxis2 [MAXSTEPS]
 
float t_VolumeXaxis3 [MAXSTEPS]
 
float t_VolumeY [MAXSTEPS]
 
float t_VolumeYaxis1 [MAXSTEPS]
 
float t_VolumeYaxis2 [MAXSTEPS]
 
float t_VolumeYaxis3 [MAXSTEPS]
 
float t_VolumeZ [MAXSTEPS]
 
float t_VolumeZaxis1 [MAXSTEPS]
 
float t_VolumeZaxis2 [MAXSTEPS]
 
float t_VolumeZaxis3 [MAXSTEPS]
 
std::unique_ptr< TFile > theFile
 
std::unique_ptr< TTree > theTree
 

Static Private Attributes

static const int MAXSTEPS = 10000
 

Additional Inherited Members

- Protected Attributes inherited from MaterialBudgetFormat
std::shared_ptr< MaterialBudgetDatatheData
 
std::string theFileName
 

Detailed Description

Definition at line 10 of file MaterialBudgetTree.h.

Constructor & Destructor Documentation

MaterialBudgetTree::MaterialBudgetTree ( std::shared_ptr< MaterialBudgetData data,
const std::string &  fileName 
)

Definition at line 6 of file MaterialBudgetTree.cc.

References book(), and theFile.

8  theFile = std::make_unique<TFile>(filename.c_str(), "RECREATE");
9  theFile->cd();
10  book();
11 }
std::unique_ptr< TFile > theFile
MaterialBudgetFormat(std::shared_ptr< MaterialBudgetData > data)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
MaterialBudgetTree::~MaterialBudgetTree ( )
inlineoverride

Definition at line 13 of file MaterialBudgetTree.h.

References book(), endOfRun(), fillEndTrack(), fillPerStep(), and fillStartTrack().

13 {}

Member Function Documentation

void MaterialBudgetTree::book ( )
private

Definition at line 13 of file MaterialBudgetTree.cc.

References LogDebug, t_DeltaIL, t_DeltaIL_AIR, t_DeltaIL_CAB, t_DeltaIL_COL, t_DeltaIL_ELE, t_DeltaIL_OTH, t_DeltaIL_SEN, t_DeltaIL_SUP, t_DeltaMB, t_DeltaMB_AIR, t_DeltaMB_CAB, t_DeltaMB_COL, t_DeltaMB_ELE, t_DeltaMB_OTH, t_DeltaMB_SEN, t_DeltaMB_SUP, t_FinalX, t_FinalY, t_FinalZ, t_IL, t_InitialX, t_InitialY, t_InitialZ, t_MaterialDensity, t_MaterialID, t_MaterialLambda0, t_MaterialName, t_MaterialX0, t_MB, t_Nsteps, t_ParticleEnergy, t_ParticleEta, t_ParticleID, t_ParticleMass, t_ParticlePhi, t_ParticlePt, t_ParticleStepFinalBeta, t_ParticleStepFinalEnergy, t_ParticleStepFinalEta, t_ParticleStepFinalGamma, t_ParticleStepFinalMass, t_ParticleStepFinalPhi, t_ParticleStepFinalPt, t_ParticleStepFinalPx, t_ParticleStepFinalPy, t_ParticleStepFinalPz, t_ParticleStepID, t_ParticleStepInitialBeta, t_ParticleStepInitialEnergy, t_ParticleStepInitialEta, t_ParticleStepInitialGamma, t_ParticleStepInitialMass, t_ParticleStepInitialPhi, t_ParticleStepInitialPt, t_ParticleStepInitialPx, t_ParticleStepInitialPy, t_ParticleStepInitialPz, t_ParticleStepPostInteraction, t_ParticleStepPreInteraction, t_VolumeCopy, t_VolumeID, t_VolumeName, t_VolumeX, t_VolumeXaxis1, t_VolumeXaxis2, t_VolumeXaxis3, t_VolumeY, t_VolumeYaxis1, t_VolumeYaxis2, t_VolumeYaxis3, t_VolumeZ, t_VolumeZaxis1, t_VolumeZaxis2, t_VolumeZaxis3, MaterialBudgetFormat::theData, and theTree.

Referenced by MaterialBudgetTree(), and ~MaterialBudgetTree().

13  {
14  LogDebug("MaterialBudget") << "MaterialBudgetTree: Booking user TTree";
15  // create the TTree
16  theTree = std::make_unique<TTree>("T1", "GeometryTest Tree");
17 
18  // GENERAL block
19  theTree->Branch("MB", &t_MB, "MB/F");
20  theTree->Branch("IL", &t_IL, "IL/F");
21 
22  // PARTICLE Block
23  theTree->Branch("Particle ID", &t_ParticleID, "Particle_ID/I");
24  theTree->Branch("Particle Pt", &t_ParticlePt, "Particle_Pt/F");
25  theTree->Branch("Particle Eta", &t_ParticleEta, "Particle_Eta/F");
26  theTree->Branch("Particle Phi", &t_ParticlePhi, "Particle_Phi/F");
27  theTree->Branch("Particle Energy", &t_ParticleEnergy, "Particle_E/F");
28  theTree->Branch("Particle Mass", &t_ParticleMass, "Particle_M/F");
29 
30  if (theData->allStepsON()) {
31  theTree->Branch("Nsteps", &t_Nsteps, "Nsteps/I");
32  theTree->Branch("DeltaMB", t_DeltaMB, "DeltaMB[Nsteps]/F");
33  theTree->Branch("DeltaMB_SUP", t_DeltaMB_SUP, "DeltaMB_SUP[Nsteps]/F");
34  theTree->Branch("DeltaMB_SEN", t_DeltaMB_SEN, "DeltaMB_SEN[Nsteps]/F");
35  theTree->Branch("DeltaMB_CAB", t_DeltaMB_CAB, "DeltaMB_CAB[Nsteps]/F");
36  theTree->Branch("DeltaMB_COL", t_DeltaMB_COL, "DeltaMB_COL[Nsteps]/F");
37  theTree->Branch("DeltaMB_ELE", t_DeltaMB_ELE, "DeltaMB_ELE[Nsteps]/F");
38  theTree->Branch("DeltaMB_OTH", t_DeltaMB_OTH, "DeltaMB_OTH[Nsteps]/F");
39  theTree->Branch("DeltaMB_AIR", t_DeltaMB_AIR, "DeltaMB_AIR[Nsteps]/F");
40 
41  theTree->Branch("DeltaIL", t_DeltaIL, "DeltaIL[Nsteps]/F");
42  theTree->Branch("DeltaIL_SUP", t_DeltaIL_SUP, "DeltaIL_SUP[Nsteps]/F");
43  theTree->Branch("DeltaIL_SEN", t_DeltaIL_SEN, "DeltaIL_SEN[Nsteps]/F");
44  theTree->Branch("DeltaIL_CAB", t_DeltaIL_CAB, "DeltaIL_CAB[Nsteps]/F");
45  theTree->Branch("DeltaIL_COL", t_DeltaIL_COL, "DeltaIL_COL[Nsteps]/F");
46  theTree->Branch("DeltaIL_ELE", t_DeltaIL_ELE, "DeltaIL_ELE[Nsteps]/F");
47  theTree->Branch("DeltaIL_OTH", t_DeltaIL_OTH, "DeltaIL_OTH[Nsteps]/F");
48  theTree->Branch("DeltaIL_AIR", t_DeltaIL_AIR, "DeltaIL_AIR[Nsteps]/F");
49 
50  theTree->Branch("Initial X", t_InitialX, "Initial_X[Nsteps]/D");
51  theTree->Branch("Initial Y", t_InitialY, "Initial_Y[Nsteps]/D");
52  theTree->Branch("Initial Z", t_InitialZ, "Initial_Z[Nsteps]/D");
53 
54  theTree->Branch("Final X", t_FinalX, "Final_X[Nsteps]/D");
55  theTree->Branch("Final Y", t_FinalY, "Final_Y[Nsteps]/D");
56  theTree->Branch("Final Z", t_FinalZ, "Final_Z[Nsteps]/D");
57 
58  theTree->Branch("Volume ID", t_VolumeID, "VolumeID[Nsteps]/I");
59  theTree->Branch("Volume Name", t_VolumeName, "VolumeName[Nsteps]/C");
60  theTree->Branch("Volume Copy", t_VolumeCopy, "VolumeCopy[Nsteps]/I");
61  theTree->Branch("Volume X", t_VolumeX, "VolumeX[Nsteps]/F");
62  theTree->Branch("Volume Y", t_VolumeY, "VolumeY[Nsteps]/F");
63  theTree->Branch("Volume Z", t_VolumeZ, "VolumeZ[Nsteps]/F");
64  theTree->Branch("Volume X axis 1", t_VolumeXaxis1, "VolumeXaxis1[Nsteps]/F");
65  theTree->Branch("Volume X axis 2", t_VolumeXaxis2, "VolumeXaxis2[Nsteps]/F");
66  theTree->Branch("Volume X axis 3", t_VolumeXaxis3, "VolumeXaxis3[Nsteps]/F");
67  theTree->Branch("Volume Y axis 1", t_VolumeYaxis1, "VolumeYaxis1[Nsteps]/F");
68  theTree->Branch("Volume Y axis 2", t_VolumeYaxis2, "VolumeYaxis2[Nsteps]/F");
69  theTree->Branch("Volume Y axis 3", t_VolumeYaxis3, "VolumeYaxis3[Nsteps]/F");
70  theTree->Branch("Volume Z axis 1", t_VolumeZaxis1, "VolumeZaxis1[Nsteps]/F");
71  theTree->Branch("Volume Z axis 2", t_VolumeZaxis2, "VolumeZaxis2[Nsteps]/F");
72  theTree->Branch("Volume Z axis 3", t_VolumeZaxis3, "VolumeZaxis3[Nsteps]/F");
73 
74  theTree->Branch("Material ID", t_MaterialID, "MaterialID[Nsteps]/I");
75  theTree->Branch("Material Name", t_MaterialName, "MaterialName[Nsteps]/C");
76  theTree->Branch("Material X0", t_MaterialX0, "MaterialX0[Nsteps]/F");
77  theTree->Branch("Material Lambda0", t_MaterialLambda0, "MaterialLambda0[Nsteps]/F");
78  theTree->Branch("Material Density", t_MaterialDensity, "MaterialDensity[Nsteps]/F");
79 
80  theTree->Branch("Particle Step ID", t_ParticleStepID, "Step_ID[Nsteps]/I");
81  theTree->Branch("Particle Step Initial Pt", t_ParticleStepInitialPt, "Step_Initial_Pt[Nsteps]/F");
82  theTree->Branch("Particle Step Initial Eta", t_ParticleStepInitialEta, "Step_Initial_Eta[Nsteps]/F");
83  theTree->Branch("Particle Step Initial Phi", t_ParticleStepInitialPhi, "Step_Initial_Phi[Nsteps]/F");
84  theTree->Branch("Particle Step Initial Energy", t_ParticleStepInitialEnergy, "Step_Initial_E[Nsteps]/F");
85  theTree->Branch("Particle Step Initial Px", t_ParticleStepInitialPx, "Step_Initial_Px[Nsteps]/F");
86  theTree->Branch("Particle Step Initial Py", t_ParticleStepInitialPy, "Step_Initial_Py[Nsteps]/F");
87  theTree->Branch("Particle Step Initial Pz", t_ParticleStepInitialPz, "Step_Initial_Pz[Nsteps]/F");
88  theTree->Branch("Particle Step Initial Beta", t_ParticleStepInitialBeta, "Step_Initial_Beta[Nsteps]/F");
89  theTree->Branch("Particle Step Initial Gamma", t_ParticleStepInitialGamma, "Step_Initial_Gamma[Nsteps]/F");
90  theTree->Branch("Particle Step Initial Mass", t_ParticleStepInitialMass, "Step_Initial_Mass[Nsteps]/F");
91  theTree->Branch("Particle Step Final Pt", t_ParticleStepFinalPt, "Step_Final_Pt[Nsteps]/F");
92  theTree->Branch("Particle Step Final Eta", t_ParticleStepFinalEta, "Step_Final_Eta[Nsteps]/F");
93  theTree->Branch("Particle Step Final Phi", t_ParticleStepFinalPhi, "Step_Final_Phi[Nsteps]/F");
94  theTree->Branch("Particle Step Final Energy", t_ParticleStepFinalEnergy, "Step_Final_E[Nsteps]/F");
95  theTree->Branch("Particle Step Final Px", t_ParticleStepFinalPx, "Step_Final_Px[Nsteps]/F");
96  theTree->Branch("Particle Step Final Py", t_ParticleStepFinalPy, "Step_Final_Py[Nsteps]/F");
97  theTree->Branch("Particle Step Final Pz", t_ParticleStepFinalPz, "Step_Final_Pz[Nsteps]/F");
98  theTree->Branch("Particle Step Final Beta", t_ParticleStepFinalBeta, "Step_Final_Beta[Nsteps]/F");
99  theTree->Branch("Particle Step Final Gamma", t_ParticleStepFinalGamma, "Step_Final_Gamma[Nsteps]/F");
100  theTree->Branch("Particle Step Final Mass", t_ParticleStepFinalMass, "Step_Final_Mass[Nsteps]/F");
101  theTree->Branch("Particle Step Pre Interaction", t_ParticleStepPreInteraction, "Step_PreInteraction[Nsteps]/I");
102  theTree->Branch("Particle Step Post Interaction", t_ParticleStepPostInteraction, "Step_PostInteraction[Nsteps]/I");
103  }
104 
105  LogDebug("MaterialBudget") << "MaterialBudgetTree: Booking user TTree done";
106 }
#define LogDebug(id)
float t_MaterialLambda0[MAXSTEPS]
float t_DeltaIL_CAB[MAXSTEPS]
float t_ParticleStepFinalEnergy[MAXSTEPS]
float t_VolumeXaxis3[MAXSTEPS]
float t_DeltaMB_CAB[MAXSTEPS]
float t_DeltaMB_SEN[MAXSTEPS]
float t_VolumeXaxis1[MAXSTEPS]
float t_ParticleStepFinalPt[MAXSTEPS]
float t_DeltaIL_OTH[MAXSTEPS]
float t_ParticleStepFinalPhi[MAXSTEPS]
float t_ParticleStepInitialPt[MAXSTEPS]
int t_MaterialID[MAXSTEPS]
float t_DeltaIL_ELE[MAXSTEPS]
float t_DeltaIL_SEN[MAXSTEPS]
float t_ParticleStepInitialPx[MAXSTEPS]
double t_InitialX[MAXSTEPS]
double t_FinalX[MAXSTEPS]
float t_DeltaMB_AIR[MAXSTEPS]
float t_VolumeYaxis3[MAXSTEPS]
float t_ParticleStepFinalPx[MAXSTEPS]
float t_ParticleStepFinalEta[MAXSTEPS]
std::unique_ptr< TTree > theTree
float t_ParticleStepInitialPhi[MAXSTEPS]
float t_VolumeZaxis1[MAXSTEPS]
float t_ParticleStepInitialPz[MAXSTEPS]
float t_ParticleStepFinalGamma[MAXSTEPS]
int t_ParticleStepPostInteraction[MAXSTEPS]
float t_DeltaMB_COL[MAXSTEPS]
int t_VolumeID[MAXSTEPS]
float t_VolumeY[MAXSTEPS]
int t_ParticleStepID[MAXSTEPS]
float t_ParticleStepFinalPy[MAXSTEPS]
float t_ParticleStepInitialPy[MAXSTEPS]
float t_DeltaMB_OTH[MAXSTEPS]
float t_ParticleStepInitialEta[MAXSTEPS]
float t_VolumeZaxis3[MAXSTEPS]
double t_InitialY[MAXSTEPS]
float t_VolumeYaxis2[MAXSTEPS]
const char * t_VolumeName[MAXSTEPS]
float t_ParticleStepInitialEnergy[MAXSTEPS]
int t_ParticleStepPreInteraction[MAXSTEPS]
float t_ParticleStepFinalMass[MAXSTEPS]
float t_ParticleStepInitialBeta[MAXSTEPS]
float t_DeltaIL_COL[MAXSTEPS]
float t_MaterialDensity[MAXSTEPS]
float t_DeltaIL_AIR[MAXSTEPS]
const char * t_MaterialName[MAXSTEPS]
float t_ParticleStepFinalBeta[MAXSTEPS]
float t_VolumeZaxis2[MAXSTEPS]
float t_ParticleStepFinalPz[MAXSTEPS]
float t_ParticleStepInitialGamma[MAXSTEPS]
double t_FinalZ[MAXSTEPS]
float t_VolumeZ[MAXSTEPS]
float t_DeltaMB_ELE[MAXSTEPS]
float t_DeltaMB[MAXSTEPS]
float t_VolumeX[MAXSTEPS]
float t_DeltaMB_SUP[MAXSTEPS]
float t_DeltaIL[MAXSTEPS]
float t_VolumeYaxis1[MAXSTEPS]
float t_DeltaIL_SUP[MAXSTEPS]
float t_ParticleStepInitialMass[MAXSTEPS]
double t_FinalY[MAXSTEPS]
float t_VolumeXaxis2[MAXSTEPS]
std::shared_ptr< MaterialBudgetData > theData
int t_VolumeCopy[MAXSTEPS]
double t_InitialZ[MAXSTEPS]
float t_MaterialX0[MAXSTEPS]
void MaterialBudgetTree::endOfRun ( )
overridevirtual

Reimplemented from MaterialBudgetFormat.

Definition at line 210 of file MaterialBudgetTree.cc.

References theFile, and theTree.

Referenced by ~MaterialBudgetTree().

210  {
211  // Prefered method to include any instruction
212  // once all the tracks are done
213 
214  edm::LogInfo("MaterialBudget") << "MaterialBudgetTree Writing TTree to ROOT file";
215 
216  theFile->cd();
217  theTree->Write();
218  theFile->Close();
219 }
std::unique_ptr< TFile > theFile
std::unique_ptr< TTree > theTree
void MaterialBudgetTree::fillEndTrack ( )
overridevirtual

Reimplemented from MaterialBudgetFormat.

Definition at line 112 of file MaterialBudgetTree.cc.

References cuy::ii, MAXSTEPS, t_DeltaIL, t_DeltaIL_AIR, t_DeltaIL_CAB, t_DeltaIL_COL, t_DeltaIL_ELE, t_DeltaIL_OTH, t_DeltaIL_SEN, t_DeltaIL_SUP, t_DeltaMB, t_DeltaMB_AIR, t_DeltaMB_CAB, t_DeltaMB_COL, t_DeltaMB_ELE, t_DeltaMB_OTH, t_DeltaMB_SEN, t_DeltaMB_SUP, t_FinalX, t_FinalY, t_FinalZ, t_IL, t_InitialX, t_InitialY, t_InitialZ, t_MaterialDensity, t_MaterialID, t_MaterialLambda0, t_MaterialName, t_MaterialX0, t_MB, t_Nsteps, t_ParticleEnergy, t_ParticleEta, t_ParticleID, t_ParticleMass, t_ParticlePhi, t_ParticlePt, t_ParticleStepFinalBeta, t_ParticleStepFinalEnergy, t_ParticleStepFinalEta, t_ParticleStepFinalGamma, t_ParticleStepFinalMass, t_ParticleStepFinalPhi, t_ParticleStepFinalPt, t_ParticleStepFinalPx, t_ParticleStepFinalPy, t_ParticleStepFinalPz, t_ParticleStepID, t_ParticleStepInitialBeta, t_ParticleStepInitialEnergy, t_ParticleStepInitialEta, t_ParticleStepInitialGamma, t_ParticleStepInitialMass, t_ParticleStepInitialPhi, t_ParticleStepInitialPt, t_ParticleStepInitialPx, t_ParticleStepInitialPy, t_ParticleStepInitialPz, t_ParticleStepPostInteraction, t_ParticleStepPreInteraction, t_VolumeCopy, t_VolumeID, t_VolumeName, t_VolumeX, t_VolumeXaxis1, t_VolumeXaxis2, t_VolumeXaxis3, t_VolumeY, t_VolumeYaxis1, t_VolumeYaxis2, t_VolumeYaxis3, t_VolumeZ, t_VolumeZaxis1, t_VolumeZaxis2, t_VolumeZaxis3, MaterialBudgetFormat::theData, and theTree.

Referenced by ~MaterialBudgetTree().

112  {
113  t_MB = theData->getTotalMB();
114  t_IL = theData->getTotalIL();
115  // t_Eta = theData->getEta();
116  // t_Phi = theData->getPhi();
117 
118  t_ParticleID = theData->getID();
119  t_ParticlePt = theData->getPt();
120  t_ParticleEta = theData->getEta();
121  t_ParticlePhi = theData->getPhi();
122  t_ParticleEnergy = theData->getEnergy();
123  t_ParticleMass = theData->getMass();
124 
125  if (theData->allStepsON()) {
126  t_Nsteps = theData->getNumberOfSteps();
127 
128  if (t_Nsteps > MAXSTEPS)
129  t_Nsteps = MAXSTEPS;
130 
131  edm::LogInfo("MaterialBudget") << "MaterialBudgetTree: Number of Steps into the tree " << t_Nsteps;
132 
133  for (int ii = 0; ii < t_Nsteps; ii++) {
134  t_DeltaMB[ii] = theData->getStepDmb(ii);
135  t_DeltaMB_SUP[ii] = theData->getSupportDmb(ii);
136  t_DeltaMB_SEN[ii] = theData->getSensitiveDmb(ii);
137  t_DeltaMB_CAB[ii] = theData->getCablesDmb(ii);
138  t_DeltaMB_COL[ii] = theData->getCoolingDmb(ii);
139  t_DeltaMB_ELE[ii] = theData->getElectronicsDmb(ii);
140  t_DeltaMB_OTH[ii] = theData->getOtherDmb(ii);
141  t_DeltaMB_AIR[ii] = theData->getAirDmb(ii);
142 
143  t_DeltaIL[ii] = theData->getStepDil(ii);
144  t_DeltaIL_SUP[ii] = theData->getSupportDil(ii);
145  t_DeltaIL_SEN[ii] = theData->getSensitiveDil(ii);
146  t_DeltaIL_CAB[ii] = theData->getCablesDil(ii);
147  t_DeltaIL_COL[ii] = theData->getCoolingDil(ii);
148  t_DeltaIL_ELE[ii] = theData->getElectronicsDil(ii);
149  t_DeltaIL_OTH[ii] = theData->getOtherDil(ii);
150  t_DeltaIL_AIR[ii] = theData->getAirDil(ii);
151 
152  t_InitialX[ii] = theData->getStepInitialX(ii);
153  t_InitialY[ii] = theData->getStepInitialY(ii);
154  t_InitialZ[ii] = theData->getStepInitialZ(ii);
155  t_FinalX[ii] = theData->getStepFinalX(ii);
156  t_FinalY[ii] = theData->getStepFinalY(ii);
157  t_FinalZ[ii] = theData->getStepFinalZ(ii);
158 
159  t_VolumeID[ii] = theData->getStepVolumeID(ii);
160  t_VolumeName[ii] = theData->getStepVolumeName(ii).c_str();
161  t_VolumeCopy[ii] = theData->getStepVolumeCopy(ii);
162  t_VolumeX[ii] = theData->getStepVolumeX(ii);
163  t_VolumeY[ii] = theData->getStepVolumeY(ii);
164  t_VolumeZ[ii] = theData->getStepVolumeZ(ii);
165  t_VolumeXaxis1[ii] = theData->getStepVolumeXaxis(ii).x();
166  t_VolumeXaxis2[ii] = theData->getStepVolumeXaxis(ii).y();
167  t_VolumeXaxis3[ii] = theData->getStepVolumeXaxis(ii).z();
168  t_VolumeYaxis1[ii] = theData->getStepVolumeYaxis(ii).x();
169  t_VolumeYaxis2[ii] = theData->getStepVolumeYaxis(ii).y();
170  t_VolumeYaxis3[ii] = theData->getStepVolumeYaxis(ii).z();
171  t_VolumeZaxis1[ii] = theData->getStepVolumeZaxis(ii).x();
172  t_VolumeZaxis2[ii] = theData->getStepVolumeZaxis(ii).y();
173  t_VolumeZaxis3[ii] = theData->getStepVolumeZaxis(ii).z();
174 
175  t_MaterialID[ii] = theData->getStepMaterialID(ii);
176  t_MaterialName[ii] = theData->getStepMaterialName(ii).c_str();
177  t_MaterialX0[ii] = theData->getStepMaterialX0(ii);
178  t_MaterialLambda0[ii] = theData->getStepMaterialLambda0(ii);
179  t_MaterialDensity[ii] = theData->getStepMaterialDensity(ii);
180 
181  t_ParticleStepID[ii] = theData->getStepID(ii);
182  t_ParticleStepInitialPt[ii] = theData->getStepInitialPt(ii);
183  t_ParticleStepInitialEta[ii] = theData->getStepInitialEta(ii);
184  t_ParticleStepInitialPhi[ii] = theData->getStepInitialPhi(ii);
185  t_ParticleStepInitialEnergy[ii] = theData->getStepInitialEnergy(ii);
186  t_ParticleStepInitialPx[ii] = theData->getStepInitialPx(ii);
187  t_ParticleStepInitialPy[ii] = theData->getStepInitialPy(ii);
188  t_ParticleStepInitialPz[ii] = theData->getStepInitialPz(ii);
189  t_ParticleStepInitialBeta[ii] = theData->getStepInitialBeta(ii);
190  t_ParticleStepInitialGamma[ii] = theData->getStepInitialGamma(ii);
191  t_ParticleStepInitialMass[ii] = theData->getStepInitialMass(ii);
192  t_ParticleStepFinalPt[ii] = theData->getStepFinalPt(ii);
193  t_ParticleStepFinalEta[ii] = theData->getStepFinalEta(ii);
194  t_ParticleStepFinalPhi[ii] = theData->getStepFinalPhi(ii);
195  t_ParticleStepFinalEnergy[ii] = theData->getStepFinalEnergy(ii);
196  t_ParticleStepFinalPx[ii] = theData->getStepFinalPx(ii);
197  t_ParticleStepFinalPy[ii] = theData->getStepFinalPy(ii);
198  t_ParticleStepFinalPz[ii] = theData->getStepFinalPz(ii);
199  t_ParticleStepFinalBeta[ii] = theData->getStepFinalBeta(ii);
200  t_ParticleStepFinalGamma[ii] = theData->getStepFinalGamma(ii);
201  t_ParticleStepFinalMass[ii] = theData->getStepFinalMass(ii);
202  t_ParticleStepPreInteraction[ii] = theData->getStepPreProcess(ii);
203  t_ParticleStepPostInteraction[ii] = theData->getStepPostProcess(ii);
204  }
205  }
206 
207  theTree->Fill();
208 }
float t_MaterialLambda0[MAXSTEPS]
float t_DeltaIL_CAB[MAXSTEPS]
float t_ParticleStepFinalEnergy[MAXSTEPS]
float t_VolumeXaxis3[MAXSTEPS]
float t_DeltaMB_CAB[MAXSTEPS]
float t_DeltaMB_SEN[MAXSTEPS]
float t_VolumeXaxis1[MAXSTEPS]
float t_ParticleStepFinalPt[MAXSTEPS]
float t_DeltaIL_OTH[MAXSTEPS]
float t_ParticleStepFinalPhi[MAXSTEPS]
float t_ParticleStepInitialPt[MAXSTEPS]
int t_MaterialID[MAXSTEPS]
float t_DeltaIL_ELE[MAXSTEPS]
float t_DeltaIL_SEN[MAXSTEPS]
float t_ParticleStepInitialPx[MAXSTEPS]
double t_InitialX[MAXSTEPS]
double t_FinalX[MAXSTEPS]
float t_DeltaMB_AIR[MAXSTEPS]
float t_VolumeYaxis3[MAXSTEPS]
float t_ParticleStepFinalPx[MAXSTEPS]
float t_ParticleStepFinalEta[MAXSTEPS]
std::unique_ptr< TTree > theTree
float t_ParticleStepInitialPhi[MAXSTEPS]
float t_VolumeZaxis1[MAXSTEPS]
float t_ParticleStepInitialPz[MAXSTEPS]
float t_ParticleStepFinalGamma[MAXSTEPS]
int t_ParticleStepPostInteraction[MAXSTEPS]
float t_DeltaMB_COL[MAXSTEPS]
int t_VolumeID[MAXSTEPS]
float t_VolumeY[MAXSTEPS]
int t_ParticleStepID[MAXSTEPS]
static const int MAXSTEPS
float t_ParticleStepFinalPy[MAXSTEPS]
float t_ParticleStepInitialPy[MAXSTEPS]
float t_DeltaMB_OTH[MAXSTEPS]
float t_ParticleStepInitialEta[MAXSTEPS]
float t_VolumeZaxis3[MAXSTEPS]
double t_InitialY[MAXSTEPS]
float t_VolumeYaxis2[MAXSTEPS]
const char * t_VolumeName[MAXSTEPS]
float t_ParticleStepInitialEnergy[MAXSTEPS]
int t_ParticleStepPreInteraction[MAXSTEPS]
float t_ParticleStepFinalMass[MAXSTEPS]
float t_ParticleStepInitialBeta[MAXSTEPS]
float t_DeltaIL_COL[MAXSTEPS]
ii
Definition: cuy.py:590
float t_MaterialDensity[MAXSTEPS]
float t_DeltaIL_AIR[MAXSTEPS]
const char * t_MaterialName[MAXSTEPS]
float t_ParticleStepFinalBeta[MAXSTEPS]
float t_VolumeZaxis2[MAXSTEPS]
float t_ParticleStepFinalPz[MAXSTEPS]
float t_ParticleStepInitialGamma[MAXSTEPS]
double t_FinalZ[MAXSTEPS]
float t_VolumeZ[MAXSTEPS]
float t_DeltaMB_ELE[MAXSTEPS]
float t_DeltaMB[MAXSTEPS]
float t_VolumeX[MAXSTEPS]
float t_DeltaMB_SUP[MAXSTEPS]
float t_DeltaIL[MAXSTEPS]
float t_VolumeYaxis1[MAXSTEPS]
float t_DeltaIL_SUP[MAXSTEPS]
float t_ParticleStepInitialMass[MAXSTEPS]
double t_FinalY[MAXSTEPS]
float t_VolumeXaxis2[MAXSTEPS]
std::shared_ptr< MaterialBudgetData > theData
int t_VolumeCopy[MAXSTEPS]
double t_InitialZ[MAXSTEPS]
float t_MaterialX0[MAXSTEPS]
void MaterialBudgetTree::fillPerStep ( )
overridevirtual

Reimplemented from MaterialBudgetFormat.

Definition at line 110 of file MaterialBudgetTree.cc.

Referenced by ~MaterialBudgetTree().

110 {}
void MaterialBudgetTree::fillStartTrack ( )
overridevirtual

Reimplemented from MaterialBudgetFormat.

Definition at line 108 of file MaterialBudgetTree.cc.

Referenced by ~MaterialBudgetTree().

108 {}

Member Data Documentation

const int MaterialBudgetTree::MAXSTEPS = 10000
staticprivate

Definition at line 25 of file MaterialBudgetTree.h.

Referenced by fillEndTrack().

float MaterialBudgetTree::t_DeltaIL[MAXSTEPS]
private

Definition at line 48 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaIL_AIR[MAXSTEPS]
private

Definition at line 55 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaIL_CAB[MAXSTEPS]
private

Definition at line 51 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaIL_COL[MAXSTEPS]
private

Definition at line 52 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaIL_ELE[MAXSTEPS]
private

Definition at line 53 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaIL_OTH[MAXSTEPS]
private

Definition at line 54 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaIL_SEN[MAXSTEPS]
private

Definition at line 50 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaIL_SUP[MAXSTEPS]
private

Definition at line 49 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaMB[MAXSTEPS]
private

Definition at line 39 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaMB_AIR[MAXSTEPS]
private

Definition at line 46 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaMB_CAB[MAXSTEPS]
private

Definition at line 42 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaMB_COL[MAXSTEPS]
private

Definition at line 43 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaMB_ELE[MAXSTEPS]
private

Definition at line 44 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaMB_OTH[MAXSTEPS]
private

Definition at line 45 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaMB_SEN[MAXSTEPS]
private

Definition at line 41 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_DeltaMB_SUP[MAXSTEPS]
private

Definition at line 40 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

double MaterialBudgetTree::t_FinalX[MAXSTEPS]
private

Definition at line 60 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

double MaterialBudgetTree::t_FinalY[MAXSTEPS]
private

Definition at line 61 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

double MaterialBudgetTree::t_FinalZ[MAXSTEPS]
private

Definition at line 62 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_IL
private

Definition at line 28 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

double MaterialBudgetTree::t_InitialX[MAXSTEPS]
private

Definition at line 57 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

double MaterialBudgetTree::t_InitialY[MAXSTEPS]
private

Definition at line 58 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

double MaterialBudgetTree::t_InitialZ[MAXSTEPS]
private

Definition at line 59 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_MaterialDensity[MAXSTEPS]
private

Definition at line 84 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

int MaterialBudgetTree::t_MaterialID[MAXSTEPS]
private

Definition at line 80 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_MaterialLambda0[MAXSTEPS]
private

Definition at line 83 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

const char* MaterialBudgetTree::t_MaterialName[MAXSTEPS]
private

Definition at line 81 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_MaterialX0[MAXSTEPS]
private

Definition at line 82 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_MB
private

Definition at line 27 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

int MaterialBudgetTree::t_Nsteps
private

Definition at line 37 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleEnergy
private

Definition at line 34 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleEta
private

Definition at line 32 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

int MaterialBudgetTree::t_ParticleID
private

Definition at line 30 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleMass
private

Definition at line 35 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticlePhi
private

Definition at line 33 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticlePt
private

Definition at line 31 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalBeta[MAXSTEPS]
private

Definition at line 103 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalEnergy[MAXSTEPS]
private

Definition at line 99 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalEta[MAXSTEPS]
private

Definition at line 97 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalGamma[MAXSTEPS]
private

Definition at line 104 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalMass[MAXSTEPS]
private

Definition at line 105 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalPhi[MAXSTEPS]
private

Definition at line 98 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalPt[MAXSTEPS]
private

Definition at line 96 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalPx[MAXSTEPS]
private

Definition at line 100 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalPy[MAXSTEPS]
private

Definition at line 101 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepFinalPz[MAXSTEPS]
private

Definition at line 102 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

int MaterialBudgetTree::t_ParticleStepID[MAXSTEPS]
private

Definition at line 85 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialBeta[MAXSTEPS]
private

Definition at line 93 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialEnergy[MAXSTEPS]
private

Definition at line 89 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialEta[MAXSTEPS]
private

Definition at line 87 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialGamma[MAXSTEPS]
private

Definition at line 94 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialMass[MAXSTEPS]
private

Definition at line 95 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialPhi[MAXSTEPS]
private

Definition at line 88 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialPt[MAXSTEPS]
private

Definition at line 86 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialPx[MAXSTEPS]
private

Definition at line 90 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialPy[MAXSTEPS]
private

Definition at line 91 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_ParticleStepInitialPz[MAXSTEPS]
private

Definition at line 92 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

int MaterialBudgetTree::t_ParticleStepPostInteraction[MAXSTEPS]
private

Definition at line 107 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

int MaterialBudgetTree::t_ParticleStepPreInteraction[MAXSTEPS]
private

Definition at line 106 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

int MaterialBudgetTree::t_VolumeCopy[MAXSTEPS]
private

Definition at line 66 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

int MaterialBudgetTree::t_VolumeID[MAXSTEPS]
private

Definition at line 64 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

const char* MaterialBudgetTree::t_VolumeName[MAXSTEPS]
private

Definition at line 65 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeX[MAXSTEPS]
private

Definition at line 67 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeXaxis1[MAXSTEPS]
private

Definition at line 70 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeXaxis2[MAXSTEPS]
private

Definition at line 71 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeXaxis3[MAXSTEPS]
private

Definition at line 72 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeY[MAXSTEPS]
private

Definition at line 68 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeYaxis1[MAXSTEPS]
private

Definition at line 73 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeYaxis2[MAXSTEPS]
private

Definition at line 74 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeYaxis3[MAXSTEPS]
private

Definition at line 75 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeZ[MAXSTEPS]
private

Definition at line 69 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeZaxis1[MAXSTEPS]
private

Definition at line 76 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeZaxis2[MAXSTEPS]
private

Definition at line 77 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

float MaterialBudgetTree::t_VolumeZaxis3[MAXSTEPS]
private

Definition at line 78 of file MaterialBudgetTree.h.

Referenced by book(), and fillEndTrack().

std::unique_ptr<TFile> MaterialBudgetTree::theFile
private

Definition at line 22 of file MaterialBudgetTree.h.

Referenced by endOfRun(), and MaterialBudgetTree().

std::unique_ptr<TTree> MaterialBudgetTree::theTree
private

Definition at line 23 of file MaterialBudgetTree.h.

Referenced by book(), endOfRun(), and fillEndTrack().