ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

// *
// *
// *
// * this class defines the TOF object to be stored
// * in OCDB on a run-by-run basis in order to have the status
// * of TOF trigger inputs. it stores 32 bit masks for each crate
// * 
// *
// *
// *

#include "AliTOFTriggerMask.h"

Int_t AliTOFTriggerMask::fPowerMask[24];

ClassImp(AliTOFTriggerMask)
//_________________________________________________________

AliTOFTriggerMask::AliTOFTriggerMask() :
  TObject(),
  fTriggerMask()
{
  /*
   * default constructor
   */

  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = 0;

  fPowerMask[0] = 1;
  for(Int_t i=1;i <= 23;i++){
      fPowerMask[i] = fPowerMask[i-1]*2;
  }

}

//_________________________________________________________

AliTOFTriggerMask::~AliTOFTriggerMask()
{
  /*
   * default destructor
   */

}

//_________________________________________________________

AliTOFTriggerMask::AliTOFTriggerMask(const AliTOFTriggerMask &source) :
  TObject(source),
  fTriggerMask()
{
  /*
   * copy constructor
   */

  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = source.fTriggerMask[iddl];
}

//_________________________________________________________

AliTOFTriggerMask &
AliTOFTriggerMask::operator=(const AliTOFTriggerMask &source)
{
  /*
   * operator=
   */

  if (this == &source) return *this;
  TObject::operator=(source);
  
  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = source.fTriggerMask[iddl];

  return *this;
}

//_________________________________________________________

void
AliTOFTriggerMask::SetTriggerMaskArray(UInt_t *array)
{
  /*
   * set trigger mask array
   */

  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = array[iddl];
}
//_________________________________________________________

Int_t AliTOFTriggerMask::GetNumberMaxiPadOn() {
  Int_t n=0;
  for(Int_t j=0;j<72;j++) 
    for(Int_t i=22;i>=0;i--) 
      n += (fTriggerMask[j]%fPowerMask[i+1])/fPowerMask[i];
  return n;
};
//_________________________________________________________
void AliTOFTriggerMask::SetON(Int_t icrate,Int_t ich){
  if(ich < 24 && icrate < 72) fTriggerMask[icrate] += fPowerMask[ich];
}
//_________________________________________________________
Bool_t AliTOFTriggerMask::IsON(Int_t icrate,Int_t ich){
  if(ich < 24 && icrate < 72) return (fTriggerMask[icrate] & fPowerMask[ich]);
  else return kFALSE;
}
//_________________________________________________________

