Line data Source code
1 : #ifndef ALI_ITS_ONLINESPDPHYS_H
2 : #define ALI_ITS_ONLINESPDPHYS_H
3 :
4 : ////////////////////////////////////////////////////////////
5 : // Author: Henrik Tydesjo //
6 : // Interface class to the containers of an online //
7 : // physics run. //
8 : // Directly connected to a TFile with all containers. //
9 : // Handles reading and writing of this TFile. Hitmaps are //
10 : // stored in this file (AliITSOnlineSPDHitArray). //
11 : // Also some general information is stored //
12 : // (AliITSOnlineSPDphysInfo). //
13 : ////////////////////////////////////////////////////////////
14 :
15 : #include <TString.h>
16 :
17 : class TFile;
18 : class AliITSOnlineSPDphysInfo;
19 : class AliITSOnlineSPDHitArray;
20 :
21 : class AliITSOnlineSPDphys {
22 :
23 : public:
24 0 : AliITSOnlineSPDphys():fFile(NULL),fWrite(kFALSE),fModified(kFALSE),fInfoModified(kFALSE),fPhysInfo(NULL),fFileName("."){for(Int_t ihs=0; ihs<6; ihs++) fHitArray[ihs]=0x0;}
25 : AliITSOnlineSPDphys(const Char_t *fileName, Bool_t readFromGridFile=kFALSE);
26 : AliITSOnlineSPDphys(const AliITSOnlineSPDphys& phys);
27 : virtual ~AliITSOnlineSPDphys();
28 : AliITSOnlineSPDphys& operator=(const AliITSOnlineSPDphys& phys);
29 :
30 : virtual void AddPhys(AliITSOnlineSPDphys* phys2);
31 : virtual void ClearThis();
32 0 : void InitializeHitMap() {InitHitmap();} // online monitoring
33 : // SET METHODS ***********************************
34 : void AddRunNr(UInt_t val);
35 : void SetEqNr(UInt_t val);
36 :
37 : void SetNrEvents(UInt_t val);
38 : void AddNrEvents(Int_t val);
39 : void IncrementNrEvents();
40 :
41 : void SetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi, UInt_t val);
42 : void AddHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi, Int_t val);
43 : void IncrementHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi);
44 : // GET METHODS ***********************************
45 : UInt_t GetNrRuns() const;
46 : UInt_t GetRunNr(UInt_t posi) const;
47 : UInt_t GetEqNr() const;
48 : UInt_t GetNrEvents() const;
49 :
50 : UInt_t GetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi);
51 : Float_t GetHitsEfficiency(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi);
52 : Float_t GetHitsEfficiencyError(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi);
53 : Float_t GetAverageMultiplicity(UInt_t hs, UInt_t chipi);
54 : Float_t GetAverageMultiplicityTot(UInt_t hs);
55 :
56 : protected:
57 : TFile *fFile; // file to read and write from
58 : Bool_t fWrite; // is file opened for writing?
59 : Bool_t fModified; // is the hitmap modified (needs saving)?
60 : Bool_t fInfoModified; // is the overall phys information modified (needs saving)?
61 : AliITSOnlineSPDphysInfo *fPhysInfo; // overall phys information
62 : AliITSOnlineSPDHitArray *fHitArray[6]; // hit array, one for each halfstave
63 : TString fFileName; // filename of file to read write
64 :
65 : void InitHitmap();
66 : void ReadHitmap();
67 : void SaveHitmap();
68 :
69 : };
70 :
71 : #endif
|