]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONLocalTrigger.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / MUON / AliMUONLocalTrigger.h
index 9d0f6ad4f4433cb79d283ad3d3f6a43176889c2c..575d8157e0029d5e9101016f5c7ab428a5c4384b 100644 (file)
@@ -7,15 +7,16 @@
 /* $Id$ */
 // Revision of includes 07/05/2004
 
-/// \ingroup base
+/// \ingroup trigger
 /// \class AliMUONLocalTrigger
 /// \brief Reconstructed Local Trigger object
 //  Author Ph. Crochet
 
 #include <TObject.h>
-#include <TArrayS.h>
+#include "AliMUONRawStreamTriggerHP.h"
 
 class AliMUONLocalStruct;
+class TArrayS;
 
 class AliMUONLocalTrigger : public TObject {
  public:
@@ -66,7 +67,21 @@ class AliMUONLocalTrigger : public TObject {
            /// return Y pattern array
    void    GetYPattern(TArrayS& array) const;
 
-  Char_t GetLoDecision();
+  Char_t GetLoDecision() const;
+  
+  Int_t GetDeviation() const;
+  void  SetDeviation(Int_t deviation);
+
+  /// Trigger response X strips
+  Bool_t IsTrigX() const;
+  /// Trigger response Y strips
+  Bool_t IsTrigY() const;
+
+  /// Hit pattern from the re-calculated trigger response after removing chambers one-by-one
+  UShort_t GetHitPatternFromResponse() const {return fHitPatternFromResponse; }
+
+  /// Triggers from the re-calculated trigger response after removing chambers one-by-one
+  UChar_t GetTriggerWithoutChamber() const {return fTriggerWithoutChamber; }
 
   // setter methods
   //
@@ -106,10 +121,20 @@ class AliMUONLocalTrigger : public TObject {
   void SetY4Pattern(UShort_t pat) {fY4Pattern = pat;}
 
   void SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct);
+  void SetLocalStruct(Int_t loCircuit, const AliMUONRawStreamTriggerHP::AliLocalStruct& localStruct);
 
-
+  Bool_t IsNull() const;
+  
   virtual void Print(Option_t* opt="") const;
   
+  virtual const char* GetName() const;
+
+  /// The board would provide a trigger even after removing chamber ich [0,3]
+  void SetTriggerWithoutChamber(Int_t ich){ fTriggerWithoutChamber |= 1 << (3 - ich); }
+
+  /// Trigger algorithm did NOT find hit in the specified chamber and cathode
+  void SetNoHitInPlane(Int_t icath, Int_t ich){ fHitPatternFromResponse &= ~(1 << (7 - 4*icath - ich)); }
+
 private:
   Int_t fLoCircuit; ///< Circuit number 
   Int_t fLoStripX;  ///< X strip in MT11 
@@ -130,10 +155,10 @@ private:
   UShort_t fY3Pattern; ///< Y strip pattern for chamber 21
   UShort_t fY4Pattern; ///< Y strip pattern for chamber 22
 
+  UShort_t fHitPatternFromResponse; ///<  Fired plane according to re-computed repsonse
+  UChar_t fTriggerWithoutChamber; ///< Pattern of triggers after chamber removal
 
-  Char_t fLoDecision; ///< Local decision word (4 bits)
-
-  ClassDef(AliMUONLocalTrigger,3)  // reconstructed Local Trigger object
+  ClassDef(AliMUONLocalTrigger,5)  // reconstructed Local Trigger object
 };
 #endif