Open dantrim opened 3 years ago
LCFIPlus extracts tracks from the PFO collection since we have to keep PFO-track connection, so it's not easy to omit PFO collection. I think you can use "TrackToRecoParticleConverter" in MarlinReco to directly produce a PFO collection from tracks without PFA.
Thanks @suehara, I will take a look.
Can you confirm that the current PrimaryVertexFinder
and BuildUpVertex
algorithms do not use the PFO resulting from running the PFA -- rather, that it only uses the tracks constructed from the tracking processors (in this case, the conformal tracking)? I want to confirm whether or not the two configurations (not running PFA and converting tracks to PFO versus running PFA and not converting tracks to PFO) will be consistent with one another.
I also see that TrackToRecoParticleConverter
hardcodes some parameters such as the magnetic field, would this lead to inconsistencies or is this parameter not relevant in terms of retrieving the underlying tracks from the ReconstructedParticle
objects within LCFIPlus
?
Checking back in @suehara. I can confirm that with using the TrackToRecoParticleConverter
while disabling the calorimeter simulation and the running of the PFA, I get similar results to when I run the default detector simulation (with calorimeter) and reconstruction (with PFA):
Thanks for the information. That's good. Tracks in the track collection and PandoraPFA output (of the charged particles) should be quite similar, but PandoraPFA runs some arrangement of the tracks such as kink finder and V0 finder, so it should not be fully identical. You may see slight difference on the performance.
I am attempting to only run the primary and secondary vertex finding algorithms, without any calorimeter simulation. In this case, I do not run with PandoraPFA algorithms and therefore do not have anything meaningful to specify for the
PFOCollections
parameter of theLcfiplusProcessor
. If we only want to run thePrimaryVertexFinder
andBuildUpVertex
algorithms, I believe there is no use of the inputPFOCollection
since only the tracks are used.Is there a way to configure the
LcfiplusProcessor
to be run without failure if thePFOCollection
is empty? Currently, if thePFOCollection
is empty (""
) then theLCIOStorer
class will try to register the collection with a name""
in InitPFOCollections function, which will throw an exception. I am wondering if it could just easily exit from that function if thePFOCollection
parameter is not provided, since thePrimaryVertexFinder
andBuildUpVertex
algorithms only need input from the track collections which are not a part of the PFO list.