Skip to content
Snippets Groups Projects

Resolve "Add ZDC benchmark"

Merged Jihee Kim requested to merge 71-add-zdc-benchmark-2 into master
1 file
+ 7
27
Compare changes
  • Side-by-side
  • Inline
@@ -23,6 +23,7 @@
R__LOAD_LIBRARY(libeicd.so)
R__LOAD_LIBRARY(libDD4pod.so)
#include "fmt/core.h"
#include "DD4hep/Detector.h"
#include "DDG4/Geant4Data.h"
#include "DDRec/CellIDPositionConverter.h"
@@ -75,43 +76,22 @@ void analysis_zdc_neutrons(const char* input_fname = "sim_zdc_uniform_neutron.ro
// Theta [mrad]
auto Thetathr = [](std::vector<dd4pod::Geant4ParticleData> const& input) {
auto p = input[2];
TVector3 mom(p.ps.x, p.ps.y, p.ps.z);
// removing crossing angle
auto crossing_angle = -0.025; // unit [rad]
auto sin_term = std::sin(-crossing_angle);
auto cos_term = std::cos(-crossing_angle);
auto pz = cos_term * mom.Z() - sin_term * mom.X();
auto px = sin_term * mom.Z() + cos_term * mom.X();
TVector3 org_mom(px, mom.Y(), pz);
return org_mom.Theta()*1000.0;
auto theta = p.ps.theta();
return theta*1000.0;
};
// Phi [rad]
auto Phithr = [](std::vector<dd4pod::Geant4ParticleData> const& input) {
auto p = input[2];
TVector3 mom(p.ps.x, p.ps.y, p.ps.z);
// removing crossing angle
auto crossing_angle = -0.025; // unit [rad]
auto s = std::sin(-crossing_angle);
auto c = std::cos(-crossing_angle);
auto pz = c*mom.Z() - s*mom.X();
auto px = s*mom.Z() + c*mom.X();
TVector3 transmom(px, mom.Y(), pz);
return transmom.Phi();
auto phi = p.ps.phi();
return phi;
};
// Eta
auto Etathr = [](std::vector<dd4pod::Geant4ParticleData> const& input) {
auto p = input[2];
TVector3 mom(p.ps.x, p.ps.y, p.ps.z);
// removing crossing angle
auto crossing_angle = -0.025; // unit [rad]
auto sin_term = std::sin(-crossing_angle);
auto cos_term = std::cos(-crossing_angle);
auto pz = cos_term * mom.Z() - sin_term * mom.X();
auto px = sin_term * mom.Z() + cos_term * mom.X();
TVector3 org_mom(px, mom.Y(), pz);
return org_mom.Eta();
auto eta = p.ps.eta();
return eta;
};
// Define variables
Loading