@@ -211,31 +211,31 @@ int PHSiliconSeedMerger::process_event(PHCompositeNode* /*unused*/)
211211 }
212212 }
213213 }
214-
214+
215215 if (m_mergeSeeds)
216216 {
217- for (const auto & [trackKey, mvtxKeys] : matches)
218- {
219- auto * track = m_siliconTracks->get (trackKey);
220- if (Verbosity () > 2 )
217+ for (const auto & [trackKey, mvtxKeys] : matches)
221218 {
222- std::cout << " original track: " << std::endl;
223- track->identify ();
224- }
219+ auto * track = m_siliconTracks->get (trackKey);
220+ if (Verbosity () > 2 )
221+ {
222+ std::cout << " original track: " << std::endl;
223+ track->identify ();
224+ }
225225
226- for (const auto & key : mvtxKeys)
227- {
228- if (track->find_cluster_key (key) == track->end_cluster_keys ())
226+ for (const auto & key : mvtxKeys)
229227 {
230- track->insert_cluster_key (key);
231- if (Verbosity () > 2 )
228+ if (track->find_cluster_key (key) == track->end_cluster_keys ())
232229 {
233- std::cout << " adding " << key << std::endl;
230+ track->insert_cluster_key (key);
231+ if (Verbosity () > 2 )
232+ {
233+ std::cout << " adding " << key << std::endl;
234+ }
234235 }
235236 }
236237 }
237238 }
238- }
239239 for (const auto & key : seedsToDelete)
240240 {
241241 if (Verbosity () > 2 )
@@ -301,82 +301,80 @@ int PHSiliconSeedMerger::getNodes(PHCompositeNode* topNode)
301301void PHSiliconSeedMerger::printRemainingDuplicates ()
302302{
303303 for (unsigned int track1ID = 0 ;
304- track1ID != m_siliconTracks->size ();
305- ++track1ID)
304+ track1ID != m_siliconTracks->size ();
305+ ++track1ID)
306+ {
307+ std::set<TrkrDefs::cluskey> mvtx1Keyscheck;
308+
309+ TrackSeed* seed = m_siliconTracks->get (track1ID);
310+ if (!seed)
306311 {
307- std::set<TrkrDefs::cluskey> mvtx1Keyscheck;
312+ continue ;
313+ }
314+ int strobe1 = -9999 ;
315+ for (auto iter = seed->begin_cluster_keys ();
316+ iter != seed->end_cluster_keys ();
317+ ++iter)
318+ {
319+ mvtx1Keyscheck.insert (*iter);
320+ if (TrkrDefs::getTrkrId (*iter) == TrkrDefs::mvtxId)
321+ {
322+ strobe1 = MvtxDefs::getStrobeId (*iter);
323+ }
324+ }
308325
309- TrackSeed* seed = m_siliconTracks->get (track1ID);
310- if (!seed)
326+ for (unsigned int track2ID = 0 ;
327+ track2ID != m_siliconTracks->size ();
328+ ++track2ID)
329+ {
330+ std::set<TrkrDefs::cluskey> mvtx2Keyscheck;
331+ TrackSeed* seed2 = m_siliconTracks->get (track2ID);
332+ if (!seed2)
311333 {
312334 continue ;
313335 }
314- int strobe1 = -9999 ;
315- for (auto iter = seed ->begin_cluster_keys ();
316- iter != seed ->end_cluster_keys ();
317- ++iter )
336+ int strobe2 = -9999 ;
337+ for (auto iter2 = seed2 ->begin_cluster_keys ();
338+ iter2 != seed2 ->end_cluster_keys ();
339+ ++iter2 )
318340 {
319- mvtx1Keyscheck .insert (*iter );
320- if ( TrkrDefs::getTrkrId (*iter ) == TrkrDefs::mvtxId)
341+ mvtx2Keyscheck .insert (*iter2 );
342+ if ( TrkrDefs::getTrkrId (*iter2 ) == TrkrDefs::mvtxId)
321343 {
322- strobe1 = MvtxDefs::getStrobeId (*iter );
344+ strobe2 = MvtxDefs::getStrobeId (*iter2 );
323345 }
324346 }
325-
326-
327-
328- for (unsigned int track2ID = 0 ;
329- track2ID != m_siliconTracks->size ();
330- ++track2ID)
347+ std::vector<TrkrDefs::cluskey> intersectioncheck;
348+ std::set_intersection (mvtx1Keyscheck.begin (),
349+ mvtx1Keyscheck.end (),
350+ mvtx2Keyscheck.begin (),
351+ mvtx2Keyscheck.end (),
352+ std::back_inserter (intersectioncheck));
353+ if (track1ID != track2ID)
331354 {
332- std::set<TrkrDefs::cluskey> mvtx2Keyscheck;
333- TrackSeed* seed2 = m_siliconTracks->get (track2ID);
334- if (!seed2)
335- {
336- continue ;
337- }
338- int strobe2 = -9999 ;
339- for (auto iter2 = seed2->begin_cluster_keys ();
340- iter2 != seed2->end_cluster_keys ();
341- ++iter2)
355+ if (intersectioncheck.size () == mvtx1Keyscheck.size () || intersectioncheck.size () == mvtx2Keyscheck.size ())
342356 {
343- mvtx2Keyscheck.insert (*iter2);
344- if (TrkrDefs::getTrkrId (*iter2) == TrkrDefs::mvtxId)
357+ std::cout << " After merge, still have duplicate seeds: "
358+ << " seed1 ID " << track1ID << " strobe " << strobe1 << " nkeys " << mvtx1Keyscheck.size ()
359+ << " seed2 ID " << track2ID << " strobe " << strobe2 << " nkeys " << mvtx2Keyscheck.size ()
360+ << " intersection size " << intersectioncheck.size ()
361+ << std::endl;
362+ std::cout << " seed 1 keys " << std::endl;
363+ std::cout << " " ;
364+ for (const auto & key : mvtx1Keyscheck)
345365 {
346- strobe2 = MvtxDefs::getStrobeId (*iter2) ;
366+ std::cout << key << " , " ;
347367 }
348- }
349- std::vector<TrkrDefs::cluskey> intersectioncheck;
350- std::set_intersection (mvtx1Keyscheck.begin (),
351- mvtx1Keyscheck.end (),
352- mvtx2Keyscheck.begin (),
353- mvtx2Keyscheck.end (),
354- std::back_inserter (intersectioncheck));
355- if (track1ID != track2ID)
356- {
357- if (intersectioncheck.size () == mvtx1Keyscheck.size () || intersectioncheck.size () == mvtx2Keyscheck.size ())
368+ std::cout << std::endl;
369+ std::cout << " seed 2 keys " << std::endl;
370+ std::cout << " " ;
371+ for (const auto & key : mvtx2Keyscheck)
358372 {
359- std::cout << " After merge, still have duplicate seeds: "
360- << " seed1 ID " << track1ID << " strobe " << strobe1 << " nkeys " << mvtx1Keyscheck.size ()
361- << " seed2 ID " << track2ID << " strobe " << strobe2 << " nkeys " << mvtx2Keyscheck.size ()
362- << " intersection size " << intersectioncheck.size ()
363- << std::endl;
364- std::cout << " seed 1 keys " << std::endl;
365- std::cout << " " ;
366- for (const auto & key : mvtx1Keyscheck)
367- {
368- std::cout << key << " , " ;
369- }
370- std::cout << std::endl;
371- std::cout << " seed 2 keys " << std::endl;
372- std::cout << " " ;
373- for (const auto & key : mvtx2Keyscheck)
374- {
375- std::cout << key << " , " ;
376- }
377- std::cout << std::endl;
373+ std::cout << key << " , " ;
378374 }
375+ std::cout << std::endl;
379376 }
380377 }
381378 }
379+ }
382380}
0 commit comments