fb6fc115 |
1 | void run(Int_t runNumber,Int_t nev=10000, Int_t firstev=0) |
2 | { |
3 | gEnv->SetValue("XSec.GSI.DelegProxy","2"); |
4 | // Select ROOT version |
5 | TProof::Mgr("aliprod@alicecaf")->SetROOTVersion("v5-24-00b-caf"); |
6 | // Login to CAF |
7 | TProof::Open("aliprod@alicecaf"); |
8 | |
9 | // Enable AliRoot |
10 | gProof->UploadPackage("/afs/cern.ch/alice/caf/sw/ALICE/PARs/v4-17-Release.rec/AF-v4-17-rec.par"); |
11 | gProof->EnablePackage("AF-v4-17-rec.par"); |
12 | |
13 | gSystem->Load("libMonaLisa.so"); |
14 | TMonaLisaWriter monalisa("pcalishuttle02.cern.ch", |
15 | "SHIFTER_RECO_CAF"); |
16 | SendMonaLisaData(&monalisa,runNumber,"Started",0); |
17 | |
18 | // Temporary fix in order to avoid timeouts on the master |
19 | gProof->SetParameter("PROOF_PacketAsAFraction",20); |
20 | |
21 | // Run reconstruction |
22 | gROOT->LoadMacro("rec.C"); |
23 | gROOT->ProcessLine(Form("rec(%d,%d,%d);",runNumber,nev,firstev)); |
24 | |
25 | TProof::Mgr("aliprod@alicecaf")->GetSessionLogs()->Save("*",Form("log/run%d.log",runNumber)); |
26 | |
27 | // Check the produced dataset |
28 | TFileCollection *coll = gProof->GetDataSet(Form("run%d",runNumber)); |
29 | if (coll) { |
30 | Int_t nEvents = coll->GetTotalEntries("/esdTree"); |
31 | if (nEvents > 0) { |
32 | cout << "===========================================================================" << endl; |
33 | cout << nEvents << " events reconstructed and stored in the dataset run" << runNumber << endl; |
34 | cout << "===========================================================================" << endl; |
35 | cout << "The dataset is:" << endl; |
36 | coll->Print(); |
37 | cout << "===========================================================================" << endl; |
38 | SendMonaLisaData(&monalisa,runNumber,"Done",nEvents); |
39 | } |
40 | else { |
41 | SendMonaLisaData(&monalisa,runNumber,"No_Events",nEvents); |
42 | } |
43 | } |
44 | else { |
45 | SendMonaLisaData(&monalisa,runNumber,"Failure",0); |
46 | } |
47 | } |
48 | |
49 | void SendMonaLisaData(TMonaLisaWriter *monalisa, Int_t runNumber, const char* status, Int_t nEvents) |
50 | { |
51 | TMonaLisaText mlStatus("Status",status); |
52 | TMonaLisaValue mlEventCount("Event_count",nEvents); |
53 | TList mlList; |
54 | mlList.Add(&mlStatus); |
55 | mlList.Add(&mlEventCount); |
56 | TString mlID; |
57 | mlID.Form("%d",runNumber); |
58 | monalisa->SendParameters(&mlList, mlID.Data()); |
59 | } |