diff --git a/compact/helmholtz.xml b/compact/helmholtz.xml
index 91afb0facee0d9b5a21b808da42dfa4d54627ac7..11916638597d9c8110c5906fd2199b6efb1f3329 100644
--- a/compact/helmholtz.xml
+++ b/compact/helmholtz.xml
@@ -329,9 +329,20 @@
   </detectors>
 
   <fields>
-    <field type="solenoid" name="GlobalSolenoid" inner_field="3.0 * tesla" outer_field="0.5*tesla" 
+    <!--field type="solenoid" name="GlobalSolenoid" inner_field="3.0 * tesla" outer_field="0.5*tesla" 
            zmin="-SolenoidBarrelCoil_zmax" zmax="SolenoidBarrelCoil_zmax" 
-           inner_radius="SolenoidalFieldRadius" outer_radius="SolenoidalFieldRadius+20*cm"/>
+           inner_radius="SolenoidalFieldRadius" outer_radius="SolenoidalFieldRadius+20*cm"/-->
+    <field type="FieldMapBrBz" name="GlobalSolenoid" field_type="magnetic"
+           field_map="fieldmaps/EIC_v.0.1.0_Magnetic_Field_Map_2021_05_28_radial_coords__cm___T_.401301.line.Bmap"
+           url="https://eicweb.phy.anl.gov/EIC/detectors/athena/uploads/2bb404a58b09e9b9fbd33befded5a04b/EIC_v.0.1.0_Magnetic_Field_Map_2021_05_28_radial_coords__cm___T_.401301.line.Bmap"
+           scale="-1.0">
+      <dimensions>
+        <transverse step="2.0*cm" rmin="0*cm" rmax="1000*cm" />
+        <longitudinal step="2.0*cm" zmin="-800*cm" zmax="800*cm" />
+        <translation x="0.0*cm" y="0.0*cm" z="0.0*cm" />
+        <rotation x="0" y="0" z="0" />
+      </dimensions>
+    </field>
   </fields>
 
 </lccdd>
diff --git a/compact/solenoid.xml b/compact/solenoid.xml
index 47f413a05b63a8b1870ae0744eb2312eda81ae29..bd0ca90313f0de279480d29a16e87befd32735c9 100644
--- a/compact/solenoid.xml
+++ b/compact/solenoid.xml
@@ -324,9 +324,20 @@
   </detectors>
 
   <fields>
-    <field type="solenoid" name="GlobalSolenoid" inner_field="3.0 * tesla" outer_field="0.5*tesla" 
+    <!--field type="solenoid" name="GlobalSolenoid" inner_field="3.0 * tesla" outer_field="0.5*tesla" 
            zmin="-SolenoidBarrelCoil_zmax" zmax="SolenoidBarrelCoil_zmax" 
-           inner_radius="SolenoidalFieldRadius" outer_radius="SolenoidalFieldRadius+20*cm"/>
+           inner_radius="SolenoidalFieldRadius" outer_radius="SolenoidalFieldRadius+20*cm"/-->
+    <field type="FieldMapBrBz" name="GlobalSolenoid" field_type="magnetic"
+           field_map="fieldmaps/EIC_Magnetic_Field_Map_2021_05_07_radial_coords__cm___T_.120000.lines.Bmap"
+           url="https://eicweb.phy.anl.gov/EIC/detectors/athena/uploads/9179a98c5a80df1f2b98968c747c1c48/EIC_Magnetic_Field_Map_2021_05_07_radial_coords__cm___T_.120000.lines.Bmap"
+           scale="-1.0">
+      <dimensions>
+        <transverse step="2.0*cm" rmin="0*cm" rmax="398*cm" />
+        <longitudinal step="2.0*cm" zmin="-600*cm" zmax="598*cm" />
+        <translation x="0.0*cm" y="0.0*cm" z="0.0*cm" />
+        <rotation x="0" y="0" z="0" />
+      </dimensions>
+    </field>
   </fields>
 
 </lccdd>
