]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIITSCLUSTERSSD_H | |
2 | #define ALIITSCLUSTERSSD_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* | |
7 | $Id$ | |
8 | */ | |
9 | ||
10 | //Piotr Krzysztof Skowronski | |
11 | //Warsaw University of Technology | |
12 | //skowron@if.pw.edu.pl | |
13 | // | |
14 | // Describes set of neighbouring digits on one side of detector, | |
15 | // that are supposed to be generated by one particle. | |
16 | // includes information about clusters on other side that it crosses with | |
17 | #include "TObject.h" | |
18 | #include "TArrayI.h" | |
19 | class TConesArray; | |
20 | class AliITSdigitSSD; | |
21 | ||
22 | class AliITSclusterSSD : public TObject{ | |
23 | public: | |
24 | AliITSclusterSSD(); //Default Constructor | |
25 | virtual ~AliITSclusterSSD(); | |
26 | AliITSclusterSSD(Int_t ndigits, Int_t *DigitIndexes, | |
27 | TObjArray *Digits, Bool_t side); | |
28 | AliITSclusterSSD(const AliITSclusterSSD &source); | |
29 | AliITSclusterSSD& operator=( const AliITSclusterSSD & source); | |
30 | void AddDigit(Int_t index){//adds on digit | |
31 | (*fDigitsIndex)[fNDigits++]=index;} | |
32 | TObjArray* GetPointer2Digits() const {return fDigits;}// pointer to digits array | |
33 | void SetPointer2Digits(TObjArray *digits){// array of digits | |
34 | fDigits = digits;} | |
35 | Int_t GetNumOfDigits() const {//Returns number of digits that creates this cluster | |
36 | return fNDigits;} | |
37 | Int_t GetDigitSignal(Int_t digit); | |
38 | AliITSdigitSSD *GetDigit(Int_t idx) { // comment to be written | |
39 | return (AliITSdigitSSD *)((*fDigits)[GetDigitIndex(idx)]);} | |
40 | Int_t GetDigitIndex (Int_t digit) const {// comment to be written | |
41 | return (*fDigitsIndex)[digit];} | |
42 | Int_t GetDigitStripNo(Int_t digit); | |
43 | // comment to be written | |
44 | Int_t GetFirstDigitStripNo(){return GetDigitStripNo(0);} | |
45 | Int_t GetLastDigitStripNo(){// comment to be written | |
46 | return GetDigitStripNo(fNDigits-1);} | |
47 | //splits this one side cluster for two | |
48 | Int_t SplitCluster(Int_t where,Int_t *outdigits); | |
49 | void AddCross(Int_t clIndex); //Add index of cluster that it crosses with | |
50 | //return index of cluster that it crosses with | |
51 | Int_t GetCross(Int_t crIndex) const ; | |
52 | Int_t GetCrossNo() const {// Returns number of crosses | |
53 | return fNCrosses;} | |
54 | void DelCross(Int_t index); | |
55 | Double_t GetPosition(); | |
56 | Double_t GetPositionError() const; | |
57 | Float_t GetTotalSignal(); | |
58 | Float_t GetTotalSignalError(); | |
59 | void CutTotalSignal(Float_t sx) {// comment to be written | |
60 | if (fTotalSignal>sx) fTotalSignal-=sx;} | |
61 | Bool_t GetRightNeighbour() const {// comment to be written | |
62 | return fRightNeighbour;} | |
63 | Bool_t GetLeftNeighbour() const {// comment to be written | |
64 | return fLeftNeighbour;} | |
65 | void SetRightNeighbour(Bool_t nei) {// comment to be written | |
66 | fRightNeighbour=nei;} | |
67 | //comment to be written | |
68 | void SetLeftNeighbour(Bool_t nei){fLeftNeighbour=nei;} | |
69 | void SetNTracks(Int_t ntracks) {fNTracks=ntracks;}// set ntracks | |
70 | Int_t GetNTracks() const {return fNTracks;}// comment to be written | |
71 | Bool_t GetSide() const {return fSide;}// comment to be written | |
72 | Int_t CheckSatus(Int_t *) const {return 0;}//check if dig's comes from same track | |
73 | Int_t *GetTracks(Int_t &nt); | |
74 | void Consume(){// comment | |
75 | fConsumed = kTRUE;} | |
76 | Bool_t IsConsumed() const{// comment | |
77 | return fConsumed;} | |
78 | Bool_t IsCrossingWith(Int_t idx) const; | |
79 | protected: | |
80 | Bool_t fSide; //True if P | |
81 | TObjArray *fDigits; //Pointer to List of Digitsbelonging to AliITS | |
82 | Int_t fNDigits; //Number of digits that make up that cluster | |
83 | TArrayI *fDigitsIndex; // Digit indexes in fDigits array | |
84 | Int_t fNCrosses; //Number of crossed one side clusters on the | |
85 | // other side (max 8 : it is not aribtrary) | |
86 | TArrayI *fCrossedClusterIndexes; //Array of inedexes of crossed clusters | |
87 | // (in TClonesArray) | |
88 | // not in TArrayI in package | |
89 | Bool_t fLeftNeighbour; // comment to be written | |
90 | Bool_t fRightNeighbour; // comment to be written | |
91 | Bool_t fConsumed; // comment to be written | |
92 | Float_t fTotalSignal; // comment to be written | |
93 | Int_t fTrack[10]; // comment to be written | |
94 | Int_t fNTracks; // comment to be written | |
95 | ||
96 | Double_t CentrOfGravity(); | |
97 | Double_t EtaAlgorithm(); | |
98 | ClassDef(AliITSclusterSSD,1) // Cluster class for reconstructing SSD | |
99 | }; | |
100 | ||
101 | #endif |