X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONGlobalTrigger.cxx;h=ec84fd69ca0025717a6aab325b8309946e98921d;hb=d3484a41f4b410099cbca90c5a8688876371d146;hp=133834a91fd09445cdb3c402551d3ebb55b6c915;hpb=5398f94668e02dcbf8366fd69a3a87777c1476d2;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONGlobalTrigger.cxx b/MUON/AliMUONGlobalTrigger.cxx index 133834a91fd..ec84fd69ca0 100644 --- a/MUON/AliMUONGlobalTrigger.cxx +++ b/MUON/AliMUONGlobalTrigger.cxx @@ -18,10 +18,10 @@ #include "AliMUONGlobalTrigger.h" -#include #include "AliLog.h" #include "AliMUONLocalStruct.h" +//----------------------------------------------------------------------------- /// \class AliMUONGlobalTrigger /// Global Trigger algorithm data output. /// Built from Local and Regional algorithms. \n @@ -29,6 +29,7 @@ /// add SetGlobalPattern and GetGlobalPattern method for rawdata /// (Ch. Finck) /// \author Ph. Crochet +//----------------------------------------------------------------------------- /// \cond CLASSIMP ClassImp(AliMUONGlobalTrigger) @@ -37,60 +38,44 @@ ClassImp(AliMUONGlobalTrigger) //---------------------------------------------------------------------- AliMUONGlobalTrigger::AliMUONGlobalTrigger() : TObject(), - fSinglePlusLpt(0), - fSinglePlusHpt(0), - fSinglePlusApt(0), - - fSingleMinusLpt(0), - fSingleMinusHpt(0), - fSingleMinusApt(0), - - fSingleUndefLpt(0), - fSingleUndefHpt(0), - fSingleUndefApt(0), - + fSingleLpt(0), + fSingleHpt(0), + fPairUnlikeLpt(0), fPairUnlikeHpt(0), - fPairUnlikeApt(0), fPairLikeLpt(0), - fPairLikeHpt(0), - fPairLikeApt(0) + fPairLikeHpt(0) { /// Default constructor + AliDebug(1,Form("this=%p",this)); + for (Int_t i = 0; i < 4; i++) fInput[i] = 0; } //---------------------------------------------------------------------- AliMUONGlobalTrigger::AliMUONGlobalTrigger(const AliMUONGlobalTrigger& theMUONGlobalTrig) : TObject(theMUONGlobalTrig), - fSinglePlusLpt(theMUONGlobalTrig.fSinglePlusLpt), - fSinglePlusHpt(theMUONGlobalTrig.fSinglePlusHpt), - fSinglePlusApt(theMUONGlobalTrig.fSinglePlusApt), - - fSingleMinusLpt(theMUONGlobalTrig.fSingleMinusLpt), - fSingleMinusHpt(theMUONGlobalTrig.fSingleMinusHpt), - fSingleMinusApt(theMUONGlobalTrig.fSingleMinusApt), - - fSingleUndefLpt(theMUONGlobalTrig.fSingleUndefLpt), - fSingleUndefHpt(theMUONGlobalTrig.fSingleUndefHpt), - fSingleUndefApt(theMUONGlobalTrig.fSingleUndefApt), + fSingleLpt(theMUONGlobalTrig.fSingleLpt), + fSingleHpt(theMUONGlobalTrig.fSingleHpt), fPairUnlikeLpt(theMUONGlobalTrig.fPairUnlikeLpt), fPairUnlikeHpt(theMUONGlobalTrig.fPairUnlikeHpt), - fPairUnlikeApt(theMUONGlobalTrig.fPairUnlikeApt), fPairLikeLpt(theMUONGlobalTrig.fPairLikeLpt), - fPairLikeHpt(theMUONGlobalTrig.fPairLikeHpt), - fPairLikeApt(theMUONGlobalTrig.fPairLikeApt) + fPairLikeHpt(theMUONGlobalTrig.fPairLikeHpt) { /// Copy constructor + AliDebug(1,Form("this=%p copy ctor",this)); + for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i]; + } //---------------------------------------------------------------------- AliMUONGlobalTrigger::~AliMUONGlobalTrigger() { /// Destructor + AliDebug(1,Form("this=%p",this)); } //---------------------------------------------------------------------- @@ -105,154 +90,92 @@ AliMUONGlobalTrigger& AliMUONGlobalTrigger::operator=(const AliMUONGlobalTrigger // base class assignement TObject::operator=(theMUONGlobalTrig); - fSinglePlusLpt = theMUONGlobalTrig.fSinglePlusLpt; - fSinglePlusHpt = theMUONGlobalTrig.fSinglePlusHpt; - fSinglePlusApt = theMUONGlobalTrig.fSinglePlusApt; - - fSingleMinusLpt = theMUONGlobalTrig.fSingleMinusLpt; - fSingleMinusHpt = theMUONGlobalTrig.fSingleMinusHpt; - fSingleMinusApt = theMUONGlobalTrig.fSingleMinusApt; - - fSingleUndefLpt = theMUONGlobalTrig.fSingleUndefLpt; - fSingleUndefHpt = theMUONGlobalTrig.fSingleUndefHpt; - fSingleUndefApt = theMUONGlobalTrig.fSingleUndefApt; + fSingleLpt = theMUONGlobalTrig.fSingleLpt; + fSingleHpt = theMUONGlobalTrig.fSingleHpt; fPairUnlikeLpt = theMUONGlobalTrig.fPairUnlikeLpt; fPairUnlikeHpt = theMUONGlobalTrig.fPairUnlikeHpt; - fPairUnlikeApt = theMUONGlobalTrig.fPairUnlikeApt; fPairLikeLpt = theMUONGlobalTrig.fPairLikeLpt; fPairLikeHpt = theMUONGlobalTrig.fPairLikeHpt; - fPairLikeApt = theMUONGlobalTrig.fPairLikeApt; + + for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i]; return *this; } -//---------------------------------------------------------------------- -AliMUONGlobalTrigger::AliMUONGlobalTrigger(Int_t *singlePlus, - Int_t *singleMinus, - Int_t *singleUndef, - Int_t *pairUnlike, Int_t *pairLike) - : TObject(), - - fSinglePlusLpt(singlePlus[0]), - fSinglePlusHpt(singlePlus[1]), - fSinglePlusApt(singlePlus[2]), - - fSingleMinusLpt(singleMinus[0]), - fSingleMinusHpt(singleMinus[1]), - fSingleMinusApt(singleMinus[2]), - - fSingleUndefLpt(singleUndef[0]), - fSingleUndefHpt(singleUndef[1]), - fSingleUndefApt(singleUndef[2]), +//----------------------------------------------------------- +void AliMUONGlobalTrigger::SetFromGlobalResponse(UShort_t globalResponse) +{ + /// Set class members from global response + /// coming from rawdata & global trigger board + /// [US:2, LS:2, Single:2] with [Hpt, Lpt] + /// remove Apt - fPairUnlikeLpt(pairUnlike[0]), - fPairUnlikeHpt(pairUnlike[1]), - fPairUnlikeApt(pairUnlike[2]), + fSingleLpt = (globalResponse >> 1) & 0x1; + fSingleHpt = (globalResponse >> 2) & 0x1; - fPairLikeLpt(pairLike[0]), - fPairLikeHpt(pairLike[1]), - fPairLikeApt(pairLike[2]) + fPairLikeLpt = (globalResponse >> 3) & 0x1; + fPairLikeHpt = (globalResponse >> 4) & 0x1; + + fPairUnlikeLpt = (globalResponse >> 5) & 0x1; + fPairUnlikeHpt = (globalResponse >> 6) & 0x1; -{ - /// Set the Global Trigger object } //----------------------------------------------------------- -void AliMUONGlobalTrigger:: SetGlobalPattern(Int_t gloTrigPat) +UChar_t AliMUONGlobalTrigger::GetGlobalResponse() const { - /// Set class member from global pattern - /// coming from rawdata - - fSinglePlusLpt = (gloTrigPat ) & 0x1; - fSinglePlusHpt = (gloTrigPat >> 1) & 0x1; - fSinglePlusApt = (gloTrigPat >> 2) & 0x1; - - fSingleMinusLpt = (gloTrigPat >> 3) & 0x1; - fSingleMinusHpt = (gloTrigPat >> 4) & 0x1; - fSingleMinusApt = (gloTrigPat >> 5) & 0x1; + /// Global trigger response + /// from class member values + /// [US:2, LS:2, Single:2] with [Hpt, Lpt] - fSingleUndefLpt = (gloTrigPat >> 6) & 0x1; - fSingleUndefHpt = (gloTrigPat >> 7) & 0x1; - fSingleUndefApt = (gloTrigPat >> 8) & 0x1; + UChar_t response = 0; - fPairUnlikeLpt = (gloTrigPat >> 9) & 0x1; - fPairUnlikeHpt = (gloTrigPat >> 10) & 0x1; - fPairUnlikeApt = (gloTrigPat >> 11) & 0x1; + if (SingleLpt()) response|= 0x2; + if (SingleHpt()) response|= 0x4; - fPairLikeLpt = (gloTrigPat >> 12) & 0x1; - fPairLikeHpt = (gloTrigPat >> 13) & 0x1; - fPairLikeApt = (gloTrigPat >> 14) & 0x1; + if (PairLikeLpt()) response|= 0x8; + if (PairLikeHpt()) response|= 0x10; + + if (PairUnlikeLpt()) response|= 0x20; + if (PairUnlikeHpt()) response|= 0x40; + return response; } //----------------------------------------------------------- -Int_t AliMUONGlobalTrigger::GetGlobalPattern() const +void AliMUONGlobalTrigger::SetFromGlobalInput(const UInt_t *globalInput) { - /// Global trigger pattern calculation - /// from class member values - - Int_t gloTrigPat = 0; - - if (SinglePlusLpt()) gloTrigPat|= 0x1; - if (SinglePlusHpt()) gloTrigPat|= 0x2; - if (SinglePlusApt()) gloTrigPat|= 0x4; - - if (SingleMinusLpt()) gloTrigPat|= 0x8; - if (SingleMinusHpt()) gloTrigPat|= 0x10; - if (SingleMinusApt()) gloTrigPat|= 0x20; - - if (SingleUndefLpt()) gloTrigPat|= 0x40; - if (SingleUndefHpt()) gloTrigPat|= 0x80; - if (SingleUndefApt()) gloTrigPat|= 0x100; - - if (PairUnlikeLpt()) gloTrigPat|= 0x200; - if (PairUnlikeHpt()) gloTrigPat|= 0x400; - if (PairUnlikeApt()) gloTrigPat|= 0x800; - - if (PairLikeLpt()) gloTrigPat|= 0x1000; - if (PairLikeHpt()) gloTrigPat|= 0x2000; - if (PairLikeApt()) gloTrigPat|= 0x4000; + /// Global trigger board input + /// 4 words each of 32 bits - return gloTrigPat; + for (Int_t i = 0; i < 4; i++) fInput[i] = globalInput[i]; } //---------------------------------------------------------------------- -void AliMUONGlobalTrigger::Print(Option_t* opt) const +void AliMUONGlobalTrigger::Print(Option_t*) const { - // - // Printing Global Trigger information - // - TString sopt(opt); - sopt.ToUpper(); - if ( sopt.Contains("FULL") ) { - - printf("===================================================\n"); - printf(" Global Trigger output Low pt High pt All\n"); - printf(" number of Single Plus :\t"); - printf("%i\t%i\t%i\t",SinglePlusLpt(),SinglePlusHpt(),SinglePlusApt()); + /// + /// Printing Global Trigger information + /// + printf("=============================================\n"); + printf(" Global Trigger output Low pt High pt\n"); + printf(" Single :\t"); + printf("%i\t%i\t",SingleLpt(),SingleHpt()); printf("\n"); - printf(" number of Single Minus :\t"); - printf("%i\t%i\t%i\t",SingleMinusLpt(),SingleMinusHpt(),SingleMinusApt()); + printf(" UnlikeSign pair :\t"); + printf("%i\t%i\t",PairUnlikeLpt(),PairUnlikeHpt()); printf("\n"); - printf(" number of Single Undefined :\t"); - printf("%i\t%i\t%i\t",SingleUndefLpt(),SingleUndefHpt(),SingleUndefApt()); + printf(" LikeSign pair :\t"); + printf("%i\t%i\t",PairLikeLpt(),PairLikeHpt()); printf("\n"); - printf(" number of UnlikeSign pair :\t"); - printf("%i\t%i\t%i\t",PairUnlikeLpt(),PairUnlikeHpt(),PairUnlikeApt()); - printf("\n"); - - printf(" number of LikeSign pair :\t"); - printf("%i\t%i\t%i\t",PairLikeLpt(),PairLikeHpt(),PairLikeApt()); - printf("\n"); - - printf("===================================================\n"); - } + printf("=============================================\n"); + }