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

////////////////////////////////////////////////////////////////////////////////
//                                                                        
//  Pre-Trigger simulation                                                
//                                                                        
//  Authors: F. Reidt (Felix.Reidt@cern.ch)                               
//                                                                        	
//                                                                        
//  Limitations: input/output width: 32 bits (UInt_t)                      
//                                                                        
//  Annotation: That LUT is usually used to provide a single output bit   
//              In that case every output value bigger 0 means true       
//
////////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <fstream>
#include <string>
#include <math.h>

#include "TFile.h"
#include "TROOT.h"

#include "AliRun.h"
#include "AliRunLoader.h"
#include "AliLog.h"

#include "AliTRDptrgLUT.h"

ClassImp(AliTRDptrgLUT)
//_____________________________________________________________________________
AliTRDptrgLUT::AliTRDptrgLUT() 
  : TObject(),
  fLUTData(0),
  fInputWidth(0),
  fOutputWidth(0),
  fTableEntryCount(0),
  fCopiedTable(kFALSE)
{
  // ctor
}

//_____________________________________________________________________________
AliTRDptrgLUT::~AliTRDptrgLUT() 
{
  // destructor
  if (this->fCopiedTable) {
    AliDebug(5, "Deleted LUT data");
    if (this->fLUTData != 0x0) {
      delete[] this->fLUTData;
    }
    this->fLUTData = 0x0;
  }
}

//_____________________________________________________________________________
Int_t AliTRDptrgLUT::LookUp(UInt_t input)
{
  // perform a look up 
  
  if (input > (UInt_t)this->fTableEntryCount) {
    // check whether the input value is out of bounds
    AliWarning("incorrect LUT input value");
    return -1;
  }
  return this->fLUTData[input]; // do look up and output 
}

