From 06605a3de278eefb6deade344614d9e70d997dc6 Mon Sep 17 00:00:00 2001
From: Valerio Pia <vpia@bo.infn.it>
Date: Thu, 28 Mar 2024 17:23:18 +0100
Subject: [PATCH 1/3] Branch to be used with KF only

---
 include/EDEPHit.h                       |  2 +-
 include/{utils.h => utils_edepreader.h} |  4 ++--
 src/EDEPTrajectory.cpp                  | 13 ++++++++-----
 3 files changed, 11 insertions(+), 8 deletions(-)
 rename include/{utils.h => utils_edepreader.h} (87%)

diff --git a/include/EDEPHit.h b/include/EDEPHit.h
index 36b76c1..3347694 100644
--- a/include/EDEPHit.h
+++ b/include/EDEPHit.h
@@ -3,7 +3,7 @@
 
 #include <iostream>
 
-#include "utils.h"
+#include "utils_edepreader.h"
 
 #include "TG4Event.h"
 
diff --git a/include/utils.h b/include/utils_edepreader.h
similarity index 87%
rename from include/utils.h
rename to include/utils_edepreader.h
index f338798..a5e9d08 100644
--- a/include/utils.h
+++ b/include/utils_edepreader.h
@@ -1,5 +1,5 @@
-#ifndef UTILS_H
-#define UTILS_H
+#ifndef UTILS_EDEPREADER_H
+#define UTILS_EDEPREADER_H
 
 #include <iostream>
 #include <initializer_list>
diff --git a/src/EDEPTrajectory.cpp b/src/EDEPTrajectory.cpp
index fdc4782..5d76ab8 100644
--- a/src/EDEPTrajectory.cpp
+++ b/src/EDEPTrajectory.cpp
@@ -10,7 +10,11 @@ TGeoNode* GetNode(const TG4TrajectoryPoint& tpoint, TGeoManager* geo) {
   node = geo->FindNode(position.X(), position.Y(), position.Z());
   
   geo->SetCurrentDirection(mom.X(), mom.Y(), mom.Z());
-  geo->FindNextBoundary(1);
+
+  if (abs(mom.X()) == 0 || abs(mom.Y()) == 0 || abs(mom.Z()) == 0) {
+    return node;
+  }
+  geo->FindNextBoundary(1000);
 
   if (geo->GetStep() < 1E-5) {
     geo->Step();
@@ -26,10 +30,8 @@ EDEPTrajectory::EDEPTrajectory(const TG4Trajectory& trajectory, const TG4HitSegm
                                                id_(trajectory.GetTrackId()), 
                                                parent_id_(trajectory.GetParentId()), 
                                                pdg_code_(trajectory.GetPDGCode()) {
-      
-  for (auto it = trajectory.Points.begin(); it != trajectory.Points.end(); ++it) {
-    trajectory_points_.push_back(*it);
 
+  for (auto it = trajectory.Points.begin(); it != trajectory.Points.end(); ++it) {
     auto next_it = std::next(it);
 
     if (next_it == trajectory.Points.end()) {
@@ -46,7 +48,8 @@ EDEPTrajectory::EDEPTrajectory(const TG4Trajectory& trajectory, const TG4HitSegm
     bool in_ecal    = Match(current_volume, ecal_names);
     bool in_mag     = Match(current_volume, magnet_names);
     bool in_world   = Match(current_volume, world_names);
-
+    if (!in_stt) continue;
+    trajectory_points_.push_back(*it);
     bool next_grain = Match(next_volume,    grain_names);
     bool next_stt   = Match(next_volume,    stt_names);
     bool next_ecal  = Match(next_volume,    ecal_names);       
-- 
GitLab


From 40adcb7324e03630d047a3a561c3a3364b6ec0f2 Mon Sep 17 00:00:00 2001
From: Valerio Pia <valerio.pia@bo.infn.it>
Date: Thu, 10 Oct 2024 14:51:15 +0200
Subject: [PATCH 2/3] renamed TrajectoryHits to TrajectoryPoints. They are now
 a map with components as keys

---
 include/EDEPHit.h                           |  2 +-
 include/EDEPTrajectory.h                    |  4 ++--
 include/EDEPTrajectoryPoint.h               |  8 ++++----
 include/{utils_edepreader.h => EDEPUtils.h} |  0
 src/EDEPTrajectory.cpp                      | 11 +++++++++--
 5 files changed, 16 insertions(+), 9 deletions(-)
 rename include/{utils_edepreader.h => EDEPUtils.h} (100%)

diff --git a/include/EDEPHit.h b/include/EDEPHit.h
index 3347694..48837d8 100644
--- a/include/EDEPHit.h
+++ b/include/EDEPHit.h
@@ -3,7 +3,7 @@
 
 #include <iostream>
 
-#include "utils_edepreader.h"
+#include "EDEPUtils.h"
 
 #include "TG4Event.h"
 
diff --git a/include/EDEPTrajectory.h b/include/EDEPTrajectory.h
index 62f8291..edbb809 100644
--- a/include/EDEPTrajectory.h
+++ b/include/EDEPTrajectory.h
@@ -49,7 +49,7 @@ class EDEPTrajectory {
 
        // EDEPHitsMap& GetHitMap()       {return hit_map_;};
     const EDEPHitsMap& GetHitMap() const {return hit_map_;};
-    const EDEPTrajectoryHits& GetTrajectoryPoints() const {return  trajectory_points_;};
+    const EDEPTrajectoryPoints& GetTrajectoryPoints() const {return  trajectory_points_;};
     
     // Setters
     void SetId(int id) {id_ = id;};
@@ -98,7 +98,7 @@ class EDEPTrajectory {
   private:
     TLorentzVector p0_;
     EDEPHitsMap hit_map_;
-    EDEPTrajectoryHits trajectory_points_;
+    EDEPTrajectoryPoints trajectory_points_;
     std::vector<EDEPTrajectory> children_trajectories_;
     std::map<component, bool> exiting_map_;
     std::map<component, bool> entering_map_;
diff --git a/include/EDEPTrajectoryPoint.h b/include/EDEPTrajectoryPoint.h
index edcf3e7..77dd6e2 100644
--- a/include/EDEPTrajectoryPoint.h
+++ b/include/EDEPTrajectoryPoint.h
@@ -2,12 +2,12 @@
 
 #include "TG4Event.h"
 
-class EDEPTrajectoryHit {
+class EDEPTrajectoryPoint {
 
   public:
-    EDEPTrajectoryHit(const TG4TrajectoryPoint& trajectory_hit) : position_(trajectory_hit.GetPosition()), momentum_(trajectory_hit.GetMomentum()),
+    EDEPTrajectoryPoint(const TG4TrajectoryPoint& trajectory_hit) : position_(trajectory_hit.GetPosition()), momentum_(trajectory_hit.GetMomentum()),
                                                             process_(trajectory_hit.GetProcess()), sub_process_(trajectory_hit.GetSubprocess()) {};
-    ~EDEPTrajectoryHit() {};
+    ~EDEPTrajectoryPoint() {};
 
     const TLorentzVector& GetPosition()    const {return position_;};
     const TVector3&       GetMomentum()    const {return momentum_;};
@@ -22,4 +22,4 @@ class EDEPTrajectoryHit {
 };
 
 
-using EDEPTrajectoryHits = std::vector<EDEPTrajectoryHit>;
\ No newline at end of file
+using EDEPTrajectoryPoints = std::map<component, std::vector<EDEPTrajectoryPoint>>;
\ No newline at end of file
diff --git a/include/utils_edepreader.h b/include/EDEPUtils.h
similarity index 100%
rename from include/utils_edepreader.h
rename to include/EDEPUtils.h
diff --git a/src/EDEPTrajectory.cpp b/src/EDEPTrajectory.cpp
index 5d76ab8..51e8eb9 100644
--- a/src/EDEPTrajectory.cpp
+++ b/src/EDEPTrajectory.cpp
@@ -43,13 +43,20 @@ EDEPTrajectory::EDEPTrajectory(const TG4Trajectory& trajectory, const TG4HitSegm
     auto next_node   = GetNode(*next_it, geo);
     auto next_volume = next_node->GetName();
 
+    component comp;
     bool in_grain   = Match(current_volume, grain_names);
+    if(in_grain) comp = component::GRAIN;
     bool in_stt     = Match(current_volume, stt_names);
+    if(in_stt) comp = component::STRAW;
     bool in_ecal    = Match(current_volume, ecal_names);
+    if(in_ecal) comp = component::ECAL;
     bool in_mag     = Match(current_volume, magnet_names);
+    if(in_mag) comp = component::MAGNET;
     bool in_world   = Match(current_volume, world_names);
-    if (!in_stt) continue;
-    trajectory_points_.push_back(*it);
+    if(in_world) comp = component::WORLD;
+
+    trajectory_points_[comp].push_back(*it);
+    
     bool next_grain = Match(next_volume,    grain_names);
     bool next_stt   = Match(next_volume,    stt_names);
     bool next_ecal  = Match(next_volume,    ecal_names);       
-- 
GitLab


From 2c2d3c7fe105ef2c7e10ddaa01711183ce0d6306 Mon Sep 17 00:00:00 2001
From: Valerio Pia <valerio.pia@bo.infn.it>
Date: Thu, 10 Oct 2024 14:56:18 +0200
Subject: [PATCH 3/3] Commented KF related part

---
 src/EDEPTrajectory.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/EDEPTrajectory.cpp b/src/EDEPTrajectory.cpp
index 51e8eb9..824d5ea 100644
--- a/src/EDEPTrajectory.cpp
+++ b/src/EDEPTrajectory.cpp
@@ -11,10 +11,13 @@ TGeoNode* GetNode(const TG4TrajectoryPoint& tpoint, TGeoManager* geo) {
   
   geo->SetCurrentDirection(mom.X(), mom.Y(), mom.Z());
 
-  if (abs(mom.X()) == 0 || abs(mom.Y()) == 0 || abs(mom.Z()) == 0) {
-    return node;
-  }
-  geo->FindNextBoundary(1000);
+  // Notice: this was added for the KF. Check if really needed.
+  //         Commented at the moment.
+  // if (abs(mom.X()) == 0 || abs(mom.Y()) == 0 || abs(mom.Z()) == 0) {
+  //   return node;
+  // }
+  // geo->FindNextBoundary(1000);
+  geo->FindNextBoundary(1);
 
   if (geo->GetStep() < 1E-5) {
     geo->Step();
-- 
GitLab