ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/ 
 

/* $Id$ */


#include "AliMUONGlobalTrigger.h"
#include "AliLog.h"
#include "AliMUONLocalStruct.h"

//-----------------------------------------------------------------------------
/// \class AliMUONGlobalTrigger
/// Global Trigger algorithm data output.
/// Built from Local and Regional algorithms.                          \n 
/// Update for copy & assigment operator,
/// add SetGlobalPattern and GetGlobalPattern method for rawdata 
/// (Ch. Finck)
/// \author Ph. Crochet
//-----------------------------------------------------------------------------

/// \cond CLASSIMP
ClassImp(AliMUONGlobalTrigger)
/// \endcond

//----------------------------------------------------------------------
AliMUONGlobalTrigger::AliMUONGlobalTrigger()
  : TObject(),
    fSingleLpt(0),
    fSingleHpt(0),
      
    fPairUnlikeLpt(0),
    fPairUnlikeHpt(0),
    
    fPairLikeLpt(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),
  
    fSingleLpt(theMUONGlobalTrig.fSingleLpt),
    fSingleHpt(theMUONGlobalTrig.fSingleHpt),
    
    fPairUnlikeLpt(theMUONGlobalTrig.fPairUnlikeLpt),
    fPairUnlikeHpt(theMUONGlobalTrig.fPairUnlikeHpt),
    
    fPairLikeLpt(theMUONGlobalTrig.fPairLikeLpt),
    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));
}

//----------------------------------------------------------------------
AliMUONGlobalTrigger& AliMUONGlobalTrigger::operator=(const AliMUONGlobalTrigger& theMUONGlobalTrig)
{
  /// Assignement operator;
  /// equal operator (useful for non-pointer member in TClonesArray)

  if (this == &theMUONGlobalTrig)
    return *this;
    
  // base class assignement
  TObject::operator=(theMUONGlobalTrig);

  fSingleLpt  = theMUONGlobalTrig.fSingleLpt;
  fSingleHpt  = theMUONGlobalTrig.fSingleHpt;
  
  fPairUnlikeLpt  = theMUONGlobalTrig.fPairUnlikeLpt;
  fPairUnlikeHpt  = theMUONGlobalTrig.fPairUnlikeHpt;
  
  fPairLikeLpt    = theMUONGlobalTrig.fPairLikeLpt;
  fPairLikeHpt    = theMUONGlobalTrig.fPairLikeHpt;

  for (Int_t i = 0; i < 4; i++) fInput[i] = theMUONGlobalTrig.fInput[i];

  return *this;
}

//-----------------------------------------------------------
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

  fSingleLpt = (globalResponse >> 1) & 0x1;
  fSingleHpt = (globalResponse >> 2) & 0x1;

  fPairLikeLpt = (globalResponse >> 3)  & 0x1;
  fPairLikeHpt = (globalResponse >> 4)  & 0x1;
  
  fPairUnlikeLpt = (globalResponse >> 5)  & 0x1;
  fPairUnlikeHpt = (globalResponse >> 6)  & 0x1;
  
}

//-----------------------------------------------------------
UChar_t AliMUONGlobalTrigger::GetGlobalResponse() const
{
  /// Global trigger response
  /// from class member values
  /// [US:2, LS:2, Single:2] with [Hpt, Lpt]

  UChar_t response = 0;

  if (SingleLpt())     response|= 0x2;
  if (SingleHpt())     response|= 0x4;

  if (PairLikeLpt())   response|= 0x8;
  if (PairLikeHpt())   response|= 0x10;
 
  if (PairUnlikeLpt()) response|= 0x20;
  if (PairUnlikeHpt()) response|= 0x40;

  return response;
}

//-----------------------------------------------------------
void AliMUONGlobalTrigger::SetFromGlobalInput(const UInt_t *globalInput)
{
  /// Global trigger board input
  /// 4 words each of 32 bits

  for (Int_t i = 0; i < 4; i++) fInput[i] = globalInput[i];

}

