1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 ///////////////////////////////////////////////////////////////////////////////
19 // Used for efficiency estimates and matching of reconstructed tracks //
22 ///////////////////////////////////////////////////////////////////////////////
24 #include "AliTRDmcTrack.h"
25 #include "AliTRDgeometry.h"
28 ClassImp(AliTRDmcTrack)
30 //_____________________________________________________________________________
31 AliTRDmcTrack::AliTRDmcTrack()
35 // Default constructor
44 for(Int_t ltb=0; ltb<kMAX_TB; ltb++) {
45 for(Int_t plane=0; plane < 6; plane++) {
46 fIndex[ltb][plane][0] = -1;
47 fIndex[ltb][plane][1] = -1;
51 for(Int_t i=0; i<6; i++) {
52 for(Int_t j=0; j<3; j++) {
62 //_____________________________________________________________________________
63 AliTRDmcTrack::AliTRDmcTrack(Int_t label, Int_t seedLabel, Bool_t primary,
64 Float_t mass, Int_t charge, Int_t pdg)
79 for(Int_t ltb=0; ltb<kMAX_TB; ltb++) {
80 for(Int_t plane=0; plane < 6; plane++) {
81 fIndex[ltb][plane][0] = -1;
82 fIndex[ltb][plane][1] = -1;
86 for(Int_t i=0; i<6; i++) {
87 for(Int_t j=0; j<3; j++) {
97 //_____________________________________________________________________________
98 void AliTRDmcTrack::GetPxPyPzXYZ(Double_t& px, Double_t& py, Double_t& pz,
99 Double_t& x, Double_t& y, Double_t& z,
103 // Returns track momentum components and coordinates at the entrance
104 // (opt >= 0), or exit (opt < 0) of TRD.
110 for(i = 0; i < AliTRDgeometry::Nplan(); i++) {
111 if( Pin[i][0] * Pin[i][0]
112 + Pin[i][1] * Pin[i][1]
113 + Pin[i][2] * Pin[i][2] > 0.0005) break;
115 px = Pin[i][0]; py = Pin[i][1]; pz = Pin[i][2];
116 x = XYZin[i][0]; y = XYZin[i][1]; z = XYZin[i][2];
119 for(i = AliTRDgeometry::Nplan() - 1; i >= 0; i--) {
120 if( Pout[i][0] * Pout[i][0]
121 + Pout[i][1] * Pout[i][1]
122 + Pout[i][2] * Pout[i][2] > 0.0005) break;
124 px = Pout[i][0]; py = Pout[i][1]; pz = Pout[i][2];
125 x = XYZout[i][0]; y = XYZout[i][1]; z = XYZout[i][2];
130 //_____________________________________________________________________________
131 void AliTRDmcTrack::GetPlanePxPyPz(Double_t& px, Double_t& py, Double_t& pz,
132 Int_t plane, Int_t opt) const
135 // Returns momentum components at the entrance (opt >= 0), or
136 // exit (opt < 0) of TRD plane <plane>.
140 px = Pin[plane][0]; py = Pin[plane][1]; pz = Pin[plane][2];
143 px = Pout[plane][0]; py = Pout[plane][1]; pz = Pout[plane][2];