31 std::string wedgeString = (wedgeSize==
'L' ?
"MML" :
"MMS");
41 "\t\t\t\t Total Strips: " << roParam_bottom_mult1.
tStrips <<
" with pitch: " << roParam_bottom_mult1.
stripPitch <<
"\n" <<
44 "\t\t\t\t (Top, Bottom, Length): (" << mm_bottom_mult1->
lWidth() <<
", " << mm_bottom_mult1->
sWidth() <<
", " << mm_bottom_mult1->
Length() <<
")\n" <<
45 "\t\t\t\t Zpos - Distance from ZAxis: " << roParam_bottom_mult1.
zpos <<
" - " << roParam_bottom_mult1.
distanceFromZAxis <<
"\n" <<
46 "\t\t\t\t dlStereoTop/Bottom: " << roParam_bottom_mult1.
dlStereoTop <<
" " << roParam_bottom_mult1.
dlStereoBottom <<
"\n" <<
52 "\t\t\t\t Total Strips: " << roParam_bottom_mult1.
tStrips <<
" with pitch: " << roParam_bottom_mult1.
stripPitch <<
"\n" <<
53 "\t\t\t\t (Top, Bottom, Length): (" << mm_bottom_mult1->
lWidth() <<
", " << mm_bottom_mult1->
sWidth() <<
", " << mm_bottom_mult1->
Length() <<
")\n" <<
54 "\t\t\t\t Zpos - Distance from ZAxis: " << roParam_bottom_mult1.
zpos <<
" - " << roParam_bottom_mult1.
distanceFromZAxis <<
"\n" <<
55 "\t\t\t\t dlStereoTop/Bottom: " << roParam_bottom_mult1.
dlStereoTop <<
" " << roParam_bottom_mult1.
dlStereoBottom <<
"\n" <<
61 "\t\t\t\t Total Strips: " << roParam_top_mult1.
tStrips <<
" with pitch: " << roParam_top_mult1.
stripPitch <<
"\n" <<
64 "\t\t\t\t (Top, Bottom, Length): (" << mm_top_mult1->
lWidth() <<
", " << mm_top_mult1->
sWidth() <<
", " << mm_top_mult1->
Length() <<
")\n" <<
65 "\t\t\t\t Zpos - Distance from ZAxis: " << roParam_top_mult1.
zpos <<
" - " << roParam_top_mult1.
distanceFromZAxis <<
"\n" <<
72 "\t\t\t\t (Top, Bottom, Length): (" << mm_top_mult1->
lWidth() <<
", " << mm_top_mult1->
sWidth() <<
", " << mm_top_mult1->
Length() <<
")\n" <<
73 "\t\t\t\t Zpos - Distance from ZAxis: " << roParam_top_mult1.
zpos <<
" - " << roParam_top_mult1.
distanceFromZAxis <<
"\n" <<
80 std::vector<double> z_nominal;
84 if(z_nominal.size() != layerSetup.size()){
85 ATH_MSG_WARNING(
"Number of planes in setup is "<< layerSetup.size() <<
", but we have a nominal " << z_nominal.size() <<
" planes.");
86 throw std::runtime_error(
"MMT_Parameters: Invalid number of planes");
96 float x_rotated = 0.0;
97 float y_rotated = 0.0;
101 float radial_pos = 0;
102 float radial_pos_xx_1 = 0, radial_pos_xx_2 = 0;
103 float radial_pos_uv_1 = 0, radial_pos_uv_2 = 0;
105 for (
unsigned int eta = 1;
eta <= 2;
eta++){
106 unsigned int layer = 1;
109 if (wedgeString==
"MMS"){
110 x_rotated =
pos.X()*cos_rotation -
pos.Y()*sin_rotation;
111 y_rotated =
pos.X()*sin_rotation +
pos.Y()*cos_rotation;
118 if (
is_u(
layer)) st_angle = -1*std::abs(stereo_degree);
119 else if (
is_v(
layer)) st_angle = std::abs(stereo_degree);
124 radial_pos = std::abs(x_rotated - y_rotated*
std::tan(st_angle *
M_PI/180.0));
126 if (
is_x(
layer) &&
eta==1) radial_pos_xx_1 = radial_pos;
127 else if (
is_x(
layer) &&
eta==2) radial_pos_xx_2 = radial_pos;
128 if (
is_u(
layer) &&
eta==1) radial_pos_uv_1 = radial_pos;
129 else if (
is_u(
layer) &&
eta==2) radial_pos_uv_2 = radial_pos;
136 std::array<float, 2> radial_pos_xx = {radial_pos_xx_1, radial_pos_xx_2};
137 std::array<float, 2> radial_pos_uv = {radial_pos_uv_1, radial_pos_uv_2};
150 std::vector<ROOT::Math::XYZVector> positions;
151 positions.reserve(8);
156 unsigned int n_multiplets = 2;
157 unsigned int n_layers = 4;
159 for (
unsigned int mult = 1; mult <= n_multiplets; mult++) {
165 ROOT::Math::XYZVector coordinates(0.,0.,0.);
167 else ATH_MSG_WARNING(
"Wedge " << wedge <<
" phi " <<
phi <<
" multiplet " << mult <<
" layer " <<
layer <<
" | Unable to retrieve global positions");
168 positions.push_back(coordinates);
171 <<
" wedge size " << wedge
172 <<
" multiplet " << mult
173 <<
" layer " <<
layer
174 <<
" | z = " << coordinates.Z() );
181 evInf_entry::evInf_entry(
int event,
int pdg,
double e,
double p,
double ieta,
double peta,
double eeta,
double iphi,
double pphi,
double ephi,
double ithe,
double pthe,
double ethe,
double dth,
182 int trn,
int mun,
const ROOT::Math::XYZVector& tex):
183 athena_event(
event),pdg_id(pdg),
E(
e),
pt(
p),eta_ip(ieta),eta_pos(peta),eta_ent(eeta),phi_ip(iphi),phi_pos(pphi),phi_ent(ephi),theta_ip(ithe),theta_pos(pthe),theta_ent(ethe),
184 dtheta(dth),truth_n(trn),mu_n(mun),
vertex(tex) {}
187 hitData_entry::hitData_entry(
int ev,
double gt,
double q,
int vmm,
int mmfe,
int pl,
int st,
int est,
int phi,
int mult,
int gg,
double locX,
double tr_the,
double tru_phi,
188 bool q_tbg,
int bct,
const ROOT::Math::XYZVector& tru,
const ROOT::Math::XYZVector& rec):
189 event(
ev),gtime(gt),
charge(
q),VMM_chip(vmm),MMFE_VMM(mmfe),plane(pl),strip(st),
station_eta(est),
station_phi(
phi),multiplet(mult),gasgap(gg),localX(
locX),tru_theta_ip(tr_the),tru_phi_ip(tru_phi),truth_nbg(q_tbg),BC_time(bct),truth(tru),recon(rec) {}
194 const ROOT::Math::XYZVector& truthLPos,
195 const ROOT::Math::XYZVector& stripLPos,
196 const ROOT::Math::XYZVector& stripGPos
201 truth_lpos(truthLPos),
202 strip_lpos(stripLPos),
203 strip_gpos(stripGPos){}