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

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

#include "TMath.h"
#include "TClass.h"

#include "AliTRDtrackletGTU.h"
#include "AliTRDtrackletWord.h"
#include "AliTRDtrackletMCM.h"
#include "AliLog.h"
#include "AliTRDgtuParam.h"
#include "AliTRDgeometry.h"
#include "AliTRDpadPlane.h"

ClassImp(AliTRDtrackletGTU)

AliTRDtrackletBase* AliTRDtrackletGTU::fgkDummyTracklet = 0x0;

AliTRDtrackletGTU::AliTRDtrackletGTU() :
  AliTRDtrackletBase(),
  fGtuParam(AliTRDgtuParam::Instance()),
  fTracklet(0x0),
  fTrackletESD(0x0),
  fMCMtrackletIndex(-1),
  fAssignedZ(kFALSE),
  fAlpha(0),
  fYProj(0),
  fYPrime(0),
  fIndex(0)
{
  // ctor for any tracklet deriving from AliTRDtrackletBase

  if (!fgkDummyTracklet)
    fgkDummyTracklet = new AliTRDtrackletWord(0);
  fTracklet = fgkDummyTracklet;

  for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
    fSubChannel[zch] = 0;
}

AliTRDtrackletGTU::AliTRDtrackletGTU(AliTRDtrackletBase *tracklet) :
  AliTRDtrackletBase(*tracklet),
  fGtuParam(AliTRDgtuParam::Instance()),
  fTracklet(0x0),
  fTrackletESD(0x0),
  fMCMtrackletIndex(-1),
  fAssignedZ(kFALSE),
  fAlpha(0),
  fYProj(0),
  fYPrime(0),
  fIndex(0)
{
  // ctor for any tracklet deriving from AliTRDtrackletBase

  if (!fgkDummyTracklet) fgkDummyTracklet = new AliTRDtrackletWord(0);
  fTracklet = fgkDummyTracklet;

  for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
    fSubChannel[zch] = 0;
  fTracklet = tracklet;
  if ( fTracklet->IsA() == TClass::GetClass("AliTRDtrackletMCM")) {
      AliDebug(5,Form("label from mcm tracklet: %i", ((AliTRDtrackletMCM*) fTracklet)->GetLabel()));
  }
}

AliTRDtrackletGTU::AliTRDtrackletGTU(AliESDTrdTracklet *tracklet) :
  AliTRDtrackletBase(),
  fGtuParam(AliTRDgtuParam::Instance()),
  fTracklet(0x0),
  fTrackletESD(tracklet),
  fMCMtrackletIndex(-1),  // has to be set via SetMCMtrackletIndex() separately
  fAssignedZ(kFALSE),
  fAlpha(0),
  fYProj(0),
  fYPrime(0),
  fIndex(0)
{
  // ctor for an AliESDTrdTracklet

  if (!fgkDummyTracklet) fgkDummyTracklet = new AliTRDtrackletWord(0);
  fTracklet = fgkDummyTracklet;

  for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
    fSubChannel[zch] = 0;
}

AliTRDtrackletGTU::AliTRDtrackletGTU(const AliTRDtrackletGTU& tracklet) :
  AliTRDtrackletBase(tracklet),
  fGtuParam(AliTRDgtuParam::Instance()),
  fTracklet(tracklet.fTracklet),
  fTrackletESD(tracklet.fTrackletESD),
  fMCMtrackletIndex(tracklet.fMCMtrackletIndex),
  fAssignedZ(tracklet.fAssignedZ),
  fAlpha(tracklet.fAlpha),
  fYProj(tracklet.fYProj),
  fYPrime(tracklet.fYPrime),
  fIndex(tracklet.fIndex)
{
  // copy ctor

  for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
    fSubChannel[zch] = tracklet.fSubChannel[zch];
}

AliTRDtrackletGTU& AliTRDtrackletGTU::operator=(const AliTRDtrackletGTU &rhs)
{
  // assignment operator

  if (&rhs != this) {
    fTracklet = rhs.fTracklet;
    fTrackletESD = rhs.fTrackletESD;
    fMCMtrackletIndex = rhs.fMCMtrackletIndex;
    for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
      fSubChannel[zch] = rhs.fSubChannel[zch];
    fIndex = rhs.fIndex;
    fYPrime = rhs.fYPrime;
    fYProj = rhs.fYProj;
    fAlpha = rhs.fAlpha;
    fAssignedZ = rhs.fAssignedZ;
  }

  return *this;
}

AliTRDtrackletGTU::~AliTRDtrackletGTU()
{
  // dtor
}

void AliTRDtrackletGTU::SetSubChannel(Int_t zch, Int_t subch)
{
  // set the subchannel in the given z-channel
  fAssignedZ = kTRUE;
  fSubChannel[zch] = subch;
}

Int_t AliTRDtrackletGTU::GetSubChannel(Int_t zch) const
{
  // get the subchannel in the given z-channel
  return fSubChannel[zch];
}

Int_t AliTRDtrackletGTU::GetLabel() const
{
  // get the MC label for the tracklet, -1 if none

  if (fTrackletESD)
    return fTrackletESD->GetLabel();
  else if ( fTracklet->IsA() == TClass::GetClass("AliTRDtrackletMCM"))
    return ((AliTRDtrackletMCM*) fTracklet)->GetLabel();
  else
    return -1;
}

/*
Float_t AliTRDtrackletGTU::GetPhysX(Int_t layer)
{
  // get the x-position (in the local system) assuming the tracklet is in the given layer
  return fGtuParam->GetGeo()->GetTime0(layer);
}

Float_t AliTRDtrackletGTU::GetPhysY()
{
  //
  return GetYbin() * 0.0160;
}

Float_t AliTRDtrackletGTU::GetPhysAlpha()
{
  return GetAlpha() * 0.01; // wrong factor!
}

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