00001 #ifndef TBEAMMONITORPARAM_H 00002 #define TBEAMMONITORPARAM_H 00003 00004 #include "TGo4Parameter.h" 00005 00006 #define NB_STRIP_RPC_MAX 5 // Maximal number of RPCs with strips 00007 #define NB_STRIPS_MAX 150 // Maximal Nb of strips which can be defined 00008 00009 #define NB_PAD_RPC_MAX 5 // Maximal number of RPCs with pads 00010 #define NB_PADS_X_MAX 10 // Maximal Nb of pads in X direction which can be defined 00011 #define NB_PADS_Y_MAX 2 // Maximal Nb of pads in Y direction which can be defined 00012 00013 class TBeamMonitorParam : public TGo4Parameter { 00014 public: 00015 TBeamMonitorParam(const char* name = 0); 00016 00017 virtual ~TBeamMonitorParam(); 00018 00019 virtual Bool_t UpdateFrom(TGo4Parameter *); 00020 00021 Int_t PrintOptions(); 00022 00023 Int_t ConvertChToTdcAndCh( Int_t iChannelNumberCaenTdc, Int_t iChannelNumberVftxTdc ); 00024 00025 // Int_t Dummy; // dummy variable 00026 00027 // General settings 00028 UInt_t uDebug; // If 1, this class will spit out debug text for most operations 00029 Int_t iOffsetFullChannelCaen; // General (raw) channel index in CAEN system used for offset calculation, Offset = 0 if -1 00030 Int_t iOffsetFullChannelVFTX; // General (raw) channel index in VFTX system used for offset calculation, Offset = 0 if -1 00031 Int_t iOffsetTdcCaen; // Tdc index in CAEN system used for offset calculation, Offset = 0 if -1 00032 Int_t iOffsetTdcVFTX; // Tdc index in VFTX system used for offset calculation, Offset = 0 if -1 00033 Int_t iOffsetChannelCaen; // Channel index in CAEN system used for offset calculation, Offset = 0 if -1 00034 Int_t iOffsetChannelVFTX; // Channel index in VFTX system used for offset calculation, Offset = 0 if -1 00035 Int_t iRateIntegrationDuration; // Time interval between rate histograms reset 00036 Int_t iRateIntegrationStep; // Time interval between rate histograms update, has to be < iRateIntegrationDuration 00037 00038 // Strip RPCs setings 00039 Int_t iNbStripRpcs; // Nb of strip RPC for the beam profile monitor 00040 UInt_t uTdcTypeStrip[NB_STRIP_RPC_MAX]; // Tell which tdc type to use for this strip RPC: 0 = CAEN, 1 = VFTX 00041 TString sStripRpcName[NB_STRIP_RPC_MAX]; // Name of each strip RPC for the beam profile monitor 00042 Double_t dStripRpcPosX[NB_STRIP_RPC_MAX]; // Position of each strip RPC in X direction, in cm 00043 Double_t dStripRpcPosY[NB_STRIP_RPC_MAX]; // Position of each strip RPC in Y direction, in cm 00044 Double_t dStripRpcPosZ[NB_STRIP_RPC_MAX]; // Position of each strip RPC in Z direction, in cm 00045 UInt_t uNbStrips[NB_STRIP_RPC_MAX]; // Nb of strips for the beam profile monitor 00046 Double_t dStripWidth[NB_STRIP_RPC_MAX]; // Width of strips in cm for the beam profile monitor 00047 Double_t dTimeConv[NB_STRIP_RPC_MAX]; // Time conversion factor in cm/ns for the beam profile monitor 00048 00049 UInt_t uStripLeftList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of general (raw) channels for the left side of each strip for beam profile monitor 00050 UInt_t uStripRightList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of general (raw) channels for the right side of each strip for beam profile monitor 00051 UInt_t uTdcStripLeftList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of tdc index for the left side of each strip for beam profile monitor 00052 UInt_t uTdcStripRightList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of tdc index for the right side of each strip for beam profile monitor 00053 UInt_t uChannelStripLeft[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of channels inside tdc for the left side of each strip for beam profile monitor 00054 UInt_t uChannelStripRight[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of channels inside tdc for the right side of each strip for beam profile monitor 00055 00056 UInt_t uTotStripLeftList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of general (raw) channels for the left side of each strip for beam profile monitor 00057 UInt_t uTotStripRightList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of general (raw) channels for the right side of each strip for beam profile monitor 00058 UInt_t uTotTdcStripLeftList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of tdc index for the left side of each strip for beam profile monitor 00059 UInt_t uTotTdcStripRightList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of tdc index for the right side of each strip for beam profile monitor 00060 UInt_t uTotChannelStripLeft[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of channels inside tdc for the left side of each strip for beam profile monitor 00061 UInt_t uTotChannelStripRight[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of channels inside tdc for the right side of each strip for beam profile monitor 00062 00063 Double_t dOffsetList[NB_STRIP_RPC_MAX][NB_STRIPS_MAX]; // List of the offset for each strip in beam profile monitor in cm 00064 Int_t iBeamProfileSize[NB_STRIP_RPC_MAX]; // Size of the beam profile histogram along X axis in cm 00065 00066 // Pad RPCs settings 00067 Int_t iNbPadRpcs; // Nb of pad RPC for the beam profile monitor 00068 UInt_t uTdcTypePad[NB_PAD_RPC_MAX]; // Tell which tdc type to use for this pad RPC: 0 = CAEN, 1 = VFTX 00069 TString sPadRpcName[NB_PAD_RPC_MAX]; // Name of each pad RPC for the beam profile monitor 00070 Double_t dPadRpcPosX[NB_STRIP_RPC_MAX]; // Position of each pad RPC in X direction, in cm 00071 Double_t dPadRpcPosY[NB_STRIP_RPC_MAX]; // Position of each pad RPC in Y direction, in cm 00072 Double_t dPadRpcPosZ[NB_STRIP_RPC_MAX]; // Position of each pad RPC in Z direction, in cm 00073 UInt_t uNbPadsX[NB_PAD_RPC_MAX]; // Nb of pads for the beam profile monitor along X direction 00074 UInt_t uNbPadsY[NB_PAD_RPC_MAX]; // Nb of pads for the beam profile monitor along X direction 00075 Double_t dPadSizeX[NB_STRIP_RPC_MAX]; // Size of pad in cm along X direction for the beam profile monitor 00076 Double_t dPadSizeY[NB_STRIP_RPC_MAX]; // Size of pad in cm along Y direction for the beam profile monitor 00077 UInt_t uPadsList[NB_PAD_RPC_MAX][NB_PADS_Y_MAX][NB_PADS_X_MAX];// List of general (raw) channels for the pads for beam profile monitor 00078 UInt_t uPadsTdc[NB_PAD_RPC_MAX][NB_PADS_Y_MAX][NB_PADS_X_MAX]; // List of tdc index for the pads for beam profile monitor 00079 UInt_t uPadsChan[NB_PAD_RPC_MAX][NB_PADS_Y_MAX][NB_PADS_X_MAX];// List of channels inside tdc for the pads for beam profile monitor 00080 00081 private: 00082 Bool_t ReadOptions(); 00083 00084 ClassDef(TBeamMonitorParam,2) 00085 }; 00086 00087 #endif