]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TRD/AliTRDmodule.h
Copy arrays in assignment instead of the pointer; avoid double delete.
[u/mrichter/AliRoot.git] / TRD / AliTRDmodule.h
... / ...
CommitLineData
1#ifndef ALITRDMODULE_H
2#define ALITRDMODULE_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8///////////////////////////////////////////////////////////////////////////////
9// //
10// TRD module class //
11// //
12///////////////////////////////////////////////////////////////////////////////
13
14#include <TObject.h>
15
16class AliTRDgtuTrack;
17class AliTRDltuTracklet;
18
19class AliTRDmodule : public TObject {
20
21 public:
22
23 enum { kNplan = 6, kNmaxZchan = 100, kNsubZchan = 16, kNmaxTrk = 12 };
24
25 AliTRDmodule();
26 AliTRDmodule(const AliTRDmodule &m);
27 virtual ~AliTRDmodule();
28 AliTRDmodule &operator=(const AliTRDmodule &m);
29
30 virtual void Copy(TObject &m) const;
31
32 Int_t GetNtracklets() const;
33 Int_t GetNtracks() const;
34
35 void Reset();
36 void AddTracklet(Int_t det, Int_t row, Float_t rowz, Float_t slope, Float_t offset
37 , Float_t time, Int_t ncl, Int_t label, Float_t q);
38 void AddTrack();
39
40 void ResetTracklets();
41 void ResetTracks();
42 void SortTracklets();
43 void SortTracks();
44 void RemoveMultipleTracklets();
45 void RemoveMultipleTracks();
46 void RemoveTracklet(Int_t pos);
47 void RemoveTrack(Int_t pos);
48 void SortZ(Int_t cha);
49 void InitZLUT();
50 void FindTracks();
51 void FindTracksCombi(Int_t zchan);
52
53 TObjArray *Tracklets();
54 TObjArray *Tracks();
55 AliTRDltuTracklet *GetTracklet(Int_t pos) const;
56 AliTRDgtuTrack *GetTrack(Int_t pos) const;
57
58 protected:
59
60 Float_t fXprojPlane; //! X (time) coordinate of the projection plane
61 Float_t fField; //! Magnetic field
62 TObjArray *fTracklets; //! Array of LTU tracklets
63 TObjArray *fTracks; //! Array of GTU tracks
64
65 Int_t fZnchan[kNplan][kNsubZchan]; //! Number of LTU tracklets in each subchannel
66 Int_t fZtrkid[kNplan][kNmaxZchan][kNsubZchan]; //! List of LTU tracklet id's for each subchannel
67
68 Float_t fDeltaY; // Y (offset) matching window in the GTU
69 Float_t fDeltaS; // Slope matching window in the GTU
70
71 AliTRDltuTracklet *fLTUtrk; //! Current LTU tracklet
72 AliTRDgtuTrack *fGTUtrk; //! Current GTU track
73
74 ClassDef(AliTRDmodule,2) // TRD module class
75
76};
77
78#endif