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

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  MCM tracklet                                                          //
//                                                                        //
//  Author: J. Klein (Jochen.Klein@cern.ch)                               //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include "AliTRDtrackletMCM.h"
#include "AliLog.h"

ClassImp(AliTRDtrackletMCM)

AliTRDtrackletMCM::AliTRDtrackletMCM(UInt_t trackletWord) :
  AliTRDtrackletBase(),
  fGeo(0x0),
  fHCId(-1),
  fTrackletWord(trackletWord),
  fMCM(-1),
  fROB(-1),
  fQ0(0),
  fQ1(0),
  fNHits(0),
  fNHits0(0),
  fNHits1(0),
  fSlope(0.),
  fOffset(0.),
  fError(0.),
  fNClusters(0),
  fResiduals(0x0),
  fClsCharges(0x0)
{
  // constructor

    fGeo = new AliTRDgeometry();
    fLabel[0] = -1;
    fLabel[1] = -1;
    fLabel[2] = -1;
}

AliTRDtrackletMCM::AliTRDtrackletMCM(UInt_t trackletWord, Int_t hcid) :
  AliTRDtrackletBase(),
  fGeo(0x0),
  fHCId(hcid),
  fTrackletWord(trackletWord),
  fMCM(-1),
  fROB(-1),
  fQ0(0),
  fQ1(0),
  fNHits(0),
  fNHits0(0),
  fNHits1(0),
  fSlope(0.),
  fOffset(0.),
  fError(0.),
  fNClusters(0),
  fResiduals(0x0),
  fClsCharges(0x0)
{
  // constructor

    fGeo = new AliTRDgeometry();
    fLabel[0] = -1;
    fLabel[1] = -1;
    fLabel[2] = -1;
}

AliTRDtrackletMCM::AliTRDtrackletMCM(UInt_t trackletWord, Int_t hcid, Int_t rob, Int_t mcm) :
  AliTRDtrackletBase(),
  fGeo(0x0),
  fHCId(hcid),
  fTrackletWord(trackletWord),
  fMCM(mcm),
  fROB(rob),
  fQ0(0),
  fQ1(0),
  fNHits(0),
  fNHits0(0),
  fNHits1(0),
  fSlope(0.),
  fOffset(0.),
  fError(0.),
  fNClusters(0),
  fResiduals(0x0),
  fClsCharges(0x0)
{
  // constructor

    fGeo = new AliTRDgeometry();
    fLabel[0] = -1;
    fLabel[1] = -1;
    fLabel[2] = -1;
}

AliTRDtrackletMCM::AliTRDtrackletMCM(const AliTRDtrackletMCM &rhs) :
  AliTRDtrackletBase(rhs),
  fGeo(0x0),
  fHCId(rhs.fHCId),
  fTrackletWord(rhs.fTrackletWord),
  fMCM(rhs.fMCM),
  fROB(rhs.fROB),
  fQ0(rhs.fQ0),
  fQ1(rhs.fQ1),
  fNHits(rhs.fNHits),
  fNHits0(rhs.fNHits0),
  fNHits1(rhs.fNHits1),
  fSlope(rhs.fSlope),
  fOffset(rhs.fOffset),
  fError(rhs.fError),
  fNClusters(rhs.fNClusters),
  fResiduals(0x0),
  fClsCharges(0x0)
{
  // copy constructor

    fGeo = new AliTRDgeometry();
    fResiduals = new Float_t[fNClusters];
    fClsCharges = new Float_t[fNClusters];
    for (Int_t iCls = 0; iCls < fNClusters; iCls++) {
      fResiduals[iCls] = rhs.fResiduals[iCls];
      fClsCharges[iCls] = rhs.fClsCharges[iCls];
    }
    fLabel[0] = rhs.fLabel[0];
    fLabel[1] = rhs.fLabel[1];
    fLabel[2] = rhs.fLabel[2];
}

AliTRDtrackletMCM::~AliTRDtrackletMCM()
{
  // destructor

  delete [] fResiduals;
  delete [] fClsCharges;
    delete fGeo;
}

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

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

void AliTRDtrackletMCM::SetLabel(Int_t label[])
{
  // set the labels (up to 3)

  fLabel[0] = label[0];
  fLabel[1] = label[1];
  fLabel[2] = label[2];
}

