ROOT logo
//####################################################//
//###           To execute the macro:              ###//
//###      $ALIEN/globus/bin/grid-proxy-init       ###//
//###   $ALIEN/api/bin/alien-token-init pchrista   ###//
//###            root.exe -q DemoTags             ###//
//####################################################//

Int_t demoJETAN() {
  TStopwatch timer;
  timer.Start();

  const char* pararchiveJETAN = "JETAN";
  const char* pararchiveESD   = "ESD";
  //////////////////////////////////////////
  // Libraries required to load
  //////////////////////////////////////////

  //////////////////////////////////////////////////////////////////
  // Setup PAR File
  if (pararchiveJETAN) {
    char processline[1024];
    sprintf(processline,".! tar xvzf %s.par",pararchiveJETAN);
    gROOT->ProcessLine(processline);
    const char* ocwd = gSystem->WorkingDirectory();
    gSystem->ChangeDirectory(pararchiveJETAN);

    // check for BUILD.sh and execute
    if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
      printf("**************************************\n");
      printf("*** Building PAR archive for JETAN ***\n");
      printf("**************************************\n");

      if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
        Error("batchSelector","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");
      printf("*******************************\n");
      gROOT->Macro("PROOF-INF/SETUP.C");
    }
    
    gSystem->ChangeDirectory("../");
  }


  if (pararchiveESD) {
    char processline[1024];
    sprintf(processline,".! tar xvzf %s.par",pararchiveESD);
    gROOT->ProcessLine(processline);
    const char* ocwd = gSystem->WorkingDirectory();
    gSystem->ChangeDirectory(pararchiveESD);

    // check for BUILD.sh and execute
    if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
      printf("**************************************\n");
      printf("*** Building PAR archive for JETAN ***\n");
      printf("**************************************\n");

      if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
        Error("batchSelector","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");
      printf("*******************************\n");
      gROOT->Macro("PROOF-INF/SETUP.C");
    }
    
    gSystem->ChangeDirectory("../");
  }

  gSystem->Load("libVMC.so");
  gSystem->Load("libESD.so"); 
  gSystem->Load("libJETAN.so");
  
  

  printf("*** Connect to AliEn ***\n");
  TGrid::Connect("alien://"); 

  //////////////////////////////////////////////////////////////////
  // Create A tag analysis object and impose some selection criteria
  AliTagAnalysis *TagAna = new AliTagAnalysis(); 
  // create an EventTagCut object
  AliEventTagCuts *EvCuts = new AliEventTagCuts();
  AliRunTagCuts   *RuCuts = new AliRunTagCuts();
  //EvCuts->SetNChargedAbove1GeVRange(1, 1000);
  //EvCuts->SetMultiplicityRange(11,120);
  //EvCuts->SetNPionRange(2,10000);

  printf("*******************************\n");
  printf("*** Querying the tags       ***\n");
  printf("*******************************\n");
  
  //grid tags
  TAlienCollection* coll = TAlienCollection::Open("tag100.xml");
  TGridResult* TagResult = coll->GetGridResult("");
  TagAna->ChainGridTags(TagResult);

  //////////////////////////////////////////////////////////////////
  //Get the chain
  printf("*******************************\n");
  printf("*** Getting the Chain       ***\n");
  printf("*******************************\n");
  TChain* analysischain = 0x0;
  analysischain = TagAna->QueryTags(RuCuts, EvCuts);

  /////////////////////////////////////////////////////////////////
  // Run the Analysis Selector
  const char *selectorfile = "AliJetSelector.C";
  printf("*******************************\n");
  printf("*** Run Analysis Selector %s\n",selectorfile);
  printf("*******************************\n");
  analysischain->ls();
  
  analysischain->Process(selectorfile);

  timer.Stop();
  timer.Print();

  return 0;
}
 demoJETAN.C:1
 demoJETAN.C:2
 demoJETAN.C:3
 demoJETAN.C:4
 demoJETAN.C:5
 demoJETAN.C:6
 demoJETAN.C:7
 demoJETAN.C:8
 demoJETAN.C:9
 demoJETAN.C:10
 demoJETAN.C:11
 demoJETAN.C:12
 demoJETAN.C:13
 demoJETAN.C:14
 demoJETAN.C:15
 demoJETAN.C:16
 demoJETAN.C:17
 demoJETAN.C:18
 demoJETAN.C:19
 demoJETAN.C:20
 demoJETAN.C:21
 demoJETAN.C:22
 demoJETAN.C:23
 demoJETAN.C:24
 demoJETAN.C:25
 demoJETAN.C:26
 demoJETAN.C:27
 demoJETAN.C:28
 demoJETAN.C:29
 demoJETAN.C:30
 demoJETAN.C:31
 demoJETAN.C:32
 demoJETAN.C:33
 demoJETAN.C:34
 demoJETAN.C:35
 demoJETAN.C:36
 demoJETAN.C:37
 demoJETAN.C:38
 demoJETAN.C:39
 demoJETAN.C:40
 demoJETAN.C:41
 demoJETAN.C:42
 demoJETAN.C:43
 demoJETAN.C:44
 demoJETAN.C:45
 demoJETAN.C:46
 demoJETAN.C:47
 demoJETAN.C:48
 demoJETAN.C:49
 demoJETAN.C:50
 demoJETAN.C:51
 demoJETAN.C:52
 demoJETAN.C:53
 demoJETAN.C:54
 demoJETAN.C:55
 demoJETAN.C:56
 demoJETAN.C:57
 demoJETAN.C:58
 demoJETAN.C:59
 demoJETAN.C:60
 demoJETAN.C:61
 demoJETAN.C:62
 demoJETAN.C:63
 demoJETAN.C:64
 demoJETAN.C:65
 demoJETAN.C:66
 demoJETAN.C:67
 demoJETAN.C:68
 demoJETAN.C:69
 demoJETAN.C:70
 demoJETAN.C:71
 demoJETAN.C:72
 demoJETAN.C:73
 demoJETAN.C:74
 demoJETAN.C:75
 demoJETAN.C:76
 demoJETAN.C:77
 demoJETAN.C:78
 demoJETAN.C:79
 demoJETAN.C:80
 demoJETAN.C:81
 demoJETAN.C:82
 demoJETAN.C:83
 demoJETAN.C:84
 demoJETAN.C:85
 demoJETAN.C:86
 demoJETAN.C:87
 demoJETAN.C:88
 demoJETAN.C:89
 demoJETAN.C:90
 demoJETAN.C:91
 demoJETAN.C:92
 demoJETAN.C:93
 demoJETAN.C:94
 demoJETAN.C:95
 demoJETAN.C:96
 demoJETAN.C:97
 demoJETAN.C:98
 demoJETAN.C:99
 demoJETAN.C:100
 demoJETAN.C:101
 demoJETAN.C:102
 demoJETAN.C:103
 demoJETAN.C:104
 demoJETAN.C:105
 demoJETAN.C:106
 demoJETAN.C:107
 demoJETAN.C:108
 demoJETAN.C:109
 demoJETAN.C:110
 demoJETAN.C:111
 demoJETAN.C:112
 demoJETAN.C:113
 demoJETAN.C:114
 demoJETAN.C:115
 demoJETAN.C:116
 demoJETAN.C:117
 demoJETAN.C:118
 demoJETAN.C:119
 demoJETAN.C:120
 demoJETAN.C:121
 demoJETAN.C:122
 demoJETAN.C:123
 demoJETAN.C:124
 demoJETAN.C:125
 demoJETAN.C:126
 demoJETAN.C:127
 demoJETAN.C:128
 demoJETAN.C:129
 demoJETAN.C:130