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


/* $Id$ */

//-------------------------------------------------------------------------
//                          Class AliTagAnalysis
//   This is the AliTagAnalysis class for the tag analysis
//
//    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
//-------------------------------------------------------------------------



//////////////////////////////////////////////////////////////////////////
//                                                                      //
//                        AliTagAnalysis                                //
//                                                                      //
//           Implementation of the tag analysis mechanism.              //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


//ROOT
#include <TObject.h>
#include <TString.h>
#include <TEntryList.h>

class AliEventTag;
class TChain;
class AliEventTagCuts;
class AliDetectorTagCuts;
class AliLHCTagCuts;
class AliRunTagCuts;
class TGridResult;
class TTreeFormula;

//____________________________________________________//
class AliTagAnalysis : public TObject {
 public:
  AliTagAnalysis();
  AliTagAnalysis(const char* type);
  ~AliTagAnalysis(); 
  
  void SetType(const char* type) {fAnalysisType = type;}
  const char* GetType() {return fAnalysisType.Data();}
  Bool_t AddTagsFile(const char *alienUrl, Bool_t checkFile=kTRUE);
  void ChainLocalTags(const char *dirname);
  TChain *ChainGridTags(TGridResult *result);
  
  TChain *QueryTags(AliRunTagCuts *runTagCuts, 
		    AliLHCTagCuts *lhcTagCuts, 
		    AliDetectorTagCuts *detTagCuts, 
		    AliEventTagCuts *evTagCuts);
  TChain *QueryTags(const char *fRunCut, 
		    const char *fLHCCut, 
		    const char *fDetectorCut, 
		    const char *fEventCut);  

  Bool_t CreateXMLCollection(const char* name, 
			     AliRunTagCuts *runTagCuts, 
			     AliLHCTagCuts *lhcTagCuts, 
			     AliDetectorTagCuts *detTagCuts, 
			     AliEventTagCuts *evTagCuts);
  Bool_t CreateXMLCollection(const char* name, 
			     const char *fRunCut, 
			     const char *fLHCCut, 
			     const char *fDetectorCut, 
			     const char *fEventCut);

  TChain *GetInputChain(const char* system, const char *wn);
  
  static TChain* CreateChainFromCollection(const char* collectionname, const char* treename);
  
  TEntryList *GetGlobalList() {return fGlobalList;}
  //____________________________________________________//
 protected:
  TGridResult *ftagresult;    //the results from the tag grid query     
  TString      fTagDirName;   //the location of the locally stored tags
  TChain      *fChain;        //tag chain 
  TString      fAnalysisType; //define the type of analysis (esd or aod)
  TEntryList  *fGlobalList;   //global TEntryList
  
  //____________________________________________________//
 private:
  AliTagAnalysis(const AliTagAnalysis & source);
  AliTagAnalysis & operator=(const AliTagAnalysis & source);
       
  ClassDef(AliTagAnalysis,0)  
};

#endif

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