diff --git a/macro/vis_OGL_along_z_beamOn_1.mac b/macro/vis_OGL_along_z_beamOn_1.mac
new file mode 100644
index 0000000000000000000000000000000000000000..fbf2d15134a8ed6c23a638df13efc9e69fadf036
--- /dev/null
+++ b/macro/vis_OGL_along_z_beamOn_1.mac
@@ -0,0 +1,11 @@
+# Usage example:
+#   npsim --runType vis --compactFile athena.xml --random.seed 1 --enableGun --gun.energy 2*GeV --gun.thetaMin 90*deg --gun.thetaMax 90*deg --gun.distribution uniform --macro macro/vis_OGL_along_z_beamOn_1.mac --outputFile test.root
+/vis/open OGL 1920x1080
+/vis/scene/create
+/vis/scene/add/volume
+/vis/sceneHandler/attach
+/vis/viewer/zoom 10
+/vis/viewer/flush
+/vis/scene/add/trajectories
+/vis/scene/add/hits
+/run/beamOn 1
diff --git a/scripts/input_data/central_events.hepmc b/scripts/input_data/central_events.hepmc
new file mode 100644
index 0000000000000000000000000000000000000000..a642d218d52820e5092d91b362b2c8ddf10d0b5b
--- /dev/null
+++ b/scripts/input_data/central_events.hepmc
@@ -0,0 +1,103 @@
+HepMC::Version 3.02.02
+HepMC::Asciiv3-START_EVENT_LISTING
+E 0 4 9
+U GEV CM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 -9.9999999869440064e+00 1.0000000000000000e+01 5.1099888971089147e-04 4
+P 2 1 22 -5.8225640056623670e-03 3.7747924008719728e-02 -2.9249301763891555e+00 2.9248270767857321e+00 -4.5408321610621201e-02 3
+P 3 1 11 5.8225640056623670e-03 -3.7747924008719728e-02 -7.0750698105548508e+00 7.0751729232142679e+00 5.1101967722736764e-04 1
+P 4 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 9.9995598131387851e+01 1.0000000000000000e+02 9.3827199999876709e-01 4
+P 5 4 2212 0.0000000000000000e+00 0.0000000000000000e+00 9.9995598131482922e+01 1.0000000000009507e+02 9.3827199999973643e-01 3
+V -3 0 [2,5]
+P 6 -3 553 -1.4745608418116361e-02 -8.6828685571490272e-01 4.7980031183979008e+00 1.0642943648781511e+01 9.4603000000109834e+00 2
+P 7 -3 2212 8.9230444123625328e-03 9.0603477972421620e-01 9.2272664838178372e+01 9.2281883429672035e+01 9.3827200000070576e-01 1
+P 8 6 -13 4.4907597498767587e-01 2.0906320322010372e+00 -2.1757837479786910e+00 3.0524760533554351e+00 1.0565800000001382e-01 1
+P 9 6 13 -4.6382158340577534e-01 -2.9589188879149320e+00 6.9737868663710216e+00 7.5904675954137195e+00 1.0565800000002223e-01 1
+E 0 4 10
+U GEV CM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 -9.9999999869440064e+00 1.0000000000000000e+01 5.1099888971089147e-04 4
+P 2 1 22 -2.6839726606050791e-04 1.1264659797828775e-03 -6.3401069726794805e+00 6.3401067668601172e+00 -1.9876609922101014e-03 3
+P 3 1 11 2.6839726606050791e-04 -1.1264659797828775e-03 -3.6598930142645258e+00 3.6598932331398828e+00 5.1103633096365880e-04 1
+P 4 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 9.9995598131387851e+01 1.0000000000000000e+02 9.3827199999876709e-01 4
+P 5 4 2212 0.0000000000000000e+00 0.0000000000000000e+00 9.9995598131482922e+01 1.0000000000009507e+02 9.3827199999973643e-01 3
+V -3 0 [2,5]
+P 6 -3 553 1.9156252814767760e-01 2.1790735768546463e-01 -2.8073109612741973e+00 9.8723072682332713e+00 9.4603000029807429e+00 2
+P 7 -3 2212 -1.9183092541375127e-01 -2.1678089170561543e-01 9.6462802125352582e+01 9.6467799504704473e+01 9.3827199999779787e-01 1
+P 8 6 -13 -2.4852998465289872e-01 2.3091049977702758e+00 -5.7337843777899966e+00 6.1871786743193251e+00 1.0565799999995498e-01 1
+P 9 6 13 4.4342149179344215e-01 -2.1010576035711188e+00 2.9552377554469285e+00 3.6545395711486477e+00 1.0565800000003905e-01 1
+P 10 6 22 -3.3289790532426214e-03 9.8599634176282647e-03 -2.8764338046322176e-02 3.0589019653741657e-02 3.2927225399135965e-10 1
+E 0 4 9
+U GEV CM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 -9.9999999869440064e+00 1.0000000000000000e+01 5.1099888971089147e-04 4
+P 2 1 22 2.1549001953953920e-01 5.3446029602846556e-01 -6.2965867413439192e-01 6.1195545733789913e-01 -5.9503304168678661e-01 3
+P 3 1 11 -2.1549001953953920e-01 -5.3446029602846556e-01 -9.3703413128096145e+00 9.3880445426621009e+00 5.0981276742689016e-04 1
+P 4 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 9.9995598131387851e+01 1.0000000000000000e+02 9.3827199999876709e-01 4
+P 5 4 2212 0.0000000000000000e+00 0.0000000000000000e+00 9.9995598131482922e+01 1.0000000000009507e+02 9.3827199999973643e-01 3
+V -3 0 [2,5]
+P 6 -3 553 2.2825834022061950e-01 3.3334310888886032e-01 3.5569092662904950e+01 3.6807891116586688e+01 9.4603000000031017e+00 2
+P 7 -3 2212 -1.2768320678757170e-02 2.0111718714536578e-01 6.3796846795456545e+01 6.3804064341873378e+01 9.3827200000094813e-01 1
+P 8 6 -13 -3.2477759288923482e+00 3.3065214111492942e+00 1.3631832024299879e+01 1.4398581189769127e+01 1.0565800000146809e-01 1
+P 9 6 13 3.4760342691128936e+00 -2.9731783022605436e+00 2.1937260638593418e+01 2.2409309926805506e+01 1.0565799999797114e-01 1
+E 0 4 9
+U GEV CM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 -9.9999999869440064e+00 1.0000000000000000e+01 5.1099888971089147e-04 4
+P 2 1 22 8.1053930688133671e-03 -1.2356942914208306e-02 -2.8212751471844815e+00 2.8212599310500082e+00 -1.7442735092468440e-02 3
+P 3 1 11 -8.1053930688133671e-03 1.2356942914208306e-02 -7.1787248397595249e+00 7.1787400689499918e+00 5.1101148051165002e-04 1
+P 4 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 9.9995598131387851e+01 1.0000000000000000e+02 9.3827199999876709e-01 4
+P 5 4 2212 0.0000000000000000e+00 0.0000000000000000e+00 9.9995598131482922e+01 1.0000000000009507e+02 9.3827199999973643e-01 3
+V -3 0 [2,5]
+P 6 -3 553 -2.4074047134142244e-02 2.6879165673024504e-02 5.1101881387075991e+00 1.0752330024333787e+01 9.4602999999952058e+00 2
+P 7 -3 2212 3.2179440203073603e-02 -3.9236108587412617e-02 9.2064134846942238e+01 9.2068929908251562e+01 9.3827200000167510e-01 1
+P 8 6 -13 3.4101173607658830e+00 -1.3038459453885907e+00 5.9422927439678519e+00 6.9750212423676778e+00 1.0565800000106459e-01 1
+P 9 6 13 -3.4341914079000371e+00 1.3307251110616287e+00 -8.3210460525766239e-01 3.7773087819715596e+00 1.0565800000016515e-01 1
+E 0 1 3
+U GEV MM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 4
+P 2 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 9.3799999999999994e-01 9.3799999999999994e-01 4
+V -1 0 [1,2]
+P 3 -1 11 8.3077231638512800e-02 3.4688303864359871e-01 -9.3422177831854492e-01 1.0000001305604915e+00 5.1100000015238706e-04 1
+E 0 1 3
+U GEV MM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 4
+P 2 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 9.3799999999999994e-01 9.3799999999999994e-01 4
+V -1 0 [1,2]
+P 3 -1 11 7.2104820115711854e-01 1.5628742640734802e-01 -1.8589415622754393e+00 2.0000000652802488e+00 5.1100000036965185e-04 1
+E 0 1 3
+U GEV MM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 4
+P 2 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 9.3799999999999994e-01 9.3799999999999994e-01 4
+V -1 0 [1,2]
+P 3 -1 11 -1.4361173664326103e+00 -9.3836236801405426e-01 -2.4611060473140363e+00 3.0000000435201661e+00 5.1100000036965185e-04 1
+E 0 1 3
+U GEV MM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 4
+P 2 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 9.3799999999999994e-01 9.3799999999999994e-01 4
+V -1 0 [1,2]
+P 3 -1 11 -2.6126728458756499e-01 2.0189611701651842e+00 -3.4431867796228350e+00 4.0000000326401244e+00 5.1099999515529708e-04 1
+E 0 1 3
+U GEV MM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 4
+P 2 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 9.3799999999999994e-01 9.3799999999999994e-01 4
+V -1 0 [1,2]
+P 3 -1 11 8.5091281358231141e-01 -2.4919887833464918e+00 -4.2504046027827407e+00 5.0000000261121000e+00 5.1099999863153363e-04 1
+E 0 1 3
+U GEV MM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 4
+P 2 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 9.3799999999999994e-01 9.3799999999999994e-01 4
+V -1 0 [1,2]
+P 3 -1 11 -2.5637625613563038e+00 2.9774447329110156e+00 -4.5345280230083720e+00 6.0000000217600835e+00 5.1100000210777007e-04 1
+E 0 1 3
+U GEV MM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 4
+P 2 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 9.3799999999999994e-01 9.3799999999999994e-01 4
+V -1 0 [1,2]
+P 3 -1 11 8.5248676124549916e-01 1.3423464093622672e+00 -6.8169914507188132e+00 7.0000000186514999e+00 5.1100000210777007e-04 1
+E 0 1 3
+U GEV MM
+P 1 0 11 0.0000000000000000e+00 0.0000000000000000e+00 1.0000000000000000e+01 1.0000000000000000e+01 0.0000000000000000e+00 4
+P 2 0 2212 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 9.3799999999999994e-01 9.3799999999999994e-01 4
+V -1 0 [1,2]
+P 3 -1 11 2.7295844590149682e-01 -1.0660162875541499e+00 -7.9239575315293242e+00 8.0000000163200617e+00 5.1099999515529708e-04 1
+E 0 1 3
+U GEV MM
+HepMC::Asciiv3-END_EVENT_LISTING
+
diff --git a/src/FieldMapBrBz.cpp b/src/FieldMapBrBz.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..bcfe4ae20a86314d103f482d305bfe320c4991fc
--- /dev/null
+++ b/src/FieldMapBrBz.cpp
@@ -0,0 +1,227 @@
+#include <DD4hep/DetFactoryHelper.h>
+#include <DD4hep/FieldTypes.h>
+#include <XML/Utilities.h>
+
+#include <cstdlib>
+#include <filesystem>
+#include <fstream>
+#include <iostream>
+#include <sstream>
+#include <stdexcept>
+#include <string>
+#include <tuple>
+namespace fs = std::filesystem;
+
+using namespace dd4hep;
+
+
+// implementation of the field map
+class FieldMapBrBz : public dd4hep::CartesianField::Object
+{
+public:
+    FieldMapBrBz(const std::string &field_type);
+    void Configure(double rmin, double rmax, double rstep, double zmin, double zmax, double zstep);
+    void LoadMap(const std::string &map_file, double scale);
+    void GetIndices(double r, double z, int &ir, int &iz, double &dr, double &dz);
+    void SetTransform(const Transform3D &tr) { trans = tr; trans_inv = tr.Inverse(); }
+
+    virtual void fieldComponents(const double *pos, double *field);
+
+
+private:
+    Transform3D trans, trans_inv;
+    double rmin, rmax, rstep, zmin, zmax, zstep;
+    std::vector<std::vector<std::vector<double>>> Bvals;
+};
+
+// constructor
+FieldMapBrBz::FieldMapBrBz(const std::string &field_type = "magnetic")
+{
+    std::string ftype = field_type;
+    for (auto &c : ftype) { c = tolower(c); }
+
+    // set type
+    if (ftype == "magnetic") {
+        type = CartesianField::MAGNETIC;
+    } else if (ftype == "electric") {
+        type = CartesianField::ELECTRIC;
+    } else {
+        type = CartesianField::UNKNOWN;
+        std::cout << "FieldMapBrBz Warning: Unknown field type " << field_type << "!" << std::endl;
+    }
+}
+
+void FieldMapBrBz::Configure(double r1, double r2, double rs, double z1, double z2, double zs)
+{
+    rmin = r1;
+    rmax = r2;
+    rstep = rs;
+    zmin = z1;
+    zmax = z2;
+    zstep = zs;
+
+    int nr = int((r2 - r1)/rs) + 2;
+    int nz = int((z2 - z1)/zs) + 2;
+
+    Bvals.resize(nr);
+    for (auto &B2 : Bvals) {
+        B2.resize(nz);
+        for (auto &B : B2) {
+            B.resize(2, 0.);
+        }
+    }
+}
+
+void FieldMapBrBz::GetIndices(double r, double z, int &ir, int &iz, double &dr, double &dz)
+{
+    // boundary check
+    if (r > rmax || r < rmin || z > zmax || z < zmin) {
+        ir = -1;
+        iz = -1;
+        return;
+    }
+    // get indices
+    double idr, idz;
+    dr = std::modf((r - rmin)/rstep, &idr);
+    dz = std::modf((z - zmin)/zstep, &idz);
+
+    ir = static_cast<int>(idr);
+    iz = static_cast<int>(idz);
+}
+
+// load data
+void FieldMapBrBz::LoadMap(const std::string &map_file, double scale)
+{
+    std::string line;
+    std::ifstream input(map_file);
+    if (!input) {
+        std::cout << "FieldMapBrBz Error: file \"" << map_file << "\" cannot be read." << std::endl;
+    }
+
+    double r, z, br, bz;
+    int ir, iz;
+    double dr, dz;
+    while (std::getline(input, line).good()) {
+        std::istringstream iss(line);
+        iss >> r >> z >> br >> bz;
+        GetIndices(r, z, ir, iz, dr, dz);
+        if (ir < 0 || iz < 0) {
+            std::cout << "FieldMapBrBz Warning: coordinates out of range ("
+                      << r << ", " << z << "), skipped it." << std::endl;
+        } else {
+            Bvals[ir][iz] = {br*scale, bz*scale};
+            // ROOT::Math::XYZPoint p(r, 0, z);
+            // std::cout << p << " -> " << trans*p << std::endl;
+            // std::cout << ir << ", " << iz << ", " << br << ", " << bz << std::endl;
+        }
+    }
+}
+
+// get field components
+void FieldMapBrBz::fieldComponents(const double *pos, double *field)
+{
+    // coordinate conversion
+    auto p = trans_inv*ROOT::Math::XYZPoint(pos[0], pos[1], pos[2]);
+
+    // coordinates conversion
+    const double r = sqrt(p.x()*p.x() + p.y()*p.y());
+    const double z = p.z();
+    const double phi = atan2(p.y(), p.x());
+
+    int ir, iz;
+    double dr, dz;
+    GetIndices(r, z, ir, iz, dr, dz);
+
+    // out of the range
+    if (ir < 0 || iz < 0) { return; }
+
+    // p1    p3
+    //    p
+    // p0    p2
+    auto &p0 = Bvals[ir][iz];
+    auto &p1 = Bvals[ir][iz + 1];
+    auto &p2 = Bvals[ir + 1][iz];
+    auto &p3 = Bvals[ir + 1][iz + 1];
+
+    // linear interpolation
+    double Br = p0[0] * (1-dr) * (1-dz)
+              + p1[0] * (1-dr) *    dz
+              + p2[0] *    dr  * (1-dz)
+              + p3[0] *    dr  *    dz;
+
+    double Bz = p0[1] * (1-dr) * (1-dz)
+              + p1[1] * (1-dr) *    dz
+              + p2[1] *    dr  * (1-dz)
+              + p3[1] *    dr  *    dz;
+
+    // convert Br Bz to Bx By Bz
+    auto B = trans*ROOT::Math::XYZPoint(Br*sin(phi), Br*cos(phi), Bz);
+    field[0] += B.x()*tesla;
+    field[1] += B.y()*tesla;
+    field[2] += B.z()*tesla;
+    return;
+}
+
+
+// assign the field map to CartesianField
+static Ref_t create_field_map_brbz(Detector & /*lcdd*/, xml::Handle_t handle)
+{
+    xml_comp_t x_par(handle);
+
+    if (!x_par.hasAttr(_Unicode(field_map))) {
+        throw std::runtime_error("FieldMapBrBz Error: must have an xml attribute \"field_map\" for the field map.");
+    }
+
+    CartesianField field;
+    std::string field_type = x_par.attr<std::string>(_Unicode(field_type));
+
+    // dimensions
+    xml_comp_t x_dim = x_par.dimensions();
+
+    // min, max, step
+    xml_comp_t r_dim = x_dim.child(_Unicode(transverse));
+    xml_comp_t z_dim = x_dim.child(_Unicode(longitudinal));
+
+    std::string field_map_file = x_par.attr<std::string>(_Unicode(field_map));
+    std::string field_map_url = x_par.attr<std::string>(_Unicode(url));
+
+    double field_map_scale = x_par.attr<double>(_Unicode(scale));
+
+    if( !fs::exists(fs::path(field_map_file))  ) {
+      auto ret = std::system(("mkdir -p fieldmaps && "
+                             "wget " +
+                             field_map_url + " -O " + field_map_file).c_str());
+
+      if (!fs::exists(fs::path(field_map_file))) {
+        std::cerr << "ERROR: file, " << field_map_file << ", does not exist\n";
+        std::quick_exit(1);
+      }
+    }
+
+
+    auto map = new FieldMapBrBz(field_type);
+    map->Configure(r_dim.rmin(), r_dim.rmax(), r_dim.step(), z_dim.zmin(), z_dim.zmax(), z_dim.step());
+
+    // translation, rotation
+    static double deg2r = ROOT::Math::Pi()/180.;
+    RotationZYX rot(0., 0., 0.);
+    if (x_dim.hasChild(_Unicode(rotation))) {
+        xml_comp_t rot_dim = x_dim.child(_Unicode(rotation));
+        rot = RotationZYX(rot_dim.z()*deg2r, rot_dim.y()*deg2r, rot_dim.x()*deg2r);
+    }
+
+    Translation3D trans(0., 0., 0.);
+    if (x_dim.hasChild(_Unicode(translation))) {
+        xml_comp_t trans_dim = x_dim.child(_Unicode(translation));
+        trans = Translation3D(trans_dim.x(), trans_dim.y(), trans_dim.z());
+    }
+    map->SetTransform(trans*rot);
+
+    map->LoadMap(field_map_file, field_map_scale);
+    field.assign(map, x_par.nameStr(), "FieldMapBrBz");
+
+    return field;
+}
+
+DECLARE_XMLELEMENT(FieldMapBrBz, create_field_map_brbz)
+
diff --git a/views/view2.yml b/views/view2.yml
index 1c9fc241debfab2d47483a1ab9ea724cd49ab35d..10368277fa730b256af8e21814db22b58dd36294 100644
--- a/views/view2.yml
+++ b/views/view2.yml
@@ -2,10 +2,12 @@ dawn_view_02:detector:
   extends: .views
   script:
     - ./bin/make_dawn_views -t view02 -d scripts/view2 -D
