]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ITS/AliITSpList.h
Fix warnings from Cerello
[u/mrichter/AliRoot.git] / ITS / AliITSpList.h
... / ...
CommitLineData
1#ifndef ALIITSPLIST_H
2#define ALIITSPLIST_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6//***********************************************************************
7//
8// It consist of a TClonesArray of
9// AliITSpListItem objects
10// This array can be accessed via 2 indexed
11// it is used at digitization level by
12// all the 3 ITS subdetectors
13//
14// ***********************************************************************
15#include "TArrayI.h"
16#include "TClonesArray.h"
17#include "AliITSMap.h"
18#include "AliITSpListItem.h"
19
20class AliITSpList: public AliITSMap {
21
22 public:
23 // Default Constructor
24 AliITSpList();
25 // Standard Constructor
26 AliITSpList(Int_t imax,Int_t jmax);
27 // Class destrutor
28 virtual ~AliITSpList();
29 // Copy constructor
30 AliITSpList(const AliITSpList &source);
31 // = Operator
32 virtual AliITSpList& operator=(const AliITSpList &source);
33 // Returns the max mape index values
34 void GetMaxMapIndex(Int_t &ni,Int_t &nj) const {ni=fNi;nj=fNj;return;}
35 // returns the max index value.
36 Int_t GetMaxIndex() const {return fNi*fNj;}
37 // returns the largest non-zero entry kept in the array fa.
38 Int_t GetEntries() const {return fEntries;}
39 // returns the max number of track/hit entries per cell.
40 Int_t GetNEntries() const {return AliITSpListItem::GetMaxKept();}
41 // for a given TClonesArray index it returns the corresponding map index
42 void GetMapIndex(Int_t index,Int_t &i,Int_t &j) const {
43 i = index/fNj;j = index - fNj*i;
44 if(i<0||i>=fNi || j<0||j>=fNj){i=-1;j=-1; return;}
45 }
46 // Returns the signal+noise for a give map coordinate
47 Double_t GetSignal(Int_t index) {
48 if(GetpListItem(index)==0) return 0.0;
49 return GetpListItem(index)->GetSumSignal();
50 }
51 // Returns the signal+noise for a give map coordinate
52 virtual Double_t GetSignal(Int_t i,Int_t j) const {
53 if(GetpListItem(i,j)==0) return 0.0;
54 return GetpListItem(i,j)->GetSumSignal();
55 }
56 // Returns the signal only for a give map coordinate
57 Double_t GetSignalOnly(Int_t i,Int_t j)const {
58 if(GetpListItem(i,j)==0) return 0.0;
59 return GetpListItem(i,j)->GetSignal();
60 }
61 // Returns the noise for a give map coordinate
62 Double_t GetNoise(Int_t i,Int_t j) const {
63 if(GetpListItem(i,j)==0) return 0.0;
64 return GetpListItem(i,j)->GetNoise();
65 }
66 // returns the track number which generated the signal at a given map
67 // coordinate. If there is no signal or only noise, then -2 is returned.
68 // k is the track rank number.
69 Double_t GetTSignal(Int_t i,Int_t j,Int_t k) const {
70 if(GetpListItem(i,j)==0) return 0.0;
71 return GetpListItem(i,j)->GetSignal(k);
72 }
73 // returns the track number which generated the signal at a given map
74 // coordinate. If there is no signal or only noise, then -2 is returned.
75 // k is the track rank number.
76 Int_t GetTrack(Int_t i,Int_t j,Int_t k) const {
77 if(GetpListItem(i,j)==0) return -2;
78 return GetpListItem(i,j)->GetTrack(k);
79 }
80 // returns the hit number which generated the signal at a given map
81 // coordinate. If there is no signal or only noise, then -2 is returned.
82 // k is the hit rank number.
83 Int_t GetHit(Int_t i,Int_t j,Int_t k) const {
84 if(GetpListItem(i,j)==0) return -2;
85 return GetpListItem(i,j)->GetHit(k);
86 }
87 // returns the number of Signal values
88 Int_t GetNSignals(Int_t i,Int_t j) const {
89 if(GetpListItem(i,j)==0) return 0;
90 return GetpListItem(i,j)->GetNsignals();
91 }
92 // Adds the contents of pl to the list with track number off set given by
93 // fileIndex.
94 virtual void AddItemTo(Int_t fileIndex, AliITSpListItem *pl);
95 // Adds a Signal value to the map. Creating and expanding arrays as needed.
96 void AddSignal(Int_t i,Int_t j,Int_t trk,Int_t ht,Int_t mod,Double_t sig);
97 // Adds a Noise value to the map. Creating and expanding arrays as needed.
98 void AddNoise(Int_t i,Int_t j,Int_t mod,Double_t noise);
99 // Delete all AliITSpListItems and zero the TClonesArray
100 virtual void ClearMap();
101 // Delete a particular AliITSpListItem in the TClonesArray.
102 virtual void DeleteHit(Int_t i,Int_t j);
103 // returns hit index in TClonesArray
104 virtual Int_t GetHitIndex(Int_t i,Int_t j) const {return GetIndex(i,j);}
105 // returns "hit" AliITSpListItem as a TObject.
106 TObject * GetHit(Int_t i,Int_t j) const {return (TObject*)GetpListItem(i,j);}
107 // tests hit status.
108 virtual FlagType TestHit(Int_t i,Int_t j){if(GetpListItem(i,j)==0) return kEmpty;
109 else if(GetSignal(i,j)<=0) return kUnused; else return kUsed;}
110 // returns the pList Item stored in the TClonesArray
111 AliITSpListItem* GetpListItem(Int_t index) { if((fa[index]).IsUsed())
112 return &(fa[index]);
113 else return NULL;}
114 // returns the pList Item stored in the TObject array
115 AliITSpListItem* GetpListItem(Int_t i,Int_t j) const {
116 if((fa[GetIndex(i,j)]).IsUsed())return &(fa[GetIndex(i,j)]);
117 else return NULL; }
118
119 // Fill pList from digits. Not functional yet
120 virtual void FillMap(){NotImplemented("FillMap");}
121 virtual void FillMap2() {NotImplemented("FillMap2");}
122 // Sets threshold for significance. Not of relavance in this case.
123 virtual void SetThreshold(Int_t /* i */){NotImplemented("SetThreshold");}
124 virtual void SetThresholdArr(TArrayI /*thr*/) {NotImplemented("SetThresholdArr");}
125 // Sets a single hit. Not of relavance in this case.
126 virtual void SetHit(Int_t /* i */,Int_t /* j */,Int_t /* k */){NotImplemented("SetHit");}
127 // Flags a hit. Not of relavence in this case.
128 virtual void FlagHit(Int_t /* i */,Int_t /* j */){NotImplemented("FlagHit");}
129 virtual void GetCell(Int_t index,Int_t &i,Int_t &j) const;
130
131 private:
132
133// private methods
134 Int_t GetIndex(Int_t i,Int_t j) const;
135 void NotImplemented(const char *method) const {if(gDebug>0)
136 Warning(method,"This method is not implemented for this class");}
137// data members
138 Int_t fNi,fNj; // The max index in i,j.
139 AliITSpListItem *fa; // array of pList items
140 Int_t fEntries; // keepts track of the number of non-zero entries.
141
142 ClassDef(AliITSpList,5) // list of signals and track numbers
143};
144#endif