I did not find this exact problem discussed so am posting it here.
My ntuple class has (among other stuff) this public data member in the header:
There is a LinkDef.h file with these lines:
#include "TLorentzVector.h" #pragma link C++ class vector<TLorentzVector>+;
In the constructor I branch like this:
m_tree->Branch("vtlv", "vector<TLorentzVector>", &vtlv, 32000, 0);
I reset my variables at the beginning of each event, like this:
and fill normally.
All this works well in local tests (e.g lxplus), vtlv is stored and has correct structure and contents;
but the vtlv.clear() statement crashes grid jobs.
I am running root 5.28. Lxlplus is 64 bits, grid machines are 32 bits - this is the only difference I can see.
Does anyone have an idea? Is there anything non standard in the above?
I generally see people use vector* rather than vector for branch variables. Is this a better choice?
thanks for your help,