@@ -142,9 +142,29 @@ Bool_t Detector::ProcessHits(FairVolume* vol)
142142 // TODO: Temporary hack to process only one sector
143143 // if (sectorID != 0) return kFALSE;
144144
145+ // ---| momentum and beta gamma |---
146+ static TLorentzVector momentum; // static to make avoid creation/deletion of this expensive object
147+ fMC ->TrackMomentum (momentum);
148+
149+ const float time = fMC ->TrackTime () * 1.0e9 ;
150+ const int trackID = fMC ->GetStack ()->GetCurrentTrackNumber ();
151+ const int detID = vol->getMCid ();
152+ o2::data::Stack* stack = (o2::data::Stack*)fMC ->GetStack ();
153+ if (fMC ->IsTrackEntering () || fMC ->IsTrackExiting ()) {
154+ stack->addTrackReference (o2::TrackReference (position.X (), position.Y (), position.Z (), momentum.X (), momentum.Y (),
155+ momentum.Z (), fMC ->TrackLength (), time, trackID, GetDetId ()));
156+ lastReferenceR = fMC ->TrackLength ();
157+ }
158+ if (TMath::Abs (lastReferenceR - fMC ->TrackLength ()) > kMaxDistRef ) { // / we can speedup
159+ stack->addTrackReference (o2::TrackReference (position.X (), position.Y (), position.Z (), momentum.X (), momentum.Y (),
160+ momentum.Z (), fMC ->TrackLength (), time, trackID, GetDetId ()));
161+ lastReferenceR = fMC ->TrackLength ();
162+ }
163+
145164 // ---| remove clusters between the IFC and the FC strips |---
146165 // those should not enter the active readout area
147166 // do coarse selection before, to limit number of transformations
167+
148168 if (detParam.ExcludeFCGap ) {
149169 const auto rCluster = std::sqrt (position.X () * position.X () + position.Y () * position.Y ());
150170 const float rodRin = 81.5 + 2.2 ; // radial position of the inner field cage rods + radial size of the field cage rods
@@ -164,24 +184,6 @@ Bool_t Detector::ProcessHits(FairVolume* vol)
164184 }
165185 }
166186
167- // ---| momentum and beta gamma |---
168- static TLorentzVector momentum; // static to make avoid creation/deletion of this expensive object
169- fMC ->TrackMomentum (momentum);
170-
171- const float time = fMC ->TrackTime () * 1.0e9 ;
172- const int trackID = fMC ->GetStack ()->GetCurrentTrackNumber ();
173- const int detID = vol->getMCid ();
174- o2::data::Stack* stack = (o2::data::Stack*)fMC ->GetStack ();
175- if (fMC ->IsTrackEntering () || fMC ->IsTrackExiting ()) {
176- stack->addTrackReference (o2::TrackReference (position.X (), position.Y (), position.Z (), momentum.X (), momentum.Y (),
177- momentum.Z (), fMC ->TrackLength (), time, trackID, GetDetId ()));
178- }
179- if (TMath::Abs (lastReferenceR - fMC ->TrackLength ()) > kMaxDistRef ) { // / we can speedup
180- stack->addTrackReference (o2::TrackReference (position.X (), position.Y (), position.Z (), momentum.X (), momentum.Y (),
181- momentum.Z (), fMC ->TrackLength (), time, trackID, GetDetId ()));
182- lastReferenceR = fMC ->TrackLength ();
183- }
184-
185187 // ===| CONVERT THE ENERGY LOSS TO IONIZATION ELECTRONS |=====================
186188 //
187189 // The energy loss is implemented directly below and taken GEANT3,
0 commit comments