Decoupled ITS/UPGRADE cmake stuff from ITS
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSsegmentationPixUpg.h
CommitLineData
909b16e7 1#ifndef ALIITSSEGMENTATIONPIXUPG_H
2#define ALIITSSEGMENTATIONPIXUPG_H
3
4#include "AliITSsegmentation.h"
5
6
7
8// segmentation and response for pixels in ITS upgrade
9
10class AliITSsegmentationPixUpg :
11public AliITSsegmentation {
12 public:
13 enum {kCM2MC=10000};
14 AliITSsegmentationPixUpg(int nchips=0,int ncol=0,int nrow=0,
15 double pitchX=0,double pitchZ=0,
16 double pitchLftC=-1,double pitchRgtC=-1,
17 double thickness=0,
18 double edgL=0,double edgR=0,double edgT=0,double edgB=0);
19
a84c4b15 20 // AliITSsegmentationPixUpg(Option_t *opt="" );
909b16e7 21 AliITSsegmentationPixUpg(const AliITSsegmentationPixUpg &source);
22 virtual ~AliITSsegmentationPixUpg() {}
23 AliITSsegmentationPixUpg& operator=(const AliITSsegmentationPixUpg &source);
a84c4b15 24 //
25 virtual void Init();
26 //
909b16e7 27 virtual void SetNPads(Int_t, Int_t) {MayNotUse("SetPadSize");}
28 virtual Int_t GetNPads() const {return fNCol*fNRow;}
29 //
30 virtual void GetPadIxz(Float_t x,Float_t z,Int_t &ix,Int_t &iz) const;
31 virtual void GetPadCxz(Int_t ix,Int_t iz,Float_t &x,Float_t &z) const;
32 virtual void GetPadTxz(Float_t &x ,Float_t &z) const;
33 virtual Bool_t LocalToDet(Float_t x,Float_t z,Int_t &ix,Int_t &iz) const;
34 virtual void DetToLocal(Int_t ix,Int_t iz,Float_t &x,Float_t &z) const;
35 virtual void CellBoundries(Int_t ix,Int_t iz,Double_t &xl,Double_t &xu,
36 Double_t &zl,Double_t &zu) const;
37 //
38 virtual Int_t GetNumberOfChips() const {return fNChips;}
39 virtual Int_t GetMaximumChipIndex() const {return fNChips-1;}
40 //
41 virtual Int_t GetChipFromLocal(Float_t, Float_t zloc) const;
42 virtual Int_t GetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t, Float_t) const;
43 //
44 virtual Int_t GetChipFromChannel(Int_t, Int_t iz) const;
45 //
46 virtual Float_t Dpx(Int_t ix=0) const;
47 virtual Float_t Dpz(Int_t iz) const;
48 //
49 Int_t GetNRow() const {return fNRow;}
50 Int_t GetNCol() const {return fNCol;}
51 //
52 virtual Int_t Npx() const {return GetNRow();}
53 virtual Int_t Npz() const {return GetNCol();}
54 //
55 virtual void Neighbours(Int_t iX,Int_t iZ,Int_t* Nlist,Int_t Xlist[10],Int_t Zlist[10]) const;
56 //
57 virtual void PrintDefaultParameters() const {AliWarning("No def. parameters defined as const static data members");}
58 //
59 protected:
60 Float_t Z2Col(Float_t z) const;
61 Float_t Col2Z(Int_t col) const;
62 //
63 protected:
64 Double_t fGuardLft; // left guard edge
65 Double_t fGuardRgt; // right guard edge
66 Double_t fGuardTop; // upper guard edge
67 Double_t fGuardBot; // bottom guard edge
68 Double_t fPitchX; // default pitch in X
69 Double_t fPitchZ; // default pitch in Z
70 Double_t fPitchZLftCol; // Z pitch of left column of each chip
71 Double_t fPitchZRgtCol; // Z pitch of right column of each chip
72 Double_t fChipDZ; // aux: chip size along Z
73 Int_t fNChips; // number of chips per module
74 Int_t fNColPerChip; // number of columns per chip
75 Int_t fNRow; // number of rows
76 Int_t fNCol; // number of columns (total)
77 //
78
79 ClassDef(AliITSsegmentationPixUpg,1) //Segmentation class upgrade pixels
80
81};
82
83#endif