void AliTRDtrackletMCM::SetClusters(Float_t *res, Float_t *q, Int_t n)
{
  fNClusters = n;
  delete [] fResiduals;
  delete [] fClsCharges;

  fResiduals = new Float_t[fNClusters];
  fClsCharges = new Float_t[fNClusters];

  for (Int_t iCls = 0; iCls < fNClusters; iCls++) {
    fResiduals[iCls] = res[iCls];
    fClsCharges[iCls] = q[iCls];
  }
}
 AliTRDtrackletMCM.cxx:1
 AliTRDtrackletMCM.cxx:2
 AliTRDtrackletMCM.cxx:3
 AliTRDtrackletMCM.cxx:4
 AliTRDtrackletMCM.cxx:5
 AliTRDtrackletMCM.cxx:6
 AliTRDtrackletMCM.cxx:7
 AliTRDtrackletMCM.cxx:8
 AliTRDtrackletMCM.cxx:9
 AliTRDtrackletMCM.cxx:10
 AliTRDtrackletMCM.cxx:11
 AliTRDtrackletMCM.cxx:12
 AliTRDtrackletMCM.cxx:13
 AliTRDtrackletMCM.cxx:14
 AliTRDtrackletMCM.cxx:15
 AliTRDtrackletMCM.cxx:16
 AliTRDtrackletMCM.cxx:17
 AliTRDtrackletMCM.cxx:18
 AliTRDtrackletMCM.cxx:19
 AliTRDtrackletMCM.cxx:20
 AliTRDtrackletMCM.cxx:21
 AliTRDtrackletMCM.cxx:22
 AliTRDtrackletMCM.cxx:23
 AliTRDtrackletMCM.cxx:24
 AliTRDtrackletMCM.cxx:25
 AliTRDtrackletMCM.cxx:26
 AliTRDtrackletMCM.cxx:27
 AliTRDtrackletMCM.cxx:28
 AliTRDtrackletMCM.cxx:29
 AliTRDtrackletMCM.cxx:30
 AliTRDtrackletMCM.cxx:31
 AliTRDtrackletMCM.cxx:32
 AliTRDtrackletMCM.cxx:33
 AliTRDtrackletMCM.cxx:34
 AliTRDtrackletMCM.cxx:35
 AliTRDtrackletMCM.cxx:36
 AliTRDtrackletMCM.cxx:37
 AliTRDtrackletMCM.cxx:38
 AliTRDtrackletMCM.cxx:39
 AliTRDtrackletMCM.cxx:40
 AliTRDtrackletMCM.cxx:41
 AliTRDtrackletMCM.cxx:42
 AliTRDtrackletMCM.cxx:43
 AliTRDtrackletMCM.cxx:44
 AliTRDtrackletMCM.cxx:45
 AliTRDtrackletMCM.cxx:46
 AliTRDtrackletMCM.cxx:47
 AliTRDtrackletMCM.cxx:48
 AliTRDtrackletMCM.cxx:49
 AliTRDtrackletMCM.cxx:50
 AliTRDtrackletMCM.cxx:51
 AliTRDtrackletMCM.cxx:52
 AliTRDtrackletMCM.cxx:53
 AliTRDtrackletMCM.cxx:54
 AliTRDtrackletMCM.cxx:55
 AliTRDtrackletMCM.cxx:56
 AliTRDtrackletMCM.cxx:57
 AliTRDtrackletMCM.cxx:58
 AliTRDtrackletMCM.cxx:59
 AliTRDtrackletMCM.cxx:60
 AliTRDtrackletMCM.cxx:61
 AliTRDtrackletMCM.cxx:62
 AliTRDtrackletMCM.cxx:63
 AliTRDtrackletMCM.cxx:64
 AliTRDtrackletMCM.cxx:65
 AliTRDtrackletMCM.cxx:66
 AliTRDtrackletMCM.cxx:67
 AliTRDtrackletMCM.cxx:68
 AliTRDtrackletMCM.cxx:69
 AliTRDtrackletMCM.cxx:70
 AliTRDtrackletMCM.cxx:71
 AliTRDtrackletMCM.cxx:72
 AliTRDtrackletMCM.cxx:73
 AliTRDtrackletMCM.cxx:74
 AliTRDtrackletMCM.cxx:75
 AliTRDtrackletMCM.cxx:76
 AliTRDtrackletMCM.cxx:77
 AliTRDtrackletMCM.cxx:78
 AliTRDtrackletMCM.cxx:79
 AliTRDtrackletMCM.cxx:80
 AliTRDtrackletMCM.cxx:81
 AliTRDtrackletMCM.cxx:82
 AliTRDtrackletMCM.cxx:83
 AliTRDtrackletMCM.cxx:84
 AliTRDtrackletMCM.cxx:85
 AliTRDtrackletMCM.cxx:86
 AliTRDtrackletMCM.cxx:87
 AliTRDtrackletMCM.cxx:88
 AliTRDtrackletMCM.cxx:89
 AliTRDtrackletMCM.cxx:90
 AliTRDtrackletMCM.cxx:91
 AliTRDtrackletMCM.cxx:92
 AliTRDtrackletMCM.cxx:93
 AliTRDtrackletMCM.cxx:94
 AliTRDtrackletMCM.cxx:95
 AliTRDtrackletMCM.cxx:96
 AliTRDtrackletMCM.cxx:97
 AliTRDtrackletMCM.cxx:98
 AliTRDtrackletMCM.cxx:99
 AliTRDtrackletMCM.cxx:100
 AliTRDtrackletMCM.cxx:101
 AliTRDtrackletMCM.cxx:102
 AliTRDtrackletMCM.cxx:103
 AliTRDtrackletMCM.cxx:104
 AliTRDtrackletMCM.cxx:105
 AliTRDtrackletMCM.cxx:106
 AliTRDtrackletMCM.cxx:107
 AliTRDtrackletMCM.cxx:108
 AliTRDtrackletMCM.cxx:109
 AliTRDtrackletMCM.cxx:110
 AliTRDtrackletMCM.cxx:111
 AliTRDtrackletMCM.cxx:112
 AliTRDtrackletMCM.cxx:113
 AliTRDtrackletMCM.cxx:114
 AliTRDtrackletMCM.cxx:115
 AliTRDtrackletMCM.cxx:116
 AliTRDtrackletMCM.cxx:117
 AliTRDtrackletMCM.cxx:118
 AliTRDtrackletMCM.cxx:119
 AliTRDtrackletMCM.cxx:120
 AliTRDtrackletMCM.cxx:121
 AliTRDtrackletMCM.cxx:122
 AliTRDtrackletMCM.cxx:123
 AliTRDtrackletMCM.cxx:124
 AliTRDtrackletMCM.cxx:125
 AliTRDtrackletMCM.cxx:126
 AliTRDtrackletMCM.cxx:127
 AliTRDtrackletMCM.cxx:128
 AliTRDtrackletMCM.cxx:129
 AliTRDtrackletMCM.cxx:130
 AliTRDtrackletMCM.cxx:131
 AliTRDtrackletMCM.cxx:132
 AliTRDtrackletMCM.cxx:133
 AliTRDtrackletMCM.cxx:134
 AliTRDtrackletMCM.cxx:135
 AliTRDtrackletMCM.cxx:136
 AliTRDtrackletMCM.cxx:137
 AliTRDtrackletMCM.cxx:138
 AliTRDtrackletMCM.cxx:139
 AliTRDtrackletMCM.cxx:140
 AliTRDtrackletMCM.cxx:141
 AliTRDtrackletMCM.cxx:142
 AliTRDtrackletMCM.cxx:143
 AliTRDtrackletMCM.cxx:144
 AliTRDtrackletMCM.cxx:145
 AliTRDtrackletMCM.cxx:146
 AliTRDtrackletMCM.cxx:147
 AliTRDtrackletMCM.cxx:148
 AliTRDtrackletMCM.cxx:149
 AliTRDtrackletMCM.cxx:150
 AliTRDtrackletMCM.cxx:151
 AliTRDtrackletMCM.cxx:152
 AliTRDtrackletMCM.cxx:153
 AliTRDtrackletMCM.cxx:154
 AliTRDtrackletMCM.cxx:155
 AliTRDtrackletMCM.cxx:156
 AliTRDtrackletMCM.cxx:157
 AliTRDtrackletMCM.cxx:158
 AliTRDtrackletMCM.cxx:159
 AliTRDtrackletMCM.cxx:160
 AliTRDtrackletMCM.cxx:161
 AliTRDtrackletMCM.cxx:162
 AliTRDtrackletMCM.cxx:163
 AliTRDtrackletMCM.cxx:164
 AliTRDtrackletMCM.cxx:165
 AliTRDtrackletMCM.cxx:166
 AliTRDtrackletMCM.cxx:167
 AliTRDtrackletMCM.cxx:168
 AliTRDtrackletMCM.cxx:169
 AliTRDtrackletMCM.cxx:170
 AliTRDtrackletMCM.cxx:171
 AliTRDtrackletMCM.cxx:172
 AliTRDtrackletMCM.cxx:173
 AliTRDtrackletMCM.cxx:174
 AliTRDtrackletMCM.cxx:175
 AliTRDtrackletMCM.cxx:176
 AliTRDtrackletMCM.cxx:177
 AliTRDtrackletMCM.cxx:178
 AliTRDtrackletMCM.cxx:179
 AliTRDtrackletMCM.cxx:180
 AliTRDtrackletMCM.cxx:181
 AliTRDtrackletMCM.cxx:182
 AliTRDtrackletMCM.cxx:183
 AliTRDtrackletMCM.cxx:184
 AliTRDtrackletMCM.cxx:185
 AliTRDtrackletMCM.cxx:186
 AliTRDtrackletMCM.cxx:187
 AliTRDtrackletMCM.cxx:188
 AliTRDtrackletMCM.cxx:189
 AliTRDtrackletMCM.cxx:190
 AliTRDtrackletMCM.cxx:191
 AliTRDtrackletMCM.cxx:192
 AliTRDtrackletMCM.cxx:193
 AliTRDtrackletMCM.cxx:194
 AliTRDtrackletMCM.cxx:195
 AliTRDtrackletMCM.cxx:196
 AliTRDtrackletMCM.cxx:197