ROOT logo
#ifndef ALILHCCLOCKPHASE_H
#define ALILHCCLOCKPHASE_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//////////////////////////////////////////////////////////////////////////////
//                          Class AliLHCClockPhase                          //
//   Container class for storing of the LHC clock phase.                    //
//   The source of the the data are BPTXs - they measure                    //
//   The beam pick-up time w.r.t to the LHC clock distributed by CTP.       //
//   The values stored by DCS are always relative to some fixed reference   //
//   moment.                                                                //
//                                                                          //
//   cvetan.cheshkov@cern.ch 21/07/2010                                     //
//////////////////////////////////////////////////////////////////////////////

#include <TObject.h>
#include <TObjArray.h>

class AliDCSValue;

class AliLHCClockPhase : public TObject {

 public:
  AliLHCClockPhase();
  virtual ~AliLHCClockPhase() {}

  Int_t    GetNumberOfPhaseB1DPs()   const {return fPhaseB1.GetEntries();}
  Int_t    GetNumberOfPhaseB2DPs()   const {return fPhaseB2.GetEntries();}
  const AliDCSValue* GetPhaseB1DP(Int_t index) const;
  const AliDCSValue* GetPhaseB2DP(Int_t index) const;

  Float_t  GetMeanPhaseB1() const;
  Float_t  GetMeanPhaseB2() const;
  Float_t  GetMeanPhase()   const;
  Float_t  GetPhaseB1(UInt_t timestamp) const;
  Float_t  GetPhaseB2(UInt_t timestamp) const;
  Float_t  GetPhase(UInt_t timestamp)   const;

  void     AddPhaseB1DP(UInt_t timestamp, Float_t phase);
  void     AddPhaseB2DP(UInt_t timestamp, Float_t phase);

  virtual void Print( const Option_t* opt ="" ) const;

 private:
  AliLHCClockPhase(const AliLHCClockPhase &phase);
  AliLHCClockPhase& operator= (const AliLHCClockPhase& phase);

  TObjArray fPhaseB1;              // Array of AliDCSValue's containing the phase as measure by BPTX on beam1
  TObjArray fPhaseB2;              // Array of AliDCSValue's containing the phase as measure by BPTX on beam2

  ClassDef(AliLHCClockPhase,1)     // LHC-clock phase container class
};

#endif
 AliLHCClockPhase.h:1
 AliLHCClockPhase.h:2
 AliLHCClockPhase.h:3
 AliLHCClockPhase.h:4
 AliLHCClockPhase.h:5
 AliLHCClockPhase.h:6
 AliLHCClockPhase.h:7
 AliLHCClockPhase.h:8
 AliLHCClockPhase.h:9
 AliLHCClockPhase.h:10
 AliLHCClockPhase.h:11
 AliLHCClockPhase.h:12
 AliLHCClockPhase.h:13
 AliLHCClockPhase.h:14
 AliLHCClockPhase.h:15
 AliLHCClockPhase.h:16
 AliLHCClockPhase.h:17
 AliLHCClockPhase.h:18
 AliLHCClockPhase.h:19
 AliLHCClockPhase.h:20
 AliLHCClockPhase.h:21
 AliLHCClockPhase.h:22
 AliLHCClockPhase.h:23
 AliLHCClockPhase.h:24
 AliLHCClockPhase.h:25
 AliLHCClockPhase.h:26
 AliLHCClockPhase.h:27
 AliLHCClockPhase.h:28
 AliLHCClockPhase.h:29
 AliLHCClockPhase.h:30
 AliLHCClockPhase.h:31
 AliLHCClockPhase.h:32
 AliLHCClockPhase.h:33
 AliLHCClockPhase.h:34
 AliLHCClockPhase.h:35
 AliLHCClockPhase.h:36
 AliLHCClockPhase.h:37
 AliLHCClockPhase.h:38
 AliLHCClockPhase.h:39
 AliLHCClockPhase.h:40
 AliLHCClockPhase.h:41
 AliLHCClockPhase.h:42
 AliLHCClockPhase.h:43
 AliLHCClockPhase.h:44
 AliLHCClockPhase.h:45
 AliLHCClockPhase.h:46
 AliLHCClockPhase.h:47
 AliLHCClockPhase.h:48
 AliLHCClockPhase.h:49
 AliLHCClockPhase.h:50
 AliLHCClockPhase.h:51
 AliLHCClockPhase.h:52
 AliLHCClockPhase.h:53
 AliLHCClockPhase.h:54
 AliLHCClockPhase.h:55