LDMX Software
BFieldXYZUtils.cxx
1#include "Tracking/Sim/BFieldXYZUtils.h"
2
3Acts::Vector3 default_transformPos(const Acts::Vector3& pos) {
4 Acts::Vector3 rot_pos;
5 rot_pos(0) = pos(1);
6 rot_pos(1) = pos(2);
7 rot_pos(2) = pos(0) + DIPOLE_OFFSET;
8
9 return rot_pos;
10}
11
12Acts::Vector3 default_transformBField(const Acts::Vector3& field,
13 const Acts::Vector3& /*pos*/) {
14 Acts::Vector3 rot_field;
15
16 rot_field(0) = field(2);
17 rot_field(1) = field(0);
18 rot_field(2) = field(1);
19
20 // std::cout<<"PF::DEFAULT TRANSFORM"<<std::endl;
21 // std::cout<<"PF::Check:: transforming"<<std::endl;
22 // std::cout<<field<<std::endl;
23 // std::cout<<"TO"<<std::endl;
24 // std::cout<<rot_field<<std::endl;
25
26 return rot_field;
27}
28
29size_t localToGlobalBin_xyz(std::array<size_t, 3> bins,
30 std::array<size_t, 3> sizes) {
31 return (bins[0] * (sizes[1] * sizes[2]) + bins[1] * sizes[2] +
32 bins[2]); // xyz - field space
33 // return (bins[1] * (sizes[2] * sizes[0]) + bins[2] * sizes[0] + bins[0]);
34 // //zxy
35}
36
37void testField(const std::shared_ptr<Acts::MagneticFieldProvider> bfield,
38 const Acts::Vector3& eval_pos,
39 const Acts::MagneticFieldContext bctx) {
40 Acts::MagneticFieldProvider::Cache cache = bfield->makeCache(bctx);
41 std::cout << "Pos::\n" << eval_pos << std::endl;
42 std::cout << " BField::\n"
43 << bfield->getField(eval_pos, cache).value() /
44 Acts::UnitConstants::T
45 << std::endl;
46}