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 */
10 //Piotr Krzysztof Skowronski
11 //Warsaw University of Technology
12 //skowron@if.pw.edu.pl
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
22 class AliITSclusterSSD : public TObject{
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
35 Int_t GetNumOfDigits() const {//Returns number of digits that creates this cluster
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
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
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
76 Bool_t IsConsumed() const{// comment
78 Bool_t IsCrossingWith(Int_t idx) const;
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
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
96 Double_t CentrOfGravity();
97 Double_t EtaAlgorithm();
98 ClassDef(AliITSclusterSSD,1) // Cluster class for reconstructing SSD