]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFTrigger.h
Adding using std::...
[u/mrichter/AliRoot.git] / TOF / AliTOFTrigger.h
index 7989682fcdb7d6a4bf5d8ced0c1aaf2254bfd922..99701ae0fe5f3a1ccf23264803add2b0c8e53ad6 100644 (file)
 /////////////////////////////////////////////////
 
 #include "AliTriggerDetector.h"
+#include "AliLog.h"
+#include "TTree.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
+  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,Float_t startTimeWindow=0.0,Float_t widthTimeWindow=25.); //constructor with parameters
+  virtual ~AliTOFTrigger();  // destructor
   virtual void    CreateInputs();
   virtual void    Trigger();
   Int_t   GetHighMultTh() const {return fHighMultTh;}
@@ -33,6 +37,20 @@ class AliTOFTrigger : public AliTriggerDetector
   Float_t Getdeltamaxro() const {return fdeltamaxro;}
   Int_t  GetstripWindow() const {return fstripWindow;}
 
+  static 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;}
@@ -43,21 +61,52 @@ class AliTOFTrigger : public AliTriggerDetector
   void   Setdeltamaxro(Float_t deltamaxro){fdeltamaxro = deltamaxro;}
   void   SetstripWindow(Int_t stripWindow){fstripWindow = stripWindow;}
 
+  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; }
+                       };
+
+  Float_t GetStartTimeWindow() const {return fStartTimeHit;}; // in ns
+  Float_t GetTimeWidthWindow() const {return fTimeWidthTrigger;}; // in ns
+  void    SetStartTimeWindow(Float_t val) {fStartTimeHit = val;}; // in ns
+  void    SetTimeWidthWindow(Float_t val) {fTimeWidthTrigger = val;}; // in ns
+  
+  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);
 
+  static AliTOFTriggerMask *GetTOFTriggerMap() {return fTOFTrigMap;}
+  static void PrepareTOFMapFromRaw(AliRawReader *fRawReader,Int_t deltaBC=13600);
+  static void PrepareTOFMapFromDigit(TTree *treeD);
  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
+  static AliTOFTriggerMask *fTOFTrigMap; // class with the TOF trigger map
+  static AliTOFTriggerMask *fTOFTrigMask; // class with the TOF trigger mask
+
+  AliTOFTrigger& operator=(const AliTOFTrigger &/*source*/); // ass. op.
+  AliTOFTrigger(const AliTOFTrigger & tr);
+
+  void    GetCTTMIndex(Int_t *detind, Int_t *indexCTTM);
+  static 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 
@@ -68,6 +117,19 @@ class AliTOFTrigger : public AliTriggerDetector
   Float_t fdeltamaxro;             //max delta phi for ro decay (UP trigger)
   Int_t   fstripWindow;            //strip window for triggering
 
-  ClassDef(AliTOFTrigger,1)  // TOF Trigger Detector class
+  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
+
+  // aggiungere larghezza finestra temporale e tempo0 in ns
+  Float_t fStartTimeHit;      // time window start after channel equalization (subtraction of the minimal time per channel default 0 ns)
+  Float_t fTimeWidthTrigger;  // time window width (default 25 ns)
+   
+  ClassDef(AliTOFTrigger,3)  // TOF Trigger Detector class
 };
 #endif
+