StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFstConsts.h
1 /***************************************************************************
2 * StFstConsts
3 * Author: Shenghui Zhang, Sep 2021
4 * Initial Revision
5 * Description: Hard-coded constants for the FST detector.
6 ****************************************************************************/
7 
8 #ifndef StFstConsts_h
9 #define StFstConsts_h
10 
11 #include "StEvent/StEnumerations.h"
12 #include "TMath.h"
13 const int kFstNumWedges = 36;
14 const int kFstNumSensorsPerWedge = 3;
15 const int kFstNumInnerSensorsPerWedge = 1;
16 const int kFstNumOuterSensorsPerWedge = 2;
17 const int kFstNumSensors = 108;
18 const int kFstNumStripsPerInnerSensor = 512;
19 const int kFstNumStripsPerOuterSensor = 256;
20 const int kFstNumWedgePerDisk = 12;
21 const int kFstNumPhiSegPerWedge = 128;
22 const int kFstNumPhiSegPerSensor = 128;
23 const int kFstNumRStripsPerSensor = 4;
24 
25 /*
26  * Hard-coded constants
27  */
28 //electronics constants
29 const int kFstNumRdos = 6; // Rdos, numbering from 1, 2, 3, ..., 6
30 const int kFstNumArmsPerRdo = 3; // 3 ARMs covered per Rdo
31 const int kFstNumApvsPerArm = 16; // 16 APV chips covered by one ARM, numbering 0-7 & 12-19
32 const int kFstNumApvChannels = 128; // 128 readout channels per one APV chip
33 const int kFstNumChanPerArm = 2048; // 16*128 channels per ARM board
34 const int kFstNumElecIds = 36864; // 8*36*128 channels, elec. ID numbering from 0 to 36863
35 const int kFstApvsPerWedge = 8; // 8 APV chips covered in one Wedge
36 const int kFstNumApvs = 288; // 36*8 APV chips in whole FST detector
37 const int kFstNumRStripsPerWedge = 8; // 8 R-strips per each Wedge
38 const int kFstNumDisk = 3; // 3 Disk
39 const int kFstNumWedsPerRdo = 6; // 6 wedegs per Rdo
40 const int kFstNumWedsPerArm = 2; // 2 wedges per ARM
41 
42 //FST strip dimenssion
43 const float kFstSensorActiveSizeR = 5; //cm, smallest radius of FST sensor active area in R direction
44 const float kFstStripPitchR = 2.875; // cm, FST strip pitch in r direction is (28-16.5)/4. or (16.5-5)/4.
45 const float kFstStripPitchPhi = TMath::Pi()*30.0/180.0/kFstNumPhiSegPerSensor; //rad, FST strip pitch in phi direction
46 const float kFstStripGapPhi = TMath::Pi()*1.0/180.0; //rad, 1 degree gap between 2 outer sensor of FST
47 const int kFstzFilp[kFstNumDisk] = {1,-1,1};
48 const int kFstzDirct[kFstNumWedgePerDisk] = {1,-1,1,-1,1,-1,1,-1,1,-1,1,-1};
49 const float kFstphiStart[kFstNumWedgePerDisk] = {2.0, 2.0, 0.0, 12.0, 10.0, 10.0, 8.0, 8.0, 6.0, 6.0, 4.0, 4.0}; // * pi/6
50 const float kFstphiStop[kFstNumWedgePerDisk] = {3.0, 1.0, 1.0, 11.0, 11.0, 9.0, 9.0, 7.0, 7.0, 5.0, 5.0, 3.0}; // * pi/6
51 const float kFstrStart[kFstNumRStripsPerWedge]= {5.000, 7.875, 10.750, 13.625, 16.500, 19.375, 22.250, 25.125}; // in cm
52 const float kFstrStop[kFstNumRStripsPerWedge] = {7.875, 10.750, 136.25, 16.500, 19.375, 22.250, 25.125, 28.000}; // in cm
53 
54 //general APV chip constants
55 const unsigned char kFstNumTimeBins = 9; // 9 time bins for ADC sampling (maximum time bin number, 3 or 9)
56 const unsigned char kFstDefaultTimeBin = 2; // the default time bin number (2nd time bin) for FST raw hits
57 const int kFstMaxAdc = 4096; // ADC value should be less than 4096 (12 bits ADC)
58 
59 #endif