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

#include "AliITSU.h"
#include "AliITSUGeomTGeo.h"
#include "AliITSUHit.h"

ClassImp(AliITSUHit)

////////////////////////////////////////////////////////////////////////
//
// At the moment the same functionality/data-members as parent AliITShit 
// except the geometry transformation uses AliITSgeomTGeoUp 
//
////////////////////////////////////////////////////////////////////////

//----------------------------------------------------------------------
AliITSUHit::AliITSUHit(Int_t shunt,Int_t track,Int_t *vol,Float_t edep,Float_t tof,
			   TLorentzVector &x,TLorentzVector &x0,TLorentzVector &p) 
: AliITShit(shunt,track,vol,edep,tof,x,x0,p)
{
  // ct-r
}

//______________________________________________________________________
AliITSUHit::AliITSUHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits) 
  : AliITShit(shunt, track, vol, hits) 
{
  // c-tor
}

//______________________________________________________________________
AliITSUHit::AliITSUHit(const AliITSUHit &h)
: AliITShit(h)
{
  // cp c-tor
}

//______________________________________________________________________
AliITSUHit& AliITSUHit::operator=(const AliITSUHit &h)
{
  // The standard = operator
  if(this == &h) return *this;
  AliITShit::operator=(h);
  return *this;
}

//______________________________________________________________________
void AliITSUHit::GetPositionL(Float_t &x,Float_t &y,Float_t &z,Float_t &tof)
{
  // Returns the position and time of flight of this hit in the local
  // coordinates of this chip, and in the units of the Monte Carlo.
  //
  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
  if (!gm) AliFatal("NULL pointer to the geometry!");
  double g[3]={fX,fY,fZ},l[3];
  gm->GetMatrixSens(fModule)->MasterToLocal(g,l);
  x = l[0];
  y = l[1];
  z = l[2];
  tof = fTof;
  //
}

//______________________________________________________________________
void AliITSUHit::GetPositionL0(Double_t &x,Double_t &y,Double_t &z,Double_t &tof)
{
  // Returns the initial position and time of flight of this hit 
  // in the local coordinates of this chip, and in the units of the 
  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
  if (!gm) AliFatal("NULL pointer to the geometry!");
  double g[3]={fx0,fy0,fz0},l[3];  
  gm->GetMatrixSens(fModule)->MasterToLocal(g,l);
  x = l[0];
  y = l[1];
  z = l[2];
  tof = ft0;
}

//______________________________________________________________________
void AliITSUHit::GetChipID(Int_t &layer,Int_t &stave,Int_t &sstave, Int_t &mod,Int_t &det) const
{
  // Returns the layer stave and detector number lables for this
  // ITS chip. Note: indices start from 0!
  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
  if (!gm) { AliFatal("NULL pointer to the geometry!"); return; }
  gm->GetChipId(fModule,layer,stave,sstave,mod,det);
}  

//______________________________________________________________________
Int_t AliITSUHit::GetLayer() const
{
  // Returns the layer. Note: indices start from 0!
  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
  if (!gm) AliFatal("NULL pointer to the geometry!");
  return gm->GetLayer(fModule);
}  

//______________________________________________________________________
Int_t AliITSUHit::GetStave() const
{
  // Returns the stave of TS chip. Note: indices start from 0!
  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
  if (!gm) { AliFatal("NULL pointer to the geometry!"); return -1; }
  return gm->GetStave(fModule);
}  

//______________________________________________________________________
Int_t AliITSUHit::GetHalfStave() const
{
  // Returns the substave of the chip. Note: indices start from 0!
  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
  if (!gm) AliFatal("NULL pointer to the geometry!");
  return gm->GetHalfStave(fModule);
}  

//______________________________________________________________________
Int_t AliITSUHit::GetModule() const
{
  // Returns the module of the chip. Note: indices start from 0!
  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
  if (!gm) { AliFatal("NULL pointer to the geometry!"); return -1; }
  return gm->GetModule(fModule);
}  

//______________________________________________________________________
Int_t AliITSUHit::GetChipInModule() const // former GetDetector
{
  // Returns the detector within the module(or stave). Note: indices start from 0!
  AliITSUGeomTGeo *gm = ((AliITSU*)gAlice->GetDetector("ITS"))->GetITSGeomTGeo();
  if (!gm) { AliFatal("NULL pointer to the geometry!"); return -1; }
  return gm->GetChipIdInModule(fModule);
}  

//______________________________________________________________________
void AliITSUHit::Print(Option_t */*option*/) const 
{
  // print itself
  printf("Mod%4d Tr:%5d DE:%.2e TOF: %.3e| P:%.3f %.3f %.3f |>%.4f %.4f %.4f >%.4f %.4f %.4f\n",
	 fModule,fTrack,fDestep,fTof,fPx,fPy,fPz, fx0,fy0,fz0,fX,fY,fZ);

}
 AliITSUHit.cxx:1
 AliITSUHit.cxx:2
 AliITSUHit.cxx:3
 AliITSUHit.cxx:4
 AliITSUHit.cxx:5
 AliITSUHit.cxx:6
 AliITSUHit.cxx:7
 AliITSUHit.cxx:8
 AliITSUHit.cxx:9
 AliITSUHit.cxx:10
 AliITSUHit.cxx:11
 AliITSUHit.cxx:12
 AliITSUHit.cxx:13
 AliITSUHit.cxx:14
 AliITSUHit.cxx:15
 AliITSUHit.cxx:16
 AliITSUHit.cxx:17
 AliITSUHit.cxx:18
 AliITSUHit.cxx:19
 AliITSUHit.cxx:20
 AliITSUHit.cxx:21
 AliITSUHit.cxx:22
 AliITSUHit.cxx:23
 AliITSUHit.cxx:24
 AliITSUHit.cxx:25
 AliITSUHit.cxx:26
 AliITSUHit.cxx:27
 AliITSUHit.cxx:28
 AliITSUHit.cxx:29
 AliITSUHit.cxx:30
 AliITSUHit.cxx:31
 AliITSUHit.cxx:32
 AliITSUHit.cxx:33
 AliITSUHit.cxx:34
 AliITSUHit.cxx:35
 AliITSUHit.cxx:36
 AliITSUHit.cxx:37
 AliITSUHit.cxx:38
 AliITSUHit.cxx:39
 AliITSUHit.cxx:40
 AliITSUHit.cxx:41
 AliITSUHit.cxx:42
 AliITSUHit.cxx:43
 AliITSUHit.cxx:44
 AliITSUHit.cxx:45
 AliITSUHit.cxx:46
 AliITSUHit.cxx:47
 AliITSUHit.cxx:48
 AliITSUHit.cxx:49
 AliITSUHit.cxx:50
 AliITSUHit.cxx:51
 AliITSUHit.cxx:52
 AliITSUHit.cxx:53
 AliITSUHit.cxx:54
 AliITSUHit.cxx:55
 AliITSUHit.cxx:56
 AliITSUHit.cxx:57
 AliITSUHit.cxx:58
 AliITSUHit.cxx:59
 AliITSUHit.cxx:60
 AliITSUHit.cxx:61
 AliITSUHit.cxx:62
 AliITSUHit.cxx:63
 AliITSUHit.cxx:64
 AliITSUHit.cxx:65
 AliITSUHit.cxx:66
 AliITSUHit.cxx:67
 AliITSUHit.cxx:68
 AliITSUHit.cxx:69
 AliITSUHit.cxx:70
 AliITSUHit.cxx:71
 AliITSUHit.cxx:72
 AliITSUHit.cxx:73
 AliITSUHit.cxx:74
 AliITSUHit.cxx:75
 AliITSUHit.cxx:76
 AliITSUHit.cxx:77
 AliITSUHit.cxx:78
 AliITSUHit.cxx:79
 AliITSUHit.cxx:80
 AliITSUHit.cxx:81
 AliITSUHit.cxx:82
 AliITSUHit.cxx:83
 AliITSUHit.cxx:84
 AliITSUHit.cxx:85
 AliITSUHit.cxx:86
 AliITSUHit.cxx:87
 AliITSUHit.cxx:88
 AliITSUHit.cxx:89
 AliITSUHit.cxx:90
 AliITSUHit.cxx:91
 AliITSUHit.cxx:92
 AliITSUHit.cxx:93
 AliITSUHit.cxx:94
 AliITSUHit.cxx:95
 AliITSUHit.cxx:96
 AliITSUHit.cxx:97
 AliITSUHit.cxx:98
 AliITSUHit.cxx:99
 AliITSUHit.cxx:100
 AliITSUHit.cxx:101
 AliITSUHit.cxx:102
 AliITSUHit.cxx:103
 AliITSUHit.cxx:104
 AliITSUHit.cxx:105
 AliITSUHit.cxx:106
 AliITSUHit.cxx:107
 AliITSUHit.cxx:108
 AliITSUHit.cxx:109
 AliITSUHit.cxx:110
 AliITSUHit.cxx:111
 AliITSUHit.cxx:112
 AliITSUHit.cxx:113
 AliITSUHit.cxx:114
 AliITSUHit.cxx:115
 AliITSUHit.cxx:116
 AliITSUHit.cxx:117
 AliITSUHit.cxx:118
 AliITSUHit.cxx:119
 AliITSUHit.cxx:120
 AliITSUHit.cxx:121
 AliITSUHit.cxx:122
 AliITSUHit.cxx:123
 AliITSUHit.cxx:124
 AliITSUHit.cxx:125
 AliITSUHit.cxx:126
 AliITSUHit.cxx:127
 AliITSUHit.cxx:128
 AliITSUHit.cxx:129
 AliITSUHit.cxx:130
 AliITSUHit.cxx:131
 AliITSUHit.cxx:132
 AliITSUHit.cxx:133
 AliITSUHit.cxx:134
 AliITSUHit.cxx:135
 AliITSUHit.cxx:136
 AliITSUHit.cxx:137
 AliITSUHit.cxx:138
 AliITSUHit.cxx:139
 AliITSUHit.cxx:140
 AliITSUHit.cxx:141
 AliITSUHit.cxx:142
 AliITSUHit.cxx:143
 AliITSUHit.cxx:144
 AliITSUHit.cxx:145
 AliITSUHit.cxx:146
 AliITSUHit.cxx:147
 AliITSUHit.cxx:148
 AliITSUHit.cxx:149
 AliITSUHit.cxx:150
 AliITSUHit.cxx:151
 AliITSUHit.cxx:152
 AliITSUHit.cxx:153
 AliITSUHit.cxx:154