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$
// $MpId: AliMpTrigger.cxx,v 1.4 2006/05/24 13:58:52 ivana Exp $

//-----------------------------------------------------------------------------
// Class AliMUONGlobalCrateConfig
// --------------------
// The class defines the configuration of trigger crate
// Author: Ch. Finck, Subatech Nantes
//-----------------------------------------------------------------------------

#include "AliMUONGlobalCrateConfig.h"
#include "AliMpConstants.h"
#include "AliMpFiles.h"
#include "AliMpHelper.h"

#include "AliLog.h"

#include <TArrayI.h>
#include <Riostream.h>
#include <TSystem.h>

using std::ifstream;
using std::endl;
using std::ios;
/// \cond CLASSIMP
ClassImp(AliMUONGlobalCrateConfig)
/// \endcond

const Char_t*  AliMUONGlobalCrateConfig::fgkJtagName       = "JtagBoard";
const Char_t*  AliMUONGlobalCrateConfig::fgkFirstDarcName  = "LeftDarcBoard";
const Char_t*  AliMUONGlobalCrateConfig::fgkSecondDarcName = "RightDarcBoard";
const Char_t*  AliMUONGlobalCrateConfig::fgkGlobalName     = "GlobalBoard";  
const Char_t*  AliMUONGlobalCrateConfig::fgkFetName        = "FetBoard"; 

const Int_t   AliMUONGlobalCrateConfig::fgkGlobalNofRegisters =  13; 
const Int_t   AliMUONGlobalCrateConfig::fgkFetNofRegisters    =  7; 
const Int_t   AliMUONGlobalCrateConfig::fgkJtagNofLines       =  4; 
//______________________________________________________________________________
AliMUONGlobalCrateConfig::AliMUONGlobalCrateConfig()
  : TNamed("GlobalCrate", "mapping trigger global crate"),
    fGlobalCrateEnable(0x0), 
    fJtagVmeAddr(0x0),
    fJtagClockDiv(0),
    fJtagRxPhase(0),
    fJtagRdDelay(0),
    fEnableJtag(0),
    fJtagCrateName(),                  
    fFirstDarcVmeAddr(0x0),
    fFirstDarcType(0),
    fFirstDarcDisable(0),
    fFirstDarcL0Delay(0),
    fFirstDarcL1TimeOut(0),
    fFirstDarcGlobalL0(0),
    fFirstDarcConfig(0), 
    fSecondDarcVmeAddr(0x0),
    fSecondDarcType(0),
    fSecondDarcDisable(0),
    fSecondDarcL0Delay(0),
    fSecondDarcL1TimeOut(0),
    fSecondDarcGlobalL0(0),
    fSecondDarcConfig(0),
    fGlobalVmeAddr(0x0),
    fFetVmeAddr(0x0)
{
/// Standard constructor

  for (Int_t i = 0; i < fgkGlobalNofRegisters; ++i)
    fGlobalRegisters[i] = 0;
  
  for (Int_t j = 0; j < fgkFetNofRegisters; ++j)
    fFetRegisters[j] = 0;
}

//______________________________________________________________________________
AliMUONGlobalCrateConfig::~AliMUONGlobalCrateConfig()
{
/// Destructor
}

