12 #include <tracking/ckf/general/findlets/ResultStorer.dcl.h>
14 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
15 #include <tracking/ckf/general/utilities/SearchDirection.h>
16 #include <tracking/dataobjects/RecoTrack.h>
18 #include <framework/core/ModuleParamList.templateDetails.h>
25 template <
class AResult>
29 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix,
"exportTracks"), m_param_exportTracks,
30 "Export the result tracks into a StoreArray.",
31 m_param_exportTracks);
33 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix,
"outputRecoTrackStoreArrayName"),
34 m_param_outputRecoTrackStoreArrayName,
35 "StoreArray name of the output Track Store Array.");
36 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix,
"outputRelationRecoTrackStoreArrayName"),
37 m_param_outputRelationRecoTrackStoreArrayName,
38 "StoreArray name of the tracks, the output reco tracks should be related to.");
40 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix,
"writeOutDirection"),
41 m_param_writeOutDirectionAsString,
42 "Write out the relations with the direction of the VXD part as weight");
46 template <
class AResult>
51 if (not m_param_exportTracks) {
55 m_outputRecoTracks.registerInDataStore(m_param_outputRecoTrackStoreArrayName);
59 relationRecoTracks.registerRelationTo(m_outputRecoTracks);
61 m_param_writeOutDirection =
fromString(m_param_writeOutDirectionAsString);
65 template <
class AResult>
68 if (not m_param_exportTracks) {
72 for (
const auto& result : results) {
74 const TVector3& trackPosition = result.getPosition();
75 const TVector3& trackMomentum = result.getMomentum();
76 const short& trackCharge = result.getCharge();
78 RecoTrack* newRecoTrack = m_outputRecoTracks.appendNew(trackPosition, trackMomentum, trackCharge);
79 result.addToRecoTrack(*newRecoTrack);
85 seed->addRelationTo(newRecoTrack, m_param_writeOutDirection);