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: AliTRDtrackletWord.cxx 28397 2008-09-02 09:33:00Z cblume $ */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  A tracklet word as from FEE                                           //
//                                                                        //
//  Author: J. Klein (Jochen.Klein@cern.ch)                               //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include "AliTRDtrackletWord.h"
#include "AliTRDgeometry.h"
#include "AliTRDpadPlane.h"
#include "AliLog.h"

ClassImp(AliTRDtrackletWord)

AliTRDgeometry* AliTRDtrackletWord::fgGeo = 0x0;

AliTRDtrackletWord::AliTRDtrackletWord(UInt_t trackletWord) :
  AliTRDtrackletBase(),
  fHCId(-1),
  fTrackletWord(trackletWord)
{
  if (!fgGeo)
    fgGeo = new AliTRDgeometry;
}

AliTRDtrackletWord::AliTRDtrackletWord(UInt_t trackletWord, Int_t hcid) :
  AliTRDtrackletBase(),
  fHCId(hcid),
  fTrackletWord(trackletWord)
{
  if (!fgGeo)
    fgGeo = new AliTRDgeometry;
}

AliTRDtrackletWord::AliTRDtrackletWord(const AliTRDtrackletWord &rhs) :
  AliTRDtrackletBase(rhs),
  fHCId(rhs.fHCId),
  fTrackletWord(rhs.fTrackletWord)
{

  if (!fgGeo)
    fgGeo = new AliTRDgeometry;
}

AliTRDtrackletWord::~AliTRDtrackletWord()
{

}

Int_t AliTRDtrackletWord::GetYbin() const {
  // returns (signed) value of Y
  if (fTrackletWord & 0x1000) {
    return -((~(fTrackletWord-1)) & 0x1fff);
  }
  else {
    return (fTrackletWord & 0x1fff);
  }
}

Int_t AliTRDtrackletWord::GetdY() const
{
  // returns (signed) value of the deflection length
  if (fTrackletWord & (1 << 19)) {
    return -((~((fTrackletWord >> 13) - 1)) & 0x7f);
  }
  else {
    return ((fTrackletWord >> 13) & 0x7f);
  }
}

Int_t AliTRDtrackletWord::GetROB() const
{
  return 2 * (GetZbin() / 4) + (GetY() > 0 ? 1 : 0);
}

Int_t AliTRDtrackletWord::GetMCM() const
{
  AliTRDpadPlane *pp = fgGeo->GetPadPlane(GetDetector());
  return (((Int_t) ((GetY()) / pp->GetWidthIPad()) + 72) / 18) % 4
    + 4 * (GetZbin() % 4);
}

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