#ifndef ALIITSSEGMENTATIONUPGRADE_H
#define ALIITSSEGMENTATIONUPGRADE_H
#include <TArrayD.h>
#include <TObject.h>
class AliITSsegmentationUpgrade : public TObject {
public:
AliITSsegmentationUpgrade();
AliITSsegmentationUpgrade(TArrayD Radii, TArrayD widths, TArrayD Length);
virtual ~AliITSsegmentationUpgrade(){}
virtual void SetSegmentation(Int_t ilayer, Double_t xsize, Double_t zsize);
virtual void SetFullSegmentation(TArrayD xsize, TArrayD zsize);
virtual void SetNSectors(Int_t nSect) {fNSectors=nSect;}
virtual void GetNpad(Int_t ilayer, Int_t &nx, Int_t &nz);
Bool_t GlobalToDet(Int_t ilayer, Double_t x,Double_t y,Double_t z,Double_t &xl,Double_t &zl) const;
Bool_t GlobalToDet(Int_t ilayer, Double_t x,Double_t y,Double_t z,Double_t &xl,Double_t &zl, Int_t &module) const;
Bool_t DetToGlobal(Int_t ilayer, Double_t xl,Double_t zl,Double_t &x,Double_t &y, Double_t &z) const;
Bool_t DetToGlobal(Int_t ilayer, Int_t module, Double_t xl,Double_t zl,Double_t &x,Double_t &y, Double_t &z) const;
Bool_t DetToPixID(Double_t xl, Double_t zl,Int_t layer, Int_t &nx, Int_t &nz) const;
Bool_t DetToTrack(Int_t layer,Int_t module, Double_t xl, Double_t zl, Double_t &ytr, Double_t &ztr)const;
Bool_t DetToTrack2(Int_t layer,Int_t module, Double_t xl, Double_t zl, Double_t &ytr, Double_t &ztr)const;
Int_t GetIdIndex(Int_t layer, Int_t sector) const {return sector*100 + layer; }
Int_t GetLayerFromIdIndex(Int_t id)const {return id%100; }
Int_t GetModuleFromIdIndex(Int_t id)const {return id/100; }
Double_t GetCellSizeX(Int_t ilayer){return fCellSizeX.At(ilayer);}
Double_t GetCellSizeZ(Int_t ilayer){return fCellSizeZ.At(ilayer);}
Double_t GetHalfLength(Int_t ilayer){return fHalfLength.At(ilayer);}
Double_t GetRadius(Int_t ilayer) {return fMinRadius.At(ilayer);}
Double_t GetAlpha(Int_t module) const;
Int_t GetModule(Double_t phi)const;
Int_t GetModule(Double_t x, Double_t y)const;
TArrayD GetFullCellSizeX() {return fCellSizeX;}
TArrayD GetFullCellSizeZ() {return fCellSizeZ;}
virtual void GetSegmentation(Int_t ilayer, Double_t &xsize, Double_t &zsize) const;
Int_t GetNSectors() {return fNSectors;}
virtual Float_t GetThickness(Int_t ilayer) const {if(ilayer > fMinRadius.GetSize() || ilayer < 0) return -1; else return fMaxRadius.At(ilayer) - fMinRadius.At(ilayer);}
static Int_t GetNLayers();
protected:
TArrayD fCellSizeX;
TArrayD fCellSizeZ;
Int_t fNSectors;
TArrayD fMinRadius ;
TArrayD fMaxRadius ;
TArrayD fHalfLength ;
private:
AliITSsegmentationUpgrade(const AliITSsegmentationUpgrade &source);
AliITSsegmentationUpgrade& operator=(const AliITSsegmentationUpgrade &source);
ClassDef(AliITSsegmentationUpgrade,2)
};
#endif
AliITSsegmentationUpgrade.h:1 AliITSsegmentationUpgrade.h:2 AliITSsegmentationUpgrade.h:3 AliITSsegmentationUpgrade.h:4 AliITSsegmentationUpgrade.h:5 AliITSsegmentationUpgrade.h:6 AliITSsegmentationUpgrade.h:7 AliITSsegmentationUpgrade.h:8 AliITSsegmentationUpgrade.h:9 AliITSsegmentationUpgrade.h:10 AliITSsegmentationUpgrade.h:11 AliITSsegmentationUpgrade.h:12 AliITSsegmentationUpgrade.h:13 AliITSsegmentationUpgrade.h:14 AliITSsegmentationUpgrade.h:15 AliITSsegmentationUpgrade.h:16 AliITSsegmentationUpgrade.h:17 AliITSsegmentationUpgrade.h:18 AliITSsegmentationUpgrade.h:19 AliITSsegmentationUpgrade.h:20 AliITSsegmentationUpgrade.h:21 AliITSsegmentationUpgrade.h:22 AliITSsegmentationUpgrade.h:23 AliITSsegmentationUpgrade.h:24 AliITSsegmentationUpgrade.h:25 AliITSsegmentationUpgrade.h:26 AliITSsegmentationUpgrade.h:27 AliITSsegmentationUpgrade.h:28 AliITSsegmentationUpgrade.h:29 AliITSsegmentationUpgrade.h:30 AliITSsegmentationUpgrade.h:31 AliITSsegmentationUpgrade.h:32 AliITSsegmentationUpgrade.h:33 AliITSsegmentationUpgrade.h:34 AliITSsegmentationUpgrade.h:35 AliITSsegmentationUpgrade.h:36 AliITSsegmentationUpgrade.h:37 AliITSsegmentationUpgrade.h:38 AliITSsegmentationUpgrade.h:39 AliITSsegmentationUpgrade.h:40 AliITSsegmentationUpgrade.h:41 AliITSsegmentationUpgrade.h:42 AliITSsegmentationUpgrade.h:43 AliITSsegmentationUpgrade.h:44 AliITSsegmentationUpgrade.h:45 AliITSsegmentationUpgrade.h:46 AliITSsegmentationUpgrade.h:47 AliITSsegmentationUpgrade.h:48 AliITSsegmentationUpgrade.h:49 AliITSsegmentationUpgrade.h:50 AliITSsegmentationUpgrade.h:51 AliITSsegmentationUpgrade.h:52 AliITSsegmentationUpgrade.h:53 AliITSsegmentationUpgrade.h:54 AliITSsegmentationUpgrade.h:55 AliITSsegmentationUpgrade.h:56 AliITSsegmentationUpgrade.h:57 AliITSsegmentationUpgrade.h:58 AliITSsegmentationUpgrade.h:59 AliITSsegmentationUpgrade.h:60 AliITSsegmentationUpgrade.h:61 AliITSsegmentationUpgrade.h:62 AliITSsegmentationUpgrade.h:63 AliITSsegmentationUpgrade.h:64 AliITSsegmentationUpgrade.h:65 AliITSsegmentationUpgrade.h:66 AliITSsegmentationUpgrade.h:67 AliITSsegmentationUpgrade.h:68 AliITSsegmentationUpgrade.h:69 AliITSsegmentationUpgrade.h:70 AliITSsegmentationUpgrade.h:71 AliITSsegmentationUpgrade.h:72 AliITSsegmentationUpgrade.h:73 AliITSsegmentationUpgrade.h:74 AliITSsegmentationUpgrade.h:75 AliITSsegmentationUpgrade.h:76 AliITSsegmentationUpgrade.h:77 AliITSsegmentationUpgrade.h:78 AliITSsegmentationUpgrade.h:79 AliITSsegmentationUpgrade.h:80 AliITSsegmentationUpgrade.h:81 AliITSsegmentationUpgrade.h:82 AliITSsegmentationUpgrade.h:83 AliITSsegmentationUpgrade.h:84 AliITSsegmentationUpgrade.h:85 AliITSsegmentationUpgrade.h:86 AliITSsegmentationUpgrade.h:87 AliITSsegmentationUpgrade.h:88