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
<marlin>
<constants>
</constants>
<global>
<parametername="LCIOInputFiles">
/pnfs/desy.de/ilc/prod/ilc/mc-2020/ild/rec/250-SetA/2f_hadronic_eL_pR/ILD_l5_o1_v02/v02-02/00015161/000/rv02-02.sv02-02.mILD_l5_o1_v02.E250-SetA.I500010.P2f_z_h.eL.pR.n000_052.d_rec_00015161_219.slcio
</parameter>
<parametername="MaxRecordNumber"value="0" />
<parametername="SkipNEvents"value="0" />
<parametername="SupressCheck"value="false" />
<parametername="AllowToModifyEvent"value="false" />
</global>
<execute>
<processorname="InitDD4hep" />
<processorname="MyTestRefitProcessorProton" />
</execute>
<processorname="InitDD4hep"type="InitializeDD4hep">
<parametername="DD4hepXMLFile"type="string">
/cvmfs/ilc.desy.de/sw/x86_64_gcc82_centos7/v02-02/lcgeo/v00-16-06/ILD/compact/ILD_l5_o1_v02/ILD_l5_o1_v02.xml
</parameter>
</processor>
<processorname="MyTestRefitProcessorProton"type="RefitProcessor">
<!--RefitProcessor refits an input track collection, producing a new collection of tracks. Proton mass hypothesis--><!--Use Energy Loss in Fit-->
<parametername="EnergyLossOn"type="bool">true</parameter>
<!--Fit direction: -1: backward [default], +1: forward-->
<parametername="FitDirection"type="int">-1</parameter>
<!--Value used for the initial d0 variance of the trackfit-->
<parametername="InitialTrackErrorD0"type="float">1e+06</parameter>
<!--Value used for the initial omega variance of the trackfit-->
<parametername="InitialTrackErrorOmega"type="float">0.00001</parameter>
<!--Value used for the initial phi0 variance of the trackfit-->
<parametername="InitialTrackErrorPhi0"type="float">100</parameter>
<!--Value used for the initial tanL variance of the trackfit-->
<parametername="InitialTrackErrorTanL"type="float">100</parameter>
<!--Value used for the initial z0 variance of the trackfit-->
<parametername="InitialTrackErrorZ0"type="float">1e+06</parameter>
<!--TrackState to use for initialization of the fit: -1: refit from hits [default], 1: AtIP, 2: AtFirstHit, 3: AtLastHit, 4:AtCalo-->
<parametername="InitialTrackState"type="int">-1</parameter>
<!--Name of the input track collection-->
<parametername="InputTrackCollectionName"type="string"lcioInType="Track">MarlinTrkTracks</parameter>
<!--Name of the MCParticle-Track Relations collection for input tracks-->
<parametername="InputTrackRelCollection"type="string"lcioInType="LCRelation" />
<!--Maximum Chi-squared value allowed when assigning a hit to a track--><!-- <parameter name="MaxChi2PerHit" type="float">100 </parameter>--><!--Use MultipleScattering in Fit--><!-- <parameter name="MultipleScatteringOn" type="bool">true </parameter>--><!--Name of the output track collection-->
<parametername="OutputTrackCollectionName"type="string"lcioOutType="Track">MarlinTrkTracksProton</parameter>
<!--Name of the MCParticle-Track Relations collection for output tracks-->
<parametername="OutputTrackRelCollection"type="string"lcioOutType="LCRelation">MarlinTrkTracksProtonMCP</parameter>
<!--particle mass that is used in the fit - default is the pion mass: 0.13957018 )-->
<parametername="ParticleMass"type="double">0.93828</parameter>
<!--Smooth All Mesurement Sites in Fit--><!-- <parameter name="SmoothOn" type="bool">false </parameter>--><!--Name of the track fitting system to be used (KalTest, DDKalTest, aidaTT, ... )-->
<parametername="TrackSystemName"type="string">DDKalTest</parameter>
<!--verbosity level of this processor ("DEBUG0-4,MESSAGE0-4,WARNING0-4,ERROR0-4,SILENT")--><!-- <parameter name="Verbosity" type="string">MESSAGE</parameter> -->
</processor>
</marlin>
Output:
[ DEBUG4 "MyTestRefitProcessorProton"] MarlinTrk::createFit ndof_added = 462
[ DEBUG5 "MyTestRefitProcessorProton"] MarlinTrk::createFit : null pointer for pre_fit given - will fall back to default initialisation ...
Error in <operator()>: Request row(1) outside matrix range of 0 - 1
[ ERROR "MyTestRefitProcessorProton"] RefitProcessor::processEvent: EVENT: << 20401 >> exception caught and rethown. Track = 0x16182660
[ DEBUG2 "MyTestRefitProcessorProton"] **** MarlinDDKalTest::includeEnergyLoss( 1 ) called
[ DEBUG2 "MyTestRefitProcessorProton"] **** MarlinDDKalTest::includeMultipleScattering( 1 ) called
***********************************************
A runtime error occured - (uncaught exception):
MarlinTrk::Exception: Track fit cannot be initialised from 1 Dimensional hits. Use method MarlinDDKalTestTrack::initialise( bool fitDirection )
Marlin will have to be terminated, sorry.
***********************************************
The text was updated successfully, but these errors were encountered:
I think this can be fixed if one uses createFinalisedLCIOTrack( ..., const EVENT::FloatVec& initial_cov_for_prefit, ...)`
it constructs pre-fit automatically ensuring that there are enough 3D hits to reconstruct it.
instead of currently used: createFinalisedLCIOTrack(..., EVENT::TrackState* pre_fit, ...)
Which immediately calls int fit_status = createFit(hit_list, marlinTrk, pre_fit, bfield_z, fit_direction, maxChi2Increment);
even if the pre_fit is a nullptr.
#Issue
As title says
RefitProcessor crashes with uncaught exception using default (-1) InitialTrackState option.
#Reproduce
source /cvmfs/ilc.desy.de/sw/x86_64_gcc82_centos7/v02-02-03/init_ilcsoft.sh
steering file:
Output:
The text was updated successfully, but these errors were encountered: