ROOT logo
#ifndef AliTRDPTRGTLMU_H
#define AliTRDPTRGTLMU_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

// --------------------------------------------------------
// 
// PTRG simulation
//
// --------------------------------------------------------

#include "TObject.h"
#include "AliTRDptrgParam.h"

class AliRunLoader;

class AliTRDptrgParam;

class AliTRDptrgTLMU : public TObject {
 public:
  AliTRDptrgTLMU(AliRunLoader *rl = 0x0);
  AliTRDptrgTLMU(AliRunLoader *rl,  AliTRDptrgParam *param, 
                 AliTRDptrgParam::AliTRDptrgOperatingMode_t operatingMode);
  ~AliTRDptrgTLMU();

  Int_t* Simulate(); // starts a simulation
  

 protected:
  Bool_t LoadParams(); // load AliTRDprtgParam content
  
  // functions for input data processing ---------------------------------------
  Int_t LoadDigits(); // loads Digits (for usage with aquired data)
  void GetInputBits(); // Gets TOF-to-TRD bits from AliTOFTrigger

  // logical functions ---------------------------------------------------------
  Int_t BackToBack(Int_t iSM, Int_t range = 0); // Back-To-Back check
  // (for +-1 and so on) SM0 and SM8, SM9, SM10 (range == 1)
  Int_t Coincidence(Int_t iSM1, Int_t iSM2); // more flexible version of 
  // BackToBack(..)
  inline Int_t Or(Int_t iSM); // returns >=1 for iSM
  Int_t GetMultiplicity(Int_t iSM);  // returns multiplicity of supermodule iSM 
  Int_t GetMultiplicitySum(); // returns the multiplicity of the whole detector

  UInt_t GetBitVectorMultiplicity(UInt_t BitVector); 
  // returns the multiplicity of a bit vector

  // variables -----------------------------------------------------------------
  AliRunLoader *fRunLoader;  //!
  AliTRDptrgParam *fParam; // Configuration parameter object
  AliTRDptrgParam::AliTRDptrgOperatingMode_t fOperatingMode; // working on Digits or Hits?
  
  const UInt_t* fInputMask; // input mask for TOF-bits (18x32=576)
  UInt_t fTOFinputBits[18]; // input bits from TOF (18x32)
  
  UInt_t** fCMatrices;    // get coincidence matrices
  UInt_t** fMultiplicity;    // get multiplicity slices
  Int_t** fOutput;    // get output signal assignment
  
 private:
  AliTRDptrgTLMU& operator=(const AliTRDptrgTLMU &rhs); // not implemented
  AliTRDptrgTLMU(const AliTRDptrgTLMU &rhs); // not implemented

  enum{
    kNLTM = 72,          //Number of LTM
    kNLTMchannels = 48,  //Number of channels in a LTM
    kNCTTM = 36,         //Number of CTTM per TOF side
    kNCTTMchannels = 24  //Number of channels in a CTTM
  };

  ClassDef(AliTRDptrgTLMU, 1);
};

#endif
 AliTRDptrgTLMU.h:1
 AliTRDptrgTLMU.h:2
 AliTRDptrgTLMU.h:3
 AliTRDptrgTLMU.h:4
 AliTRDptrgTLMU.h:5
 AliTRDptrgTLMU.h:6
 AliTRDptrgTLMU.h:7
 AliTRDptrgTLMU.h:8
 AliTRDptrgTLMU.h:9
 AliTRDptrgTLMU.h:10
 AliTRDptrgTLMU.h:11
 AliTRDptrgTLMU.h:12
 AliTRDptrgTLMU.h:13
 AliTRDptrgTLMU.h:14
 AliTRDptrgTLMU.h:15
 AliTRDptrgTLMU.h:16
 AliTRDptrgTLMU.h:17
 AliTRDptrgTLMU.h:18
 AliTRDptrgTLMU.h:19
 AliTRDptrgTLMU.h:20
 AliTRDptrgTLMU.h:21
 AliTRDptrgTLMU.h:22
 AliTRDptrgTLMU.h:23
 AliTRDptrgTLMU.h:24
 AliTRDptrgTLMU.h:25
 AliTRDptrgTLMU.h:26
 AliTRDptrgTLMU.h:27
 AliTRDptrgTLMU.h:28
 AliTRDptrgTLMU.h:29
 AliTRDptrgTLMU.h:30
 AliTRDptrgTLMU.h:31
 AliTRDptrgTLMU.h:32
 AliTRDptrgTLMU.h:33
 AliTRDptrgTLMU.h:34
 AliTRDptrgTLMU.h:35
 AliTRDptrgTLMU.h:36
 AliTRDptrgTLMU.h:37
 AliTRDptrgTLMU.h:38
 AliTRDptrgTLMU.h:39
 AliTRDptrgTLMU.h:40
 AliTRDptrgTLMU.h:41
 AliTRDptrgTLMU.h:42
 AliTRDptrgTLMU.h:43
 AliTRDptrgTLMU.h:44
 AliTRDptrgTLMU.h:45
 AliTRDptrgTLMU.h:46
 AliTRDptrgTLMU.h:47
 AliTRDptrgTLMU.h:48
 AliTRDptrgTLMU.h:49
 AliTRDptrgTLMU.h:50
 AliTRDptrgTLMU.h:51
 AliTRDptrgTLMU.h:52
 AliTRDptrgTLMU.h:53
 AliTRDptrgTLMU.h:54
 AliTRDptrgTLMU.h:55
 AliTRDptrgTLMU.h:56
 AliTRDptrgTLMU.h:57
 AliTRDptrgTLMU.h:58
 AliTRDptrgTLMU.h:59
 AliTRDptrgTLMU.h:60
 AliTRDptrgTLMU.h:61
 AliTRDptrgTLMU.h:62
 AliTRDptrgTLMU.h:63
 AliTRDptrgTLMU.h:64
 AliTRDptrgTLMU.h:65
 AliTRDptrgTLMU.h:66
 AliTRDptrgTLMU.h:67
 AliTRDptrgTLMU.h:68
 AliTRDptrgTLMU.h:69
 AliTRDptrgTLMU.h:70
 AliTRDptrgTLMU.h:71
 AliTRDptrgTLMU.h:72
 AliTRDptrgTLMU.h:73
 AliTRDptrgTLMU.h:74
 AliTRDptrgTLMU.h:75
 AliTRDptrgTLMU.h:76