-#dawn_view_02:ev001:
-#  extends: .views
-#  script:
-#    - ./bin/make_dawn_views -t view02_ev001 -d scripts/view2 -s 1
+dawn_view_02:ev001:
+  extends: .views
+  rules:
+    - if: '$DETECTOR_EVENT_VIEWS == "ON"'
+  script:
+    - ./bin/make_dawn_views -t view02_ev001 -d scripts/view2 -s 1
 dawn_view_02:ev002:
   extends: .views
   rules:
diff --git a/views/view6.yml b/views/view6.yml
index 1ad761c1f7b4a3df25e54fdcdfad68345b1559ce..92654e6dbbcf48aa45e7c15ef2c748027b164395 100644
--- a/views/view6.yml
+++ b/views/view6.yml
@@ -1,29 +1,31 @@
 dawn_view_06:detector:
   extends: .views
   script:
-    - ./bin/make_dawn_views -t view02 -d scripts/view2 -D
-#dawn_view_06:ev001:
-#  extends: .views
-#  script:
-#    - ./bin/make_dawn_views -t view02_ev001 -d scripts/view2 -s 1
+    - ./bin/make_dawn_views -t view06 -d scripts/view6 -D
+dawn_view_06:ev001:
+  extends: .views
+  rules:
+    - if: '$DETECTOR_EVENT_VIEWS == "ON"'
+  script:
+    - ./bin/make_dawn_views -t view06_ev001 -d scripts/view6 -s 1
 dawn_view_06:ev002:
   extends: .views
   rules:
     - if: '$DETECTOR_EVENT_VIEWS == "ON"'
   script:
-    - ./bin/make_dawn_views -t view02_ev002 -d scripts/view2 -s 2
+    - ./bin/make_dawn_views -t view06_ev002 -d scripts/view6 -s 2
 dawn_view_06:ev003:
   extends: .views
   rules:
     - if: '$DETECTOR_EVENT_VIEWS == "ON"'
   script:
-    - ./bin/make_dawn_views -t view02_ev003 -d scripts/view2 -s 3
+    - ./bin/make_dawn_views -t view06_ev003 -d scripts/view6 -s 3
 dawn_view_06:ev004:
   extends: .views
   rules:
     - if: '$DETECTOR_EVENT_VIEWS == "ON"'
   script:
-    - ./bin/make_dawn_views -t view02_ev004 -d scripts/view2 -s 4
+    - ./bin/make_dawn_views -t view06_ev004 -d scripts/view6 -s 4
 
 view_06:
   stage: test
@@ -32,6 +34,8 @@ view_06:
   needs:
     - job: dawn_view_06:detector
       optional: false
+    - job: dawn_view_06:ev001
+      optional: true
     - job: dawn_view_06:ev002
       optional: true
     - job: dawn_view_06:ev003