]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSclusterSSD.h
fFilename !-ed
[u/mrichter/AliRoot.git] / ITS / AliITSclusterSSD.h
CommitLineData
b0f5e3fc 1#ifndef ALIITSCLUSTERSSD_H
2#define ALIITSCLUSTERSSD_H
3
4#include "TObject.h"
5#include "TArrayI.h"
6#include "AliITSdigit.h"
7#include "TClonesArray.h"
8
9
10class AliITSclusterSSD : public TObject
11{
12
13
14//Piotr Krzysztof Skowronski
15//Warsaw University of Technology
16//skowron@if.pw.edu.pl
17//
18// Describes set of neighbouring digits on one side of detector,
19// that are supposed to be generated by one particle.
20// includes information about clusters on other side that it crosses with
21
22public:
23
24 AliITSclusterSSD(); //Default Constructor
25 ~AliITSclusterSSD();
26 AliITSclusterSSD(Int_t ndigits, Int_t *DigitIndexes, TObjArray *Digits, Bool_t side);
27 AliITSclusterSSD(const AliITSclusterSSD &source);
28 AliITSclusterSSD& operator=( const AliITSclusterSSD & source);
29
30 void AddDigit(Int_t index){
31 // //adds on digit
32 (*fDigitsIndex)[fNDigits++]=index;
33 }
34 TObjArray* GetPointer2Digits(){
35 // comment to be written
36 return fDigits;
37 }
38
39// TArrayI* GetDigitsIndexes(Int_t &ndigits);
40// void SetDigitIndex(Int_t index);
41
42 void SetPointer2Digits(TObjArray *digits){
43 // comment to be written
44 fDigits = digits;
45 }
46 Int_t GetNumOfDigits(){
47 //Returns number of digits that creates this cluster
48 return fNDigits;
49 }
50 Int_t GetDigitSignal(Int_t digit);
51
52
53 AliITSdigitSSD *GetDigit(Int_t idx) {
54 // comment to be written
55 return (AliITSdigitSSD *)((*fDigits)[GetDigitIndex(idx)]);
56 }
57 Int_t GetDigitIndex (Int_t digit) {
58 // comment to be written
59 return (*fDigitsIndex)[digit];
60 }
61 Int_t GetDigitStripNo(Int_t digit);
62 Int_t GetFirstDigitStripNo(){
63 // comment to be written
64 return GetDigitStripNo(0);
65 }
66 Int_t GetLastDigitStripNo(){
67 // comment to be written
68 return GetDigitStripNo(fNDigits-1);
69 }
70 Int_t SplitCluster(Int_t where,Int_t *outdigits); //splits this one side cluster for two
71 void AddCross(Int_t clIndex); //Add index of cluster that it crosses with
72 Int_t GetCross(Int_t crIndex); //return index of cluster that it crosses with
73 Int_t GetCrossNo() {
74 // Returns number of crosses
75 return fNCrosses;
76 }
77 void DelCross(Int_t index);
78
79 Double_t GetPosition();
80 Double_t GetPositionError();
81 Float_t GetTotalSignal();
82 Float_t GetTotalSignalError();
83 void CutTotalSignal(Float_t sx) {
84 // comment to be written
85 if (fTotalSignal>sx) fTotalSignal-=sx;
86 }
87
88 Bool_t GetRightNeighbour() const {
89 // comment to be written
90 return fRightNeighbour;
91 }
92 Bool_t GetLeftNeighbour() const {
93 // comment to be written
94 return fLeftNeighbour;
95 }
96 void SetRightNeighbour(Bool_t nei) {
97 // comment to be written
98 fRightNeighbour=nei;
99 }
100 void SetLeftNeighbour(Bool_t nei) {
101 // comment to be written
102 fLeftNeighbour=nei;
103 }
104 Bool_t GetSide(){
105 // comment to be written
106 return fSide;
107 }
108 Int_t CheckSatus(Int_t *tracks){
109 //check if digits comes from the same track
110 return 0;
111 }
112 Int_t *GetTracks(Int_t &nt);
113 void Consume(){
114 // comment
115 fConsumed = kTRUE;
116 }
117 Bool_t IsConsumed() const{
118 // comment
119 return fConsumed;
120 }
121 Bool_t IsCrossingWith(Int_t idx);
122
123protected:
124
125 Bool_t fSide; //True if P
126 TObjArray *fDigits; //Pointer to List of Digitsbelonging to AliITS
127
128 Int_t fNDigits; //Number of digits that make up that cluster
129 TArrayI *fDigitsIndex; // Digit indexes in fDigits array
130
131 Int_t fNCrosses; //Number of crossed one side clusters on the other siede
132 // (max 8 : it is not aribtrary)
133 TArrayI *fCrossedClusterIndexes; //Array of inedexes of crossed clusters (in TClonesArray)
134 // not in TArrayI in package
135
136 Bool_t fLeftNeighbour; // comment to be written
137 Bool_t fRightNeighbour; // comment to be written
138 Bool_t fConsumed; // comment to be written
139
140 Float_t fTotalSignal; // comment to be written
141 Int_t fTrack[10]; // comment to be written
142 Int_t fNTrack; // comment to be written
143
144 Double_t CentrOfGravity();
145 Double_t EtaAlgorithm();
146
147private:
148
149/*************************************/
150/*************************************/
151 ClassDef(AliITSclusterSSD,1)
152};
153
154#endif