Line data Source code
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 <TString.h>
17 : #include <TGridCollection.h>
18 : #include <fstream>
19 :
20 : class TMap;
21 : class TIter;
22 : class TEntryList;
23 :
24 : using std::ofstream;
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 0 : void SetCollectionName(const char* name) {fCollectionName = name;}
43 :
44 : //____________________________________________________//
45 0 : 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 0 : 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 170 : ClassDef(AliXMLCollection,0) //(ClassName, ClassVersion)
84 : };
85 : //___________________________________________________________________________
86 :
87 : #endif
|