fb4e90e0 |
1 | #ifndef ALIITSPLISTITEM_H |
2 | #define ALIITSPLISTITEM_H |
5ff02a9a |
3 | /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. * |
fb4e90e0 |
4 | * See cxx source for full Copyright notice */ |
5 | |
6 | /* $Id$ */ |
7 | |
8 | #include <TObject.h> |
9 | |
10 | |
11 | class AliITSpListItem: public TObject { |
12 | public: |
13 | // Default Constructor |
14 | AliITSpListItem(); |
15 | // Standard Signal Constructor |
16 | AliITSpListItem(Int_t track,Int_t hit,Int_t module,Int_t index, |
17 | Double_t signal); |
18 | // Standard Noise Constructor |
19 | AliITSpListItem(Int_t module,Int_t index,Double_t signal); |
20 | // Class destrutor |
21 | virtual ~AliITSpListItem(); |
22 | // Copy Oporator |
e56160b8 |
23 | AliITSpListItem(const AliITSpListItem &source); |
5ff02a9a |
24 | // = Operator |
fb4e90e0 |
25 | virtual AliITSpListItem& operator=(const AliITSpListItem &source); |
5ff02a9a |
26 | // Building methods: they set completely the status of the object |
27 | void Build(Int_t module,Int_t index,Double_t noise); |
28 | void Build(Int_t track,Int_t hit,Int_t module,Int_t index,Double_t signal); |
29 | void Build(const AliITSpListItem &source); |
fb4e90e0 |
30 | // Returns the signal value in the list of signals |
31 | virtual Double_t GetSignal(Int_t i) const { |
32 | return ( (i>=0&&i<fgksize) ? fSignal[i] : 0.0);} |
33 | virtual Double_t GetSignal() const { |
34 | return fTsignal;} |
35 | virtual Double_t GetSignalAfterElect() const { |
36 | return fSignalAfterElect;} |
37 | // Returns the Sum/Total signal |
38 | virtual Double_t GetSumSignal() const {return fTsignal+fNoise;} |
39 | // Returns the noise |
40 | virtual Double_t GetNoise() const {return fNoise;} |
41 | // Returns the number of stored singals. |
42 | virtual Int_t GetNsignals() const {return fgksize;} |
43 | // Addes track number and signal to this existing list. |
44 | virtual void AddSignal(Int_t track,Int_t hit,Int_t module, |
45 | Int_t index,Double_t signal); |
46 | // Adds signal after electronics to this existing list. |
47 | virtual void AddSignalAfterElect(Int_t module,Int_t index,Double_t signal); |
48 | // Addes noise to this existing list. |
49 | virtual void AddNoise(Int_t module,Int_t index,Double_t noise); |
50 | // Returns track number. |
51 | virtual Int_t GetTrack(Int_t i) const { |
52 | return ((i>=0&&i<fgksize) ? fTrack[i] : 0);} |
53 | // Returns hit number. |
54 | virtual Int_t GetHit(Int_t i) const { |
55 | return ((i>=0&&i<fgksize) ? fHits[i] : 0);} |
56 | // Returns module number. |
57 | virtual Int_t GetModule() const { |
58 | return fmodule;} |
59 | // Returns index number. |
60 | virtual Int_t GetIndex() const { |
61 | return findex;} |
62 | // Adds the contents of pl to this |
63 | virtual void Add(AliITSpListItem *pl); |
64 | // Adds the contents of pl to this with track number off set given by |
65 | // fileIndex. |
66 | virtual void AddTo(Int_t fileIndex,AliITSpListItem *pl); |
67 | // Shift an index number to occupy the upper four bits. |
68 | virtual Int_t ShiftIndex(Int_t in,Int_t trk) const; |
69 | // Standard ascii class print function |
70 | void Print(ostream *os) const; |
71 | // Standard ascii class read function |
72 | void Read(istream *is); |
d2f55a22 |
73 | virtual void Print(Option_t *option="") const {TObject::Print(option);} |
74 | virtual Int_t Read(const char *name) {return TObject::Read(name);} |
5ff02a9a |
75 | // Check if the item is used or marked as unused |
76 | Bool_t IsUsed() const {return fUsed;} |
77 | // Mark the object as unused |
78 | void MarkUnused() {fUsed = kFALSE;} |
fb4e90e0 |
79 | // Returns max size of array for for Tracks, Hits, and signals. |
80 | static Int_t GetMaxKept() {return fgksize;}; |
81 | |
82 | private: |
83 | static const Int_t fgksize = 10; // Array sizes |
84 | Int_t fmodule; // module number |
85 | Int_t findex; // Strip/row,col number linearlized. |
86 | Int_t fTrack[fgksize]; //[fgksize] track Number |
87 | Int_t fHits[fgksize]; //[fgksize] hit number |
88 | Double_t fSignal[fgksize]; //[fgksize] Signals |
89 | Double_t fTsignal; // Total signal (no noise) |
90 | Double_t fNoise; // Total noise, coupling, ... |
91 | Double_t fSignalAfterElect; // Signal after electronics |
5ff02a9a |
92 | Bool_t fUsed; //! kTRUE if the item is built and in use |
fb4e90e0 |
93 | |
5ff02a9a |
94 | ClassDef(AliITSpListItem,4) // Item list of signals and track numbers |
fb4e90e0 |
95 | }; |
96 | // Input and output functions for standard C++ input/output. |
97 | ostream & operator<<(ostream &os,AliITSpListItem &source); |
98 | istream & operator>>(istream &is,AliITSpListItem &source); |
99 | |
100 | |
101 | #endif |