//----------------------------------------------------------------------
void AliMUONGlobalTrigger::Print(Option_t*) const
{
  ///
  /// 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(" UnlikeSign pair           :\t"); 
      printf("%i\t%i\t",PairUnlikeLpt(),PairUnlikeHpt());
      printf("\n");
      
      printf(" LikeSign pair             :\t");  
      printf("%i\t%i\t",PairLikeLpt(),PairLikeHpt());
      printf("\n");
      
      printf("=============================================\n");

}


 AliMUONGlobalTrigger.cxx:1
 AliMUONGlobalTrigger.cxx:2
 AliMUONGlobalTrigger.cxx:3
 AliMUONGlobalTrigger.cxx:4
 AliMUONGlobalTrigger.cxx:5
 AliMUONGlobalTrigger.cxx:6
 AliMUONGlobalTrigger.cxx:7
 AliMUONGlobalTrigger.cxx:8
 AliMUONGlobalTrigger.cxx:9
 AliMUONGlobalTrigger.cxx:10
 AliMUONGlobalTrigger.cxx:11
 AliMUONGlobalTrigger.cxx:12
 AliMUONGlobalTrigger.cxx:13
 AliMUONGlobalTrigger.cxx:14
 AliMUONGlobalTrigger.cxx:15
 AliMUONGlobalTrigger.cxx:16
 AliMUONGlobalTrigger.cxx:17
 AliMUONGlobalTrigger.cxx:18
 AliMUONGlobalTrigger.cxx:19
 AliMUONGlobalTrigger.cxx:20
 AliMUONGlobalTrigger.cxx:21
 AliMUONGlobalTrigger.cxx:22
 AliMUONGlobalTrigger.cxx:23
 AliMUONGlobalTrigger.cxx:24
 AliMUONGlobalTrigger.cxx:25
 AliMUONGlobalTrigger.cxx:26
 AliMUONGlobalTrigger.cxx:27
 AliMUONGlobalTrigger.cxx:28
 AliMUONGlobalTrigger.cxx:29
 AliMUONGlobalTrigger.cxx:30
 AliMUONGlobalTrigger.cxx:31
 AliMUONGlobalTrigger.cxx:32
 AliMUONGlobalTrigger.cxx:33
 AliMUONGlobalTrigger.cxx:34
 AliMUONGlobalTrigger.cxx:35
 AliMUONGlobalTrigger.cxx:36
 AliMUONGlobalTrigger.cxx:37
 AliMUONGlobalTrigger.cxx:38
 AliMUONGlobalTrigger.cxx:39
 AliMUONGlobalTrigger.cxx:40
 AliMUONGlobalTrigger.cxx:41
 AliMUONGlobalTrigger.cxx:42
 AliMUONGlobalTrigger.cxx:43
 AliMUONGlobalTrigger.cxx:44
 AliMUONGlobalTrigger.cxx:45
 AliMUONGlobalTrigger.cxx:46
 AliMUONGlobalTrigger.cxx:47
 AliMUONGlobalTrigger.cxx:48
 AliMUONGlobalTrigger.cxx:49
 AliMUONGlobalTrigger.cxx:50
 AliMUONGlobalTrigger.cxx:51
 AliMUONGlobalTrigger.cxx:52
 AliMUONGlobalTrigger.cxx:53
 AliMUONGlobalTrigger.cxx:54
 AliMUONGlobalTrigger.cxx:55
 AliMUONGlobalTrigger.cxx:56
 AliMUONGlobalTrigger.cxx:57
 AliMUONGlobalTrigger.cxx:58
 AliMUONGlobalTrigger.cxx:59
 AliMUONGlobalTrigger.cxx:60
 AliMUONGlobalTrigger.cxx:61
 AliMUONGlobalTrigger.cxx:62
 AliMUONGlobalTrigger.cxx:63
 AliMUONGlobalTrigger.cxx:64
 AliMUONGlobalTrigger.cxx:65
 AliMUONGlobalTrigger.cxx:66
 AliMUONGlobalTrigger.cxx:67
 AliMUONGlobalTrigger.cxx:68
 AliMUONGlobalTrigger.cxx:69
 AliMUONGlobalTrigger.cxx:70
 AliMUONGlobalTrigger.cxx:71
 AliMUONGlobalTrigger.cxx:72
 AliMUONGlobalTrigger.cxx:73
 AliMUONGlobalTrigger.cxx:74
 AliMUONGlobalTrigger.cxx:75
 AliMUONGlobalTrigger.cxx:76
 AliMUONGlobalTrigger.cxx:77
 AliMUONGlobalTrigger.cxx:78
 AliMUONGlobalTrigger.cxx:79
 AliMUONGlobalTrigger.cxx:80
 AliMUONGlobalTrigger.cxx:81
 AliMUONGlobalTrigger.cxx:82
 AliMUONGlobalTrigger.cxx:83
 AliMUONGlobalTrigger.cxx:84
 AliMUONGlobalTrigger.cxx:85
 AliMUONGlobalTrigger.cxx:86
 AliMUONGlobalTrigger.cxx:87
 AliMUONGlobalTrigger.cxx:88
 AliMUONGlobalTrigger.cxx:89
 AliMUONGlobalTrigger.cxx:90
 AliMUONGlobalTrigger.cxx:91
 AliMUONGlobalTrigger.cxx:92
 AliMUONGlobalTrigger.cxx:93
 AliMUONGlobalTrigger.cxx:94
 AliMUONGlobalTrigger.cxx:95
 AliMUONGlobalTrigger.cxx:96
 AliMUONGlobalTrigger.cxx:97
 AliMUONGlobalTrigger.cxx:98
 AliMUONGlobalTrigger.cxx:99
 AliMUONGlobalTrigger.cxx:100
 AliMUONGlobalTrigger.cxx:101
 AliMUONGlobalTrigger.cxx:102
 AliMUONGlobalTrigger.cxx:103
 AliMUONGlobalTrigger.cxx:104
 AliMUONGlobalTrigger.cxx:105
 AliMUONGlobalTrigger.cxx:106
 AliMUONGlobalTrigger.cxx:107
 AliMUONGlobalTrigger.cxx:108
 AliMUONGlobalTrigger.cxx:109
 AliMUONGlobalTrigger.cxx:110
 AliMUONGlobalTrigger.cxx:111
 AliMUONGlobalTrigger.cxx:112
 AliMUONGlobalTrigger.cxx:113
 AliMUONGlobalTrigger.cxx:114
 AliMUONGlobalTrigger.cxx:115
 AliMUONGlobalTrigger.cxx:116
 AliMUONGlobalTrigger.cxx:117
 AliMUONGlobalTrigger.cxx:118
 AliMUONGlobalTrigger.cxx:119
 AliMUONGlobalTrigger.cxx:120
 AliMUONGlobalTrigger.cxx:121
 AliMUONGlobalTrigger.cxx:122
 AliMUONGlobalTrigger.cxx:123
 AliMUONGlobalTrigger.cxx:124
 AliMUONGlobalTrigger.cxx:125
 AliMUONGlobalTrigger.cxx:126
 AliMUONGlobalTrigger.cxx:127
 AliMUONGlobalTrigger.cxx:128
 AliMUONGlobalTrigger.cxx:129
 AliMUONGlobalTrigger.cxx:130
 AliMUONGlobalTrigger.cxx:131
 AliMUONGlobalTrigger.cxx:132
 AliMUONGlobalTrigger.cxx:133
 AliMUONGlobalTrigger.cxx:134
 AliMUONGlobalTrigger.cxx:135
 AliMUONGlobalTrigger.cxx:136
 AliMUONGlobalTrigger.cxx:137
 AliMUONGlobalTrigger.cxx:138
 AliMUONGlobalTrigger.cxx:139
 AliMUONGlobalTrigger.cxx:140
 AliMUONGlobalTrigger.cxx:141
 AliMUONGlobalTrigger.cxx:142
 AliMUONGlobalTrigger.cxx:143
 AliMUONGlobalTrigger.cxx:144
 AliMUONGlobalTrigger.cxx:145
 AliMUONGlobalTrigger.cxx:146
 AliMUONGlobalTrigger.cxx:147
 AliMUONGlobalTrigger.cxx:148
 AliMUONGlobalTrigger.cxx:149
 AliMUONGlobalTrigger.cxx:150
 AliMUONGlobalTrigger.cxx:151
 AliMUONGlobalTrigger.cxx:152
 AliMUONGlobalTrigger.cxx:153
 AliMUONGlobalTrigger.cxx:154
 AliMUONGlobalTrigger.cxx:155
 AliMUONGlobalTrigger.cxx:156
 AliMUONGlobalTrigger.cxx:157
 AliMUONGlobalTrigger.cxx:158
 AliMUONGlobalTrigger.cxx:159
 AliMUONGlobalTrigger.cxx:160
 AliMUONGlobalTrigger.cxx:161
 AliMUONGlobalTrigger.cxx:162
 AliMUONGlobalTrigger.cxx:163
 AliMUONGlobalTrigger.cxx:164
 AliMUONGlobalTrigger.cxx:165
 AliMUONGlobalTrigger.cxx:166
 AliMUONGlobalTrigger.cxx:167
 AliMUONGlobalTrigger.cxx:168
 AliMUONGlobalTrigger.cxx:169
 AliMUONGlobalTrigger.cxx:170
 AliMUONGlobalTrigger.cxx:171
 AliMUONGlobalTrigger.cxx:172
 AliMUONGlobalTrigger.cxx:173
 AliMUONGlobalTrigger.cxx:174
 AliMUONGlobalTrigger.cxx:175
 AliMUONGlobalTrigger.cxx:176
 AliMUONGlobalTrigger.cxx:177
 AliMUONGlobalTrigger.cxx:178
 AliMUONGlobalTrigger.cxx:179
 AliMUONGlobalTrigger.cxx:180
 AliMUONGlobalTrigger.cxx:181