ROOT logo
#ifndef ALIPHOSTRIGGERPARAMETERS_H
#define ALIPHOSTRIGGERPARAMETERS_H

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

// Author: Henrik Qvigstad <henrik.qvigstad@cern.ch> 17/10-2011
/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// class for PHOS Trigger Parameters                                         //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////


#include "TNamed.h"

/*  class for TRU Calib Data: Pedestals, etc...
 */
class AliPHOSTriggerParameters : public TNamed
{

public:
  AliPHOSTriggerParameters();
  AliPHOSTriggerParameters(const char* name);
  AliPHOSTriggerParameters(const AliPHOSTriggerParameters& );
  AliPHOSTriggerParameters& operator= (const AliPHOSTriggerParameters& );
  virtual ~AliPHOSTriggerParameters();
  
  // Getters
  UShort_t GetTRUPedestal(Int_t mod, Int_t TRURow, Int_t branch, Int_t xIdx, Int_t zIdx) const;
  Bool_t GetTRUReadoutOn(Int_t mod, Int_t TRURow, Int_t branch) const;
  Bool_t GetTRUSignalReadoutOn(Int_t mod, Int_t TRURow, Int_t branch) const;
  UShort_t GetTRUSignalTimeBinFrom(Int_t mod, Int_t TRURow, Int_t branch) const;
  UShort_t GetTRUSignalTimeBinTo(Int_t mod, Int_t TRURow, Int_t branch) const;
  UShort_t GetTRUThreshold(Int_t mod, Int_t TRURow, Int_t branch) const;
  UShort_t GetTRUMaskChannel(Int_t mod, Int_t TRURow, Int_t branch) const;
  const UShort_t* GetTORMaskArray(Int_t mod, Int_t tor) const;
  const UShort_t* GetTORReadoutMask(Int_t mod, Int_t tor) const;
  
  
  // Setters
  void SetTRUPedestal(UShort_t pedestal, Int_t mod, Int_t TRURow, Int_t branch, Int_t xIdx, Int_t zIdx);
  void SetTRUReadoutOn(Bool_t isOn, Int_t mod, Int_t TRURow, Int_t branch);
  void SetTRUSignalReadoutOn(Bool_t isOn, Int_t mod, Int_t TRURow, Int_t branch);
  void SetTRUSignalTimeBinFrom(UShort_t fromBin, Int_t mod, Int_t TRURow, Int_t branch);
  void SetTRUSignalTimeBinTo(UShort_t toBin, Int_t mod, Int_t TRURow, Int_t branch);
  void SetTRUThreshold(UShort_t threshold, Int_t mod, Int_t TRURow, Int_t branch);
  void SetTRUMaskChannel(UShort_t mask, Int_t mod, Int_t TRURow, Int_t branch);
  void SetTORMaskArray(const UShort_t ma[3], Int_t mod, Int_t tor);
  void SetTORReadoutMask(const UShort_t rm[2], Int_t mod, Int_t tor);
  
  // Misc
  virtual void Print(Option_t *option = "") const; 
  void Reset();

  // Constants
  static const Int_t kNMods     = 5; // Number of PHOS Modules
  static const Int_t kNTORs     = 2; // Number of TORs per Module
  static const Int_t kNTRURows  = 4; // Number of TRU rows
  static const Int_t kNBranches = 2; // Number of Branches
  static const Int_t kNTRUX     = 8; // Number of 2x2 per TRU in x
  static const Int_t kNTRUZ     = 14; // Number of 2x2 per TRU in z
  static const UShort_t kIdealTRUPedestal    = 512; // Ideal TRU Pedestal
  static const Int_t    kDefaultNTRUTimeBins = 128; // Number of timebins
  
protected:
  // TRU Parameters:
  UShort_t fTRUPedestals          [kNMods][kNTRURows][kNBranches][kNTRUX][kNTRUZ]; // TRU Pedestals
  Bool_t   fTRUTriggerBitReadoutOn[kNMods][kNTRURows][kNBranches]; // TRU TriggerBit Readout is on
  Bool_t   fTRUSignalReadoutOn    [kNMods][kNTRURows][kNBranches]; // TRU Signal Readout is on
  UChar_t  fTRUSignalTimeBinFrom  [kNMods][kNTRURows][kNBranches]; // TRU from (including) timebin
  UChar_t  fTRUSignalTimeBinTo    [kNMods][kNTRURows][kNBranches]; // TRU to (including) timebin
  UShort_t fTRUThreshold          [kNMods][kNTRURows][kNBranches]; // TRU Threshold
  UShort_t fTRUMaskChannel        [kNMods][kNTRURows][kNBranches]; // TRU Mask Channel
  
