+#ifndef ALITOFTRIGGER_H
+#define ALITOFTRIGGER_H
+
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id$ */
-#ifndef ALITOFTRIGGER_H
-#define ALITOFTRIGGER_H
-
/////////////////////////////////////////////////
-//
-// TOF Trigger Detector Class
-//
+// //
+// TOF Trigger Detector Class //
+// //
/////////////////////////////////////////////////
#include "AliTriggerDetector.h"
+#include "AliLog.h"
+
+class AliTOFrawData;
+class AliTOFTriggerMask;
class AliTOFTrigger : public AliTriggerDetector
{
public:
AliTOFTrigger(); // constructor
AliTOFTrigger(Int_t HighMultTh, Int_t ppMBTh, Int_t MultiMuonTh, Int_t UPTh, Float_t deltaminpsi, Float_t deltamaxpsi, Float_t deltaminro, Float_t deltamaxro, Int_t stripWindow); //constructor with parameters
- AliTOFTrigger(const AliTOFTrigger & tr);
- virtual ~AliTOFTrigger(){} // destructor
+ virtual ~AliTOFTrigger(); // destructor
virtual void CreateInputs();
virtual void Trigger();
Int_t GetHighMultTh() const {return fHighMultTh;}
Float_t Getdeltamaxro() const {return fdeltamaxro;}
Int_t GetstripWindow() const {return fstripWindow;}
+ void LoadActiveMask(); // Load active channel trigger mask
+ void GetMapMatrix(Bool_t map[][24]) const;
+ void GetMap(Bool_t **map) const;
+ //void PrintMap(); // to be checked because of warning problems
+ void GetTRDmapMatrix(Bool_t map[][8]) const;
+ void GetTRDmap(Bool_t **map) const;
+ Bool_t GetBit(Int_t nDDL, Int_t nTRM, Int_t iChain,Int_t iTDC, Int_t iCH);
+ Bool_t GetBit(Int_t *detind);
+ void SetBit(Int_t nDDL, Int_t nTRM, Int_t iChain,Int_t iTDC, Int_t iCH);
+ void SetBit(Int_t *detind);
+ void ResetBit(Int_t nDDL, Int_t nTRM, Int_t iChain,Int_t iTDC, Int_t iCH);
+ void ResetBit(Int_t *detind);
+
+
void SetHighMultTh(Int_t HighMultTh){fHighMultTh = HighMultTh;}
void SetppMBTh(Int_t ppMBTh){fppMBTh = ppMBTh;}
void SetMultiMuonTh(Int_t MultiMuonTh){fMultiMuonTh = MultiMuonTh;}
void Setdeltamaxro(Float_t deltamaxro){fdeltamaxro = deltamaxro;}
void SetstripWindow(Int_t stripWindow){fstripWindow = stripWindow;}
- void CreateLTMMatrix();
+ Bool_t Return(Int_t i){if(i==0) return fSel1;
+ else if(i==1) return fSel2;
+ else if(i==2) return fSel3;
+ else if(i==3) return fSel4;
+ else { AliWarning(Form(" Index out of range: %d not in [0,3]",i)); return kFALSE; }
+ };
+ Int_t GetNumberOfCrateOn(){return fNCrateOn;};
+ Int_t GetNumberOfMaxipadOn(){return fNMaxipadOn;};
+ Int_t GetNumberOfMaxipadOnAll(){return fNMaxipadOnAll;};
+ Bool_t *GetLTMarray(){return fLTMarray;};
+ void CreateCTTMMatrix();
+ void CreateLTMMatrix();
+ void CreateLTMMatrixFromDigits();
+ void CreateLTMMatrixFromRaw(AliRawReader *fRawReader);
private:
enum{
kNLTM = 72, //Number of LTM
kNLTMchannels = 48, //Number of channels in a LTM
kNCTTM = 36, //Number of CTTM per TOF side
- kNCTTMchannels = 24 //Number of channels in a CTTM
+ kNCTTMchannels = 24, //Number of channels in a CTTM
+ kNLTMtoTRDchannels = 8 //Number of channels in a CTTM
};
- void GetLTMIndex(Int_t *detind, Int_t *LTMIndex);
- Bool_t fLTMmatrix[kNLTM][kNLTMchannels]; //LTM matrix
- Bool_t fCTTMmatrixFront[kNCTTM][kNCTTMchannels]; //CTTM matrix for LTM 0-35
- Bool_t fCTTMmatrixBack[kNCTTM][kNCTTMchannels]; //CTTM matrix for LTM 36-71
+ AliTOFTrigger& operator=(const AliTOFTrigger &/*source*/); // ass. op.
+ AliTOFTrigger(const AliTOFTrigger & tr);
+
+ void GetCTTMIndex(Int_t *detind, Int_t *indexCTTM);
+ void GetLTMIndex(const Int_t * const detind, Int_t *LTMIndex);
+ Bool_t fLTMmatrix[kNLTM][kNLTMchannels]; //LTM matrix
+ Bool_t fLTMarray[kNCTTM]; //LTM array for UPpurposes
+ Bool_t fCTTMmatrixFront[kNCTTM][kNCTTMchannels];//CTTM matrix for TOP FPGA
+ Bool_t fCTTMmatrixBack[kNCTTM][kNCTTMchannels]; //CTTM matrix for BOTTOM FPGA
Int_t fHighMultTh; //threshold for High Multiplicity trigger
Int_t fppMBTh; //threshold for pp Minimum Bias trigger
Int_t fMultiMuonTh; //threshold for Multi Muon trigger
Float_t fdeltamaxro; //max delta phi for ro decay (UP trigger)
Int_t fstripWindow; //strip window for triggering
+ Bool_t fSel1,fSel2,fSel3,fSel4; // ppMB, PbPbMB2, PbPbMB3, PbPbUP
+
+ UInt_t fPowerMask[kNCTTMchannels+1]; // mask for 24 TDC channels
+
+ Int_t fNCrateOn; // number of crate fired
+ Int_t fNMaxipadOn; // number of Maxipad fired
+ Int_t fNMaxipadOnAll; // number of Maxipad fired w/o TDC dead mask
+ AliTOFTriggerMask *fTOFTrigMask; // class with the TOF trigger mask
+
ClassDef(AliTOFTrigger,1) // TOF Trigger Detector class
};
#endif
+