]> git.uio.no Git - u/mrichter/AliRoot.git/blame - prod/acrcaf/reco/runProof.C
Updated macros from Martin. Ready for the shifter.
[u/mrichter/AliRoot.git] / prod / acrcaf / reco / runProof.C
CommitLineData
154117a7 1void runProof(Int_t runNumber, Int_t nev = 10000, Int_t firstev = 0,TString proofCluster="aliprod@alice-caf.cern.ch",TString workers="")
2{
3 gEnv->SetValue("XSec.GSI.DelegProxy","2");
4
5 // Select ROOT version
6 TProof::Mgr(proofCluster.Data())->SetROOTVersion(Form("VO_ALICE@ROOT::%s",gSystem->GetFromPipe("echo $ROOTSYS | awk -F/ '{print $NF}'").Data()));
7
8 // set ALIROOT mode to REC
9 TList * list = new TList();
10 list->Add(new TNamed("ALIROOT_MODE", "REC"));
11 list->Add(new TNamed("ALIROOT_ENABLE_ALIEN", "1"));
12 // Login to CAF
13
14 TString workersStr;
15 if (!workers.IsNull()) workersStr=Form("workers=%s",workers.Data());
16
17 // connecting to proof cluster
18 TProof::Open(proofCluster.Data(),workersStr.Data());
19
20 // seting up aliroot version
21 TString alirootVer = Form("VO_ALICE@AliRoot::%s",gSystem->GetFromPipe("echo $ALICE_ROOT | awk -F/ '{print $NF}'").Data());
22
23 // Enable AliRoot
24 Printf("Setting aliroot version on caf to %s ...",alirootVer.Data());
25 if (gProof->EnablePackage(alirootVer.Data(), list)) {
26 Error("run.C",Form("Error enabling proof package %s !!!!",alirootVer.Data()));
27 return;
28 }
29
30
31 gSystem->Load("libMonaLisa.so");
32 TMonaLisaWriter monalisa("pcalishuttle02.cern.ch","SHIFTER_RECO_CAF");
33 SendMonaLisaData(&monalisa,runNumber,"Started",0);
34
35 // Temporary fix in order to avoid timeouts on the master
36 Int_t numWorkers = gProof->GetParallel();
37 gProof->SetParameter("PROOF_PacketizerStrategy", (Int_t)0);
38 gProof->SetParameter("PROOF_PacketAsAFraction", (Int_t) nev/numWorkers);
39// gProof->SetParameter("PROOF_MinPacketTime", 8);
40// gProof->SetParameter("PROOF_MaxPacketTime", 5);
41
42 // Set some verbosity
43 // gProof->SetLogLevel(3);
44
45
46 // Run reconstruction
47 gROOT->LoadMacro("rec.C");
48 gROOT->ProcessLine(Form("rec(%d,%d,%d);",runNumber,nev,firstev));
49
50 TProof::Mgr(proofCluster.Data())->GetSessionLogs()->Save("*",Form("log/run%d.log",runNumber));
51
52 // Check the produced dataset
53 TFileCollection *coll = gProof->GetDataSet(Form("run%d",runNumber));
54 if (coll) {
55 Int_t nEvents = coll->GetTotalEntries("/esdTree");
56 if (nEvents > 0) {
57 cout << "===========================================================================" << endl;
58 cout << nEvents << " events reconstructed and stored in the dataset run" << runNumber << endl;
59 cout << "===========================================================================" << endl;
60 cout << "The dataset is:" << endl;
61 coll->Print();
62 cout << "===========================================================================" << endl;
63 SendMonaLisaData(&monalisa,runNumber,"Done",nEvents);
64 }
65 else {
66 SendMonaLisaData(&monalisa,runNumber,"No_Events",nEvents);
67 }
68 }
69 else {
70 SendMonaLisaData(&monalisa,runNumber,"Failure",0);
71 }
72}
73
74void SendMonaLisaData(TMonaLisaWriter *monalisa, Int_t runNumber, const char* status, Int_t nEvents)
75{
76 TMonaLisaText mlStatus("Status",status);
77 TMonaLisaValue mlEventCount("Event_count",nEvents);
78 TList mlList;
79 mlList.Add(&mlStatus);
80 mlList.Add(&mlEventCount);
81 TString mlID;
82 mlID.Form("%d",runNumber);
83 monalisa->SendParameters(&mlList, mlID.Data());
84}
85
86void LoadRecMacroOnClient() {
87 gSystem->AddIncludePath(Form("-I\"%s/include\"", gSystem->Getenv("ALICE_ROOT")));
88 gROOT->Macro("$ALICE_ROOT/macros/loadlibsrec.C");
89}