]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDtrackletGTU.h
Fix from Alex for FPE in TRD: ALIROOT-5503 and tracklet calibration: PWGPP-2
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackletGTU.h
CommitLineData
52c19022 1#ifndef ALITRDTRACKLETGTU_H
2#define ALITRDTRACKLETGTU_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id: AliTRDtrackletGTU.h 27496 2008-07-22 08:35:45Z cblume $ */
7
8// --------------------------------------------------------
5f006bd7 9//
52c19022 10// GTU tracklet
5f006bd7 11//
52c19022 12//
13// --------------------------------------------------------
14
15#include "AliTRDtrackletBase.h"
44eafcf2 16#include "AliESDTrdTracklet.h"
17#include "AliTRDgtuParam.h"
52c19022 18#include "AliLog.h"
19
52c19022 20class AliTRDtrackletGTU : public AliTRDtrackletBase {
21 public:
22 AliTRDtrackletGTU();
5f006bd7 23 AliTRDtrackletGTU(AliTRDtrackletBase *tracklet);
44eafcf2 24 AliTRDtrackletGTU(AliESDTrdTracklet *tracklet);
52c19022 25 AliTRDtrackletGTU(const AliTRDtrackletGTU& trk);
26
27 ~AliTRDtrackletGTU();
28
5f006bd7 29 AliTRDtrackletGTU& operator=(const AliTRDtrackletGTU &rhs);
52c19022 30
52c19022 31 // ----- Getters for information from the tracklet word -----
44eafcf2 32 Int_t GetYbin() const { return fTrackletESD ? fTrackletESD->GetBinY() : fTracklet->GetYbin(); }
33 Int_t GetdY() const { return fTrackletESD ? fTrackletESD->GetBinDy() : fTracklet->GetdY(); }
34 Int_t GetZbin() const { return fTrackletESD ? fTrackletESD->GetBinZ() : fTracklet->GetZbin(); }
35 Int_t GetPID() const { return fTrackletESD ? fTrackletESD->GetPID() : ((Int_t) (256 * fTracklet->GetPID())); }
36 Double_t GetPID(Int_t is) const { return fTracklet ? fTracklet->GetPID(is) : 0.; }
52c19022 37
38 // ----- Getters for calculated properties -----
39 Int_t GetYProj() const { return fYProj; }
40 Int_t GetAlpha() const { return fAlpha; }
41 Int_t GetYPrime() const { return fYPrime; }
36dc3337 42 Int_t GetSubChannel(Int_t zch) const;
52c19022 43
44 // ----- Getters for offline corresponding values -----
45 Bool_t CookPID() { return kFALSE; }
fd5349a9 46 Int_t GetHCId() const { return fTrackletESD ? fTrackletESD->GetHCId() : fTracklet->GetHCId(); }
44eafcf2 47 Int_t GetDetector() const { return fTrackletESD ? fTrackletESD->GetDetector() : fTracklet->GetDetector(); }
52c19022 48 Int_t GetIndex() const { return fIndex; }
49
50 Float_t GetdYdX() const { return (GetdY() * 140e-4 / 3.); }
51 Float_t GetX() const { return 0; }
52 Float_t GetY() const { return (GetYbin() * 160e-4); }
53 Float_t GetZ() const { return 0; }
54
44eafcf2 55 AliTRDtrackletBase* GetTracklet() const { return fTracklet; }
56 AliESDTrdTracklet* GetTrackletESD() const { return fTrackletESD; }
57 UInt_t GetTrackletWord() const { return fTrackletESD ? fTrackletESD->GetTrackletWord() : fTracklet->GetTrackletWord(); }
059f00c5 58 Int_t GetMCMtrackletIndex() const { return fMCMtrackletIndex; }
59 void SetMCMtrackletIndex(Int_t val) { fMCMtrackletIndex=val; }
52c19022 60
5f006bd7 61 Int_t GetSide() const { return GetYbin() < 0 ? 0 : 1; }
52c19022 62
4cc89512 63 Int_t GetLabel() const; // { return fLabel; }
64
52c19022 65 // ----- Setters -----
66 void SetAlpha(Int_t alpha) { fAlpha = alpha; }
67 void SetYProj(Int_t yproj) { fYProj = yproj; }
68 void SetYPrime(Int_t yprime) { fYPrime = yprime; }
69
70 void SetSubChannel(Int_t zch, Int_t subch);
71 void SetDetector(Int_t /* id */ ) { AliError("Cannot change base tracklet"); }
72 void SetIndex(Int_t idx) { fIndex = idx; }
73
74 void RemoveTracklet() { fTracklet = fgkDummyTracklet; }
75
76 protected:
77 AliTRDgtuParam *fGtuParam; //!
44eafcf2 78 AliTRDtrackletBase *fTracklet; //! pointer to the underlying tracklet
79 AliESDTrdTracklet *fTrackletESD; //! pointer to the underlying ESD tracklet
52c19022 80
059f00c5 81 Int_t fMCMtrackletIndex; // Index number of the original tracklet in the TrackletTree
82
44eafcf2 83 Int_t fSubChannel[AliTRDgtuParam::fgkNZChannels]; // z-channel assignments
52c19022 84 Bool_t fAssignedZ; // tracklet assigned to a Z-channel
85
86 Int_t fAlpha; // calculated value for alpha
87 Int_t fYProj; // calculated value for y_proj
88 Int_t fYPrime; // calculated value for y'
4cc89512 89 Int_t fIndex; // index of tracklet in the sequence after the input units
52c19022 90
4cc89512 91 static AliTRDtrackletBase* fgkDummyTracklet; // dummy tracklet, used in case no tracklet is given
52c19022 92
93 private:
94
059f00c5 95 ClassDef(AliTRDtrackletGTU, 1);
52c19022 96};
97
98#endif