1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
19 // * this class defines the TOF object to be stored
20 // * in OCDB on a run-by-run basis in order to have the status
21 // * of TOF trigger inputs. it stores 32 bit masks for each crate
27 #include "AliTOFTriggerMask.h"
29 Int_t AliTOFTriggerMask::fPowerMask[24];
31 ClassImp(AliTOFTriggerMask)
32 //_________________________________________________________
34 AliTOFTriggerMask::AliTOFTriggerMask() :
42 for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = 0;
45 for(Int_t i=1;i <= 23;i++){
46 fPowerMask[i] = fPowerMask[i-1]*2;
51 //_________________________________________________________
53 AliTOFTriggerMask::~AliTOFTriggerMask()
61 //_________________________________________________________
63 AliTOFTriggerMask::AliTOFTriggerMask(const AliTOFTriggerMask &source) :
71 for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = source.fTriggerMask[iddl];
74 //_________________________________________________________
77 AliTOFTriggerMask::operator=(const AliTOFTriggerMask &source)
83 if (this == &source) return *this;
84 TObject::operator=(source);
86 for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = source.fTriggerMask[iddl];
91 //_________________________________________________________
94 AliTOFTriggerMask::SetTriggerMaskArray(UInt_t *array)
97 * set trigger mask array
100 for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = array[iddl];
102 //_________________________________________________________
104 Int_t AliTOFTriggerMask::GetNumberMaxiPadOn() {
106 for(Int_t j=0;j<72;j++)
107 for(Int_t i=22;i>=0;i--)
108 n += (fTriggerMask[j]%fPowerMask[i+1])/fPowerMask[i];
111 //_________________________________________________________
112 void AliTOFTriggerMask::SetON(Int_t icrate,Int_t ich){
113 if(ich < 24 && icrate < 72) fTriggerMask[icrate] += fPowerMask[ich];
115 //_________________________________________________________
116 Bool_t AliTOFTriggerMask::IsON(Int_t icrate,Int_t ich){
117 if(ich < 24 && icrate < 72) return (fTriggerMask[icrate] & fPowerMask[ich]);
120 //_________________________________________________________
122 TH2F *AliTOFTriggerMask::GetHistoMask() {
123 TH2F *h = new TH2F("hTOFTriggerMask","TOF trigger mask;crate;MaxiPad",72,0,72,23,0,23);
124 for(Int_t j=0;j<72;j++)
125 for(Int_t i=22;i>=0;i--)
126 h->SetBinContent(j+1,i+1,(fTriggerMask[j]%fPowerMask[i+1])/fPowerMask[i]);
129 //_________________________________________________________
130 void AliTOFTriggerMask::ResetMask() {
131 for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = 0;