#include "AliMUONLocalTrigger.h"
-#include <assert.h>
#include "AliLog.h"
#include "AliMUONLocalStruct.h"
-ClassImp(AliMUONLocalTrigger)
-
-/// ------------------
-/// Class AliMUONLocalTrigger
-/// ------------------
+/// \class AliMUONLocalTrigger
/// Local Trigger algorithm data outputs
-/// (contains local trigger decision and bit patterns)
-/// Ph. Crochet
-///
-/// add SetLocalStruct method for rawdata
-/// Ch. Finck
+/// (contains local trigger decision and bit patterns) \n
+/// Add SetLocalStruct method for rawdata (Ch. Finck)
+/// \author Ph. Crochet
+
+/// \cond CLASSIMP
+ClassImp(AliMUONLocalTrigger)
+/// \endcond
//----------------------------------------------------------------------
AliMUONLocalTrigger::AliMUONLocalTrigger()
fLoStripY(0),
fLoLpt(0),
fLoHpt(0),
- fLoApt(0),
fX1Pattern(0),
fX2Pattern(0),
fY3Pattern(0),
fY4Pattern(0),
- fLoDecision(0),
- fDigits(0)
+ fLoDecision(0)
{
- //
- // constructor
- //
+/// Default constructor
}
//----------------------------------------------------------------------
AliMUONLocalTrigger::AliMUONLocalTrigger(const AliMUONLocalTrigger& theMUONLocalTrig)
- : TObject(theMUONLocalTrig)
+ : TObject(theMUONLocalTrig),
+ fLoCircuit(theMUONLocalTrig.fLoCircuit),
+ fLoStripX(theMUONLocalTrig.fLoStripX),
+ fLoDev(theMUONLocalTrig.fLoDev),
+ fLoStripY(theMUONLocalTrig.fLoStripY),
+ fLoLpt(theMUONLocalTrig.fLoLpt),
+ fLoHpt(theMUONLocalTrig.fLoHpt),
+
+ fX1Pattern(theMUONLocalTrig.fX1Pattern),
+ fX2Pattern(theMUONLocalTrig.fX2Pattern),
+ fX3Pattern(theMUONLocalTrig.fX3Pattern),
+ fX4Pattern(theMUONLocalTrig.fX4Pattern),
+
+ fY1Pattern(theMUONLocalTrig.fY1Pattern),
+ fY2Pattern(theMUONLocalTrig.fY2Pattern),
+ fY3Pattern(theMUONLocalTrig.fY3Pattern),
+ fY4Pattern(theMUONLocalTrig.fY4Pattern),
+
+ fLoDecision(theMUONLocalTrig.fLoDecision)
{
- //
- // copy constructor (useful for TClonesArray)
- //
- fLoCircuit = theMUONLocalTrig.fLoCircuit;
- fLoStripX = theMUONLocalTrig.fLoStripX;
- fLoDev = theMUONLocalTrig.fLoDev;
- fLoStripY = theMUONLocalTrig.fLoStripY;
- fLoLpt = theMUONLocalTrig.fLoLpt;
- fLoHpt = theMUONLocalTrig.fLoHpt;
- fLoApt = theMUONLocalTrig.fLoApt;
+/// Copy constructor (useful for TClonesArray)
- fX1Pattern = theMUONLocalTrig.fX1Pattern;
- fX2Pattern = theMUONLocalTrig.fX2Pattern;
- fX3Pattern = theMUONLocalTrig.fX3Pattern;
- fX4Pattern = theMUONLocalTrig.fX4Pattern;
-
- fY1Pattern = theMUONLocalTrig.fY1Pattern;
- fY2Pattern = theMUONLocalTrig.fY2Pattern;
- fY3Pattern = theMUONLocalTrig.fY3Pattern;
- fY4Pattern = theMUONLocalTrig.fY4Pattern;
-
- fLoDecision = theMUONLocalTrig.fLoDecision;
-
- fDigits = theMUONLocalTrig.fDigits;
}
//----------------------------------------------------------------------
AliMUONLocalTrigger& AliMUONLocalTrigger::operator=(const AliMUONLocalTrigger& theMUONLocalTrig)
{
- // assigment operator
- //
- // equal operator (useful for non-pointer member in TClonesArray)
+/// Assigment operator;
+/// equal operator (useful for non-pointer member in TClonesArray)
if (this == &theMUONLocalTrig)
return *this;
fLoStripY = theMUONLocalTrig.fLoStripY;
fLoLpt = theMUONLocalTrig.fLoLpt;
fLoHpt = theMUONLocalTrig.fLoHpt;
- fLoApt = theMUONLocalTrig.fLoApt;
fX1Pattern = theMUONLocalTrig.fX1Pattern;
fX2Pattern = theMUONLocalTrig.fX2Pattern;
fLoDecision = theMUONLocalTrig.fLoDecision;
- fDigits = theMUONLocalTrig.fDigits;
-
return *this;
}
-//----------------------------------------------------------------------
-AliMUONLocalTrigger::AliMUONLocalTrigger(const Int_t* localtr, const TArrayI& digits)
-{
- //
- // add a local trigger object
- //
- fLoCircuit = localtr[0];
- fLoStripX = localtr[1];
- fLoDev = localtr[2];
- fLoStripY = localtr[3];
- fLoLpt = localtr[4];
- fLoHpt = localtr[5];
- fLoApt = localtr[6];
-
- // keep on with this way
- fX1Pattern = (UShort_t)localtr[7];
- fX2Pattern = (UShort_t)localtr[8];
- fX3Pattern = (UShort_t)localtr[9];
- fX4Pattern = (UShort_t)localtr[10];
-
- fY1Pattern = (UShort_t)localtr[11];
- fY2Pattern = (UShort_t)localtr[12];
- fY3Pattern = (UShort_t)localtr[13];
- fY4Pattern = (UShort_t)localtr[14];
- fDigits = digits;
-}
//----------------------------------------------------------------------
Char_t AliMUONLocalTrigger::GetLoDecision()
{
- // get local decision
- // from H(L)pt
- // returns local trigger decision
+/// Get local decision
+/// from H(L)pt;
+/// returns local trigger decision
fLoDecision = (fLoLpt & 0x3);
fLoDecision |= (fLoHpt << 2) & 0xC;
return fLoDecision;
}
-//----------------------------------------------------------------------
-void AliMUONLocalTrigger::GetDigit(
- Int_t i, Int_t& chamber, Int_t& cathode, Int_t& digit) const
-{
-// Returns the i'th digit that fired this circuit.
-// The number of digits can be found with NumberOfDigits(), that is
-// i is valid in the range [ 0 , NumberOfDigits() - 1 ]
-
- Int_t digitnumber = fDigits[i];
- DecodeDigitNumber(digitnumber, chamber, cathode, digit);
-}
-
-//----------------------------------------------------------------------
-Int_t AliMUONLocalTrigger::EncodeDigitNumber(Int_t chamber, Int_t cathode,
- Int_t digit)
-{
-// Encodes a 32-bit digit number from digit information to be stored
-// in internal integer arrays. Note that the value of the digit parameter
-// can not be larger than 0x07FFFFFF.
-
- assert( 0 <= cathode && cathode <= 1 );
- assert( 0 <= chamber && chamber <= 13 );
-
- if ((digit & 0xF8000000) != 0)
- {
- AliErrorGeneral("AliMUONLocalTrigger", Form(
- "Digit index value is to large: 0x%8.8X. Maximum supported value is 0x07FFFFFF.",
- cathode, chamber, digit
- ));
- return -1;
- };
-
- return ((cathode & 0x1) << 31) | ((chamber & 0xF) << 27) | digit;
-}
-
-//----------------------------------------------------------------------
-void AliMUONLocalTrigger::DecodeDigitNumber(Int_t digitnumber, Int_t& chamber,
- Int_t& cathode, Int_t& digit)
-{
-// Decodes a digit number into information about the digit.
-// One can subsequently fetch the digit with
-// AliMUONDataInterface::Digit(chamber, cathode, digit)
-
- cathode = (digitnumber >> 31) & 0x1;
- chamber = (digitnumber >> 27) & 0xF;
- digit = digitnumber & 0x7FFFFFF;
-}
//----------------------------------------------------------------------
void AliMUONLocalTrigger::SetLocalStruct(Int_t loCircuit, AliMUONLocalStruct& localStruct)
{
- //
- // Set local trigger info from rawdata localStruct
- //
+/// Set local trigger info from rawdata localStruct
// set id'
SetLoCircuit(loCircuit);
if ( sopt.Contains("FULL") ) {
- printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d Apt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt(),LoApt());
+ printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt());
}
}