00001 #include "TRpcRec.h" 00002 00003 TRpcRec::TRpcRec() 00004 { 00005 // Flags 00006 bFirstEpochBlock = kTRUE; 00007 bStoredHitUnp = kFALSE; 00008 00009 uEpochStart.clear(); // Vector, 1 per buff 00010 uCycleStart.clear(); // Vector, 1 per buff 00011 00012 u_messageCountLastEpoch = 0; 00013 00014 // Histograms 00015 fVGetTimeCorrelation.clear(); // Time Correlation between two channels 00016 fVGetTotCorrelation.clear(); // Tot Correlation between two channels 00017 fVCheckCorrelation.clear(); // Correlation between three channels 00018 fVCheckCorrelation4.clear(); // Correlation between three channels 00019 00020 fGet4MessValidEpochs = 0; // Nb of Messages in valid Epochs 00021 00022 for(Int_t iChan = 0; iChan < NB_CHAN_GET4; iChan++) 00023 { 00024 u_nbConsLE[iChan] = 0; 00025 u_nbConsTE[iChan] = 0; 00026 // mLastLeading[iChan].Clear(); 00027 // mLastTrailing[iChan].Clear(); 00028 00029 hitCurrent[iChan].Clear(); 00030 hitLatest[iChan].Clear(); 00031 00032 hitCurrentBlock[iChan].Clear(); 00033 hitLatestBlock[iChan].Clear(); 00034 00035 dInstantRateMean[iChan] = 0.0; 00036 uInstantRateCounter[iChan] = 0; 00037 00038 fGet4FineTimeLE[iChan] = 0; // Finetime of Leading Edge 00039 fGet4FineTimeTE[iChan] = 0; // Finetime of Trailing Edge 00040 fGet4LeDnl[iChan] = 0; // DNL value for each bin 00041 fGet4LeDnlSum[iChan] = 0; // Integral of DNL value up to each bin 00042 fGet4TeDnl[iChan] = 0; // DNL value for each bin 00043 fGet4TeDnlSum[iChan] = 0; // Integral of DNL value up to each bin 00044 fGet4TOT[iChan] = 0; // Time over threshold 00045 00046 // Finetime check 00047 uNbHitsInEventLE[iChan] = 0; // Nb of hits for each channel in this event 00048 uNbHitsInEventTE[iChan] = 0; // Nb of hits for each channel in this event 00049 fGet4FineTimeLE_First[iChan] = 0; // Finetime of Leading Edge first hit in event 00050 fGet4FineTimeTE_First[iChan] = 0; // Finetime of Trailing Edge first hit in event 00051 fGet4FineTimeLE_Second[iChan] = 0; // Finetime of Leading Edge first hit in event 00052 fGet4FineTimeTE_Second[iChan] = 0; // Finetime of Trailing Edge first hit in event 00053 00054 fGet4PulseSpacingClose[iChan]= 0; // Pulse spacing between current and last hit, ns range 00055 fGet4PulseSpacingMid[iChan] = 0; // Pulse spacing between current and last hit, us range 00056 fGet4PulseSpacingFar[iChan] = 0; // Pulse spacing between current and last hit, s range 00057 fGet4InstantRate[iChan] = 0; // Instantaneous rate average over 8 or 10 hits 00058 fGet4LeSpacingClose[iChan] = 0; // Pulse spacing between current and last leading edge, ns range 00059 fGet4TeSpacingClose[iChan] = 0; // Pulse spacing between current and last trailing edge, ns range 00060 00061 fGet4RisEdgesNbEvol[iChan] = 0; // Nb of rising edges depending on cycle/chan 00062 fGet4FalEdgesNbEvol[iChan] = 0; // Nb of falling edges depending on cycle/chan 00063 fGet4HitsNbEvolution[iChan] = 0; // Nb of matched hits depending on cycle/chan 00064 00065 fNbConsecutiveLE[iChan] = 0; // Nb of consecutive Leading edges (should stay at 1 or max 2 when multi hits) 00066 fNbConsecutiveTE[iChan] = 0; // Nb of consecutive Trailing edges (should stay at 1 or max 2 when multi hits) 00067 fTestConsecutiveLE[iChan] = 0; // Checking id two consecutive leading edges are coming from Hit too close for GET4 00068 fTestConsecutiveTE[iChan] = 0; // Checking id two consecutive trailing edges are coming from Hit too close for GET4 00069 fTest2ConsecutiveLE[iChan] = 0; // Checking id two consecutive leading edges are coming from Hit too close for GET4 00070 fTest2ConsecutiveTE[iChan] = 0; // Checking id two consecutive trailing edges are coming from Hit too close for GET4 00071 } 00072 }