//______________________________________________________________________________
Int_t AliTRDptrgLUT::InitTable(Int_t inputWidth, Int_t outputWidth, 
                               Int_t *tableData, Bool_t copy)
{
  // load and initialize the look up table
  
  // assign width
  this->fInputWidth = inputWidth;
  this->fOutputWidth = outputWidth;
  
  // calculated table entry count 
  this->fTableEntryCount = 0x1;
  this->fTableEntryCount <<= inputWidth; 
  AliDebug(5,Form("fTableEntryCount=%d", this->fTableEntryCount));
 
  this->fCopiedTable = copy; 
 
  if (copy) {
    this->fLUTData = new Int_t[this->fTableEntryCount]; // allocate data table
    for (Int_t i=0; i < this->fTableEntryCount; i++) {
      this->fLUTData[i] = tableData[i];
    }
  }
  else { // do not copy (due to performace reasons)
    this->fLUTData = tableData;
  }
  return 0;
}

 AliTRDptrgLUT.cxx:1
 AliTRDptrgLUT.cxx:2
 AliTRDptrgLUT.cxx:3
 AliTRDptrgLUT.cxx:4
 AliTRDptrgLUT.cxx:5
 AliTRDptrgLUT.cxx:6
 AliTRDptrgLUT.cxx:7
 AliTRDptrgLUT.cxx:8
 AliTRDptrgLUT.cxx:9
 AliTRDptrgLUT.cxx:10
 AliTRDptrgLUT.cxx:11
 AliTRDptrgLUT.cxx:12
 AliTRDptrgLUT.cxx:13
 AliTRDptrgLUT.cxx:14
 AliTRDptrgLUT.cxx:15
 AliTRDptrgLUT.cxx:16
 AliTRDptrgLUT.cxx:17
 AliTRDptrgLUT.cxx:18
 AliTRDptrgLUT.cxx:19
 AliTRDptrgLUT.cxx:20
 AliTRDptrgLUT.cxx:21
 AliTRDptrgLUT.cxx:22
 AliTRDptrgLUT.cxx:23
 AliTRDptrgLUT.cxx:24
 AliTRDptrgLUT.cxx:25
 AliTRDptrgLUT.cxx:26
 AliTRDptrgLUT.cxx:27
 AliTRDptrgLUT.cxx:28
 AliTRDptrgLUT.cxx:29
 AliTRDptrgLUT.cxx:30
 AliTRDptrgLUT.cxx:31
 AliTRDptrgLUT.cxx:32
 AliTRDptrgLUT.cxx:33
 AliTRDptrgLUT.cxx:34
 AliTRDptrgLUT.cxx:35
 AliTRDptrgLUT.cxx:36
 AliTRDptrgLUT.cxx:37
 AliTRDptrgLUT.cxx:38
 AliTRDptrgLUT.cxx:39
 AliTRDptrgLUT.cxx:40
 AliTRDptrgLUT.cxx:41
 AliTRDptrgLUT.cxx:42
 AliTRDptrgLUT.cxx:43
 AliTRDptrgLUT.cxx:44
 AliTRDptrgLUT.cxx:45
 AliTRDptrgLUT.cxx:46
 AliTRDptrgLUT.cxx:47
 AliTRDptrgLUT.cxx:48
 AliTRDptrgLUT.cxx:49
 AliTRDptrgLUT.cxx:50
 AliTRDptrgLUT.cxx:51
 AliTRDptrgLUT.cxx:52
 AliTRDptrgLUT.cxx:53
 AliTRDptrgLUT.cxx:54
 AliTRDptrgLUT.cxx:55
 AliTRDptrgLUT.cxx:56
 AliTRDptrgLUT.cxx:57
 AliTRDptrgLUT.cxx:58
 AliTRDptrgLUT.cxx:59
 AliTRDptrgLUT.cxx:60
 AliTRDptrgLUT.cxx:61
 AliTRDptrgLUT.cxx:62
 AliTRDptrgLUT.cxx:63
 AliTRDptrgLUT.cxx:64
 AliTRDptrgLUT.cxx:65
 AliTRDptrgLUT.cxx:66
 AliTRDptrgLUT.cxx:67
 AliTRDptrgLUT.cxx:68
 AliTRDptrgLUT.cxx:69
 AliTRDptrgLUT.cxx:70
 AliTRDptrgLUT.cxx:71
 AliTRDptrgLUT.cxx:72
 AliTRDptrgLUT.cxx:73
 AliTRDptrgLUT.cxx:74
 AliTRDptrgLUT.cxx:75
 AliTRDptrgLUT.cxx:76
 AliTRDptrgLUT.cxx:77
 AliTRDptrgLUT.cxx:78
 AliTRDptrgLUT.cxx:79
 AliTRDptrgLUT.cxx:80
 AliTRDptrgLUT.cxx:81
 AliTRDptrgLUT.cxx:82
 AliTRDptrgLUT.cxx:83
 AliTRDptrgLUT.cxx:84
 AliTRDptrgLUT.cxx:85
 AliTRDptrgLUT.cxx:86
 AliTRDptrgLUT.cxx:87
 AliTRDptrgLUT.cxx:88
 AliTRDptrgLUT.cxx:89
 AliTRDptrgLUT.cxx:90
 AliTRDptrgLUT.cxx:91
 AliTRDptrgLUT.cxx:92
 AliTRDptrgLUT.cxx:93
 AliTRDptrgLUT.cxx:94
 AliTRDptrgLUT.cxx:95
 AliTRDptrgLUT.cxx:96
 AliTRDptrgLUT.cxx:97
 AliTRDptrgLUT.cxx:98
 AliTRDptrgLUT.cxx:99
 AliTRDptrgLUT.cxx:100
 AliTRDptrgLUT.cxx:101
 AliTRDptrgLUT.cxx:102
 AliTRDptrgLUT.cxx:103
 AliTRDptrgLUT.cxx:104
 AliTRDptrgLUT.cxx:105
 AliTRDptrgLUT.cxx:106
 AliTRDptrgLUT.cxx:107
 AliTRDptrgLUT.cxx:108
 AliTRDptrgLUT.cxx:109
 AliTRDptrgLUT.cxx:110
 AliTRDptrgLUT.cxx:111
 AliTRDptrgLUT.cxx:112
 AliTRDptrgLUT.cxx:113