@@ -142,6 +142,24 @@ 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+ }
157+ if (TMath::Abs (lastReferenceR - fMC ->TrackLength ()) > kMaxDistRef ) { // / we can speedup
158+ stack->addTrackReference (o2::TrackReference (position.X (), position.Y (), position.Z (), momentum.X (), momentum.Y (),
159+ momentum.Z (), fMC ->TrackLength (), time, trackID, GetDetId ()));
160+ lastReferenceR = fMC ->TrackLength ();
161+ }
162+
145163 // ---| remove clusters between the IFC and the FC strips |---
146164 // those should not enter the active readout area
147165 // do coarse selection before, to limit number of transformations
@@ -164,24 +182,6 @@ Bool_t Detector::ProcessHits(FairVolume* vol)
164182 }
165183 }
166184
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-
185185 // ===| CONVERT THE ENERGY LOSS TO IONIZATION ELECTRONS |=====================
186186 //
187187 // The energy loss is implemented directly below and taken GEANT3,
0 commit comments