]>
Commit | Line | Data |
---|---|---|
b0f5e3fc | 1 | #ifndef ALIITSCLUSTERSSD_H |
2 | #define ALIITSCLUSTERSSD_H | |
ee86d557 | 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 | |
b0f5e3fc | 17 | #include "TObject.h" |
ef665f5e | 18 | #include "TArrayI.h" |
ee86d557 | 19 | class TConesArray; |
e8189707 | 20 | class AliITSdigitSSD; |
b0f5e3fc | 21 | |
ee86d557 | 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); | |
ac74f489 | 29 | AliITSclusterSSD& operator=( const AliITSclusterSSD & source); |
ee86d557 | 30 | void AddDigit(Int_t index){//adds on digit |
31 | (*fDigitsIndex)[fNDigits++]=index;} | |
ef665f5e | 32 | TObjArray* GetPointer2Digits() const {return fDigits;}// pointer to digits array |
33 | void SetPointer2Digits(TObjArray *digits){// array of digits | |
ee86d557 | 34 | fDigits = digits;} |
7d62fb64 | 35 | Int_t GetNumOfDigits() const {//Returns number of digits that creates this cluster |
ee86d557 | 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)]);} | |
7d62fb64 | 40 | Int_t GetDigitIndex (Int_t digit) const {// comment to be written |
ee86d557 | 41 | return (*fDigitsIndex)[digit];} |
42 | Int_t GetDigitStripNo(Int_t digit); | |
ac74f489 | 43 | // comment to be written |
44 | Int_t GetFirstDigitStripNo(){return GetDigitStripNo(0);} | |
ee86d557 | 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 | |
7d62fb64 | 51 | Int_t GetCross(Int_t crIndex) const ; |
52 | Int_t GetCrossNo() const {// Returns number of crosses | |
ac74f489 | 53 | return fNCrosses;} |
ee86d557 | 54 | void DelCross(Int_t index); |
55 | Double_t GetPosition(); | |
7d62fb64 | 56 | Double_t GetPositionError() const; |
ee86d557 | 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;} | |
ac74f489 | 67 | //comment to be written |
68 | void SetLeftNeighbour(Bool_t nei){fLeftNeighbour=nei;} | |
69 | void SetNTracks(Int_t ntracks) {fNTracks=ntracks;}// set ntracks | |
7d62fb64 | 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 | |
ee86d557 | 73 | Int_t *GetTracks(Int_t &nt); |
74 | void Consume(){// comment | |
75 | fConsumed = kTRUE;} | |
76 | Bool_t IsConsumed() const{// comment | |
77 | return fConsumed;} | |
7d62fb64 | 78 | Bool_t IsCrossingWith(Int_t idx) const; |
ee86d557 | 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 | |
b0f5e3fc | 99 | }; |
100 | ||
101 | #endif |