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

//-----------------------------------------------------------------------------
/// \class AliMUONTriggerLut
/// 
/// Local Trigger Look Up Table
/// reading interface LUT data is stored into TH3S histograms and readout 
/// from the Local Trigger algorithm
///
/// Histograms structure is :
/// X 234 bins, 1 to 235   = local board number
/// Y  31 bins, 0 to  31   = x strip
/// Z  31 bins, 0 to  31   = x deviation
/// content = Short_t      = y strip mask
///
///  overflow bin is used !
///
/// \author Philippe Crochet
//-----------------------------------------------------------------------------

#include "AliMUONTriggerLut.h"

#include "AliLog.h"

#include <TFile.h>
#include <TH3.h>
#include <TMap.h>
#include <TObjString.h>

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

//----------------------------------------------------------------------
AliMUONTriggerLut::AliMUONTriggerLut() 
    : TNamed(),
      fLptPlus(0),
      fLptMinu(0),
      fLptUnde(0),
      fHptPlus(0),
      fHptMinu(0),
      fHptUnde(0),
      fAptPlus(0),
      fAptMinu(0),
      fAptUnde(0),
  fMap(0x0)
{
/// ctor
}

//----------------------------------------------------------------------
AliMUONTriggerLut::~AliMUONTriggerLut() 
{
/// Destructor
  
  delete fLptPlus;  
  delete fLptMinu;
  delete fLptUnde;
  delete fHptPlus;  
  delete fHptMinu;
  delete fHptUnde;
  delete fAptPlus;  
  delete fAptMinu;
  delete fAptUnde;
  delete fMap;
}

//----------------------------------------------------------------------
Int_t
AliMUONTriggerLut::Compare(TH3* h1, TH3* h2) const
{
/// Return 0 if both histograms are strictly equal (at the bin-by-bin level)

  AliDebug(1,Form("h1 %s h2 %s",h1 ? h1->GetName() : "null", h2 ? h2->GetName() : "null"));

  if (!h1 || !h2) 
  {
    return 0;
  }
  Int_t bin;
  for ( Int_t ix = 0; ix <= h1->GetNbinsX()+1; ix++ ) 
    for ( Int_t iy = 0; iy <= h1->GetNbinsY()+1; iy++ ) 
      for ( Int_t iz = 0; iz <= h1->GetNbinsZ()+1; iz++ ) 
	{
	  {
	    {
	      bin = h1->GetBin(ix,iy,iz);
	      Double_t x1 = h1->GetBinContent(bin);
	      Double_t x2 = h2->GetBinContent(bin);
	      if ( x1 != x2 ) return 0;
	    }
	  }
	}

  AliDebug(1,"same");
  
  return 1;
}

//----------------------------------------------------------------------
Int_t 
AliMUONTriggerLut::Compare(const TObject* object) const
{
/// Return 0 if the two luts are strictly equal

  const AliMUONTriggerLut* lut = static_cast<const AliMUONTriggerLut*>(object);
  
  Int_t rvLpt(0);
  
  rvLpt += Compare(fLptPlus,lut->fLptPlus);
  rvLpt += Compare(fLptMinu,lut->fLptMinu);
  rvLpt += Compare(fLptUnde,lut->fLptUnde);

  Int_t rvHpt(0);
  
  rvHpt += Compare(fHptPlus,lut->fHptPlus);
  rvHpt += Compare(fHptMinu,lut->fHptMinu);
  rvHpt += Compare(fHptUnde,lut->fHptUnde);
  
  Int_t rv(0);
  
  rv += Compare(fAptPlus,lut->fAptPlus);
  rv += Compare(fAptMinu,lut->fAptMinu);
  rv += Compare(fAptUnde,lut->fAptUnde);
  
  AliDebug(1,Form("Same Lpt %d Hpt %d Apt %d",rvLpt,rvHpt,rv));
  
  if ( rvLpt == 3 && rvHpt == 3 ) 
  {
    return 0;
  }

  return 1;
}

