#ifndef ALIMUONTRIGGERDECISION_H
#define ALIMUONTRIGGERDECISION_H
-////////////////////////////////////////////////
-// MUON Trigger Decision Class //
-////////////////////////////////////////////////
+/// \ingroup sim
+/// \class AliMUONTriggerDecision
+/// \brief MUON trigger decision class
+///
+/// \author Philippe Crochet (LPCCFd)
+
#include <TObject.h>
+#include "AliMUONLocalTrigger.h"
-//class TClonesArray;
+class TClonesArray;
class AliLoader;
class AliMUONData;
void Digits2Trigger(); // main function for digitizer
- void Trigger2Trigger();// main function for reconstructor
-
- void Trigger2Trigger(AliRawReader* rawReader); // for raw data reader purpose
-
void ClearDigits();
TClonesArray* Digits(Int_t DetectionPlane);
- void AddDigit(Int_t id, Int_t* tracks, Int_t* charges, Int_t* digits);
+
+ 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 GetGlobalTrigger(Int_t singlePlus[3], Int_t singleMinus[3],
Int_t singleUndef[3], Int_t pairUnlike[3],
Int_t pairLike[3]) const;
-
-
+protected:
- ClassDef(AliMUONTriggerDecision,1) // Trigger Decision class
-
- protected:
AliMUONTriggerDecision(const AliMUONTriggerDecision& rhs);
AliMUONTriggerDecision& operator=(const AliMUONTriggerDecision& rhs);
- Int_t fDebug; // print option
+ 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
- Int_t fGlobalSinglePlus[3]; // tot num of single plus
- Int_t fGlobalSingleMinus[3]; // tot num of single minus
- Int_t fGlobalSingleUndef[3]; // tot num of single undefined
- Int_t fGlobalPairUnlike[3]; // tot num of unlike-sign pairs
- Int_t fGlobalPairLike[3]; // tot num of like-sign pairs
+ Int_t fGlobalSinglePlus[3]; ///< tot num of single plus
+ Int_t fGlobalSingleMinus[3]; ///< tot num of single minus
+ Int_t fGlobalSingleUndef[3]; ///< tot num of single undefined
+ Int_t fGlobalPairUnlike[3]; ///< tot num of unlike-sign pairs
+ Int_t fGlobalPairLike[3]; ///< tot num of like-sign pairs
// Local Trigger information
- Int_t fTrigger[234]; // fTrigger = 0 : no trigger, 1 : trigger
- Int_t fStripX11[234]; // X strip in MC11 which triggers
- Int_t fDev[234]; // deviation which triggers
- Int_t fStripY11[234]; // Y strip in MC11 which triggers
- Int_t fLutLpt[234][2]; // Local Trigger info Low pt
- Int_t fLutHpt[234][2]; // Local Trigger info High pt
- Int_t fLutApt[234][2]; // Local Trigger info All pt
+ Int_t fTrigger[234]; ///< fTrigger = 0 : no trigger, 1 : trigger
+ Int_t fStripX11[234]; ///< X strip in MC11 which triggers
+ Int_t fDev[234]; ///< deviation which triggers
+ Int_t fStripY11[234]; ///< Y strip in MC11 which triggers
+ Int_t fLutLpt[234][2]; ///< Local Trigger info Low pt
+ Int_t fLutHpt[234][2]; ///< Local Trigger info High pt
+ Int_t fLutApt[234][2]; ///< Local Trigger info All pt
// bit pattern
- Int_t fXbit11[234][16]; // bit pattern XM11
- Int_t fXbit12[234][16]; // bit pattern XM12
- Int_t fXbit21[234][32]; // bit pattern XM21
- Int_t fXbit22[234][32]; // bit pattern XM22
- Int_t fYbit11[234][16]; // bit pattern YM11
- Int_t fYbit12[234][16]; // bit pattern YM12
- Int_t fYbit21[234][16]; // bit pattern YM21
- Int_t fYbit22[234][16]; // bit pattern YM22
-
- Int_t fYbit21U[234][16]; // bit pattern YM21 Up
- Int_t fYbit22U[234][16]; // bit pattern YM22 Up
- Int_t fYbit21D[234][16]; // bit pattern YM21 Down
- Int_t fYbit22D[234][16]; // bit pattern YM22 Down
-
+ Int_t fXbit11[234][16]; ///< bit pattern XM11
+ Int_t fXbit12[234][16]; ///< bit pattern XM12
+ Int_t fXbit21[234][32]; ///< bit pattern XM21
+ Int_t fXbit22[234][32]; ///< bit pattern XM22
+ Int_t fYbit11[234][16]; ///< bit pattern YM11
+ Int_t fYbit12[234][16]; ///< bit pattern YM12
+ Int_t fYbit21[234][16]; ///< bit pattern YM21
+ Int_t fYbit22[234][16]; ///< bit pattern YM22
+
+ Int_t fYbit21U[234][16]; ///< bit pattern YM21 Up
+ Int_t fYbit22U[234][16]; ///< bit pattern YM22 Up
+ 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
+ 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
+ AliMUONData* fMUONData; //!< Data container for MUON subsystem
+ AliMUON* fMUON; //!< pointer to MUON
// ???
- // TClonesArray* fLocalTriggers; // Local Triggers
- // Int_t fNLocalTriggers; // Number of Local Triggers
+ // TClonesArray* fLocalTriggers; ///< Local Triggers
+ // Int_t fNLocalTriggers; ///< Number of Local Triggers
+ ClassDef(AliMUONTriggerDecision,1) // Trigger Decision class
};
#endif