Line data Source code
1 : #ifndef AliMFTDigit_H
2 : #define AliMFTDigit_H
3 :
4 : /* Copyright(c) 2004-2006, ALICE Experiment at CERN, All rights reserved. *
5 : * See cxx source for full Copyright notice */
6 :
7 : //====================================================================================================================================================
8 : //
9 : // Digit description for the ALICE Muon Forward Tracker
10 : //
11 : // Contact author: antonio.uras@cern.ch
12 : //
13 : //====================================================================================================================================================
14 :
15 : #include "AliDigit.h"
16 : #include "AliMFTConstants.h"
17 :
18 : //====================================================================================================================================================
19 :
20 0 : class AliMFTDigit: public AliDigit {
21 :
22 : public:
23 :
24 : AliMFTDigit();
25 :
26 0 : virtual ~AliMFTDigit() {}
27 :
28 0 : void AddOffset2TrackID(Int_t offset) { for(Int_t iTr=0; iTr<fNMCTracks; iTr++) if (fMCLabel[iTr]>0) fMCLabel[iTr]+=offset; } // needed for merging (?)
29 :
30 0 : void SetPlane(Int_t plane) { fPlane = plane; }
31 0 : void SetDetElemID(Int_t detElemID) { fDetElemID = detElemID; }
32 0 : void SetPixID(Int_t pixelX, Int_t pixelY, Int_t pixelZ) { fPixelX = pixelX; fPixelY = pixelY; fPixelZ = pixelZ; }
33 : void SetPixCenter(Double_t pixelCenterX, Double_t pixelCenterY, Double_t pixelCenterZ) {
34 0 : fPixelCenterX = pixelCenterX;
35 0 : fPixelCenterY = pixelCenterY;
36 0 : fPixelCenterZ = pixelCenterZ;
37 0 : }
38 : void SetPixWidth(Double_t pixelWidthX, Double_t pixelWidthY, Double_t pixelWidthZ) {
39 0 : fPixelWidthX = pixelWidthX;
40 0 : fPixelWidthY = pixelWidthY;
41 0 : fPixelWidthZ = pixelWidthZ;
42 0 : }
43 0 : void SetEloss(Double_t sig) { fEloss = sig; fNElectrons = fEloss/fElossPerElectron; }
44 :
45 : void AddMCLabel(Int_t label);
46 :
47 0 : Int_t GetNMCTracks() const { return fNMCTracks; }
48 0 : Int_t GetMCLabel(Int_t track) const { if (track<fNMCTracks && track>=0 && fNMCTracks>0) return fMCLabel[track]; else return -1; }
49 :
50 0 : Double_t GetEloss() const { return fEloss; }
51 0 : Double_t GetNElectrons() const { return fNElectrons; }
52 0 : Int_t GetPlane() const { return fPlane; }
53 0 : Int_t GetDetElemID() const { return fDetElemID; }
54 0 : Int_t GetPixelX() const { return fPixelX; }
55 0 : Int_t GetPixelY() const { return fPixelY; }
56 0 : Int_t GetPixelZ() const { return fPixelZ; }
57 0 : Double_t GetPixelCenterX() const { return fPixelCenterX; }
58 0 : Double_t GetPixelCenterY() const { return fPixelCenterY; }
59 0 : Double_t GetPixelCenterZ() const { return fPixelCenterZ; }
60 0 : Double_t GetPixelWidthX() const { return fPixelWidthX; }
61 0 : Double_t GetPixelWidthY() const { return fPixelWidthY; }
62 0 : Double_t GetPixelWidthZ() const { return fPixelWidthZ; }
63 :
64 : protected:
65 :
66 : static const Double_t fElossPerElectron;
67 : static const Int_t fNMaxMCTracksPerDigit = AliMFTConstants::fNMaxMCTracksPerDigit;
68 :
69 : Int_t fNMCTracks;
70 :
71 : Int_t fPixelX;
72 : Int_t fPixelY;
73 : Int_t fPixelZ;
74 : Double_t fPixelCenterX;
75 : Double_t fPixelCenterY;
76 : Double_t fPixelCenterZ;
77 : Double_t fPixelWidthX;
78 : Double_t fPixelWidthY;
79 : Double_t fPixelWidthZ;
80 : Int_t fPlane;
81 : Int_t fDetElemID;
82 : Double_t fEloss; // total signal as Eloss in the medium
83 : Double_t fNElectrons;
84 :
85 : Int_t fMCLabel[fNMaxMCTracksPerDigit];
86 :
87 14 : ClassDef(AliMFTDigit,3)
88 :
89 : };
90 :
91 : //====================================================================================================================================================
92 :
93 : #endif
|