//----------------------------------------------------------------------
void AliMUONTriggerLut::ReadFromFile(const char* filename)
{
/// Return output of LuT for corresponding TH3S  

  TFile f(filename);
  
  if ( f.IsZombie() )
  {
    AliFatal(Form("Could not open file %s",filename));
  }
  
  AliDebug(1,Form("filename=%s",filename));
  
  fLptPlus = (TH3*)(f.Get("LptPlus"));  
  fLptMinu = (TH3*)(f.Get("LptMinu"));
  fLptUnde = (TH3*)(f.Get("LptUnde"));
  fHptPlus = (TH3*)(f.Get("HptPlus"));  
  fHptMinu = (TH3*)(f.Get("HptMinu"));
  fHptUnde = (TH3*)(f.Get("HptUnde"));
  fAptPlus = (TH3*)(f.Get("AptPlus"));  
  fAptMinu = (TH3*)(f.Get("AptMinu"));
  fAptUnde = (TH3*)(f.Get("AptUnde"));
  
  // insure we "detach" those histograms from file f
  fLptPlus->SetDirectory(0);
  fLptMinu->SetDirectory(0);
  fLptUnde->SetDirectory(0);
  fHptPlus->SetDirectory(0);
  fHptMinu->SetDirectory(0);
  fHptUnde->SetDirectory(0);
  fAptPlus->SetDirectory(0);
  fAptMinu->SetDirectory(0);
  fAptUnde->SetDirectory(0);
  
  RegisterHistos();
}

//----------------------------------------------------------------------
void
AliMUONTriggerLut::RegisterHistos()
{
/// Add histos to our internal map

  Add(fLptPlus);
  Add(fLptMinu);
  Add(fLptUnde);

  Add(fHptPlus);
  Add(fHptMinu);
  Add(fHptUnde);

  Add(fAptPlus);
  Add(fAptMinu);
  Add(fAptUnde);
}

//----------------------------------------------------------------------
void
AliMUONTriggerLut::Add(TH3* h)
{
  /// Update internal map
  if (!fMap)
  {
    fMap = new TMap;
    fMap->SetOwner(kTRUE);
  }
  
  if (h) fMap->Add(new TObjString(h->GetName()),h);
}

//----------------------------------------------------------------------
void 
AliMUONTriggerLut::SetContent(const char* hname, Int_t icirc, UChar_t istripX, 
                              UChar_t idev, Short_t value)
{
  /// Set the content of one bin of one histogram
  
  if (!fMap)
  {
    //..........................................circuit/stripX/deviation
    fLptPlus = new TH3S("LptPlus","LptPlus",234,0,234,31,0,31,31,0,31);
    fLptMinu = new TH3S("LptMinu","LptMinu",234,0,234,31,0,31,31,0,31);
    fLptUnde = new TH3S("LptUnde","LptUnde",234,0,234,31,0,31,31,0,31);
    
    fHptPlus = new TH3S("HptPlus","HptPlus",234,0,234,31,0,31,31,0,31);
    fHptMinu = new TH3S("HptMinu","HptMinu",234,0,234,31,0,31,31,0,31);
    fHptUnde = new TH3S("HptUnde","HptUnde",234,0,234,31,0,31,31,0,31);
    
    fAptPlus = new TH3S("AptPlus","AptPlus",234,0,234,31,0,31,31,0,31);
    fAptMinu = new TH3S("AptMinu","AptMinu",234,0,234,31,0,31,31,0,31);
    fAptUnde = new TH3S("AptUnde","AptUnde",234,0,234,31,0,31,31,0,31);
    
    RegisterHistos();
  }
  
  TH3* h = static_cast<TH3*>(fMap->GetValue(hname));
  
  Int_t bin = h->GetBin(icirc,istripX,idev);
  h->SetBinContent(bin,value);
}

