00001 #ifndef TPADRPCPARAM_H 00002 #define TPADRPCPARAM_H 00003 00004 #include "TGo4Parameter.h" 00005 00006 #define NB_PADS_MAX_X 16 // Maximal Nb of pads along X axis which can be defined 00007 #define NB_PADS_MAX_Y 4 // Maximal Nb of pads along Y axis which can be defined 00008 00009 class TPadRpcParam : public TGo4Parameter { 00010 public: 00011 //parameters 00012 UInt_t uDebug; // Control the debug output 00013 Int_t iOffsetTdcCaen; // Tdc index in CAEN system used for offset calculation, Offset = 0 if -1 00014 Int_t iOffsetTdcVFTX; // Tdc index in VFTX system used for offset calculation, Offset = 0 if -1 00015 Int_t iOffsetChannelCaen; // Channel index in CAEN system used for offset calculation, Offset = 0 if -1 00016 Int_t iOffsetChannelVFTX; // Channel index in VFTX system used for offset calculation, Offset = 0 if -1 00017 Int_t iDiamondTdcCaen; // Tdc index in CAEN system used for Diamond 00018 Int_t iDiamondChannelCaen; // Channel index in CAEN system used for Diamond 00019 Int_t iDiamondTdcVFTX; // Tdc index in VFTX system used for Diamond 00020 Int_t iDiamondChannelVFTX; // Channel index in VFTX system used for Diamond 00021 Int_t iRateIntegrationDuration; // Time interval between rate histograms reset 00022 Int_t iRateIntegrationStep; // Time interval between rate histograms update, has to be < iRateIntegrationDuration 00023 00024 // Pad RPCs settings 00025 UInt_t uTdcTypePad; // Tell which tdc type to use for this strip RPC: 0 = CAEN, 1 = VFTX, 2 = MIXED 00026 TString sPadRpcName; // Name of pad RPC for the beam profile monitor 00027 Double_t dPadRpcPosX; // Position of pad RPC in X direction, in cm 00028 Double_t dPadRpcPosY; // Position of pad RPC in Y direction, in cm 00029 Double_t dPadRpcPosZ; // Position of pad RPC in Z direction, in cm 00030 UInt_t uNbPadsX; // Nb of pads along X axis for the beam profile monitor 00031 UInt_t uNbPadsY; // Nb of pads along Y axis for the beam profile monitor 00032 Double_t dPadSizeX; // Size of pad on X axis in cm for the beam profile monitor 00033 Double_t dPadSizeY; // Size of pad on Y axis in cm for the beam profile monitor 00034 UInt_t uOrientation; // Detector orientation: 0 = horizontal strip, 1 = vertical strips 00035 Int_t iTriggerSelection; // Trigger required for histo filling. -1 means not selection. 00036 00037 UInt_t uTdcPadType[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of tdc type for each pad ( 0 = CAEN, 1 = VFTX ) 00038 UInt_t uTdcPadNoisy[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of "noisy flag" for each pad ( 0 = ok, 1 = noisy ) 00039 UInt_t uTdcPadDead[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of "dead flag" for each pad ( 0 = ok, 1 = dead ) 00040 UInt_t uTdcPadTime[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of tdc index for the time of each pad 00041 UInt_t uChannelPadTime[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of channels inside tdc for the time of each pad 00042 UInt_t uTdcPadTot[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of tdc index for the tot of each pad 00043 UInt_t uChannelPadTot[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of channels inside tdc for side tot of each pad 00044 00045 Double_t dOffsetList[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of the time offsets for each strip in beam profile monitor in ns 00046 Double_t dToTGainList[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of the tot gain for each pad in beam profile monitor 00047 Double_t dTotOffsetList[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of the tot offsets for each pad in beam profile monitor in ps 00048 00049 Double_t dOffsetMatching[NB_PADS_MAX_Y][NB_PADS_MAX_X]; // List of the time offsets for each strip in matching in ps 00050 00051 //functions 00052 TPadRpcParam(const char* name = 0); //Constructor 00053 00054 ~TPadRpcParam(); //Destructor 00055 00056 Int_t PrintOptions(); //prints out the parameters 00057 00058 private: 00059 Bool_t ReadOptions(); //reads out the data from the text file 00060 00061 ClassDef(TPadRpcParam,1) 00062 }; 00063 00064 #endif // TPADRPCPARAM_H