fInputList problem in TSelector using Proof

Hi,

I am trying to use a TSelector using Proof and in my code, I want to pass a parameter to the TSelector. For this, I have in my macro which launch the TSelector:

TProof *p = TProof::Open("");
"",1000
p->SetParallel(15);

p->SetParameter(“test”, 1);

MyTree->SetProof();

MyTree->Process(“MySelector.C+”,"",1000);

The problem is that when I want to get this parameter in my TSelector using:

((TParameter<Int_t>*)fInput->FindObject(“test”))->GetVal()

I obtain a seg fault because fInput is a NULL pointer. I don"t understand what I am doing wrong… if someone can help me.

Thanks in advance

Hello,

I do not see anything wrong either except perhaps the template specialization.
In which point of the TSelector are you calling this?
Can you check if the list get anything by doing a

fInput->Print()

instead of the statement that crashes?

G Ganis

I call this in the SlaveBegin method.

fInput->Print() crash also because fInput is equal to 0x0, as if it is never initialized…

Hello,

Sorry, I overlooked that fInput is null, not the return from FindObject.
That’s very strange, fInput should never be null.

Unfortunately I am not able to reproduce te problem. Attached is code for a very similar example: just unpack and run testSel .

If you want I can give a look at (the essential parts of) your code.

What ROOT version is this with?

G Ganis
simple-input.tgz (2.67 KB)

Ok now it works, thank you. I have re-built my code following yours. The only difference that I saw is that I was reading a TTree and not a TChain in wich a TTree has been added.

Thank you for your help :slight_smile:

Good to read that.
I will then mark the issue as solved.
Thanks for the feedback.

G Ganis