ROOT logo
// Macro to make a tag file for a full run directly from ESDs and the GRP
// Takes as parameters a text file with the location of all ESD files
// for a given run (can be modified to work on any chain of ESDs)
// Second argument is the run number, for which the GRP will be retrieved
// Suitable for a GRID job - runs with pure ROOT to minimize memory 
// consumption but needs ALIROOT package location to load only necessary
// AliRoot libraries.
//
// Author: Adam.Kisiel@cern.ch

class AliGRPObject;

AliGRPObject *GetGRPForRun(Int_t runno) {
  AliCDBManager* man = AliCDBManager::Instance();
  man->SetDefaultStorage("raw://");
  man->SetRun(runno);
  AliCDBEntry* e = man->Get("GRP/GRP/Data");
  AliGRPObject* o = (AliGRPObject*)e->GetObject();
  
  return o;
}

void ReMakeTagsFullRun(const char *esdfile, Int_t runno)
{
  gSystem->Load("libProofPlayer.so");
  gSystem->Load("libVMC.so");  
  gSystem->Load("libSTEERBase.so");
  gSystem->Load("libESD.so");
  gSystem->Load("libAOD.so");
  gSystem->Load("libANALYSIS.so");  
  gSystem->Load("libANALYSISalice.so");
  gSystem->Load("libGui.so");
  gSystem->Load("libCDB.so");

  gSystem->Load("libMinuit.so");
  gSystem->Load("libRAWDatabase.so");

  gSystem->Load("libSTEER.so");  
  gSystem->Load("libXMLParser.so");

  TGrid::Connect("alien://");


  AliGRPObject *grpo = GetGRPForRun(runno);
  
  AliESDTagCreator *tagCre = new AliESDTagCreator();
  tagCre->SetStorage(0);


  TChain *chain = new TChain("esdTree");;
  ifstream *istr = new ifstream(esdfile);

  char fname[2000];
  char pname[2000];
  while (!istr->eof()) {
    fname[0] = '\0';
    (*istr) >> fname;
    if (strlen(fname) > 10) {
      sprintf(pname, "alien://%s", fname);
      chain->Add(pname);
    }
  }

  tagCre->CreateESDTagsFullRun(chain, grpo, 0, 0, 0, 0);  
}
 ReMakeTagsFullRun.C:1
 ReMakeTagsFullRun.C:2
 ReMakeTagsFullRun.C:3
 ReMakeTagsFullRun.C:4
 ReMakeTagsFullRun.C:5
 ReMakeTagsFullRun.C:6
 ReMakeTagsFullRun.C:7
 ReMakeTagsFullRun.C:8
 ReMakeTagsFullRun.C:9
 ReMakeTagsFullRun.C:10
 ReMakeTagsFullRun.C:11
 ReMakeTagsFullRun.C:12
 ReMakeTagsFullRun.C:13
 ReMakeTagsFullRun.C:14
 ReMakeTagsFullRun.C:15
 ReMakeTagsFullRun.C:16
 ReMakeTagsFullRun.C:17
 ReMakeTagsFullRun.C:18
 ReMakeTagsFullRun.C:19
 ReMakeTagsFullRun.C:20
 ReMakeTagsFullRun.C:21
 ReMakeTagsFullRun.C:22
 ReMakeTagsFullRun.C:23
 ReMakeTagsFullRun.C:24
 ReMakeTagsFullRun.C:25
 ReMakeTagsFullRun.C:26
 ReMakeTagsFullRun.C:27
 ReMakeTagsFullRun.C:28
 ReMakeTagsFullRun.C:29
 ReMakeTagsFullRun.C:30
 ReMakeTagsFullRun.C:31
 ReMakeTagsFullRun.C:32
 ReMakeTagsFullRun.C:33
 ReMakeTagsFullRun.C:34
 ReMakeTagsFullRun.C:35
 ReMakeTagsFullRun.C:36
 ReMakeTagsFullRun.C:37
 ReMakeTagsFullRun.C:38
 ReMakeTagsFullRun.C:39
 ReMakeTagsFullRun.C:40
 ReMakeTagsFullRun.C:41
 ReMakeTagsFullRun.C:42
 ReMakeTagsFullRun.C:43
 ReMakeTagsFullRun.C:44
 ReMakeTagsFullRun.C:45
 ReMakeTagsFullRun.C:46
 ReMakeTagsFullRun.C:47
 ReMakeTagsFullRun.C:48
 ReMakeTagsFullRun.C:49
 ReMakeTagsFullRun.C:50
 ReMakeTagsFullRun.C:51
 ReMakeTagsFullRun.C:52
 ReMakeTagsFullRun.C:53
 ReMakeTagsFullRun.C:54
 ReMakeTagsFullRun.C:55
 ReMakeTagsFullRun.C:56
 ReMakeTagsFullRun.C:57
 ReMakeTagsFullRun.C:58
 ReMakeTagsFullRun.C:59
 ReMakeTagsFullRun.C:60
 ReMakeTagsFullRun.C:61
 ReMakeTagsFullRun.C:62
 ReMakeTagsFullRun.C:63
 ReMakeTagsFullRun.C:64
 ReMakeTagsFullRun.C:65
 ReMakeTagsFullRun.C:66