ROOT logo
void SetupPar(char* pararchivename)
{
  //Load par files, create analysis libraries
  //For testing, if par file already decompressed and modified
  //classes then do not decompress.
 
  TString parpar(Form("%s.par", pararchivename)) ; 
  
  if ( gSystem->AccessPathName(pararchivename) ) {  
    TString processline = Form(".! tar xvzf %s",parpar.Data()) ;
    gROOT->ProcessLine(processline.Data());
  }
  
  TString ocwd = gSystem->WorkingDirectory();
  gSystem->ChangeDirectory(pararchivename);
  
  // check for BUILD.sh and execute
  if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
    printf("*******************************\n");
    printf("*** Building PAR archive    ***\n");
    cout<<pararchivename<<endl;
    printf("*******************************\n");
    
    if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
      Error("runProcess","Cannot Build the PAR Archive! - Abort!");
      return -1;
    }
  }
  // check for SETUP.C and execute
  if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
    printf("*******************************\n");
    printf("*** Setup PAR archive       ***\n");
    cout<<pararchivename<<endl;
    printf("*******************************\n");
    gROOT->Macro("PROOF-INF/SETUP.C");
  }
  
  gSystem->ChangeDirectory(ocwd.Data());
  printf("Current dir: %s\n", ocwd.Data());
}
 SetupPar.C:1
 SetupPar.C:2
 SetupPar.C:3
 SetupPar.C:4
 SetupPar.C:5
 SetupPar.C:6
 SetupPar.C:7
 SetupPar.C:8
 SetupPar.C:9
 SetupPar.C:10
 SetupPar.C:11
 SetupPar.C:12
 SetupPar.C:13
 SetupPar.C:14
 SetupPar.C:15
 SetupPar.C:16
 SetupPar.C:17
 SetupPar.C:18
 SetupPar.C:19
 SetupPar.C:20
 SetupPar.C:21
 SetupPar.C:22
 SetupPar.C:23
 SetupPar.C:24
 SetupPar.C:25
 SetupPar.C:26
 SetupPar.C:27
 SetupPar.C:28
 SetupPar.C:29
 SetupPar.C:30
 SetupPar.C:31
 SetupPar.C:32
 SetupPar.C:33
 SetupPar.C:34
 SetupPar.C:35
 SetupPar.C:36
 SetupPar.C:37
 SetupPar.C:38
 SetupPar.C:39
 SetupPar.C:40
 SetupPar.C:41