Process taking as an parameter a TSelector object

Hi everyone,

I tried to look in the documentation and some examples, but what I found is:

The Process method of TProof takes as parameter a string=the name of the file where my TSelector is implemented.

What I would like to do is:

in the main() function of my program to create an TSelector object; call it’s Init() method etc. Then to create an TProof object and call it’s Process method giving it the pointer to the TSelector object.

and then I would compile the whole thing: (something like):
g++ -O0 -g3 $(root-config --glibs --cflags) MySelector.cxx simple_ana.C -o simple_ana

and run it.

But seams to me that such approach is not possible since the Process method of TProof doesn’t take as an parameter a TSelector object.

Did I totally misunderstood something and the way I want to do things is a nonsense?

Thanks for any help, Asen.

OK, I looked in it little bit …

there is actually:

Long64_t TChain::Process(TSelector* selector, Option_t* option, Long64_t nentries, Long64_t firstentry)

the strange thing is you cannot see it at:

root.cern.ch/root/html518/TChain.html

but only if you look in the source code …

Problem of the software that creates the web page?

cheers, Asen.

Dear Asen,

This functionality is not implemented, basically because you need anyhow to send the selector code on the workers to be able to understand the TSelector object that you would send from the client.
What do you need to do in Init() that cannot be done in SlaveBegin() based , for example, on the input from the InputList ?

Gerri

Thanks for your answer Gerri,

I see your point.

Just a comment:

In my (special) case, I want to use proof to run the thing on both cores of the same computer. No need to compile twice or send anything anywhere …

But that’s just a special case, (similar situation can occur on a cluster where all the nodes have identical system on them + afs ),

anyway, I’ll try to stick to the rules and avoid using “not implemented” stuff :smiley:

cheers, Asen.