Splitting of the ITS libraries (M.Masera & E.Crescio)
[u/mrichter/AliRoot.git] / ITS / AliITSclusterSSD.h
CommitLineData
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"
b0f5e3fc 18
ee86d557 19class TArrayI;
20class TConesArray;
e8189707 21class AliITSdigitSSD;
b0f5e3fc 22
ee86d557 23class 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);
ac74f489 30 AliITSclusterSSD& operator=( const AliITSclusterSSD & source);
ee86d557 31 void AddDigit(Int_t index){//adds on digit
32 (*fDigitsIndex)[fNDigits++]=index;}
ac74f489 33 TObjArray* GetPointer2Digits(){return fDigits;}// comment to be written
ee86d557 34 void SetPointer2Digits(TObjArray *digits){// comment to be written
35 fDigits = digits;}
7d62fb64 36 Int_t GetNumOfDigits() const {//Returns number of digits that creates this cluster
ee86d557 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)]);}
7d62fb64 41 Int_t GetDigitIndex (Int_t digit) const {// comment to be written
ee86d557 42 return (*fDigitsIndex)[digit];}
43 Int_t GetDigitStripNo(Int_t digit);
ac74f489 44 // comment to be written
45 Int_t GetFirstDigitStripNo(){return GetDigitStripNo(0);}
ee86d557 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
7d62fb64 52 Int_t GetCross(Int_t crIndex) const ;
53 Int_t GetCrossNo() const {// Returns number of crosses
ac74f489 54 return fNCrosses;}
ee86d557 55 void DelCross(Int_t index);
56 Double_t GetPosition();
7d62fb64 57 Double_t GetPositionError() const;
ee86d557 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;}
ac74f489 68 //comment to be written
69 void SetLeftNeighbour(Bool_t nei){fLeftNeighbour=nei;}
70 void SetNTracks(Int_t ntracks) {fNTracks=ntracks;}// set ntracks
7d62fb64 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
ee86d557 74 Int_t *GetTracks(Int_t &nt);
75 void Consume(){// comment
76 fConsumed = kTRUE;}
77 Bool_t IsConsumed() const{// comment
78 return fConsumed;}
7d62fb64 79 Bool_t IsCrossingWith(Int_t idx) const;
ee86d557 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
b0f5e3fc 100};
101
102#endif