//----------------------------------------------------------------------
void AliMUONTriggerLut::GetLutOutput(Int_t circuit, Int_t xstrip, Int_t idev,
                                     Int_t ystrip, Int_t lutLpt[2], 
                                     Int_t lutHpt[2]) const
{
/// Return output of LuT for corresponding TH3S  

  if ( !fLptPlus )
  {
    AliError("LUT not initialized");
//    ReadFromFile("$(ALICE_ROOT)/MUON/data/MUONTriggerLut.root");
  }
  
  Int_t bin;
  Short_t binc; 
  Int_t mask = GetMask(ystrip);        // get ystrip mask
  
  // Low pt.............................................. 
  bin    =          fLptPlus->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fLptPlus->GetBinContent(bin);
  if ((binc & mask)!=0) lutLpt[1]=1;

  bin    =          fLptMinu->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fLptMinu->GetBinContent(bin);
  if ((binc & mask)!=0) lutLpt[0]=1;
  
  bin    =          fLptUnde->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fLptUnde->GetBinContent(bin);
  if ((binc & mask)!=0) lutLpt[0]=lutLpt[1]=1;

  // High pt.............................................
  bin    =          fHptPlus->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fHptPlus->GetBinContent(bin);
  if ((binc & mask)!=0) lutHpt[1]=1;

  bin    =          fHptMinu->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fHptMinu->GetBinContent(bin);
  if ((binc & mask)!=0) lutHpt[0]=1;

  bin    =          fHptUnde->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fHptUnde->GetBinContent(bin);
  if ((binc & mask)!=0) lutHpt[0]=lutHpt[1]=1;
/*
  // All pts.............................................
  bin    =          fAptPlus->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fAptPlus->GetBinContent(bin);
  if ((binc & mask)!=0) lutApt[1]=1;

  bin    =          fAptMinu->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fAptMinu->GetBinContent(bin);
  if ((binc & mask)!=0) lutApt[0]=1;

  bin    =          fAptUnde->GetBin(circuit,xstrip,idev);
  binc   = (Short_t)fAptUnde->GetBinContent(bin);
  if ((binc & mask)!=0) lutApt[0]=lutApt[1]=1;
*/
}

//----------------------------------------------------------------------
Int_t AliMUONTriggerLut::GetMask(Int_t ystrip) const
{
/// Return the mask corresponding to ystrip

    return (Int_t)(1<<ystrip);
}

//----------------------------------------------------------------------
void AliMUONTriggerLut::SetLutCode(const UChar_t lutCode) 
{
/// Set the LUT code for the pair of cuts
/// see AliMUONTriggerIO::ReadLUT for the definitions
  
  if (!fMap) {
    AliWarning("Nothing registered in the map ?... ");
    return;
  }
  TH3* h = static_cast<TH3*>(fMap->GetValue("LptPlus"));
  h->SetTitle(Form("LptPlus 0x%02x",lutCode));

}