TH2F *AliTOFTriggerMask::GetHistoMask() {
  TH2F *h = new TH2F("hTOFTriggerMask","TOF trigger mask;crate;MaxiPad",72,0,72,23,0,23);
  for(Int_t j=0;j<72;j++) 
    for(Int_t i=22;i>=0;i--) 
      h->SetBinContent(j+1,i+1,(fTriggerMask[j]%fPowerMask[i+1])/fPowerMask[i]);
  return h;
};
//_________________________________________________________
void AliTOFTriggerMask::ResetMask() {
  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = 0;
}
 AliTOFTriggerMask.cxx:1
 AliTOFTriggerMask.cxx:2
 AliTOFTriggerMask.cxx:3
 AliTOFTriggerMask.cxx:4
 AliTOFTriggerMask.cxx:5
 AliTOFTriggerMask.cxx:6
 AliTOFTriggerMask.cxx:7
 AliTOFTriggerMask.cxx:8
 AliTOFTriggerMask.cxx:9
 AliTOFTriggerMask.cxx:10
 AliTOFTriggerMask.cxx:11
 AliTOFTriggerMask.cxx:12
 AliTOFTriggerMask.cxx:13
 AliTOFTriggerMask.cxx:14
 AliTOFTriggerMask.cxx:15
 AliTOFTriggerMask.cxx:16
 AliTOFTriggerMask.cxx:17
 AliTOFTriggerMask.cxx:18
 AliTOFTriggerMask.cxx:19
 AliTOFTriggerMask.cxx:20
 AliTOFTriggerMask.cxx:21
 AliTOFTriggerMask.cxx:22
 AliTOFTriggerMask.cxx:23
 AliTOFTriggerMask.cxx:24
 AliTOFTriggerMask.cxx:25
 AliTOFTriggerMask.cxx:26
 AliTOFTriggerMask.cxx:27
 AliTOFTriggerMask.cxx:28
 AliTOFTriggerMask.cxx:29
 AliTOFTriggerMask.cxx:30
 AliTOFTriggerMask.cxx:31
 AliTOFTriggerMask.cxx:32
 AliTOFTriggerMask.cxx:33
 AliTOFTriggerMask.cxx:34
 AliTOFTriggerMask.cxx:35
 AliTOFTriggerMask.cxx:36
 AliTOFTriggerMask.cxx:37
 AliTOFTriggerMask.cxx:38
 AliTOFTriggerMask.cxx:39
 AliTOFTriggerMask.cxx:40
 AliTOFTriggerMask.cxx:41
 AliTOFTriggerMask.cxx:42
 AliTOFTriggerMask.cxx:43
 AliTOFTriggerMask.cxx:44
 AliTOFTriggerMask.cxx:45
 AliTOFTriggerMask.cxx:46
 AliTOFTriggerMask.cxx:47
 AliTOFTriggerMask.cxx:48
 AliTOFTriggerMask.cxx:49
 AliTOFTriggerMask.cxx:50
 AliTOFTriggerMask.cxx:51
 AliTOFTriggerMask.cxx:52
 AliTOFTriggerMask.cxx:53
 AliTOFTriggerMask.cxx:54
 AliTOFTriggerMask.cxx:55
 AliTOFTriggerMask.cxx:56
 AliTOFTriggerMask.cxx:57
 AliTOFTriggerMask.cxx:58
 AliTOFTriggerMask.cxx:59
 AliTOFTriggerMask.cxx:60
 AliTOFTriggerMask.cxx:61
 AliTOFTriggerMask.cxx:62
 AliTOFTriggerMask.cxx:63
 AliTOFTriggerMask.cxx:64
 AliTOFTriggerMask.cxx:65
 AliTOFTriggerMask.cxx:66
 AliTOFTriggerMask.cxx:67
 AliTOFTriggerMask.cxx:68
 AliTOFTriggerMask.cxx:69
 AliTOFTriggerMask.cxx:70
 AliTOFTriggerMask.cxx:71
 AliTOFTriggerMask.cxx:72
 AliTOFTriggerMask.cxx:73
 AliTOFTriggerMask.cxx:74
 AliTOFTriggerMask.cxx:75
 AliTOFTriggerMask.cxx:76
 AliTOFTriggerMask.cxx:77
 AliTOFTriggerMask.cxx:78
 AliTOFTriggerMask.cxx:79
 AliTOFTriggerMask.cxx:80
 AliTOFTriggerMask.cxx:81
 AliTOFTriggerMask.cxx:82
 AliTOFTriggerMask.cxx:83
 AliTOFTriggerMask.cxx:84
 AliTOFTriggerMask.cxx:85
 AliTOFTriggerMask.cxx:86
 AliTOFTriggerMask.cxx:87
 AliTOFTriggerMask.cxx:88
 AliTOFTriggerMask.cxx:89
 AliTOFTriggerMask.cxx:90
 AliTOFTriggerMask.cxx:91
 AliTOFTriggerMask.cxx:92
 AliTOFTriggerMask.cxx:93
 AliTOFTriggerMask.cxx:94
 AliTOFTriggerMask.cxx:95
 AliTOFTriggerMask.cxx:96
 AliTOFTriggerMask.cxx:97
 AliTOFTriggerMask.cxx:98
 AliTOFTriggerMask.cxx:99
 AliTOFTriggerMask.cxx:100
 AliTOFTriggerMask.cxx:101
 AliTOFTriggerMask.cxx:102
 AliTOFTriggerMask.cxx:103
 AliTOFTriggerMask.cxx:104
 AliTOFTriggerMask.cxx:105
 AliTOFTriggerMask.cxx:106
 AliTOFTriggerMask.cxx:107
 AliTOFTriggerMask.cxx:108
 AliTOFTriggerMask.cxx:109
 AliTOFTriggerMask.cxx:110
 AliTOFTriggerMask.cxx:111
 AliTOFTriggerMask.cxx:112
 AliTOFTriggerMask.cxx:113
 AliTOFTriggerMask.cxx:114
 AliTOFTriggerMask.cxx:115
 AliTOFTriggerMask.cxx:116
 AliTOFTriggerMask.cxx:117
 AliTOFTriggerMask.cxx:118
 AliTOFTriggerMask.cxx:119
 AliTOFTriggerMask.cxx:120
 AliTOFTriggerMask.cxx:121
 AliTOFTriggerMask.cxx:122
 AliTOFTriggerMask.cxx:123
 AliTOFTriggerMask.cxx:124
 AliTOFTriggerMask.cxx:125
 AliTOFTriggerMask.cxx:126
 AliTOFTriggerMask.cxx:127
 AliTOFTriggerMask.cxx:128
 AliTOFTriggerMask.cxx:129
 AliTOFTriggerMask.cxx:130
 AliTOFTriggerMask.cxx:131
 AliTOFTriggerMask.cxx:132