]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSclusterSSD.h
Changing once more (hopefully we get it correct this time...) the logic to trig the...
[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"
ef665f5e 18#include "TArrayI.h"
ee86d557 19class TConesArray;
e8189707 20class AliITSdigitSSD;
b0f5e3fc 21
ee86d557 22class 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