]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSRecPoint.h
Correct treatment of tracks with pT<pTmin
[u/mrichter/AliRoot.git] / ITS / AliITSRecPoint.h
CommitLineData
b0f5e3fc 1#ifndef ALIITSRECPOINT_H
2#define ALIITSRECPOINT_H
ee84ac37 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/*
7 $Id$
8*/
b0f5e3fc 9
00a7cc50 10///////////////////////////////////////////////////////////////////////////////
11// Reconstructed space point class for set:ITS
12// Reconstructed points are expressed simultaneously in two different
13// reference frames, both differing from the global system.
14// The first is referred to the sensor (see AliITSsegmentation for the
15// definition) and each point is represented by two coordinates: fXloc and
16// fZloc. This system in the code is referred to as "local"
17// The second is used for tracking (V2, SA and MI versions) and the X axis
18// represents the radial coordinate (this system is, in the bending plane,
19// a rotated system w.r.t. the global reference system).
20// Each reaconstructed point is represented by two coordinates: fY and fZ,
21// inherited from AliCluster. This system in the code is referred to as
22// "trackingV2".
23///////////////////////////////////////////////////////////////////////////////
b0f5e3fc 24
00a7cc50 25#include <AliCluster.h>
4ae5bbc4 26#include <Riostream.h>
00a7cc50 27#include <AliLog.h>
b0f5e3fc 28
fe7d86eb 29using std::ostream;
30using std::istream;
31
00a7cc50 32class AliITSRecPoint : public AliCluster {
b0f5e3fc 33 public:
00a7cc50 34 AliITSRecPoint();
75fb37cc 35 AliITSRecPoint(Int_t *lab,Float_t *hit, Int_t *info, Bool_t local = kFALSE);
00a7cc50 36 AliITSRecPoint(const AliITSRecPoint& pt);
37 AliITSRecPoint& operator=(const AliITSRecPoint &source);
38
39 virtual ~AliITSRecPoint() {}; // distructor
75fb37cc 40 Bool_t IsSortable() const {return kTRUE;} // allows for sorting
00a7cc50 41 Float_t GetDetLocalX() const {return fXloc;} // gets fX
42 Float_t GetDetLocalZ() const {return fZloc;} // gets fZ
43 Float_t GetdEdX() const {return fdEdX;} // gets fdEdX
75fb37cc 44 Float_t GetSigmaDetLocX2() const {return GetSigmaY2();} // gets fSigmaX2
45 void SetdEdX(Float_t dedx){fdEdX=dedx;} // sets fdEdX
00a7cc50 46 Int_t Compare(const TObject *) const {return 0;} //to be defined
47 void Print(ostream *os);
48 // Reads in the content of this class in the format of Print
49 void Read(istream *is);
50 virtual void Print(Option_t *option="") const {TObject::Print(option);}
51 virtual Int_t Read(const char *name) {return TObject::Read(name);}
52
00a7cc50 53 void Use(Int_t = 0) {fQ=-fQ;}
54 void UnUse() {fQ=TMath::Abs(fQ);}
55 void SetQ(Float_t q) {fQ=q;}
56 void SetDetectorIndex(Int_t i) { fIndex=i; }
57 void SetLayer(Int_t layer) {fLayer=layer;}
58 void SetNz(Int_t nz) {fNz =nz;}
59 void SetNy(Int_t ny){fNy=ny;}
60 void SetChargeRatio(Float_t ratio) { fChargeRatio = ratio;}
61 void SetPhiR(Float_t y) { fChargeRatio=y; }
62 void SetType(Int_t type){ fType=type;}
63 void SetDeltaProbability(Float_t prob){fDeltaProb = prob;}
b2558977 64 void SetDriftTime(Float_t tim) {fDriftTime=tim;}
8f6140ad 65 void SetDriftSide(Int_t sid) {fDriftSide=sid;}
b2558977 66
00a7cc50 67 Int_t IsUsed() const {return (fQ<0)?1:0;}
68 Float_t GetQ() const {return TMath::Abs(fQ);}
69 Int_t GetDetectorIndex() const { return 0x3FF&fIndex; }
70 Int_t GetLayer() const {return fLayer;}
71 Int_t GetNz() const {return fNz;}
72 Int_t GetNy() const {return fNy;}
73 Float_t GetChargeRatio() const {return fChargeRatio;}
74 Float_t GetPhiR() const {return fChargeRatio;}
75 Int_t GetPindex() const { return 0xFFF00000&fIndex; } //SSD clusters only
76 Int_t GetNindex() const { return 0xFFC00&fIndex; } //SSD clusters only
98a86dff 77 Int_t GetType() const {return fType;} // type of the cluster (for SPD the number of pixels in the cluster)
00a7cc50 78 Float_t GetDeltaProbability() const{return fDeltaProb;} //probability to belong to the delta ray
b2558977 79 Float_t GetDriftTime() const{return fDriftTime;}
8f6140ad 80 Int_t GetDriftSide() const {return fDriftSide;}
98a86dff 81 Int_t GetNpixels() const; // for SPD returns fType, i.e. the number of pixels in the cluster (-1 for SDD and SSD)
8bab7823 82 Int_t GetSPDclusterType() const; // for SPD returns cluster type according to conventional numbering (-1 for SDD and SSD)
e3901fd8 83 Int_t GetSDDclusterType() const;
84 Int_t GetSSDclusterType() const;
d59a647b 85 static void DecodeSDDclusterType(Int_t cluType, Int_t &cluSizAn, Int_t& cluSizTb, Int_t &drSide);
b2558977 86
e3901fd8 87 Int_t GetClusterType() const {
88 if(fLayer<=1) return GetSPDclusterType();
89 if(fLayer==2 || fLayer==3) return GetSDDclusterType();
46004624 90 return GetSSDclusterType();
e3901fd8 91 }
00a7cc50 92 protected:
93
94 Float_t fXloc ; //X of cluster (local coordinates)
95 Float_t fZloc ; //Z of cluster (local coordinates)
96 Float_t fdEdX; //dE/dX inside this cluster
97
98 Int_t fIndex; // detector index
99 Float_t fQ ; // Q of cluster (in ADC counts)
100 Char_t fLayer; // layer number
101 Short_t fNz; //number of digits in Z direction
102 Short_t fNy; //number of digits in y direction
103 Float_t fChargeRatio; //charge ratio
104 Int_t fType; //quality factor of the cluster
b2558977 105 Float_t fDeltaProb; // probability to be delta electron
106 Float_t fDriftTime; // drift time in SDD
8f6140ad 107 Char_t fDriftSide; // drift region in SDD (0=left=positive xlocal, 1=right)
00a7cc50 108
8f6140ad 109 ClassDef(AliITSRecPoint,7) // AliITSRecPoint class
b0f5e3fc 110};
ee84ac37 111// Input and output function for standard C++ input/output.
112ostream& operator<<(ostream &os,AliITSRecPoint &source);
113istream& operator>>(istream &is,AliITSRecPoint &source);
b0f5e3fc 114#endif