//----------------------------------------------------------------------
void AliMUONTriggerLut::PrintLutCode() 
{
/// Print out the LUT code for the pair of cuts
/// see AliMUONTriggerIO::ReadLUT for the definitions

  TString lutCode = fLptPlus->GetTitle();
  lutCode.Remove(0,8);
  if (lutCode.Length() == 0) {
    AliInfo("No code stored (older version).");
  } else {
    AliInfo(lutCode.Data());

    AliInfo("---------------------------------");
    AliInfo("1st/2nd cut code   pt cut [GeV/c]");
    AliInfo("                                 ");
    AliInfo(" 0                 0.5 (a.k.a. Apt)");
    AliInfo(" 1                 1.0 (a.k.a. Lpt)");
    AliInfo(" 2                 1.7 (a.k.a. Hpt)");
    AliInfo(" 3                 4.2 (a.k.a. infinity)");
    AliInfo(" 4                 free");
    AliInfo(" .");
    AliInfo(" .");
    AliInfo(" .");
    AliInfo("15 default (for backward compatibility)");
    AliInfo("---------------------------------------");

  }

}
 AliMUONTriggerLut.cxx:1
 AliMUONTriggerLut.cxx:2
 AliMUONTriggerLut.cxx:3
 AliMUONTriggerLut.cxx:4
 AliMUONTriggerLut.cxx:5
 AliMUONTriggerLut.cxx:6
 AliMUONTriggerLut.cxx:7
 AliMUONTriggerLut.cxx:8
 AliMUONTriggerLut.cxx:9
 AliMUONTriggerLut.cxx:10
 AliMUONTriggerLut.cxx:11
 AliMUONTriggerLut.cxx:12
 AliMUONTriggerLut.cxx:13
 AliMUONTriggerLut.cxx:14
 AliMUONTriggerLut.cxx:15
 AliMUONTriggerLut.cxx:16
 AliMUONTriggerLut.cxx:17
 AliMUONTriggerLut.cxx:18
 AliMUONTriggerLut.cxx:19
 AliMUONTriggerLut.cxx:20
 AliMUONTriggerLut.cxx:21
 AliMUONTriggerLut.cxx:22
 AliMUONTriggerLut.cxx:23
 AliMUONTriggerLut.cxx:24
 AliMUONTriggerLut.cxx:25
 AliMUONTriggerLut.cxx:26
 AliMUONTriggerLut.cxx:27
 AliMUONTriggerLut.cxx:28
 AliMUONTriggerLut.cxx:29
 AliMUONTriggerLut.cxx:30
 AliMUONTriggerLut.cxx:31
 AliMUONTriggerLut.cxx:32
 AliMUONTriggerLut.cxx:33
 AliMUONTriggerLut.cxx:34
 AliMUONTriggerLut.cxx:35
 AliMUONTriggerLut.cxx:36
 AliMUONTriggerLut.cxx:37
 AliMUONTriggerLut.cxx:38
 AliMUONTriggerLut.cxx:39
 AliMUONTriggerLut.cxx:40
 AliMUONTriggerLut.cxx:41
 AliMUONTriggerLut.cxx:42
 AliMUONTriggerLut.cxx:43
 AliMUONTriggerLut.cxx:44
 AliMUONTriggerLut.cxx:45
 AliMUONTriggerLut.cxx:46
 AliMUONTriggerLut.cxx:47
 AliMUONTriggerLut.cxx:48
 AliMUONTriggerLut.cxx:49
 AliMUONTriggerLut.cxx:50
 AliMUONTriggerLut.cxx:51
 AliMUONTriggerLut.cxx:52
 AliMUONTriggerLut.cxx:53
 AliMUONTriggerLut.cxx:54
 AliMUONTriggerLut.cxx:55
 AliMUONTriggerLut.cxx:56
 AliMUONTriggerLut.cxx:57
 AliMUONTriggerLut.cxx:58
 AliMUONTriggerLut.cxx:59
 AliMUONTriggerLut.cxx:60
 AliMUONTriggerLut.cxx:61
 AliMUONTriggerLut.cxx:62
 AliMUONTriggerLut.cxx:63
 AliMUONTriggerLut.cxx:64
 AliMUONTriggerLut.cxx:65
 AliMUONTriggerLut.cxx:66
 AliMUONTriggerLut.cxx:67
 AliMUONTriggerLut.cxx:68
 AliMUONTriggerLut.cxx:69
 AliMUONTriggerLut.cxx:70
 AliMUONTriggerLut.cxx:71
 AliMUONTriggerLut.cxx:72
 AliMUONTriggerLut.cxx:73
 AliMUONTriggerLut.cxx:74
 AliMUONTriggerLut.cxx:75
 AliMUONTriggerLut.cxx:76
 AliMUONTriggerLut.cxx:77
 AliMUONTriggerLut.cxx:78
 AliMUONTriggerLut.cxx:79
 AliMUONTriggerLut.cxx:80
 AliMUONTriggerLut.cxx:81
 AliMUONTriggerLut.cxx:82
 AliMUONTriggerLut.cxx:83
 AliMUONTriggerLut.cxx:84
 AliMUONTriggerLut.cxx:85
 AliMUONTriggerLut.cxx:86
 AliMUONTriggerLut.cxx:87
 AliMUONTriggerLut.cxx:88
 AliMUONTriggerLut.cxx:89
 AliMUONTriggerLut.cxx:90
 AliMUONTriggerLut.cxx:91
 AliMUONTriggerLut.cxx:92
 AliMUONTriggerLut.cxx:93
 AliMUONTriggerLut.cxx:94
 AliMUONTriggerLut.cxx:95
 AliMUONTriggerLut.cxx:96
 AliMUONTriggerLut.cxx:97
 AliMUONTriggerLut.cxx:98
 AliMUONTriggerLut.cxx:99
 AliMUONTriggerLut.cxx:100
 AliMUONTriggerLut.cxx:101
 AliMUONTriggerLut.cxx:102
 AliMUONTriggerLut.cxx:103
 AliMUONTriggerLut.cxx:104
 AliMUONTriggerLut.cxx:105
 AliMUONTriggerLut.cxx:106
 AliMUONTriggerLut.cxx:107
 AliMUONTriggerLut.cxx:108
 AliMUONTriggerLut.cxx:109
 AliMUONTriggerLut.cxx:110
 AliMUONTriggerLut.cxx:111
 AliMUONTriggerLut.cxx:112
 AliMUONTriggerLut.cxx:113
 AliMUONTriggerLut.cxx:114
 AliMUONTriggerLut.cxx:115
 AliMUONTriggerLut.cxx:116
 AliMUONTriggerLut.cxx:117
 AliMUONTriggerLut.cxx:118
 AliMUONTriggerLut.cxx:119
 AliMUONTriggerLut.cxx:120
 AliMUONTriggerLut.cxx:121
 AliMUONTriggerLut.cxx:122
 AliMUONTriggerLut.cxx:123
 AliMUONTriggerLut.cxx:124
 AliMUONTriggerLut.cxx:125
 AliMUONTriggerLut.cxx:126
 AliMUONTriggerLut.cxx:127
 AliMUONTriggerLut.cxx:128
 AliMUONTriggerLut.cxx:129
 AliMUONTriggerLut.cxx:130
 AliMUONTriggerLut.cxx:131
 AliMUONTriggerLut.cxx:132
 AliMUONTriggerLut.cxx:133
 AliMUONTriggerLut.cxx:134
 AliMUONTriggerLut.cxx:135
 AliMUONTriggerLut.cxx:136
 AliMUONTriggerLut.cxx:137
 AliMUONTriggerLut.cxx:138
 AliMUONTriggerLut.cxx:139
 AliMUONTriggerLut.cxx:140
 AliMUONTriggerLut.cxx:141
 AliMUONTriggerLut.cxx:142
 AliMUONTriggerLut.cxx:143
 AliMUONTriggerLut.cxx:144
 AliMUONTriggerLut.cxx:145
 AliMUONTriggerLut.cxx:146
 AliMUONTriggerLut.cxx:147
 AliMUONTriggerLut.cxx:148
 AliMUONTriggerLut.cxx:149
 AliMUONTriggerLut.cxx:150
 AliMUONTriggerLut.cxx:151
 AliMUONTriggerLut.cxx:152
 AliMUONTriggerLut.cxx:153
 AliMUONTriggerLut.cxx:154
 AliMUONTriggerLut.cxx:155
 AliMUONTriggerLut.cxx:156
 AliMUONTriggerLut.cxx:157
 AliMUONTriggerLut.cxx:158
 AliMUONTriggerLut.cxx:159
 AliMUONTriggerLut.cxx:160
 AliMUONTriggerLut.cxx:161
 AliMUONTriggerLut.cxx:162
 AliMUONTriggerLut.cxx:163
 AliMUONTriggerLut.cxx:164
 AliMUONTriggerLut.cxx:165
 AliMUONTriggerLut.cxx:166
 AliMUONTriggerLut.cxx:167
 AliMUONTriggerLut.cxx:168
 AliMUONTriggerLut.cxx:169
 AliMUONTriggerLut.cxx:170
 AliMUONTriggerLut.cxx:171
 AliMUONTriggerLut.cxx:172
 AliMUONTriggerLut.cxx:173
 AliMUONTriggerLut.cxx:174
 AliMUONTriggerLut.cxx:175
 AliMUONTriggerLut.cxx:176
 AliMUONTriggerLut.cxx:177
 AliMUONTriggerLut.cxx:178
 AliMUONTriggerLut.cxx:179
 AliMUONTriggerLut.cxx:180
 AliMUONTriggerLut.cxx:181
 AliMUONTriggerLut.cxx:182
 AliMUONTriggerLut.cxx:183
 AliMUONTriggerLut.cxx:184
 AliMUONTriggerLut.cxx:185
 AliMUONTriggerLut.cxx:186
 AliMUONTriggerLut.cxx:187
 AliMUONTriggerLut.cxx:188
 AliMUONTriggerLut.cxx:189
 AliMUONTriggerLut.cxx:190
 AliMUONTriggerLut.cxx:191
 AliMUONTriggerLut.cxx:192
 AliMUONTriggerLut.cxx:193
 AliMUONTriggerLut.cxx:194
 AliMUONTriggerLut.cxx:195
 AliMUONTriggerLut.cxx:196
 AliMUONTriggerLut.cxx:197
 AliMUONTriggerLut.cxx:198
 AliMUONTriggerLut.cxx:199
 AliMUONTriggerLut.cxx:200
 AliMUONTriggerLut.cxx:201
 AliMUONTriggerLut.cxx:202
 AliMUONTriggerLut.cxx:203
 AliMUONTriggerLut.cxx:204
 AliMUONTriggerLut.cxx:205
 AliMUONTriggerLut.cxx:206
 AliMUONTriggerLut.cxx:207
 AliMUONTriggerLut.cxx:208
 AliMUONTriggerLut.cxx:209
 AliMUONTriggerLut.cxx:210
 AliMUONTriggerLut.cxx:211
 AliMUONTriggerLut.cxx:212
 AliMUONTriggerLut.cxx:213
 AliMUONTriggerLut.cxx:214
 AliMUONTriggerLut.cxx:215
 AliMUONTriggerLut.cxx:216
 AliMUONTriggerLut.cxx:217
 AliMUONTriggerLut.cxx:218
 AliMUONTriggerLut.cxx:219
 AliMUONTriggerLut.cxx:220
 AliMUONTriggerLut.cxx:221
 AliMUONTriggerLut.cxx:222
 AliMUONTriggerLut.cxx:223
 AliMUONTriggerLut.cxx:224
 AliMUONTriggerLut.cxx:225
 AliMUONTriggerLut.cxx:226
 AliMUONTriggerLut.cxx:227
 AliMUONTriggerLut.cxx:228
 AliMUONTriggerLut.cxx:229
 AliMUONTriggerLut.cxx:230
 AliMUONTriggerLut.cxx:231
 AliMUONTriggerLut.cxx:232
 AliMUONTriggerLut.cxx:233
 AliMUONTriggerLut.cxx:234
 AliMUONTriggerLut.cxx:235
 AliMUONTriggerLut.cxx:236
 AliMUONTriggerLut.cxx:237
 AliMUONTriggerLut.cxx:238
 AliMUONTriggerLut.cxx:239
 AliMUONTriggerLut.cxx:240
 AliMUONTriggerLut.cxx:241
 AliMUONTriggerLut.cxx:242
 AliMUONTriggerLut.cxx:243
 AliMUONTriggerLut.cxx:244
 AliMUONTriggerLut.cxx:245
 AliMUONTriggerLut.cxx:246
 AliMUONTriggerLut.cxx:247
 AliMUONTriggerLut.cxx:248
 AliMUONTriggerLut.cxx:249
 AliMUONTriggerLut.cxx:250
 AliMUONTriggerLut.cxx:251
 AliMUONTriggerLut.cxx:252
 AliMUONTriggerLut.cxx:253
 AliMUONTriggerLut.cxx:254
 AliMUONTriggerLut.cxx:255
 AliMUONTriggerLut.cxx:256
 AliMUONTriggerLut.cxx:257
 AliMUONTriggerLut.cxx:258
 AliMUONTriggerLut.cxx:259
 AliMUONTriggerLut.cxx:260
 AliMUONTriggerLut.cxx:261
 AliMUONTriggerLut.cxx:262
 AliMUONTriggerLut.cxx:263
 AliMUONTriggerLut.cxx:264
 AliMUONTriggerLut.cxx:265
 AliMUONTriggerLut.cxx:266
 AliMUONTriggerLut.cxx:267
 AliMUONTriggerLut.cxx:268
 AliMUONTriggerLut.cxx:269
 AliMUONTriggerLut.cxx:270
 AliMUONTriggerLut.cxx:271
 AliMUONTriggerLut.cxx:272
 AliMUONTriggerLut.cxx:273
 AliMUONTriggerLut.cxx:274
 AliMUONTriggerLut.cxx:275
 AliMUONTriggerLut.cxx:276
 AliMUONTriggerLut.cxx:277
 AliMUONTriggerLut.cxx:278
 AliMUONTriggerLut.cxx:279
 AliMUONTriggerLut.cxx:280
 AliMUONTriggerLut.cxx:281
 AliMUONTriggerLut.cxx:282
 AliMUONTriggerLut.cxx:283
 AliMUONTriggerLut.cxx:284
 AliMUONTriggerLut.cxx:285
 AliMUONTriggerLut.cxx:286
 AliMUONTriggerLut.cxx:287
 AliMUONTriggerLut.cxx:288
 AliMUONTriggerLut.cxx:289
 AliMUONTriggerLut.cxx:290
 AliMUONTriggerLut.cxx:291
 AliMUONTriggerLut.cxx:292
 AliMUONTriggerLut.cxx:293
 AliMUONTriggerLut.cxx:294
 AliMUONTriggerLut.cxx:295
 AliMUONTriggerLut.cxx:296
 AliMUONTriggerLut.cxx:297
 AliMUONTriggerLut.cxx:298
 AliMUONTriggerLut.cxx:299
 AliMUONTriggerLut.cxx:300
 AliMUONTriggerLut.cxx:301
 AliMUONTriggerLut.cxx:302
 AliMUONTriggerLut.cxx:303
 AliMUONTriggerLut.cxx:304
 AliMUONTriggerLut.cxx:305
 AliMUONTriggerLut.cxx:306
 AliMUONTriggerLut.cxx:307
 AliMUONTriggerLut.cxx:308
 AliMUONTriggerLut.cxx:309
 AliMUONTriggerLut.cxx:310
 AliMUONTriggerLut.cxx:311
 AliMUONTriggerLut.cxx:312
 AliMUONTriggerLut.cxx:313
 AliMUONTriggerLut.cxx:314
 AliMUONTriggerLut.cxx:315
 AliMUONTriggerLut.cxx:316
 AliMUONTriggerLut.cxx:317
 AliMUONTriggerLut.cxx:318
 AliMUONTriggerLut.cxx:319
 AliMUONTriggerLut.cxx:320
 AliMUONTriggerLut.cxx:321
 AliMUONTriggerLut.cxx:322
 AliMUONTriggerLut.cxx:323
 AliMUONTriggerLut.cxx:324
 AliMUONTriggerLut.cxx:325
 AliMUONTriggerLut.cxx:326
 AliMUONTriggerLut.cxx:327
 AliMUONTriggerLut.cxx:328
 AliMUONTriggerLut.cxx:329
 AliMUONTriggerLut.cxx:330
 AliMUONTriggerLut.cxx:331
 AliMUONTriggerLut.cxx:332
 AliMUONTriggerLut.cxx:333
 AliMUONTriggerLut.cxx:334
 AliMUONTriggerLut.cxx:335
 AliMUONTriggerLut.cxx:336
 AliMUONTriggerLut.cxx:337
 AliMUONTriggerLut.cxx:338
 AliMUONTriggerLut.cxx:339
 AliMUONTriggerLut.cxx:340
 AliMUONTriggerLut.cxx:341
 AliMUONTriggerLut.cxx:342
 AliMUONTriggerLut.cxx:343
 AliMUONTriggerLut.cxx:344
 AliMUONTriggerLut.cxx:345
 AliMUONTriggerLut.cxx:346
 AliMUONTriggerLut.cxx:347
 AliMUONTriggerLut.cxx:348
 AliMUONTriggerLut.cxx:349
 AliMUONTriggerLut.cxx:350
 AliMUONTriggerLut.cxx:351
 AliMUONTriggerLut.cxx:352
 AliMUONTriggerLut.cxx:353
 AliMUONTriggerLut.cxx:354
 AliMUONTriggerLut.cxx:355
 AliMUONTriggerLut.cxx:356
 AliMUONTriggerLut.cxx:357
 AliMUONTriggerLut.cxx:358
 AliMUONTriggerLut.cxx:359
 AliMUONTriggerLut.cxx:360
 AliMUONTriggerLut.cxx:361
 AliMUONTriggerLut.cxx:362
 AliMUONTriggerLut.cxx:363
 AliMUONTriggerLut.cxx:364
 AliMUONTriggerLut.cxx:365