You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
streamlog_out( DEBUG2 ) << " >>>>>>>>>>> createTrackStateAtCaloFace : setting z0 to 0. for track state at calorimeteter : "
<< toString(trkStateCalo ) << std::endl ;
trkStateCalo->setZ0( 0. ) ;
}
Do we need it? Shouldn't all track states at calo have d0 and z0 set to 0?
There are curly tracks that consistently pass this if condition and result in the huge z0.
This later on affects track length calculation significantly.
Good question. From my vague memory and looking at the code: there seems to be an ambiguity in the track state computation for curlers - likely those that are coming back in when hitting the endcap - where the z0 is off by one full turn, i.e. $2*\pi/\omega*tan(\lambda)$. Your example tracks show this feature. Why I put in a condition that the z0 should be larger than this I don't remember - most likely a bug. Can you try w/ removing the condition ?
In my analysis, during the track length calculation, I manually set d0/z0 of the trackStateAtCalo to 0.
Non-physical lines disappear, so results got better.
Left plot: d0/z0 from production (bugged)
Right plot: d0/z0 set to 0
P.S. To better see the improvement, open plots in new tabs and swap between them.
The
d0
andz0
parameters of the track state at the ECAL should always be equal to0
by definition.What is the purpose of the if condition here?
MarlinTrk/src/MarlinTrkUtils.cc
Lines 852 to 859 in e636fdd
Do we need it? Shouldn't all track states at calo have
d0
andz0
set to 0?There are curly tracks that consistently pass this if condition and result in the huge
z0
.This later on affects track length calculation significantly.
The text was updated successfully, but these errors were encountered: