]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSclusterSSD.h
Obsolete.
[u/mrichter/AliRoot.git] / ITS / AliITSclusterSSD.h
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
19 class TArrayI;
20 class TConesArray;
21 class AliITSdigitSSD;
22
23 class AliITSclusterSSD : public TObject{
24  public:
25     AliITSclusterSSD();    //Default Constructor
26     virtual ~AliITSclusterSSD();
27     AliITSclusterSSD(Int_t ndigits, Int_t *DigitIndexes,
28                      TObjArray *Digits, Bool_t side);           
29     AliITSclusterSSD(const AliITSclusterSSD &source); 
30     AliITSclusterSSD& operator=( const AliITSclusterSSD & source);
31     void AddDigit(Int_t index){//adds on digit
32         (*fDigitsIndex)[fNDigits++]=index;} 
33     TObjArray* GetPointer2Digits(){return fDigits;}// comment to be written
34     void SetPointer2Digits(TObjArray *digits){// comment to be written
35         fDigits = digits;}
36     Int_t GetNumOfDigits() const {//Returns number of digits that creates this cluster
37         return fNDigits;}
38     Int_t GetDigitSignal(Int_t digit);
39     AliITSdigitSSD *GetDigit(Int_t idx) { // comment to be written
40         return (AliITSdigitSSD *)((*fDigits)[GetDigitIndex(idx)]);}
41     Int_t GetDigitIndex (Int_t digit) const {// comment to be written
42         return (*fDigitsIndex)[digit];}
43     Int_t GetDigitStripNo(Int_t digit);
44     // comment to be written
45     Int_t GetFirstDigitStripNo(){return GetDigitStripNo(0);}
46     Int_t GetLastDigitStripNo(){// comment to be written
47         return GetDigitStripNo(fNDigits-1);}
48      //splits this one side cluster for two
49     Int_t SplitCluster(Int_t where,Int_t *outdigits);
50     void AddCross(Int_t clIndex);  //Add index of cluster that it crosses with
51      //return index of cluster that it crosses with
52     Int_t GetCross(Int_t crIndex) const ;
53     Int_t GetCrossNo()  const {// Returns number of crosses
54         return fNCrosses;}
55     void DelCross(Int_t index);
56     Double_t GetPosition();
57     Double_t GetPositionError() const;
58     Float_t GetTotalSignal();  
59     Float_t GetTotalSignalError();
60     void CutTotalSignal(Float_t sx) {// comment to be written
61         if (fTotalSignal>sx) fTotalSignal-=sx;}
62     Bool_t GetRightNeighbour() const {// comment to be written
63         return fRightNeighbour;}
64     Bool_t GetLeftNeighbour() const {// comment to be written
65         return fLeftNeighbour;}
66     void SetRightNeighbour(Bool_t nei) {// comment to be written
67         fRightNeighbour=nei;}
68     //comment to be written
69     void SetLeftNeighbour(Bool_t nei){fLeftNeighbour=nei;}
70     void SetNTracks(Int_t ntracks) {fNTracks=ntracks;}// set ntracks
71     Int_t GetNTracks() const {return fNTracks;}// comment to be written
72     Bool_t GetSide() const {return fSide;}// comment to be written
73     Int_t CheckSatus(Int_t *) const {return 0;}//check if dig's comes from same track
74     Int_t *GetTracks(Int_t &nt);
75     void Consume(){// comment
76         fConsumed = kTRUE;}
77     Bool_t IsConsumed() const{// comment
78         return fConsumed;}
79     Bool_t IsCrossingWith(Int_t idx) const;
80  protected:
81     Bool_t    fSide;        //True if P
82     TObjArray *fDigits;     //Pointer to List of Digitsbelonging to AliITS
83     Int_t     fNDigits;     //Number of digits that make up that cluster 
84     TArrayI  *fDigitsIndex; // Digit indexes in fDigits array
85     Int_t    fNCrosses;     //Number of crossed one side clusters on the
86                             // other side (max 8 : it is not aribtrary)
87     TArrayI *fCrossedClusterIndexes; //Array of inedexes of crossed clusters
88                                      // (in TClonesArray)
89                                      // not in TArrayI in package
90     Bool_t   fLeftNeighbour;   // comment to be written
91     Bool_t   fRightNeighbour;  // comment to be written 
92     Bool_t   fConsumed;        // comment to be written
93     Float_t  fTotalSignal;     // comment to be written
94     Int_t    fTrack[10];       // comment to be written
95     Int_t    fNTracks;         // comment to be written
96     
97     Double_t CentrOfGravity();
98     Double_t EtaAlgorithm();
99   ClassDef(AliITSclusterSSD,1) // Cluster class for reconstructing SSD
100 };
101
102 #endif