Update master to aliroot
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliTriggerScalersRecord.h
1 #ifndef ALITRIGGERSCALERSRECORD_H
2 #define ALITRIGGERSCALERSRECORD_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: AliTriggerScalersRecord.h 22322 2007-11-22 11:43:14Z cvetan $ */
8
9 ///////////////////////////////////////////////////////////////////////////////
10 //
11 // Class to define the ALICE Trigger Scalers Record 
12 //
13 // Each record consists of 1 time stamp (4 words)  (AliTimeStamp)
14 // and an array with the scalers (AliTriggerScalers) for each trigger class 
15 // in partition  
16 //
17 //////////////////////////////////////////////////////////////////////////////
18 class TObjArray;
19 class  AliTimeStamp;
20
21 class AliTriggerScalersRecord : public TObject {
22
23 public:
24                             AliTriggerScalersRecord();
25                  virtual   ~AliTriggerScalersRecord() { fScalers.SetOwner(); fScalers.Delete(); }
26                  
27                  
28                     void    SetTimeStamp( UInt_t orbit, UInt_t period, UInt_t seconds, UInt_t microsecs );
29                     void    SetTimeGroup(UInt_t tgr){fTimeGroup=tgr;};
30                     void    AddTriggerScalers( AliTriggerScalers* scaler );
31                     void    AddTriggerScalers( UChar_t classIndex, UInt_t LOCB, UInt_t LOCA,        
32                                               UInt_t L1CB, UInt_t L1CA, UInt_t L2CB, UInt_t L2CA );
33                             
34       const AliTimeStamp*   GetTimeStamp() const { return &fTimestamp; }
35          const TObjArray*   GetTriggerScalers()  const { return  &fScalers; }
36  const AliTriggerScalers*   GetTriggerScalersForClass( const Int_t classindex ) const;       
37        AliTriggerScalers*   GetTriggerScalersForClassBinary( const Int_t classindex ) ;     
38                    UInt_t   GetTimeGroup(){return fTimeGroup;}
39           virtual Bool_t    IsSortable() const { return kTRUE; }
40                                 
41            virtual Int_t    Compare( const TObject* obj ) const;
42             virtual void    Print( const Option_t* opt ="" ) const;
43
44        
45              
46      
47 private:  
48
49             AliTimeStamp    fTimestamp;    // record timestamp
50                TObjArray    fScalers;      // Array of scalers (AliTriggerScalers) 
51                   UInt_t    fTimeGroup;    // Time group of record
52
53
54                             AliTriggerScalersRecord( const AliTriggerScalersRecord &rec );
55  AliTriggerScalersRecord&   operator=(const AliTriggerScalersRecord& rec);
56
57    ClassDef( AliTriggerScalersRecord, 2 )  // Define a Record of Trigger Scalers 
58 };
59
60 #endif