//______________________________________________________________________________
Int_t AliMUONGlobalCrateConfig::ReadData(const TString& fileName)
{
    /// Fill trigger global crate object from ascii file
    /// put the method static to be used by other class w/o initializing object
  
    TString inFileName(fileName);
    if ( inFileName == "" )
      inFileName = AliMpFiles::GlobalTriggerBoardMapping();
    
    inFileName = gSystem->ExpandPathName(inFileName.Data());

    ifstream in(inFileName.Data(), ios::in);

    if (!in) {
      AliErrorStream()
         << "Global Trigger Board Mapping File " << fileName.Data() << " not found" << endl;
      return kFALSE;
    }

    Int_t nDarc = 0;

    char line[255];
    in.getline(line, 255);
    TString tmp(AliMpHelper::Normalize(line));

    if (!tmp.Contains(GetName()))
        AliWarning("Wrong Global Crate File");

    // enable
    in.getline(line, 255);
    tmp = AliMpHelper::Normalize(line);
    UInt_t en = 0;
    sscanf(tmp.Data(), "%x", &en);
    SetGlobalCrateEnable(en);

    in.getline(line, 255);
    tmp = AliMpHelper::Normalize(line);
    
    if (tmp.Contains(GetJtagName())) {
        // vme addr
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        ULong_t addr;
        sscanf(tmp.Data(), "%lx", &addr);
        SetJtagVmeAddr(addr);
        AliDebug(1, Form("Jtag Vme Address: 0x%lx", addr));

        // clk div, rx phase, read delay
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        TArrayI list;
        AliMpHelper::DecodeName(line, ' ', list);
        SetJtagClockDiv(list[0]);
        SetJtagRxPhase(list[1]);
        SetJtagRdDelay(list[2]);
        AliDebug(1, Form("Jtag Clock Div: %d, Rx Phase: %d, Read Delay %d", list[0], list[1], list[2]));

        // enable
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        AliMpHelper::DecodeName(line, ' ', list);
        UChar_t enable = 0;
        for (Int_t i = 0; i < GetJtagNofLines(); ++i)
            enable |= (list[i] << i);
        SetEnableJtag(enable);
        AliDebug(1, Form("Jtag Enable: 0x%x", enable));

        for (Int_t i = 0; i < GetJtagNofLines(); ++i) {
            in.getline(line, 255);
            for (Int_t j = 0; j < GetJtagNofLines(); ++j) {
                in.getline(line, 255);
                tmp = AliMpHelper::Normalize(line);
                SetJtagCrateName(i*GetJtagNofLines() + j, tmp);
                //AliDebug(1, Form("Jtag Crate Name: %s", tmp.Data()));
            }
        }
    }

    in.getline(line, 255);
    tmp = AliMpHelper::Normalize(line);
    if (tmp.Contains(GetFirstDarcName())) {
        // vme addr
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        ULong_t addr;
        sscanf(tmp.Data(), "%lx", &addr);
        if (addr) nDarc++;
        SetFirstDarcVmeAddr(addr);
        AliDebug(1, Form("First Darc Vme Address: 0x%lx", addr));

        // type
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        SetFirstDarcType(tmp.Atoi());
        AliDebug(1, Form("First Darc Type: %d", tmp.Atoi()));

        // disable
        in.getline(line, 255);
        UInt_t item;
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetFirstDarcDisable(item);
        AliDebug(1, Form("First Darc Disable: 0x%x", item));

        // L0
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetFirstDarcL0Delay(item);
        AliDebug(1, Form("First Darc L0 Delay: 0x%x", item));

        // L1
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetFirstDarcL1TimeOut(item);
        AliDebug(1, Form("First Darc L1 Time Out: 0x%x", item));
        
        // Global L0 delay
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetFirstDarcGlobalL0(item);
        AliDebug(1, Form("First Darc Global L0 delay: 0x%x", item));
        
        // Trigger configuration
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetFirstDarcConfig(item);
        AliDebug(1, Form("First Darc Config: 0x%x", item));    
        
    }

    in.getline(line, 255);
    tmp = AliMpHelper::Normalize(line);
    if (tmp.Contains(GetSecondDarcName())) {
        // vme addr
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        ULong_t addr;
        sscanf(tmp.Data(), "%lx", &addr);
        if (addr) nDarc++;
        SetSecondDarcVmeAddr(addr);
        AliDebug(1, Form("Second Darc Vme Address: 0x%lx", addr));
        
        // type
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        SetSecondDarcType(tmp.Atoi());
        AliDebug(1, Form("Second Darc Type: %d", tmp.Atoi()));
        
        // enable
        in.getline(line, 255);
        UInt_t item;
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetSecondDarcDisable(item);
        AliDebug(1, Form("Second Darc Disable: 0x%x", item));
        
        // L0
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetSecondDarcL0Delay(item);
        AliDebug(1, Form("Second Darc L0 Delay: 0x%x", item));
        
        // L1
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetSecondDarcL1TimeOut(item);
        AliDebug(1, Form("Second Darc L1 Time Out: 0x%x", item));
        
        // Global L0 delay
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetSecondDarcGlobalL0(item);
        AliDebug(1, Form("Second Darc Global L0 delay: 0x%x", item));
        
        // Trigger configuration
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        sscanf(tmp.Data(), "%x", &item);
        SetSecondDarcConfig(item);
        AliDebug(1, Form("Second Darc Config: 0x%x", item));    
    }

    in.getline(line, 255);
    tmp = AliMpHelper::Normalize(line);
    if (tmp.Contains(GetGlobalName())) {
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        ULong_t addr;
        sscanf(tmp.Data(), "%lx", &addr);
        SetGlobalVmeAddr(addr);
        AliDebug(1, Form("Global Vme Address: 0x%lx", addr));

        for (Int_t i = 0; i < GetGlobalNofRegisters(); ++i) {
            in.getline(line, 255);
            tmp = AliMpHelper::Normalize(line);
            UInt_t reg;
            sscanf(tmp.Data(), "%x", &reg);
            SetGlobalRegister(i, reg);
            AliDebug(1, Form("Global Register %d: 0x%x", i, reg));
        }
    }

    in.getline(line, 255);
    tmp = AliMpHelper::Normalize(line);
    if (tmp.Contains(GetFetName())) {
        in.getline(line, 255);
        tmp = AliMpHelper::Normalize(line);
        ULong_t addr;
        sscanf(tmp.Data(), "%lx", &addr);
        SetFetVmeAddr(addr);
        AliDebug(1, Form("Fet Vme Address: 0x%lx", addr));

        for (Int_t i = 0; i < GetFetNofRegisters(); ++i) {
            in.getline(line, 255);
            tmp = AliMpHelper::Normalize(line);
            UInt_t reg;
            sscanf(tmp.Data(), "%x", &reg);
            SetFetRegister(i, reg);
            AliDebug(1, Form("Fet Register %d: 0x%x", i, reg));
        }
    }

    return nDarc;
}

