TProofConfig arguments and UpperLimit results

Hi all!

I’m testing for the first time Proof-lite on my laptop.
I’m trying to parallelize a scan to find a CLs Expected Upper limit, but I’m a bit confused about the meaning of some parameters…
I’m using the following code:


HybridCalculator* hypoCalcFlip = new HybridCalculator(*NTdat, *b_model, *sb_model);
hypoCalcFlip->SetToys(100, 100);
hypoCalcFlip->ForcePriorNuisanceAlt(*wspace->pdf("nuisPDF"));
hypoCalcFlip->ForcePriorNuisanceNull(*wspace->pdf("nuisPDF"));

int nExp = 100;
int nEvtsPerToy = 1;

ToyMCSampler* samplerFlip = (ToyMCSampler*)hypoCalcFlip->GetTestStatSampler();
ProofConfig pc(*wspace, nExp, "", kFALSE);
samplerFlip->SetProofConfig(&pc);
samplerFlip->SetNEventsPerToy(nEvtsPerToy);

HypoTestInverter* inverter =  new HypoTestInverter(*hypoCalcFlip, wspace->var("BR"));
inverter->SetConfidenceLevel(0.95);
inverter->SetFixedScan(300, 0, 0.03);
HypoTestInverterResult * invResult = inverter->GetInterval();

cout << "CLs Upper Limit = " << invResult->UpperLimit() << endl;

What is exactly the meaning of nExperiments variable?
“Experiments” are sometimes called also “Events” according to ROOT references.
But does this variable is equal to “nEvtsPerToy”?

Moreover I would expect to find the same “UpperLimit” running two times the same code. However I get some fluctuations on UpperLimit value. Do exist a seed randomizer anywhere?

Thanks.
Cheers.

Michele.