]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSpListItem.h
Update of slat geometry
[u/mrichter/AliRoot.git] / ITS / AliITSpListItem.h
1 #ifndef ALIITSPLISTITEM_H
2 #define ALIITSPLISTITEM_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 #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
23     AliITSpListItem(AliITSpListItem &source);
24     // = Opoerator
25     virtual AliITSpListItem& operator=(const AliITSpListItem &source);
26     // Returns the signal value in the list of signals
27     virtual Double_t GetSignal(Int_t i) const {
28                             return ( (i>=0&&i<fgksize) ? fSignal[i] : 0.0);}
29     virtual Double_t GetSignal() const {
30                             return fTsignal;}
31     virtual Double_t GetSignalAfterElect() const {
32                             return fSignalAfterElect;}
33     // Returns the Sum/Total signal
34     virtual Double_t GetSumSignal() const {return fTsignal+fNoise;}
35     // Returns the  noise
36     virtual Double_t GetNoise() const {return fNoise;}
37     // Returns the number of stored singals.
38     virtual Int_t GetNsignals() const {return fgksize;}
39     // Addes track number and signal to this existing list.
40     virtual void AddSignal(Int_t track,Int_t hit,Int_t module,
41                            Int_t index,Double_t signal);
42     // Adds signal after electronics to this existing list.
43     virtual void AddSignalAfterElect(Int_t module,Int_t index,Double_t signal);
44     // Addes noise to this existing list.
45     virtual void AddNoise(Int_t module,Int_t index,Double_t noise);
46     // Returns track number.
47     virtual Int_t GetTrack(Int_t i) const {
48                             return ((i>=0&&i<fgksize) ? fTrack[i] : 0);}
49     // Returns hit number.
50     virtual Int_t GetHit(Int_t i) const {
51                             return ((i>=0&&i<fgksize) ? fHits[i] : 0);}
52     // Returns module number.
53     virtual Int_t GetModule() const {
54                             return fmodule;}
55     // Returns index number.
56     virtual Int_t GetIndex() const {
57                             return findex;}
58     // Adds the contents of pl to this 
59     virtual void Add(AliITSpListItem *pl);
60     // Adds the contents of pl to this with track number off set given by
61     // fileIndex.
62     virtual void AddTo(Int_t fileIndex,AliITSpListItem *pl);
63     // Shift an index number to occupy the upper four bits.
64     virtual Int_t ShiftIndex(Int_t in,Int_t trk) const;
65     // Standard ascii class print function
66     void Print(ostream *os) const;
67     // Standard ascii class read function
68     void Read(istream *is);
69     // Returns max size of array for for Tracks, Hits, and signals.
70     static Int_t GetMaxKept() {return fgksize;};
71
72  private:
73     static const Int_t fgksize = 10; // Array sizes
74     Int_t    fmodule;         // module number
75     Int_t    findex;          // Strip/row,col number linearlized.
76     Int_t    fTrack[fgksize];  //[fgksize] track Number
77     Int_t    fHits[fgksize];   //[fgksize] hit number
78     Double_t fSignal[fgksize]; //[fgksize] Signals
79     Double_t fTsignal;        // Total signal (no noise)
80     Double_t fNoise;          // Total noise, coupling, ...
81     Double_t fSignalAfterElect; // Signal after electronics
82
83     ClassDef(AliITSpListItem,3) // Item list of signals and track numbers
84 };      
85 // Input and output functions for standard C++ input/output.
86 ostream & operator<<(ostream &os,AliITSpListItem &source);
87 istream & operator>>(istream &is,AliITSpListItem &source);
88
89
90 #endif