Fix plus small changes
[u/mrichter/AliRoot.git] / ANALYSIS / AliTagAnalysis.h
1 #ifndef ALITAGANALYSIS_H
2 #define ALITAGANALYSIS_H
3 /*  See cxx source for full Copyright notice */
4
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //                          Class AliTagAnalysis
10 //   This is the AliTagAnalysis class for the tag analysis
11 //
12 //    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
13 //-------------------------------------------------------------------------
14
15
16
17 //////////////////////////////////////////////////////////////////////////
18 //                                                                      //
19 //                        AliTagAnalysis                                //
20 //                                                                      //
21 //           Implementation of the tag analysis mechanism.              //
22 //                                                                      //
23 //////////////////////////////////////////////////////////////////////////
24
25
26 //ROOT
27 #include <TObject.h>
28 #include <TString.h>
29 #include <TEntryList.h>
30
31 class AliEventTag;
32 class TChain;
33 class AliEventTagCuts;
34 class AliDetectorTagCuts;
35 class AliLHCTagCuts;
36 class AliRunTagCuts;
37 class TGridResult;
38 class TTreeFormula;
39
40 //____________________________________________________//
41 class AliTagAnalysis : public TObject {
42  public:
43   AliTagAnalysis();
44   AliTagAnalysis(const char* type);
45   ~AliTagAnalysis(); 
46   
47   void SetType(const char* type) {fAnalysisType = type;}
48   const char* GetType() {return fAnalysisType.Data();}
49   Bool_t AddTagsFile(const char *alienUrl, Bool_t checkFile=kTRUE);
50   void ChainLocalTags(const char *dirname);
51   TChain *ChainGridTags(TGridResult *result);
52   
53   TChain *QueryTags(AliRunTagCuts *runTagCuts, 
54                     AliLHCTagCuts *lhcTagCuts, 
55                     AliDetectorTagCuts *detTagCuts, 
56                     AliEventTagCuts *evTagCuts);
57   TChain *QueryTags(const char *fRunCut, 
58                     const char *fLHCCut, 
59                     const char *fDetectorCut, 
60                     const char *fEventCut);  
61
62   Bool_t CreateXMLCollection(const char* name, 
63                              AliRunTagCuts *runTagCuts, 
64                              AliLHCTagCuts *lhcTagCuts, 
65                              AliDetectorTagCuts *detTagCuts, 
66                              AliEventTagCuts *evTagCuts);
67   Bool_t CreateXMLCollection(const char* name, 
68                              const char *fRunCut, 
69                              const char *fLHCCut, 
70                              const char *fDetectorCut, 
71                              const char *fEventCut);
72
73   TChain *GetInputChain(const char* system, const char *wn);
74   
75   static TChain* CreateChainFromCollection(const char* collectionname, const char* treename);
76   
77   TEntryList *GetGlobalList() {return fGlobalList;}
78   //____________________________________________________//
79  protected:
80   TGridResult *ftagresult;    //the results from the tag grid query     
81   TString      fTagDirName;   //the location of the locally stored tags
82   TChain      *fChain;        //tag chain 
83   TString      fAnalysisType; //define the type of analysis (esd or aod)
84   TEntryList  *fGlobalList;   //global TEntryList
85   
86   //____________________________________________________//
87  private:
88   AliTagAnalysis(const AliTagAnalysis & source);
89   AliTagAnalysis & operator=(const AliTagAnalysis & source);
90        
91   ClassDef(AliTagAnalysis,0)  
92 };
93
94 #endif
95