3 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 ///////////////////////////////////////////////////////////////////
10 // Class for SDD maps used to correct for //
11 // voltage divider shape and doping fluctuations //
12 // Origin: F.Prino, Torino, prino@to.infn.it //
14 ///////////////////////////////////////////////////////////////////
16 #include "AliITSsegmentationSDD.h"
22 class AliITSMapSDD : public TNamed {
26 AliITSMapSDD(Char_t *mapname);
27 virtual ~AliITSMapSDD(){};
29 void SetMap(TH2F* hmap);
30 Bool_t CheckBounds(Int_t iAn, Int_t iTb) const {
31 if(iAn<0 || iAn>=fgkNAnodPts || iTb<0 || iTb >= fgkNDrifPts){
32 AliWarning(Form("Cell out of bounds, anode=%d time-bin=%d",iAn,iTb));
37 void SetCellContent(Int_t iAn, Int_t iTb, Float_t devMicron){
38 if(CheckBounds(iAn,iTb)) fMap[iAn][iTb]=(Short_t)(devMicron*10.+0.5);
41 Float_t GetCellContent(Int_t iAn, Int_t iTb) const {
42 if(CheckBounds(iAn,iTb)) return (Float_t)fMap[iAn][iTb]/10.;
45 Float_t GetCorrection(Float_t z, Float_t x, AliITSsegmentationSDD *seg);
46 static Int_t GetNBinsAnode() {return fgkNAnodPts;}
47 static Int_t GetNBinsDrift() {return fgkNDrifPts;}
49 TH2F* GetMapHisto() const;
50 TH1F* GetResidualDistr(Float_t dmin=-300., Float_t dmax=300.) const;
53 static const Int_t fgkNAnodPts = 256; // number of map points along anodes
54 static const Int_t fgkNDrifPts = 72; // number of map points along anodes
55 Short_t fMap[fgkNAnodPts][fgkNDrifPts]; // map of deviations
56 // stored as Short_t: integer
57 // values from -32000 to 32000
58 // in the range -3.2 - 3.2 mm
60 ClassDef(AliITSMapSDD,2);