Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TaJetClustering crashes with DataNotAvailableException occasionally #93

Closed
tmadlener opened this issue Aug 20, 2021 · 1 comment · Fixed by #94
Closed

TaJetClustering crashes with DataNotAvailableException occasionally #93

tmadlener opened this issue Aug 20, 2021 · 1 comment · Fixed by #94

Comments

@tmadlener
Copy link
Contributor

We are currently running the standard miniDST workflow which occasionally crashes in the TaJetClustering module if the input collection is not present. We get the following error message:

Vertex collection (PrimaryVertex) is empty !
Vertex collection (PrimaryVertex) is empty !
***********************************************
A runtime error occured - (uncaught exception):
       lcio::DataNotAvailableException: LCEventImpl::getCollection: collection not in event:PFOsminuse
Marlin will have to be terminated, sorry.
***********************************************

The first two lines here originate from the IsolatedLeptonTagging processor:

std::cerr << "Vertex collection (" << _colPVtx << ") is empty !" << std::endl;

This in turn also means that the IsolatedLeptonTagging processor does not produce an output collection. However, the TaJetClustering expects this collection to be present, and doesn't properly handle the case when it isn't:

LCCollection* col = evt->getCollection( _pfoCollectionName );
if( !col ){ /*cout << "Failed to obtain PFO collection!" << endl;*/ return; }

@tmadlener
Copy link
Contributor Author

Looking into the whole chain that is run by the miniDST workflow it might be easier to simply fill an empty collection in the IsolatedLeptonTagging, in order to not break downstream consumers who expect a collection to be there, resp. do not handle a missing collection gracefully.

The cleaner solution would obviously be to make all processors handle missing collections appropriately. E.g. if a missing collection could simply be interpreted as no or empty input.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant