#ifndef ALIITSCLUSTERSSD_H #define ALIITSCLUSTERSSD_H #include "TObject.h" #include "TArrayI.h" #include "TClonesArray.h" class AliITSdigitSSD; class AliITSclusterSSD : public TObject { //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 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(){ // comment to be written return fDigits; } // TArrayI* GetDigitsIndexes(Int_t &ndigits); // void SetDigitIndex(Int_t index); void SetPointer2Digits(TObjArray *digits){ // comment to be written fDigits = digits; } Int_t GetNumOfDigits(){ //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) { // comment to be written return (*fDigitsIndex)[digit]; } Int_t GetDigitStripNo(Int_t digit); Int_t GetFirstDigitStripNo(){ // comment to be written return GetDigitStripNo(0); } Int_t GetLastDigitStripNo(){ // comment to be written return GetDigitStripNo(fNDigits-1); } Int_t SplitCluster(Int_t where,Int_t *outdigits); //splits this one side cluster for two void AddCross(Int_t clIndex); //Add index of cluster that it crosses with Int_t GetCross(Int_t crIndex); //return index of cluster that it crosses with Int_t GetCrossNo() { // Returns number of crosses return fNCrosses; } void DelCross(Int_t index); Double_t GetPosition(); Double_t GetPositionError(); 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; } void SetLeftNeighbour(Bool_t nei) { // comment to be written fLeftNeighbour=nei; } Bool_t GetSide(){ // comment to be written return fSide; } Int_t CheckSatus(Int_t *tracks){ //check if digits comes from the same track return 0; } Int_t *GetTracks(Int_t &nt); void Consume(){ // comment fConsumed = kTRUE; } Bool_t IsConsumed() const{ // comment return fConsumed; } Bool_t IsCrossingWith(Int_t idx); 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 siede // (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 fNTrack; // comment to be written Double_t CentrOfGravity(); Double_t EtaAlgorithm(); private: /*************************************/ /*************************************/ ClassDef(AliITSclusterSSD,1) // Cluster class for reconstructing SSD }; #endif