]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFTrigger.h
move TVirtualDecayer->Init() to class initializer
[u/mrichter/AliRoot.git] / TOF / AliTOFTrigger.h
index 2e39f83b934dfb4510192ce4f137965849f56973..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;}
@@ -35,9 +37,12 @@ class AliTOFTrigger : public AliTriggerDetector
   Float_t Getdeltamaxro() const {return fdeltamaxro;}
   Int_t  GetstripWindow() const {return fstripWindow;}
 
-  void GetMap(Bool_t **map);
+  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 GetTRDmap(Bool_t **map);
+  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);
@@ -56,10 +61,30 @@ 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{
@@ -70,9 +95,16 @@ class AliTOFTrigger : public AliTriggerDetector
     kNLTMtoTRDchannels = 8  //Number of channels in a CTTM
   };
 
+  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);
-  void    GetLTMIndex(Int_t *detind, Int_t *LTMIndex);
-  Bool_t  fLTMmatrix[kNLTM][kNLTMchannels];         //LTM matrix  
+  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
@@ -85,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
+