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