3 // AliEn Initial PYTHIA pt hard bin-by-bin merging to prepare for rescaling
10 TString jdlfilename = "mergeoutscaledi.jdl";
11 //TString worksubdir = "LHC09b4b";
13 TString worksubdir = "LHC09b2ESDb";
16 //Later do: aliensh; cd worksubdir/output/merged; cp histoss* file:
17 //And then process files locally with MergeFileInBins.C.
19 gSystem->Load("libNetx.so") ;
20 gSystem->Load("libRAliEn.so");
22 TGrid::Connect("alien://") ;
23 if (gGrid && gGrid->IsConnected()) {
24 TString homedir = gGrid->GetHomeDirectory(); // has a trailing slash
25 TString workdir = homedir + worksubdir;
26 if (gGrid->Cd(workdir)) {
28 // Upload and submit JDL if listed
29 if (jdlfilename.Length()) {
30 filename = Form("%s/%s", workdir.Data(), jdlfilename.Data());
31 if (FileExists(filename)) gGrid->Rm(filename);
32 Info("Grid Upload", "Copying JDL file %s to your AliEn work directory", jdlfilename.Data());
33 TFile::Cp(Form("file:%s",jdlfilename.Data()), Form("alien://%s", filename.Data()));
35 for (Int_t index = 0; index <= maxbin; index++) {
38 res = gGrid->Command(Form("submit %s %s %d", jdlfilename.Data(),worksubdir.Data(),index));
39 Info("Launcher:", "Submitting %s %s %d", jdlfilename.Data(),worksubdir.Data(),index);
41 const char *cjobId = res->GetKey(0,"jobId");
43 Error("Launcher:", "Your JDL %s could not be submitted", jdlfilename.Data());
47 Info("Launcher:", "Your JDL %s was successfully submitted.\n\n\t\t\t THE JOB ID IS: %s\n",
48 jdlfilename.Data(), cjobId);
56 gSystem->Exec("aliensh");
62 Bool_t FileExists(const char *lfn) const
64 // Returns true if file exists.
66 Error("FileExists", "No connection to grid");
69 TGridResult *res = gGrid->Ls(lfn);
70 if (!res) return kFALSE;
71 TMap *map = dynamic_cast<TMap*>(res->At(0));
76 TObjString *objs = dynamic_cast<TObjString*>(map->GetValue("name"));
77 if (!objs || !objs->GetString().Length()) {