PROOF and RooStats

Hello Proofers,
I’m trying to get my limit setting code up and running on BNL’s proof farm but am having issues. I took a step back to see if I could get the relevant tutorial to run but this is having issues too. It seems that I can run fine locally but when I try to run on the worker nodes, things are crashing and I don’t know why. To reproduce my problem: (I’m using version 5.34.00-rc1/x86_64-slc5-gcc43-opt . )
run ‘prepareHistFactory’ in a clean directory
hist2workspace config/example.xml
cp $ROOTSYS/tutorials/roostats/StandardHypoTestInvDemo.C
line 74 : useProof = false; ->true
line 867: “” -> "your proof master here"
root -l StandardHypoTestInvDemo.C

During runtime, I get these sorts of errors:

120721 17:02:04 32542 Proofx-E: Conn::LowWrite: sending header to server [acas1010.usatlas.bnl.gov:1093] (rc=-3)
120721 17:02:04 32542 Proofx-E: Conn::SendRecv: problems sending request to server [acas1010.usatlas.bnl.gov:1093]
Starting master: opening connection ...
Starting master: OK                                                 
Opening connections to workers: OK (96 workers)                 
Setting up worker servers: OK (96 workers)                 
PROOF set to parallel mode (96 workers)
[#0] PROGRESS:Generation -- RooStudyManager::runProof() sending work package to PROOF servers
[#0] PROGRESS:Generation -- RooStudyManager::runProof() starting PROOF processing of 4 experiments
0: caught exception triggered by signal '1' <undef>
 
| session: rcalkins.default.31230.status terminated by peer

When I look at the PROOF logs, it looks like the first machine segfaults and terminates the rest of them.

17:26:29 16813 Mst-0 | Warning in <TClass::TClass>: no dictionary for class ParamHistFunc is available
  26 17:26:30 16813 Mst-0 | Warning in <TClass::TClass>: no dictionary for class RooVectorDataStore is available
  27 17:26:30 16813 Mst-0 | Warning in <TClass::TClass>: no dictionary for class RooVectorDataStore::RealVector is available
  28 17:26:30 16813 Mst-0 | Warning in <TClass::TClass>: no dictionary for class RooStats::HistFactory::FlexibleInterpVar is available
  29 17:26:30 16813 Mst-0 | Warning in <TClass::TClass>: no dictionary for class RooVectorDataStore::CatVector is available
  30 17:26:30 16813 Mst-0 | Warning in <TStreamerInfo::BuildCheck>:
  31    The StreamerInfo of class RooStats::ToyMCStudy
  32    has the same version (=1) as the active class but a different checksum.
  33    You should update the version to ClassDef(RooStats::ToyMCStudy,2).
  34    Do not try to write objects with the current class definition,
  35    the files will not be readable.
  36 
  37 17:26:30 16813 Mst-0 | Warning in <TStreamerInfo::BuildOld>: Cannot convert RooAbsArg::_proxyList from type:TRefArray to type:TList, skip elemen     t
  38 17:26:30 16813 Mst-0 | Error in <TMessage::ReadObject>: trying to read an emulated class (ParamHistFunc) to store in a compiled pointer (TObject     )
  39 17:26:30 16813 Mst-0 | Error in <TMessage::ReadObject>: trying to read an emulated class (RooStats::HistFactory::FlexibleInterpVar) to store in      a compiled pointer (TObject)
  40 17:26:30 16813 Mst-0 | Error in <TClass::New with placement>: cannot create object of class RooAbsReal version 2 at address 0x2aaab06a7780
  41 17:26:30 16813 Mst-0 | *** Break ***: segmentation violation

I don’t see anything like this when running locally so I suspect that something is going on with the PROOF workers or their configuration. I came across this in one of the other RooStat tutorials

We can use PROOF to speed things along in parallel, however, 
the test statistic has to be installed on the workers
so either turn off PROOF or include the modified test statistic
in your $ROOTSYS/roofit/roostats/inc directory,
add the additional line to the LinkDef.h file,
 and recompile root.

Could this be related? If so, I’m not left with many clues on how to proceed since I don’t see an example or what test statistic it wants.

Thanks,
Rob Calkins

Nevermind. It was a setup issue. By default the cluster was running 5.28 but I was calling functions unique to 5.34 which was causing problems. The solution was to setup 5.34 before calling PROOF by including this line in my code:

TProof::AddEnvVar("PROOF_INITCMD", "echo source <My 5.34 setup script>") ;

Rob