X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONLocalTrigger.h;h=575d8157e0029d5e9101016f5c7ab428a5c4384b;hb=f84b18dd58cb015f274c430232c864a221e59e1a;hp=3ba65376202910ab80867ba94fe3ed4395fa2e59;hpb=94d65ea1df0008025f1f95a84c5660e94dd5b24d;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONLocalTrigger.h b/MUON/AliMUONLocalTrigger.h index 3ba65376202..575d8157e00 100644 --- a/MUON/AliMUONLocalTrigger.h +++ b/MUON/AliMUONLocalTrigger.h @@ -7,20 +7,22 @@ /* $Id$ */ // Revision of includes 07/05/2004 -/// \ingroup base +/// \ingroup trigger /// \class AliMUONLocalTrigger /// \brief Reconstructed Local Trigger object // Author Ph. Crochet #include +#include "AliMUONRawStreamTriggerHP.h" class AliMUONLocalStruct; +class TArrayS; class AliMUONLocalTrigger : public TObject { public: AliMUONLocalTrigger(); AliMUONLocalTrigger(const AliMUONLocalTrigger& rhs); // copy constructor ! - virtual ~AliMUONLocalTrigger(){;} + virtual ~AliMUONLocalTrigger(); AliMUONLocalTrigger& operator=(const AliMUONLocalTrigger& rhs); // getter methods @@ -31,15 +33,17 @@ class AliMUONLocalTrigger : public TObject { Int_t LoStripX() const {return fLoStripX;} /// Return Deviation Int_t LoDev() const {return fLoDev;} + /// Return Sign of Deviation + Int_t LoSdev() const {return fLoSdev;} + /// Return Trig Y + Int_t LoTrigY() const {return fLoTrigY;} /// Return Y strip in MT11 Int_t LoStripY() const {return fLoStripY;} /// Return Low pt Int_t LoLpt() const {return fLoLpt;} /// Return High p Int_t LoHpt() const {return fLoHpt;} - /// Return trigger output - Int_t LoOutput() const {return fLoOutput;} - + /// Return X strip pattern for chamber 11 UShort_t GetX1Pattern() const {return fX1Pattern;} /// Return X strip pattern for chamber 12 @@ -48,6 +52,9 @@ class AliMUONLocalTrigger : public TObject { UShort_t GetX3Pattern() const {return fX3Pattern;} /// Return X strip pattern for chamber 22 UShort_t GetX4Pattern() const {return fX4Pattern;} + /// return X pattern array + void GetXPattern(TArrayS& array) const; + /// Return Y strip pattern for chamber 11 UShort_t GetY1Pattern() const {return fY1Pattern;} @@ -57,8 +64,24 @@ class AliMUONLocalTrigger : public TObject { UShort_t GetY3Pattern() const {return fY3Pattern;} /// Return Y strip pattern for chamber 22 UShort_t GetY4Pattern() const {return fY4Pattern;} + /// return Y pattern array + void GetYPattern(TArrayS& array) const; + + 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; } - Char_t GetLoDecision(); + /// Triggers from the re-calculated trigger response after removing chambers one-by-one + UChar_t GetTriggerWithoutChamber() const {return fTriggerWithoutChamber; } // setter methods // @@ -68,14 +91,16 @@ class AliMUONLocalTrigger : public TObject { void SetLoStripX(Int_t loStrX) {fLoStripX = loStrX;} /// Set Deviation void SetLoDev(Int_t loDev) {fLoDev = loDev;} + /// Set Sign of Deviation + void SetLoSdev(Int_t loSdev) {fLoSdev = loSdev;} + /// Set Trig Y + void SetLoTrigY(Int_t loTrigY) {fLoTrigY = loTrigY;} /// Set Y strip in MT11 void SetLoStripY(Int_t loStrY) {fLoStripY = loStrY;} /// Set Low pt void SetLoLpt(Int_t loLpt) {fLoLpt = loLpt;} /// Set High pt void SetLoHpt(Int_t loHpt) {fLoHpt = loHpt;} - /// Set trigger output - void SetLoOutput(Int_t loOutput) {fLoOutput = loOutput;} /// Set X strip pattern for chamber 11 void SetX1Pattern(UShort_t pat) {fX1Pattern = pat;} @@ -96,18 +121,29 @@ 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 - Int_t fLoDev; ///< Deviation + Int_t fLoDev; ///< Deviation + Int_t fLoSdev; ///< Sign of Deviation + Int_t fLoTrigY; ///< Trig Y Int_t fLoStripY; ///< Y strip in MT11 Int_t fLoLpt; ///< Low pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef Int_t fLoHpt; ///< High pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef - Int_t fLoOutput; ///< board output 0 : not fired, 1 fired UShort_t fX1Pattern; ///< X strip pattern for chamber 11 UShort_t fX2Pattern; ///< X strip pattern for chamber 12 @@ -119,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