  // TOR Parameters:
  UShort_t fTORMaskArray[kNMods][kNTORs][3]; // TOR Mask Array
  UShort_t fTORReadoutMask[kNMods][kNTORs][2]; // TOR Readout Mask
  
  ClassDef(AliPHOSTriggerParameters, 1) // PHOS Trigger Parameters
};

#endif
 AliPHOSTriggerParameters.h:1
 AliPHOSTriggerParameters.h:2
 AliPHOSTriggerParameters.h:3
 AliPHOSTriggerParameters.h:4
 AliPHOSTriggerParameters.h:5
 AliPHOSTriggerParameters.h:6
 AliPHOSTriggerParameters.h:7
 AliPHOSTriggerParameters.h:8
 AliPHOSTriggerParameters.h:9
 AliPHOSTriggerParameters.h:10
 AliPHOSTriggerParameters.h:11
 AliPHOSTriggerParameters.h:12
 AliPHOSTriggerParameters.h:13
 AliPHOSTriggerParameters.h:14
 AliPHOSTriggerParameters.h:15
 AliPHOSTriggerParameters.h:16
 AliPHOSTriggerParameters.h:17
 AliPHOSTriggerParameters.h:18
 AliPHOSTriggerParameters.h:19
 AliPHOSTriggerParameters.h:20
 AliPHOSTriggerParameters.h:21
 AliPHOSTriggerParameters.h:22
 AliPHOSTriggerParameters.h:23
 AliPHOSTriggerParameters.h:24
 AliPHOSTriggerParameters.h:25
 AliPHOSTriggerParameters.h:26
 AliPHOSTriggerParameters.h:27
 AliPHOSTriggerParameters.h:28
 AliPHOSTriggerParameters.h:29
 AliPHOSTriggerParameters.h:30
 AliPHOSTriggerParameters.h:31
 AliPHOSTriggerParameters.h:32
 AliPHOSTriggerParameters.h:33
 AliPHOSTriggerParameters.h:34
 AliPHOSTriggerParameters.h:35
 AliPHOSTriggerParameters.h:36
 AliPHOSTriggerParameters.h:37
 AliPHOSTriggerParameters.h:38
 AliPHOSTriggerParameters.h:39
 AliPHOSTriggerParameters.h:40
 AliPHOSTriggerParameters.h:41
 AliPHOSTriggerParameters.h:42
 AliPHOSTriggerParameters.h:43
 AliPHOSTriggerParameters.h:44
 AliPHOSTriggerParameters.h:45
 AliPHOSTriggerParameters.h:46
 AliPHOSTriggerParameters.h:47
 AliPHOSTriggerParameters.h:48
 AliPHOSTriggerParameters.h:49
 AliPHOSTriggerParameters.h:50
 AliPHOSTriggerParameters.h:51
 AliPHOSTriggerParameters.h:52
 AliPHOSTriggerParameters.h:53
 AliPHOSTriggerParameters.h:54
 AliPHOSTriggerParameters.h:55
 AliPHOSTriggerParameters.h:56
 AliPHOSTriggerParameters.h:57
 AliPHOSTriggerParameters.h:58
 AliPHOSTriggerParameters.h:59
 AliPHOSTriggerParameters.h:60
 AliPHOSTriggerParameters.h:61
 AliPHOSTriggerParameters.h:62
 AliPHOSTriggerParameters.h:63
 AliPHOSTriggerParameters.h:64
 AliPHOSTriggerParameters.h:65
 AliPHOSTriggerParameters.h:66
 AliPHOSTriggerParameters.h:67
 AliPHOSTriggerParameters.h:68
 AliPHOSTriggerParameters.h:69
 AliPHOSTriggerParameters.h:70
 AliPHOSTriggerParameters.h:71
 AliPHOSTriggerParameters.h:72
 AliPHOSTriggerParameters.h:73
 AliPHOSTriggerParameters.h:74
 AliPHOSTriggerParameters.h:75
 AliPHOSTriggerParameters.h:76
 AliPHOSTriggerParameters.h:77
 AliPHOSTriggerParameters.h:78
 AliPHOSTriggerParameters.h:79
 AliPHOSTriggerParameters.h:80
 AliPHOSTriggerParameters.h:81
 AliPHOSTriggerParameters.h:82
 AliPHOSTriggerParameters.h:83
 AliPHOSTriggerParameters.h:84
 AliPHOSTriggerParameters.h:85