//______________________________________________________________________________
Bool_t AliMUONGlobalCrateConfig::GetEnableJtag(Int_t index) const 
{
  /// returns enable mask for a given Jtag line

  if (index > fgkJtagNofLines) {
    AliWarning("Index size too big for Jtag line");
    return kFALSE;
  }
  return ((fEnableJtag >> index) & 0x1);

}

//______________________________________________________________________________
void AliMUONGlobalCrateConfig::SetJtagCrateName(Int_t index, TString name) 
{
  /// Get Jtag crate name for a given index 
  if (index > AliMpConstants::LocalBoardNofChannels()) {
    AliWarning("Index size too big for Jtag line");
    return;
  }                                                 
  fJtagCrateName[index] = name;
}

//______________________________________________________________________________
TString AliMUONGlobalCrateConfig::GetJtagCrateName(Int_t jtagLine, Int_t index) const 
{ 
  /// Get the crate name for a given line and a given index 
  if (jtagLine > AliMpConstants::LocalBoardNofChannels() || index > AliMpConstants::LocalBoardNofChannels())
    return "";
  else                                       
    return fJtagCrateName[jtagLine*fgkJtagNofLines + index];
}

//______________________________________________________________________________
UInt_t AliMUONGlobalCrateConfig::GetGlobalRegister(Int_t index) const       
{
  /// return global register for a given index
  if (index >= fgkGlobalNofRegisters) {
    AliWarning("Index size too big for Global Register");
    return 0;
  } else 
    return fGlobalRegisters[index];
}

//______________________________________________________________________________
void AliMUONGlobalCrateConfig::SetGlobalRegister(Int_t index, UInt_t reg) 
{
  /// set Global register for a given index
  if (index >= fgkGlobalNofRegisters) {
    AliWarning("Index size too big for Global Register");
    return;
  } 
  fGlobalRegisters[index] = reg;
}
   
//______________________________________________________________________________
void AliMUONGlobalCrateConfig::SetGlobalMask(Int_t index, UInt_t mask)  
{
  /// set one word of the global mask

  if (index >= 0 && index < 4) {
    SetGlobalRegister(index,mask);
  } else {
    AliWarning(Form("Check register number of the mask (%d) \n",index));
  }

}

//______________________________________________________________________________
UInt_t AliMUONGlobalCrateConfig::GetGlobalMask(Int_t index) const       
{
  /// return one word of the global mask
  if (index >= 0 && index < 4) {
    return fGlobalRegisters[index];
  } else {
    AliWarning(Form("Check register number of the mask (%d) \n",index));
    return 0;
  }
}

//______________________________________________________________________________
Bool_t AliMUONGlobalCrateConfig::GetMasksOn() const       
{
  /// indicates if global masks are active on global inputs

  // test 7th lsb
  if (fGlobalRegisters[4] & 0x40) return kTRUE;

  return kFALSE;

}

//______________________________________________________________________________
UInt_t AliMUONGlobalCrateConfig::GetFetRegister(Int_t index) const       
{
  /// return global register for a given index
  if (index >= fgkFetNofRegisters) {
    AliWarning("Index size too big for Fet Register");
    return 0;
  } else 
    return fFetRegisters[index];
}

