]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSUSegmentationPix.h
Updated macros for lego_train phi analysis (mvala)
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUSegmentationPix.h
CommitLineData
451f5018 1#ifndef ALIITSUSEGMENTATIONPIX_H
2#define ALIITSUSEGMENTATIONPIX_H
909b16e7 3
4#include "AliITSsegmentation.h"
5
6
7
8// segmentation and response for pixels in ITS upgrade
9
451f5018 10class AliITSUSegmentationPix :
909b16e7 11public AliITSsegmentation {
12 public:
451f5018 13 AliITSUSegmentationPix(UInt_t id=0, int nchips=0,int ncol=0,int nrow=0,
909b16e7 14 double pitchX=0,double pitchZ=0,
909b16e7 15 double thickness=0,
e5373622 16 double pitchLftC=-1,double pitchRgtC=-1,
909b16e7 17 double edgL=0,double edgR=0,double edgT=0,double edgB=0);
18
451f5018 19 // AliITSUSegmentationPix(Option_t *opt="" );
20 AliITSUSegmentationPix(const AliITSUSegmentationPix &source);
21 virtual ~AliITSUSegmentationPix() {}
22 AliITSUSegmentationPix& operator=(const AliITSUSegmentationPix &source);
a84c4b15 23 //
24 virtual void Init();
25 //
909b16e7 26 virtual void SetNPads(Int_t, Int_t) {MayNotUse("SetPadSize");}
27 virtual Int_t GetNPads() const {return fNCol*fNRow;}
28 //
29 virtual void GetPadIxz(Float_t x,Float_t z,Int_t &ix,Int_t &iz) const;
30 virtual void GetPadCxz(Int_t ix,Int_t iz,Float_t &x,Float_t &z) const;
31 virtual void GetPadTxz(Float_t &x ,Float_t &z) const;
32 virtual Bool_t LocalToDet(Float_t x,Float_t z,Int_t &ix,Int_t &iz) const;
33 virtual void DetToLocal(Int_t ix,Int_t iz,Float_t &x,Float_t &z) const;
34 virtual void CellBoundries(Int_t ix,Int_t iz,Double_t &xl,Double_t &xu,
35 Double_t &zl,Double_t &zu) const;
36 //
37 virtual Int_t GetNumberOfChips() const {return fNChips;}
38 virtual Int_t GetMaximumChipIndex() const {return fNChips-1;}
39 //
40 virtual Int_t GetChipFromLocal(Float_t, Float_t zloc) const;
41 virtual Int_t GetChipsInLocalWindow(Int_t* array, Float_t zmin, Float_t zmax, Float_t, Float_t) const;
42 //
43 virtual Int_t GetChipFromChannel(Int_t, Int_t iz) const;
44 //
45 virtual Float_t Dpx(Int_t ix=0) const;
46 virtual Float_t Dpz(Int_t iz) const;
47 //
48 Int_t GetNRow() const {return fNRow;}
49 Int_t GetNCol() const {return fNCol;}
50 //
51 virtual Int_t Npx() const {return GetNRow();}
52 virtual Int_t Npz() const {return GetNCol();}
53 //
54 virtual void Neighbours(Int_t iX,Int_t iZ,Int_t* Nlist,Int_t Xlist[10],Int_t Zlist[10]) const;
55 //
56 virtual void PrintDefaultParameters() const {AliWarning("No def. parameters defined as const static data members");}
ee58ce21 57 virtual void Print(Option_t* option = "") const;
909b16e7 58 //
451f5018 59 virtual Int_t GetDetTypeID() const {return GetUniqueID();}
60 //
ee58ce21 61 void SetDiodShiftMatrix(Int_t nrow,Int_t ncol, const Double_t *shiftX, const Double_t *shiftZ);
62 void GetDiodShift(Int_t row,Int_t col, Float_t &dx,Float_t &dz) const;
63 void GetDiodShift(Int_t row,Int_t col, Double_t &dx,Double_t &dz) const {float dxf,dzf; GetDiodShift(row,col,dxf,dzf); dx=dxf; dz=dzf; }
64 //
451f5018 65 Bool_t Store(const char* outf);
29f5e263 66 static AliITSUSegmentationPix* LoadWithID(UInt_t id, const char* inpf);
451f5018 67 static void LoadSegmentations(TObjArray* dest, const char* inpf);
e5373622 68 //
909b16e7 69 protected:
70 Float_t Z2Col(Float_t z) const;
71 Float_t Col2Z(Int_t col) const;
72 //
73 protected:
74 Double_t fGuardLft; // left guard edge
75 Double_t fGuardRgt; // right guard edge
76 Double_t fGuardTop; // upper guard edge
77 Double_t fGuardBot; // bottom guard edge
78 Double_t fPitchX; // default pitch in X
79 Double_t fPitchZ; // default pitch in Z
80 Double_t fPitchZLftCol; // Z pitch of left column of each chip
81 Double_t fPitchZRgtCol; // Z pitch of right column of each chip
82 Double_t fChipDZ; // aux: chip size along Z
83 Int_t fNChips; // number of chips per module
84 Int_t fNColPerChip; // number of columns per chip
85 Int_t fNRow; // number of rows
86 Int_t fNCol; // number of columns (total)
87 //
ee58ce21 88 Int_t fDiodShiftMatNCol; // periodicity of diod shift in columns
89 Int_t fDiodShiftMatNRow; // periodicity of diod shift in rows
90 Int_t fDiodShiftMatDim; // dimension of diod shift matrix
91 Double32_t* fDiodShidtMatX; //[fDiodShiftMatDim] diod shift in X (along column), in fraction of X pitch
92 Double32_t* fDiodShidtMatZ; //[fDiodShiftMatDim] diod shift in Z (along row), in fraction of Z pitch
93 //
e5373622 94 static const char* fgkSegmListName; // pattern for segmentations list name
95 //
ee58ce21 96 ClassDef(AliITSUSegmentationPix,2) //Segmentation class upgrade pixels
909b16e7 97
98};
99
100#endif