]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliTrackReference.cxx
Using AliLog (F.Carminati)
[u/mrichter/AliRoot.git] / STEER / AliTrackReference.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
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  **************************************************************************/
15
16 /* $Id$ */
17
18 #include "TVirtualMC.h"
19
20 #include "AliRun.h"
21 #include "AliTrackReference.h"
22
23 // 
24 // Track Reference object is created every time particle is 
25 // crossing detector bounds. The object is created by Step Manager
26 //
27 // The class stores the following informations:
28 // track label, 
29 // track position: X,Y,X
30 // track momentum px, py, pz
31 // track length and time of fligth: both in cm
32 // status bits from Monte Carlo
33 //
34
35
36 ClassImp(AliTrackReference)
37
38 //_______________________________________________________________________
39  AliTrackReference::AliTrackReference():
40    TObject(),
41    fTrack(0),
42    fX(0),
43    fY(0),
44    fZ(0),
45    fPx(0),
46    fPy(0),
47    fPz(0),
48    fLength(0),
49    fTime(0)
50 {
51   //
52   // Default constructor
53   // Creates empty object
54
55   for(Int_t i=0; i<16; i++) ResetBit(BIT(i));
56 }
57
58 //_______________________________________________________________________
59 AliTrackReference::AliTrackReference(Int_t label) :
60   TObject(),
61   fTrack(label),
62   fX(0),
63   fY(0),
64   fZ(0),
65   fPx(0),
66   fPy(0),
67   fPz(0),
68   fLength(gMC->TrackLength()),
69   fTime(gMC->TrackTime())
70 {
71   //
72   // Create Reference object out of label and
73   // data in TVirtualMC object
74   //
75   // Creates an object and fill all parameters 
76   // from data in VirtualMC
77   //
78   // Sylwester Radomski, (S.Radomski@gsi.de)
79   // GSI, Jan 31, 2003
80   //
81     
82   Double_t vec[4];
83   
84   gMC->TrackPosition(vec[0],vec[1],vec[2]);
85
86   fX = vec[0];
87   fY = vec[1];
88   fZ = vec[2];
89   
90   gMC->TrackMomentum(vec[0],vec[1],vec[2],vec[3]);
91   
92   fPx = vec[0];
93   fPy = vec[1];
94   fPz = vec[2];
95
96   // Set Up status code 
97   // Copy Bits from virtual MC
98
99   for(Int_t i=0; i<16; i++) ResetBit(BIT(i));
100
101   SetBit(BIT(0), gMC->IsNewTrack());
102   SetBit(BIT(1), gMC->IsTrackAlive());
103   SetBit(BIT(2), gMC->IsTrackDisappeared());
104   SetBit(BIT(3), gMC->IsTrackEntering());
105   SetBit(BIT(4), gMC->IsTrackExiting());
106   SetBit(BIT(5), gMC->IsTrackInside());
107   SetBit(BIT(6), gMC->IsTrackOut());
108   SetBit(BIT(7), gMC->IsTrackStop()); 
109 }
110 //_______________________________________________________________________