ROOT logo
#ifndef ALIESDTAGCREATOR_H
#define ALIESDTAGCREATOR_H
/*  See cxx source for full Copyright notice */


/* $Id$ */

//-------------------------------------------------------------------------
//                          Class AliESDTagCreator
//   This is the AliESDTagCreator class for the tag creation (post process)
//
//    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
//-------------------------------------------------------------------------



//////////////////////////////////////////////////////////////////////////
//                                                                      //
//                        AliESDTagCreator                              //
//                                                                      //
//           Implementation of the tag creation mechanism.              //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


//ROOT
#include <TSystem.h>
class TChain;
class TList;
class TMap;

#include <AliTagCreator.h>

class TFile;
class TGridResult;

class AliGRPObject;
class AliEventTag;

//___________________________________________________________________________
class AliESDTagCreator : public AliTagCreator {

 public:
  AliESDTagCreator();
  ~AliESDTagCreator(); 

  void CreateESDTags(Int_t fFirstEvent, Int_t fLastEvent, AliGRPObject *grpData, ULong_t * qa, Bool_t * es, Int_t qalength, Int_t eslength);
  void CreateESDTagsFullRun(TTree *chain, AliGRPObject *grpData, ULong_t * qa, Bool_t * es, Int_t qalength, Int_t eslength);
  void CreateESDRunTagSummary(TTree *chain);

  void SetInactiveBranches(const char* branches) {fBranches = branches;}

  Bool_t ReadGridCollection(TGridResult *result);
  Bool_t ReadLocalCollection(const char *localpath);
  Bool_t ReadCAFCollection(const char *filename);
  
 protected:  
  void CreateTag(TChain *chain, const char* type);
  void CreateTag(TFile* file, const char *guid, const char *md5, const char *turl, Long64_t size, Int_t Counter);
  void CreateTag(TFile* file, const char *filepath, Int_t Counter);

  void FillEventTag(TTree *chain, AliEventTag *evTag, Int_t iEventNumber, AliESDEvent *esd);

 private:
  void SwitchOffBranches() const;
  AliESDTagCreator(const AliESDTagCreator& creator);             
  AliESDTagCreator& operator=(const AliESDTagCreator& creator);
  
  TChain *fChain;     //chain of esd files
  TList  *fGUIDList;  //TList of guid TObjString
  TList  *fMD5List;   //TList of md5 TObjString
  TList  *fTURLList;  //TList of turl TObjString
  TString fBranches;  //List of branches to be switched off (separated by space
  MemInfo_t *meminfo; //mem info

  ClassDef(AliESDTagCreator,0)  
};

#endif

 AliESDTagCreator.h:1
 AliESDTagCreator.h:2
 AliESDTagCreator.h:3
 AliESDTagCreator.h:4
 AliESDTagCreator.h:5
 AliESDTagCreator.h:6
 AliESDTagCreator.h:7
 AliESDTagCreator.h:8
 AliESDTagCreator.h:9
 AliESDTagCreator.h:10
 AliESDTagCreator.h:11
 AliESDTagCreator.h:12
 AliESDTagCreator.h:13
 AliESDTagCreator.h:14
 AliESDTagCreator.h:15
 AliESDTagCreator.h:16
 AliESDTagCreator.h:17
 AliESDTagCreator.h:18
 AliESDTagCreator.h:19
 AliESDTagCreator.h:20
 AliESDTagCreator.h:21
 AliESDTagCreator.h:22
 AliESDTagCreator.h:23
 AliESDTagCreator.h:24
 AliESDTagCreator.h:25
 AliESDTagCreator.h:26
 AliESDTagCreator.h:27
 AliESDTagCreator.h:28
 AliESDTagCreator.h:29
 AliESDTagCreator.h:30
 AliESDTagCreator.h:31
 AliESDTagCreator.h:32
 AliESDTagCreator.h:33
 AliESDTagCreator.h:34
 AliESDTagCreator.h:35
 AliESDTagCreator.h:36
 AliESDTagCreator.h:37
 AliESDTagCreator.h:38
 AliESDTagCreator.h:39
 AliESDTagCreator.h:40
 AliESDTagCreator.h:41
 AliESDTagCreator.h:42
 AliESDTagCreator.h:43
 AliESDTagCreator.h:44
 AliESDTagCreator.h:45
 AliESDTagCreator.h:46
 AliESDTagCreator.h:47
 AliESDTagCreator.h:48
 AliESDTagCreator.h:49
 AliESDTagCreator.h:50
 AliESDTagCreator.h:51
 AliESDTagCreator.h:52
 AliESDTagCreator.h:53
 AliESDTagCreator.h:54
 AliESDTagCreator.h:55
 AliESDTagCreator.h:56
 AliESDTagCreator.h:57
 AliESDTagCreator.h:58
 AliESDTagCreator.h:59
 AliESDTagCreator.h:60
 AliESDTagCreator.h:61
 AliESDTagCreator.h:62
 AliESDTagCreator.h:63
 AliESDTagCreator.h:64
 AliESDTagCreator.h:65
 AliESDTagCreator.h:66
 AliESDTagCreator.h:67
 AliESDTagCreator.h:68
 AliESDTagCreator.h:69
 AliESDTagCreator.h:70
 AliESDTagCreator.h:71
 AliESDTagCreator.h:72
 AliESDTagCreator.h:73
 AliESDTagCreator.h:74
 AliESDTagCreator.h:75
 AliESDTagCreator.h:76
 AliESDTagCreator.h:77
 AliESDTagCreator.h:78
 AliESDTagCreator.h:79
 AliESDTagCreator.h:80