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.