]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALITRIGGERRUNSCALERS_H | |
2 | #define ALITRIGGERRUNSCALERS_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id: AliTriggerRunScalers.h 22322 2007-11-22 11:43:14Z cvetan $ */ | |
8 | ||
9 | /////////////////////////////////////////////////////////////////////////////// | |
10 | // | |
11 | // Class to define a collection scalers per Run | |
12 | // | |
13 | // | |
14 | // | |
15 | ////////////////////////////////////////////////////////////////////////////// | |
16 | class TObject; | |
17 | class AliTimeStamp; | |
18 | class AliTriggerScalersESD; | |
19 | class AliTriggerScalersRecord; | |
20 | class AliTriggerScalersRecordESD; | |
21 | ||
22 | #include "TArrayC.h" | |
23 | ||
24 | class AliTriggerRunScalers : public TObject { | |
25 | ||
26 | public: | |
27 | AliTriggerRunScalers(); | |
28 | virtual ~AliTriggerRunScalers(); | |
29 | // Getters | |
30 | Short_t GetVersion() const { return fVersion; } | |
31 | ULong_t GetRunNumber() const { return fRunNumber; } | |
32 | UChar_t GetNumClasses() const { return fnClasses; } | |
33 | Char_t GetClass( Int_t i ) const { return fClassIndex[i]; } | |
34 | const TObjArray* GetScalersRecords() const { return &fScalersRecord; } | |
35 | const TObjArray* GetScalersRecordsESD() const { return &fScalersRecordESD; } | |
36 | AliTriggerScalersRecord* GetScalersRecord( Int_t index ) const { return (AliTriggerScalersRecord*)fScalersRecord.At(index); } | |
37 | Int_t FindNearestScalersRecord( const AliTimeStamp *stamp ) const; | |
38 | AliTriggerScalersESD* GetScalersForEventClass(const AliTimeStamp* stamp,const Int_t classIndex) const; | |
39 | // Analysis | |
40 | Int_t ConsistencyCheck(Int_t position,Bool_t correctOverflow); | |
41 | Int_t CorrectScalersOverflow(); | |
42 | Int_t CheckRunScalers(){return (fScalersRecord.GetEntriesFast()==fScalersRecordESD.GetEntriesFast());} | |
43 | // Setters | |
44 | void SetVersion( Short_t ver ) { fVersion = ver; } | |
45 | void SetRunNumber( ULong_t run ) { fRunNumber = run; } | |
46 | void SetNumClasses( UChar_t nclass ) { fnClasses = nclass; fClassIndex.Set(nclass); } | |
47 | void SetClass( UChar_t i, UChar_t index ) { fClassIndex[i]=index; } | |
48 | void AddTriggerScalers( AliTriggerScalersRecord* scal ); | |
49 | virtual void Print( const Option_t* opt ="" ) const; | |
50 | AliTriggerRunScalers( const AliTriggerRunScalers &run ); | |
51 | AliTriggerRunScalers& operator=(const AliTriggerRunScalers& run); | |
52 | ||
53 | static AliTriggerRunScalers* ReadScalers( TString & filename ); | |
54 | ||
55 | private: | |
56 | Short_t fVersion; // Version | |
57 | ULong_t fRunNumber; // Run number | |
58 | UChar_t fnClasses; // Number of trigger classes | |
59 | TArrayC fClassIndex; // list of classes used in this partition | |
60 | TObjArray fScalersRecord; // Array of records (AliTriggerScalersRecord) | |
61 | TObjArray fScalersRecordESD; // Array of records with 64bit scalers (AliTriggerScalersRecordESD) | |
62 | ||
63 | ||
64 | ||
65 | ClassDef( AliTriggerRunScalers, 2 ) // Define a Run Trigger Scalers (Scalers) | |
66 | }; | |
67 | ||
68 | #endif |