Update master to aliroot
[u/mrichter/AliRoot.git] / STEER / STEER / AliLHCClockPhase.h
1 #ifndef ALILHCCLOCKPHASE_H
2 #define ALILHCCLOCKPHASE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //////////////////////////////////////////////////////////////////////////////
7 //                          Class AliLHCClockPhase                          //
8 //   Container class for storing of the LHC clock phase.                    //
9 //   The source of the the data are BPTXs - they measure                    //
10 //   The beam pick-up time w.r.t to the LHC clock distributed by CTP.       //
11 //   The values stored by DCS are always relative to some fixed reference   //
12 //   moment.                                                                //
13 //                                                                          //
14 //   cvetan.cheshkov@cern.ch 21/07/2010                                     //
15 //////////////////////////////////////////////////////////////////////////////
16
17 #include <TObject.h>
18 #include <TObjArray.h>
19
20 class AliDCSValue;
21
22 class AliLHCClockPhase : public TObject {
23
24  public:
25   AliLHCClockPhase();
26   virtual ~AliLHCClockPhase() {}
27
28   Int_t    GetNumberOfPhaseB1DPs()   const {return fPhaseB1.GetEntries();}
29   Int_t    GetNumberOfPhaseB2DPs()   const {return fPhaseB2.GetEntries();}
30   const AliDCSValue* GetPhaseB1DP(Int_t index) const;
31   const AliDCSValue* GetPhaseB2DP(Int_t index) const;
32
33   Float_t  GetMeanPhaseB1() const;
34   Float_t  GetMeanPhaseB2() const;
35   Float_t  GetMeanPhase()   const;
36   Float_t  GetPhaseB1(UInt_t timestamp) const;
37   Float_t  GetPhaseB2(UInt_t timestamp) const;
38   Float_t  GetPhase(UInt_t timestamp)   const;
39
40   void     AddPhaseB1DP(UInt_t timestamp, Float_t phase);
41   void     AddPhaseB2DP(UInt_t timestamp, Float_t phase);
42
43   virtual void Print( const Option_t* opt ="" ) const;
44
45  private:
46   AliLHCClockPhase(const AliLHCClockPhase &phase);
47   AliLHCClockPhase& operator= (const AliLHCClockPhase& phase);
48
49   TObjArray fPhaseB1;              // Array of AliDCSValue's containing the phase as measure by BPTX on beam1
50   TObjArray fPhaseB2;              // Array of AliDCSValue's containing the phase as measure by BPTX on beam2
51
52   ClassDef(AliLHCClockPhase,1)     // LHC-clock phase container class
53 };
54
55 #endif