]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTriggerDecision.h
- Added handling of tracks and file mask (used when merging different files).
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerDecision.h
index fdc33fcef00f582281e70573f860b0a2987c7fad..dc6b3c2bd92b884c7a94f050b1c614127b03d898 100644 (file)
@@ -1,25 +1,39 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
+
 /* $Id$ */
+// Revision of includes 07/05/2004
+
 #ifndef ALIMUONTRIGGERDECISION_H
 #define ALIMUONTRIGGERDECISION_H
-////////////////////////////////////////////////
-//  MUON Trigger Decision Class               //
-////////////////////////////////////////////////
-#include "TObject.h"
 
-class AliMUONHitMapA1;
-class TF1;
+/// \ingroup sim
+/// \class AliMUONTriggerDecision
+/// \brief MUON trigger decision class 
+///
+/////////////////////////////////////////////////
+///  MUON Trigger Decision Class               //
+/////////////////////////////////////////////////
+
+#include <TObject.h>
+#include "AliMUONLocalTrigger.h"
+
 class TClonesArray;
-class AliMUONSegmentation;
-class AliMUONResponse;
 
-class AliMUONTriggerDecision :
-public TObject {
+class AliLoader;
+class AliMUONData;
+class AliMUON;
+class AliRawReader;
+
+
+class AliMUONTriggerDecision : public TObject 
+{
  public:
-  AliMUONTriggerDecision(Int_t iprint);         // constructor
+  AliMUONTriggerDecision(AliLoader* loader, Int_t iprint = 0, AliMUONData* data = 0); // constructor
+  AliMUONTriggerDecision(); // constructor
   ~AliMUONTriggerDecision();                  // destructor
   
+  AliMUONData*   GetMUONData() {return fMUONData;}
   void Trigger();
   void ResetBit();
   void SetBit();
@@ -38,6 +52,16 @@ public TObject {
                    Int_t &iTrigger);    
   void GlobalTrigger();
 
+  void Digits2Trigger(); // main function for digitizer
+
+  void ClearDigits();
+  TClonesArray* Digits(Int_t DetectionPlane);
+
+  void AddDigit(
+               Int_t id, Int_t* tracks, Int_t* charges, Int_t* digits,
+               Int_t digitindex
+       );
+
   // print-debug
   void PrintBitPatXInput(Int_t icirc);
   void PrintBitPatYInput(Int_t icirc);
@@ -45,23 +69,32 @@ public TObject {
                        Int_t coordY[5]);
 
   // return member data information
-  Int_t GetITrigger(Int_t icirc);
-  Int_t GetStripX11(Int_t icirc);
-  Int_t GetDev(Int_t icirc);
-  Int_t GetStripY11(Int_t icirc);
-  void GetLutOutput(Int_t icirc, Int_t lpt[2], Int_t hpt[2], Int_t apt[2]);
+  Int_t GetITrigger(Int_t icirc) const;
+  Int_t GetStripX11(Int_t icirc) const;
+  Int_t GetDev(Int_t icirc) const;
+  Int_t GetStripY11(Int_t icirc) const;
+  void GetLutOutput(Int_t icirc, Int_t lpt[2], Int_t hpt[2], Int_t apt[2]) const;
   void GetGlobalTrigger(Int_t singlePlus[3], Int_t singleMinus[3], 
                        Int_t singleUndef[3], Int_t pairUnlike[3], 
-                       Int_t pairLike[3]);  
-  
-// Add a new Local Trigger
-  // virtual void AddLocalTrigger(const AliMUONLocalTrigger);
-//  Return pointer to Local Triggers
-  //  TClonesArray* LocalTriggers(){return fLocalTriggers;}
+                       Int_t pairLike[3]) const;  
+
 
   ClassDef(AliMUONTriggerDecision,1) // Trigger Decision class
 
-    protected:     
+
+protected:
+
+  AliMUONTriggerDecision(const AliMUONTriggerDecision& rhs);
+  AliMUONTriggerDecision& operator=(const AliMUONTriggerDecision& rhs);
+
+  void ClearDigitNumbers();
+
+  void DigitFiredCircuit(
+                Int_t circuit, Int_t cathode,
+                Int_t chamber, Int_t digit
+        );
+
+
   Int_t fDebug;               // print option     
 
   // Global Trigger information [0] : Low pt, [1] : High pt, [2] : All pt 
@@ -95,6 +128,16 @@ public TObject {
   Int_t fYbit21D[234][16]; // bit pattern YM21 Down
   Int_t fYbit22D[234][16]; // bit pattern YM22 Down
 
+  TArrayI fDigitNumbers[234];  //! The digit number that fired a circuit.
+  
+  AliLoader*     fLoader;             //! alice loader
+  TObjArray*     fTriggerCircuit;     //! List of Trigger Circuit
+  TObjArray*     fDigits;             // temp array for digits (both cathodes !) for trigger
+  TArrayI*       fDigitIndices;       //! Array of digit index numbers, one for each entry in fDigits.
+
+  AliMUONData*   fMUONData;           //! Data container for MUON subsystem 
+  AliMUON*       fMUON;               //! pointer to MUON  
+
   // ???
   //  TClonesArray* fLocalTriggers;   // Local Triggers
   // Int_t fNLocalTriggers;          // Number of Local Triggers