]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/PHOSbase/AliPHOSCpvParam.h
Added new classes for CPV raw data reconstruction
[u/mrichter/AliRoot.git] / PHOS / PHOSbase / AliPHOSCpvParam.h
CommitLineData
0d931d35 1#ifndef AliPHOSCPVParam_h
2#define AliPHOSCPVParam_h
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6// Class provides a set of static methods to convert absolute number of pad to pair (X,Y)
7// and vice versa
8// and some other
9// Author - Mikhail Stolpovskiy, IHEP Protvino (2013)
10
11#include <TNamed.h> //base class
12#include "AliPHOSCpv3GConnection.h"
13
14class AliPHOSCpvParam :public TNamed
15{
16 public:
17 enum EChamberData{kMinCh=0,kMaxCh=0}; //Segmenation. CPV has only one chamber
18 enum EPadxData{kPadPcX=128,kMinPx=0,kMaxPx=127}; //Segmentation structure along x
19 enum EPadyData{kPadPcY=60 ,kMinPy=0,kMaxPy=59 }; //Segmentation structure along y
20 enum {
21 kNRows = 16, // Number of rows (column controlers)
22 kN3GAdd = 10, // Number of 3GASSIPLEXs in a row
23 kNPadAdd = 48, // Number of pad row
24 kNRowsPerSegment = 8, // Number of rows per segment
25 kNDDL = 5, // Number of already installed modules (ddls)
26 kNModules = 5 // Number of modules (equals to the number of PHOS modules)
27 };
28
29 // x <=> phi
30 // y <=> Z
31 // But x-y is a local module axes (Int_t)
32
33 static Bool_t IsValidAbs(Int_t abs);
34 static Bool_t DecodeRawWord(Int_t ddl,Int_t rWord, Int_t & abs, Int_t & q, Int_t & eType);
35 static Int_t Abs (Int_t ddl,Int_t columnCtrl,Int_t gassiplex3,Int_t pad); // abs pad
36 static Int_t A2DDL(Int_t abs) ; // abs pad -> ddl
37 static Int_t A2Mod(Int_t abs) ; // abs -> number of module
38 static Int_t DDL2Mod(Int_t ddl);
39 static Int_t Mod2DDL(Int_t mod);
40 static Int_t A2CC (Int_t abs) ; // abs pad -> column controler
41 static Int_t A23G (Int_t abs) ; // abs pad -> number of 3gassiplex card
42 static Int_t A2Pad(Int_t abs) ; // abs pad -> number of pad in 3gassiplex
43 static Int_t A2X (Int_t abs) ; // abs pad -> pad X
44 static Int_t A2Y (Int_t abs) ; // abs pad -> pad Y
45 static Int_t XY2A (Int_t ddl, Int_t x, Int_t y) ; // pad X,Y -> abs pad
46 static Int_t X2CC (Int_t x) ; // pad X -> number of column controller
47 static Int_t Y23G (Int_t y) ; // pad Y -> number of 3gassiplex card
48 static Int_t XY2Pad (Int_t x, Int_t y) ; // pad X,Y -> number of pad in 3gassiplex
49 static Bool_t GetLimOfCConX( Int_t cc, Int_t &xmin, Int_t &xmax); // returns limits on X for column controler cc
50 static Bool_t GetLimOf3GonY( Int_t g3, Int_t &ymin, Int_t &ymax); // returns limits on Y for 3gassiplex g3
51
52 static Int_t A2fId(Int_t abs) ; // returns number of channel with common PHOS+CPV numeration
53
54 private:
55 // connection of channels of 3gassiplex to pads
56 static AliPHOSCpv3GConnection fConnection;
57 ClassDef(AliPHOSCpvParam,1); //CPV main parameters class
58};
59#endif