//______________________________________________________________________________
void AliMUONGlobalCrateConfig::SetFetRegister(Int_t index, UInt_t reg) 
{
  /// set Global register for a given index
  if (index >= fgkFetNofRegisters) {
    AliWarning("Index size too big for Global Register");
    return;
  } 
  fFetRegisters[index] = reg;
}
 AliMUONGlobalCrateConfig.cxx:1
 AliMUONGlobalCrateConfig.cxx:2
 AliMUONGlobalCrateConfig.cxx:3
 AliMUONGlobalCrateConfig.cxx:4
 AliMUONGlobalCrateConfig.cxx:5
 AliMUONGlobalCrateConfig.cxx:6
 AliMUONGlobalCrateConfig.cxx:7
 AliMUONGlobalCrateConfig.cxx:8
 AliMUONGlobalCrateConfig.cxx:9
 AliMUONGlobalCrateConfig.cxx:10
 AliMUONGlobalCrateConfig.cxx:11
 AliMUONGlobalCrateConfig.cxx:12
 AliMUONGlobalCrateConfig.cxx:13
 AliMUONGlobalCrateConfig.cxx:14
 AliMUONGlobalCrateConfig.cxx:15
 AliMUONGlobalCrateConfig.cxx:16
 AliMUONGlobalCrateConfig.cxx:17
 AliMUONGlobalCrateConfig.cxx:18
 AliMUONGlobalCrateConfig.cxx:19
 AliMUONGlobalCrateConfig.cxx:20
 AliMUONGlobalCrateConfig.cxx:21
 AliMUONGlobalCrateConfig.cxx:22
 AliMUONGlobalCrateConfig.cxx:23
 AliMUONGlobalCrateConfig.cxx:24
 AliMUONGlobalCrateConfig.cxx:25
 AliMUONGlobalCrateConfig.cxx:26
 AliMUONGlobalCrateConfig.cxx:27
 AliMUONGlobalCrateConfig.cxx:28
 AliMUONGlobalCrateConfig.cxx:29
 AliMUONGlobalCrateConfig.cxx:30
 AliMUONGlobalCrateConfig.cxx:31
 AliMUONGlobalCrateConfig.cxx:32
 AliMUONGlobalCrateConfig.cxx:33
 AliMUONGlobalCrateConfig.cxx:34
 AliMUONGlobalCrateConfig.cxx:35
 AliMUONGlobalCrateConfig.cxx:36
 AliMUONGlobalCrateConfig.cxx:37
 AliMUONGlobalCrateConfig.cxx:38
 AliMUONGlobalCrateConfig.cxx:39
 AliMUONGlobalCrateConfig.cxx:40
 AliMUONGlobalCrateConfig.cxx:41
 AliMUONGlobalCrateConfig.cxx:42
 AliMUONGlobalCrateConfig.cxx:43
 AliMUONGlobalCrateConfig.cxx:44
 AliMUONGlobalCrateConfig.cxx:45
 AliMUONGlobalCrateConfig.cxx:46
 AliMUONGlobalCrateConfig.cxx:47
 AliMUONGlobalCrateConfig.cxx:48
 AliMUONGlobalCrateConfig.cxx:49
 AliMUONGlobalCrateConfig.cxx:50
 AliMUONGlobalCrateConfig.cxx:51
 AliMUONGlobalCrateConfig.cxx:52
 AliMUONGlobalCrateConfig.cxx:53
 AliMUONGlobalCrateConfig.cxx:54
 AliMUONGlobalCrateConfig.cxx:55
 AliMUONGlobalCrateConfig.cxx:56
 AliMUONGlobalCrateConfig.cxx:57
 AliMUONGlobalCrateConfig.cxx:58
 AliMUONGlobalCrateConfig.cxx:59
 AliMUONGlobalCrateConfig.cxx:60
 AliMUONGlobalCrateConfig.cxx:61
 AliMUONGlobalCrateConfig.cxx:62
 AliMUONGlobalCrateConfig.cxx:63
 AliMUONGlobalCrateConfig.cxx:64
 AliMUONGlobalCrateConfig.cxx:65
 AliMUONGlobalCrateConfig.cxx:66
 AliMUONGlobalCrateConfig.cxx:67
 AliMUONGlobalCrateConfig.cxx:68
 AliMUONGlobalCrateConfig.cxx:69
 AliMUONGlobalCrateConfig.cxx:70
 AliMUONGlobalCrateConfig.cxx:71
 AliMUONGlobalCrateConfig.cxx:72
 AliMUONGlobalCrateConfig.cxx:73
 AliMUONGlobalCrateConfig.cxx:74
 AliMUONGlobalCrateConfig.cxx:75
 AliMUONGlobalCrateConfig.cxx:76
 AliMUONGlobalCrateConfig.cxx:77
 AliMUONGlobalCrateConfig.cxx:78
 AliMUONGlobalCrateConfig.cxx:79
 AliMUONGlobalCrateConfig.cxx:80
 AliMUONGlobalCrateConfig.cxx:81
 AliMUONGlobalCrateConfig.cxx:82
 AliMUONGlobalCrateConfig.cxx:83
 AliMUONGlobalCrateConfig.cxx:84
 AliMUONGlobalCrateConfig.cxx:85
 AliMUONGlobalCrateConfig.cxx:86
 AliMUONGlobalCrateConfig.cxx:87
 AliMUONGlobalCrateConfig.cxx:88
 AliMUONGlobalCrateConfig.cxx:89
 AliMUONGlobalCrateConfig.cxx:90
 AliMUONGlobalCrateConfig.cxx:91
 AliMUONGlobalCrateConfig.cxx:92
 AliMUONGlobalCrateConfig.cxx:93
 AliMUONGlobalCrateConfig.cxx:94
 AliMUONGlobalCrateConfig.cxx:95
 AliMUONGlobalCrateConfig.cxx:96
 AliMUONGlobalCrateConfig.cxx:97
 AliMUONGlobalCrateConfig.cxx:98
 AliMUONGlobalCrateConfig.cxx:99
 AliMUONGlobalCrateConfig.cxx:100
 AliMUONGlobalCrateConfig.cxx:101
 AliMUONGlobalCrateConfig.cxx:102
 AliMUONGlobalCrateConfig.cxx:103
 AliMUONGlobalCrateConfig.cxx:104
 AliMUONGlobalCrateConfig.cxx:105
 AliMUONGlobalCrateConfig.cxx:106
 AliMUONGlobalCrateConfig.cxx:107
 AliMUONGlobalCrateConfig.cxx:108
 AliMUONGlobalCrateConfig.cxx:109
 AliMUONGlobalCrateConfig.cxx:110
 AliMUONGlobalCrateConfig.cxx:111
 AliMUONGlobalCrateConfig.cxx:112
 AliMUONGlobalCrateConfig.cxx:113
 AliMUONGlobalCrateConfig.cxx:114
 AliMUONGlobalCrateConfig.cxx:115
 AliMUONGlobalCrateConfig.cxx:116
 AliMUONGlobalCrateConfig.cxx:117
 AliMUONGlobalCrateConfig.cxx:118
 AliMUONGlobalCrateConfig.cxx:119
 AliMUONGlobalCrateConfig.cxx:120
 AliMUONGlobalCrateConfig.cxx:121
 AliMUONGlobalCrateConfig.cxx:122
 AliMUONGlobalCrateConfig.cxx:123
 AliMUONGlobalCrateConfig.cxx:124
 AliMUONGlobalCrateConfig.cxx:125
 AliMUONGlobalCrateConfig.cxx:126
 AliMUONGlobalCrateConfig.cxx:127
 AliMUONGlobalCrateConfig.cxx:128
 AliMUONGlobalCrateConfig.cxx:129
 AliMUONGlobalCrateConfig.cxx:130
 AliMUONGlobalCrateConfig.cxx:131
 AliMUONGlobalCrateConfig.cxx:132
 AliMUONGlobalCrateConfig.cxx:133
 AliMUONGlobalCrateConfig.cxx:134
 AliMUONGlobalCrateConfig.cxx:135
 AliMUONGlobalCrateConfig.cxx:136
 AliMUONGlobalCrateConfig.cxx:137
 AliMUONGlobalCrateConfig.cxx:138
 AliMUONGlobalCrateConfig.cxx:139
 AliMUONGlobalCrateConfig.cxx:140
 AliMUONGlobalCrateConfig.cxx:141
 AliMUONGlobalCrateConfig.cxx:142
 AliMUONGlobalCrateConfig.cxx:143
 AliMUONGlobalCrateConfig.cxx:144
 AliMUONGlobalCrateConfig.cxx:145
 AliMUONGlobalCrateConfig.cxx:146
 AliMUONGlobalCrateConfig.cxx:147
 AliMUONGlobalCrateConfig.cxx:148
 AliMUONGlobalCrateConfig.cxx:149
 AliMUONGlobalCrateConfig.cxx:150
 AliMUONGlobalCrateConfig.cxx:151
 AliMUONGlobalCrateConfig.cxx:152
 AliMUONGlobalCrateConfig.cxx:153
 AliMUONGlobalCrateConfig.cxx:154
 AliMUONGlobalCrateConfig.cxx:155
 AliMUONGlobalCrateConfig.cxx:156
 AliMUONGlobalCrateConfig.cxx:157
 AliMUONGlobalCrateConfig.cxx:158
 AliMUONGlobalCrateConfig.cxx:159
 AliMUONGlobalCrateConfig.cxx:160
 AliMUONGlobalCrateConfig.cxx:161
 AliMUONGlobalCrateConfig.cxx:162
 AliMUONGlobalCrateConfig.cxx:163
 AliMUONGlobalCrateConfig.cxx:164
 AliMUONGlobalCrateConfig.cxx:165
 AliMUONGlobalCrateConfig.cxx:166
 AliMUONGlobalCrateConfig.cxx:167
 AliMUONGlobalCrateConfig.cxx:168
 AliMUONGlobalCrateConfig.cxx:169
 AliMUONGlobalCrateConfig.cxx:170
 AliMUONGlobalCrateConfig.cxx:171
 AliMUONGlobalCrateConfig.cxx:172
 AliMUONGlobalCrateConfig.cxx:173
 AliMUONGlobalCrateConfig.cxx:174
 AliMUONGlobalCrateConfig.cxx:175
 AliMUONGlobalCrateConfig.cxx:176
 AliMUONGlobalCrateConfig.cxx:177
 AliMUONGlobalCrateConfig.cxx:178
 AliMUONGlobalCrateConfig.cxx:179
 AliMUONGlobalCrateConfig.cxx:180
 AliMUONGlobalCrateConfig.cxx:181
 AliMUONGlobalCrateConfig.cxx:182
 AliMUONGlobalCrateConfig.cxx:183
 AliMUONGlobalCrateConfig.cxx:184
 AliMUONGlobalCrateConfig.cxx:185
 AliMUONGlobalCrateConfig.cxx:186
 AliMUONGlobalCrateConfig.cxx:187
 AliMUONGlobalCrateConfig.cxx:188
 AliMUONGlobalCrateConfig.cxx:189
 AliMUONGlobalCrateConfig.cxx:190
 AliMUONGlobalCrateConfig.cxx:191
 AliMUONGlobalCrateConfig.cxx:192
 AliMUONGlobalCrateConfig.cxx:193
 AliMUONGlobalCrateConfig.cxx:194
 AliMUONGlobalCrateConfig.cxx:195
 AliMUONGlobalCrateConfig.cxx:196
 AliMUONGlobalCrateConfig.cxx:197
 AliMUONGlobalCrateConfig.cxx:198
 AliMUONGlobalCrateConfig.cxx:199
 AliMUONGlobalCrateConfig.cxx:200
 AliMUONGlobalCrateConfig.cxx:201
 AliMUONGlobalCrateConfig.cxx:202
 AliMUONGlobalCrateConfig.cxx:203
 AliMUONGlobalCrateConfig.cxx:204
 AliMUONGlobalCrateConfig.cxx:205
 AliMUONGlobalCrateConfig.cxx:206
 AliMUONGlobalCrateConfig.cxx:207
 AliMUONGlobalCrateConfig.cxx:208
 AliMUONGlobalCrateConfig.cxx:209
 AliMUONGlobalCrateConfig.cxx:210
 AliMUONGlobalCrateConfig.cxx:211
 AliMUONGlobalCrateConfig.cxx:212
 AliMUONGlobalCrateConfig.cxx:213
 AliMUONGlobalCrateConfig.cxx:214
 AliMUONGlobalCrateConfig.cxx:215
 AliMUONGlobalCrateConfig.cxx:216
 AliMUONGlobalCrateConfig.cxx:217
 AliMUONGlobalCrateConfig.cxx:218
 AliMUONGlobalCrateConfig.cxx:219
 AliMUONGlobalCrateConfig.cxx:220
 AliMUONGlobalCrateConfig.cxx:221
 AliMUONGlobalCrateConfig.cxx:222
 AliMUONGlobalCrateConfig.cxx:223
 AliMUONGlobalCrateConfig.cxx:224
 AliMUONGlobalCrateConfig.cxx:225
 AliMUONGlobalCrateConfig.cxx:226
 AliMUONGlobalCrateConfig.cxx:227
 AliMUONGlobalCrateConfig.cxx:228
 AliMUONGlobalCrateConfig.cxx:229
 AliMUONGlobalCrateConfig.cxx:230
 AliMUONGlobalCrateConfig.cxx:231
 AliMUONGlobalCrateConfig.cxx:232
 AliMUONGlobalCrateConfig.cxx:233
 AliMUONGlobalCrateConfig.cxx:234
 AliMUONGlobalCrateConfig.cxx:235
 AliMUONGlobalCrateConfig.cxx:236
 AliMUONGlobalCrateConfig.cxx:237
 AliMUONGlobalCrateConfig.cxx:238
 AliMUONGlobalCrateConfig.cxx:239
 AliMUONGlobalCrateConfig.cxx:240
 AliMUONGlobalCrateConfig.cxx:241
 AliMUONGlobalCrateConfig.cxx:242
 AliMUONGlobalCrateConfig.cxx:243
 AliMUONGlobalCrateConfig.cxx:244
 AliMUONGlobalCrateConfig.cxx:245
 AliMUONGlobalCrateConfig.cxx:246
 AliMUONGlobalCrateConfig.cxx:247
 AliMUONGlobalCrateConfig.cxx:248
 AliMUONGlobalCrateConfig.cxx:249
 AliMUONGlobalCrateConfig.cxx:250
 AliMUONGlobalCrateConfig.cxx:251
 AliMUONGlobalCrateConfig.cxx:252
 AliMUONGlobalCrateConfig.cxx:253
 AliMUONGlobalCrateConfig.cxx:254
 AliMUONGlobalCrateConfig.cxx:255
 AliMUONGlobalCrateConfig.cxx:256
 AliMUONGlobalCrateConfig.cxx:257
 AliMUONGlobalCrateConfig.cxx:258
 AliMUONGlobalCrateConfig.cxx:259
 AliMUONGlobalCrateConfig.cxx:260
 AliMUONGlobalCrateConfig.cxx:261
 AliMUONGlobalCrateConfig.cxx:262
 AliMUONGlobalCrateConfig.cxx:263
 AliMUONGlobalCrateConfig.cxx:264
 AliMUONGlobalCrateConfig.cxx:265
 AliMUONGlobalCrateConfig.cxx:266
 AliMUONGlobalCrateConfig.cxx:267
 AliMUONGlobalCrateConfig.cxx:268
 AliMUONGlobalCrateConfig.cxx:269
 AliMUONGlobalCrateConfig.cxx:270
 AliMUONGlobalCrateConfig.cxx:271
 AliMUONGlobalCrateConfig.cxx:272
 AliMUONGlobalCrateConfig.cxx:273
 AliMUONGlobalCrateConfig.cxx:274
 AliMUONGlobalCrateConfig.cxx:275
 AliMUONGlobalCrateConfig.cxx:276
 AliMUONGlobalCrateConfig.cxx:277
 AliMUONGlobalCrateConfig.cxx:278
 AliMUONGlobalCrateConfig.cxx:279
 AliMUONGlobalCrateConfig.cxx:280
 AliMUONGlobalCrateConfig.cxx:281
 AliMUONGlobalCrateConfig.cxx:282
 AliMUONGlobalCrateConfig.cxx:283
 AliMUONGlobalCrateConfig.cxx:284
 AliMUONGlobalCrateConfig.cxx:285
 AliMUONGlobalCrateConfig.cxx:286
 AliMUONGlobalCrateConfig.cxx:287
 AliMUONGlobalCrateConfig.cxx:288
 AliMUONGlobalCrateConfig.cxx:289
 AliMUONGlobalCrateConfig.cxx:290
 AliMUONGlobalCrateConfig.cxx:291
 AliMUONGlobalCrateConfig.cxx:292
 AliMUONGlobalCrateConfig.cxx:293
 AliMUONGlobalCrateConfig.cxx:294
 AliMUONGlobalCrateConfig.cxx:295
 AliMUONGlobalCrateConfig.cxx:296
 AliMUONGlobalCrateConfig.cxx:297
 AliMUONGlobalCrateConfig.cxx:298
 AliMUONGlobalCrateConfig.cxx:299
 AliMUONGlobalCrateConfig.cxx:300
 AliMUONGlobalCrateConfig.cxx:301
 AliMUONGlobalCrateConfig.cxx:302
 AliMUONGlobalCrateConfig.cxx:303
 AliMUONGlobalCrateConfig.cxx:304
 AliMUONGlobalCrateConfig.cxx:305
 AliMUONGlobalCrateConfig.cxx:306
 AliMUONGlobalCrateConfig.cxx:307
 AliMUONGlobalCrateConfig.cxx:308
 AliMUONGlobalCrateConfig.cxx:309
 AliMUONGlobalCrateConfig.cxx:310
 AliMUONGlobalCrateConfig.cxx:311
 AliMUONGlobalCrateConfig.cxx:312
 AliMUONGlobalCrateConfig.cxx:313
 AliMUONGlobalCrateConfig.cxx:314
 AliMUONGlobalCrateConfig.cxx:315
 AliMUONGlobalCrateConfig.cxx:316
 AliMUONGlobalCrateConfig.cxx:317
 AliMUONGlobalCrateConfig.cxx:318
 AliMUONGlobalCrateConfig.cxx:319
 AliMUONGlobalCrateConfig.cxx:320
 AliMUONGlobalCrateConfig.cxx:321
 AliMUONGlobalCrateConfig.cxx:322
 AliMUONGlobalCrateConfig.cxx:323
 AliMUONGlobalCrateConfig.cxx:324
 AliMUONGlobalCrateConfig.cxx:325
 AliMUONGlobalCrateConfig.cxx:326
 AliMUONGlobalCrateConfig.cxx:327
 AliMUONGlobalCrateConfig.cxx:328
 AliMUONGlobalCrateConfig.cxx:329
 AliMUONGlobalCrateConfig.cxx:330
 AliMUONGlobalCrateConfig.cxx:331
 AliMUONGlobalCrateConfig.cxx:332
 AliMUONGlobalCrateConfig.cxx:333
 AliMUONGlobalCrateConfig.cxx:334
 AliMUONGlobalCrateConfig.cxx:335
 AliMUONGlobalCrateConfig.cxx:336
 AliMUONGlobalCrateConfig.cxx:337
 AliMUONGlobalCrateConfig.cxx:338
 AliMUONGlobalCrateConfig.cxx:339
 AliMUONGlobalCrateConfig.cxx:340
 AliMUONGlobalCrateConfig.cxx:341
 AliMUONGlobalCrateConfig.cxx:342
 AliMUONGlobalCrateConfig.cxx:343
 AliMUONGlobalCrateConfig.cxx:344
 AliMUONGlobalCrateConfig.cxx:345
 AliMUONGlobalCrateConfig.cxx:346
 AliMUONGlobalCrateConfig.cxx:347
 AliMUONGlobalCrateConfig.cxx:348
 AliMUONGlobalCrateConfig.cxx:349
 AliMUONGlobalCrateConfig.cxx:350
 AliMUONGlobalCrateConfig.cxx:351
 AliMUONGlobalCrateConfig.cxx:352
 AliMUONGlobalCrateConfig.cxx:353
 AliMUONGlobalCrateConfig.cxx:354
 AliMUONGlobalCrateConfig.cxx:355
 AliMUONGlobalCrateConfig.cxx:356
 AliMUONGlobalCrateConfig.cxx:357
 AliMUONGlobalCrateConfig.cxx:358
 AliMUONGlobalCrateConfig.cxx:359
 AliMUONGlobalCrateConfig.cxx:360
 AliMUONGlobalCrateConfig.cxx:361
 AliMUONGlobalCrateConfig.cxx:362
 AliMUONGlobalCrateConfig.cxx:363
 AliMUONGlobalCrateConfig.cxx:364
 AliMUONGlobalCrateConfig.cxx:365
 AliMUONGlobalCrateConfig.cxx:366
 AliMUONGlobalCrateConfig.cxx:367
 AliMUONGlobalCrateConfig.cxx:368
 AliMUONGlobalCrateConfig.cxx:369
 AliMUONGlobalCrateConfig.cxx:370
 AliMUONGlobalCrateConfig.cxx:371
 AliMUONGlobalCrateConfig.cxx:372
 AliMUONGlobalCrateConfig.cxx:373
 AliMUONGlobalCrateConfig.cxx:374
 AliMUONGlobalCrateConfig.cxx:375
 AliMUONGlobalCrateConfig.cxx:376
 AliMUONGlobalCrateConfig.cxx:377
 AliMUONGlobalCrateConfig.cxx:378
 AliMUONGlobalCrateConfig.cxx:379
 AliMUONGlobalCrateConfig.cxx:380
 AliMUONGlobalCrateConfig.cxx:381
 AliMUONGlobalCrateConfig.cxx:382
 AliMUONGlobalCrateConfig.cxx:383
 AliMUONGlobalCrateConfig.cxx:384
 AliMUONGlobalCrateConfig.cxx:385
 AliMUONGlobalCrateConfig.cxx:386
 AliMUONGlobalCrateConfig.cxx:387
 AliMUONGlobalCrateConfig.cxx:388
 AliMUONGlobalCrateConfig.cxx:389
 AliMUONGlobalCrateConfig.cxx:390
 AliMUONGlobalCrateConfig.cxx:391
 AliMUONGlobalCrateConfig.cxx:392
 AliMUONGlobalCrateConfig.cxx:393
 AliMUONGlobalCrateConfig.cxx:394
 AliMUONGlobalCrateConfig.cxx:395
 AliMUONGlobalCrateConfig.cxx:396
 AliMUONGlobalCrateConfig.cxx:397
 AliMUONGlobalCrateConfig.cxx:398
 AliMUONGlobalCrateConfig.cxx:399
 AliMUONGlobalCrateConfig.cxx:400
 AliMUONGlobalCrateConfig.cxx:401
 AliMUONGlobalCrateConfig.cxx:402
 AliMUONGlobalCrateConfig.cxx:403
 AliMUONGlobalCrateConfig.cxx:404
 AliMUONGlobalCrateConfig.cxx:405
 AliMUONGlobalCrateConfig.cxx:406
 AliMUONGlobalCrateConfig.cxx:407
 AliMUONGlobalCrateConfig.cxx:408
 AliMUONGlobalCrateConfig.cxx:409
 AliMUONGlobalCrateConfig.cxx:410
 AliMUONGlobalCrateConfig.cxx:411
 AliMUONGlobalCrateConfig.cxx:412
 AliMUONGlobalCrateConfig.cxx:413
 AliMUONGlobalCrateConfig.cxx:414
 AliMUONGlobalCrateConfig.cxx:415
 AliMUONGlobalCrateConfig.cxx:416
 AliMUONGlobalCrateConfig.cxx:417
 AliMUONGlobalCrateConfig.cxx:418
 AliMUONGlobalCrateConfig.cxx:419
 AliMUONGlobalCrateConfig.cxx:420
 AliMUONGlobalCrateConfig.cxx:421
 AliMUONGlobalCrateConfig.cxx:422
 AliMUONGlobalCrateConfig.cxx:423
 AliMUONGlobalCrateConfig.cxx:424
 AliMUONGlobalCrateConfig.cxx:425
 AliMUONGlobalCrateConfig.cxx:426
 AliMUONGlobalCrateConfig.cxx:427
 AliMUONGlobalCrateConfig.cxx:428
 AliMUONGlobalCrateConfig.cxx:429
 AliMUONGlobalCrateConfig.cxx:430
 AliMUONGlobalCrateConfig.cxx:431
 AliMUONGlobalCrateConfig.cxx:432
 AliMUONGlobalCrateConfig.cxx:433
 AliMUONGlobalCrateConfig.cxx:434
 AliMUONGlobalCrateConfig.cxx:435
 AliMUONGlobalCrateConfig.cxx:436
 AliMUONGlobalCrateConfig.cxx:437
 AliMUONGlobalCrateConfig.cxx:438
 AliMUONGlobalCrateConfig.cxx:439
 AliMUONGlobalCrateConfig.cxx:440
 AliMUONGlobalCrateConfig.cxx:441