10 #include <tracking/modules/fitter/RecoTrackCreatorModule.h>
11 #include <tracking/dataobjects/RecoTrack.h>
12 #include <tracking/dataobjects/RecoHitInformation.h>
13 #include <mdst/dataobjects/MCParticle.h>
23 setDescription(
"Converts the given genfit::TrackCands in the StoreArray to RecoTracks for further use in the fitter.");
24 setPropertyFlags(c_ParallelProcessingCertified);
26 addParam(
"trackCandidatesStoreArrayName", m_param_trackCandidatesStoreArrayName,
"StoreArray name of the input track candidates.",
27 m_param_trackCandidatesStoreArrayName);
28 addParam(
"recoTracksStoreArrayName", m_param_recoTracksStoreArrayName,
"StoreArray name of the output reco tracks.",
29 m_param_recoTracksStoreArrayName);
30 addParam(
"recoHitInformationStoreArrayName", m_param_recoHitInformationStoreArrayName,
31 "StoreArray name of the output reco hit information.", m_param_recoHitInformationStoreArrayName);
33 addParam(
"recreateSortingParameters", m_param_recreateSortingParameters,
34 "Flag to recreate the sorting parameters of the hit out of the stored order.", m_param_recreateSortingParameters);
36 addParam(
"pxdHitsStoreArrayName", m_param_pxdHitsStoreArrayName,
"StoreArray name of the input PXD hits.",
37 m_param_pxdHitsStoreArrayName);
38 addParam(
"svdHitsStoreArrayName", m_param_svdHitsStoreArrayName,
"StoreArray name of the input SVD hits.",
39 m_param_svdHitsStoreArrayName);
40 addParam(
"cdcHitsStoreArrayName", m_param_cdcHitsStoreArrayName,
"StoreArray name of the input CDC hits.",
41 m_param_cdcHitsStoreArrayName);
42 addParam(
"bklmHitsStoreArrayName", m_param_bklmHitsStoreArrayName,
"StoreArray name of the input BKLM hits.",
43 m_param_bklmHitsStoreArrayName);
44 addParam(
"eklmHitsStoreArrayName", m_param_eklmHitsStoreArrayName,
"StoreArray name of the input EKLM hits.",
45 m_param_eklmHitsStoreArrayName);
48 void RecoTrackCreatorModule::initialize()
53 trackCandidates.isRequired();
56 recoTracks.registerInDataStore();
61 if (mcParticles.isOptional()) {
65 RecoTrack::registerRequiredRelations(recoTracks,
66 m_param_pxdHitsStoreArrayName,
67 m_param_svdHitsStoreArrayName,
68 m_param_cdcHitsStoreArrayName,
69 m_param_bklmHitsStoreArrayName,
70 m_param_eklmHitsStoreArrayName,
71 m_param_recoHitInformationStoreArrayName);
74 void RecoTrackCreatorModule::event()
88 if (trackCandidate.getNHits() < 3) {
89 B2WARNING(
"Number of hits of track candidate is smaller than 3. Not creating track out of it.");
93 RecoTrack* newRecoTrack = RecoTrack::createFromTrackCand(trackCandidate, m_param_recoTracksStoreArrayName,
94 m_param_cdcHitsStoreArrayName, m_param_svdHitsStoreArrayName, m_param_pxdHitsStoreArrayName,
95 m_param_recoHitInformationStoreArrayName,
96 "",
"", m_param_recreateSortingParameters);
102 const int mcParticleID = trackCandidate.getMcTrackId();
103 if (mcParticleID >= 0 and mcParticles.isOptional() and mcParticles.
getEntries() > 0) {
104 MCParticle* relatedMCParticle = mcParticles[mcParticleID];
105 if (relatedMCParticle) {
108 B2WARNING(
"Related MCParticle is invalid. Can not make a relation.");