#ifndef ALIITSCLUSTERSSD_H #define ALIITSCLUSTERSSD_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /* $Id$ */ //Piotr Krzysztof Skowronski //Warsaw University of Technology //skowron@if.pw.edu.pl // // Describes set of neighbouring digits on one side of detector, // that are supposed to be generated by one particle. // includes information about clusters on other side that it crosses with #include "TObject.h" class TArrayI; class TConesArray; class AliITSdigitSSD; class AliITSclusterSSD : public TObject{ public: AliITSclusterSSD(); //Default Constructor virtual ~AliITSclusterSSD(); AliITSclusterSSD(Int_t ndigits, Int_t *DigitIndexes, TObjArray *Digits, Bool_t side); AliITSclusterSSD(const AliITSclusterSSD &source); AliITSclusterSSD& operator=( const AliITSclusterSSD & source); void AddDigit(Int_t index){//adds on digit (*fDigitsIndex)[fNDigits++]=index;} TObjArray* GetPointer2Digits(){return fDigits;}// comment to be written void SetPointer2Digits(TObjArray *digits){// comment to be written fDigits = digits;} Int_t GetNumOfDigits() const {//Returns number of digits that creates this cluster return fNDigits;} Int_t GetDigitSignal(Int_t digit); AliITSdigitSSD *GetDigit(Int_t idx) { // comment to be written return (AliITSdigitSSD *)((*fDigits)[GetDigitIndex(idx)]);} Int_t GetDigitIndex (Int_t digit) const {// comment to be written return (*fDigitsIndex)[digit];} Int_t GetDigitStripNo(Int_t digit); // comment to be written Int_t GetFirstDigitStripNo(){return GetDigitStripNo(0);} Int_t GetLastDigitStripNo(){// comment to be written return GetDigitStripNo(fNDigits-1);} //splits this one side cluster for two Int_t SplitCluster(Int_t where,Int_t *outdigits); void AddCross(Int_t clIndex); //Add index of cluster that it crosses with //return index of cluster that it crosses with Int_t GetCross(Int_t crIndex) const ; Int_t GetCrossNo() const {// Returns number of crosses return fNCrosses;} void DelCross(Int_t index); Double_t GetPosition(); Double_t GetPositionError() const; Float_t GetTotalSignal(); Float_t GetTotalSignalError(); void CutTotalSignal(Float_t sx) {// comment to be written if (fTotalSignal>sx) fTotalSignal-=sx;} Bool_t GetRightNeighbour() const {// comment to be written return fRightNeighbour;} Bool_t GetLeftNeighbour() const {// comment to be written return fLeftNeighbour;} void SetRightNeighbour(Bool_t nei) {// comment to be written fRightNeighbour=nei;} //comment to be written void SetLeftNeighbour(Bool_t nei){fLeftNeighbour=nei;} void SetNTracks(Int_t ntracks) {fNTracks=ntracks;}// set ntracks Int_t GetNTracks() const {return fNTracks;}// comment to be written Bool_t GetSide() const {return fSide;}// comment to be written Int_t CheckSatus(Int_t *) const {return 0;}//check if dig's comes from same track Int_t *GetTracks(Int_t &nt); void Consume(){// comment fConsumed = kTRUE;} Bool_t IsConsumed() const{// comment return fConsumed;} Bool_t IsCrossingWith(Int_t idx) const; protected: Bool_t fSide; //True if P TObjArray *fDigits; //Pointer to List of Digitsbelonging to AliITS Int_t fNDigits; //Number of digits that make up that cluster TArrayI *fDigitsIndex; // Digit indexes in fDigits array Int_t fNCrosses; //Number of crossed one side clusters on the // other side (max 8 : it is not aribtrary) TArrayI *fCrossedClusterIndexes; //Array of inedexes of crossed clusters // (in TClonesArray) // not in TArrayI in package Bool_t fLeftNeighbour; // comment to be written Bool_t fRightNeighbour; // comment to be written Bool_t fConsumed; // comment to be written Float_t fTotalSignal; // comment to be written Int_t fTrack[10]; // comment to be written Int_t fNTracks; // comment to be written Double_t CentrOfGravity(); Double_t EtaAlgorithm(); ClassDef(AliITSclusterSSD,1) // Cluster class for reconstructing SSD }; #endif