For Pythia with tune don't switch off MI in ConfigHeavyFlavor
[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 #include "TArrayI.h"
19 class TConesArray;
20 class AliITSdigitSSD;
21
22 class 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); 
29     AliITSclusterSSD& operator=( const AliITSclusterSSD & source);
30     void AddDigit(Int_t index){//adds on digit
31         (*fDigitsIndex)[fNDigits++]=index;} 
32     TObjArray* GetPointer2Digits() const {return fDigits;}// pointer to digits array 
33     void SetPointer2Digits(TObjArray *digits){// array of digits
34         fDigits = digits;}
35     Int_t GetNumOfDigits() const {//Returns number of digits that creates this cluster
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)]);}
40     Int_t GetDigitIndex (Int_t digit) const {// comment to be written
41         return (*fDigitsIndex)[digit];}
42     Int_t GetDigitStripNo(Int_t digit);
43     // comment to be written
44     Int_t GetFirstDigitStripNo(){return GetDigitStripNo(0);}
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
51     Int_t GetCross(Int_t crIndex) const ;
52     Int_t GetCrossNo()  const {// Returns number of crosses
53         return fNCrosses;}
54     void DelCross(Int_t index);
55     Double_t GetPosition();
56     Double_t GetPositionError() const;
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;}
67     //comment to be written
68     void SetLeftNeighbour(Bool_t nei){fLeftNeighbour=nei;}
69     void SetNTracks(Int_t ntracks) {fNTracks=ntracks;}// set ntracks
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
73     Int_t *GetTracks(Int_t &nt);
74     void Consume(){// comment
75         fConsumed = kTRUE;}
76     Bool_t IsConsumed() const{// comment
77         return fConsumed;}
78     Bool_t IsCrossingWith(Int_t idx) const;
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
99 };
100
101 #endif