coverity
[u/mrichter/AliRoot.git] / ANALYSIS / AliXMLCollection.h
1 #ifndef ALIXMLCOLLECTION_H
2 #define ALIXMLCOLLECTION_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 /* $Id$ */
8
9 //-------------------------------------------------------------------------
10 //                          Class AliXMLCollection
11 //   This is the class that creates XML collections after querying the tags
12 //
13 //    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
14 //-------------------------------------------------------------------------
15
16 #include <TObject.h>
17 #include "TGridCollection.h"
18 #include <Riostream.h>
19 #include <TString.h>
20
21 class TMap;
22 class TIter;
23 class TEntryList;
24
25 //___________________________________________________________________________
26 class AliXMLCollection : public TGridCollection {
27  
28  public:
29   AliXMLCollection();
30   AliXMLCollection(const char *localCollectionFile);
31   AliXMLCollection(const AliXMLCollection& collection);
32   
33   virtual ~AliXMLCollection();
34   
35   //____________________________________________________//
36   Bool_t WriteHeader();
37   Bool_t WriteSummary(Int_t aTotal, Int_t aAccepted, Int_t aRejRun, Int_t aRejLHC, Int_t aRejDet, Int_t aRejEvt);
38   Bool_t WriteBody(Int_t counter, const char* guid, const char *lfn, const char *turl, TEntryList *fEntryList);
39   Bool_t WriteBody(Int_t counter, const char* guid, const char *lfn, const char *turl, TEntryList *fEntryListm, Int_t accSum, Int_t rejSum);
40   Bool_t Export();
41
42   void SetCollectionName(const char* name) {fCollectionName = name;}
43   
44   //____________________________________________________//
45   const char* GetCollectionName() const {return fCollectionName.Data();}
46
47   //____________________________________________________//
48   void        Reset();
49   TMap       *Next();
50   Bool_t      Remove(TMap *map);
51   const char *GetTURL(const char *name);
52   const char *GetLFN(const char *name);
53   const char *GetGUID(const char *name);
54   const char *GetCutSumm();
55   TEntryList *GetEventList(const char *filename) const;
56   TEntryList *GetEntryList(const char *filename) { return GetEventList(filename); }
57   Bool_t      OverlapCollection(TGridCollection * comparator);
58   Bool_t      GetCollectionSummary(Int_t  *aTot, Int_t  *aAcc, Int_t  *aRejRun, Int_t  *aRejLHC, Int_t  *aRejDet, Int_t  *aRejEvt) const;
59
60   static AliXMLCollection *Open(const char *localcollectionfile);
61
62   //____________________________________________________//
63  protected:
64   virtual void ParseXML();
65
66   TString  fXmlFile;        // collection XML file
67   TList   *fEventList;      // list with event file maps
68   TIter   *fEventListIter;  // event file list iterator
69   TMap    *fCurrent;        // current event file map
70   TString  fCollectionName;   //the name of the xml file
71   ofstream fout; // The output stream
72
73   // List summary information
74   Int_t    fTotalEvents;    // Total no. of events in collection
75   Int_t    fAcceptedEvents; // No. of accepted events in collection
76   Int_t    fRejectedRun;    // No. of events rejected by Run cuts
77   Int_t    fRejectedLHC;    // No. of events rejected by LHC cuts
78   Int_t    fRejectedDet;    // No. of events rejected by Detector cuts
79   Int_t    fRejectedEvt;    // No. of events rejected by Event cuts
80   
81   AliXMLCollection & operator=(const AliXMLCollection & ) {return *this;}
82
83   ClassDef(AliXMLCollection,0)  //(ClassName, ClassVersion)
84 };
85 //___________________________________________________________________________
86
87 #endif