• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

beamtime/gsi-aug12/hd/go4/RPC/TRpcRec.h (r4864/r3172)

Go to the documentation of this file.
00001 #ifndef TRPCREC_H
00002 #define TRPCREC_H
00003 
00004 
00005 #include <vector>
00006 #include <stdint.h>
00007 
00008 #include "TCBMBeamtimeProc.h"
00009 
00010 #include "TRocEvent.h"
00011 #include "TRPCParam.h"
00012 
00013 #include "TGet4HitUnpacked.h"
00014 
00015 class TRpcParam;
00016 class TGo4MbsSubEvent;
00017 class TGet4HitUnpacked;
00018 
00019 // Structure with all data field for 1 Get4 chip!
00020 struct TRpcRec {      
00021    UInt_t    u_nbConsLE[NB_CHAN_GET4];
00022    UInt_t    u_nbConsTE[NB_CHAN_GET4];
00023    TRocMessageExtended mLastLeading[NB_CHAN_GET4]; // Last leading message / channel
00024    TRocMessageExtended mLastTrailing[NB_CHAN_GET4]; // Last trailing message / channel
00025 
00026       // Flags
00027    Bool_t    bFirstEpochBlock;
00028    Bool_t    bStoredHitUnp;
00029      
00030    std::vector<UInt_t> uEpochStart; // Start of each message XX epochs buffer
00031    std::vector<UInt_t> uCycleStart; // Start of each message XX epochs buffer  
00032 
00033       // Check for Hits Building
00034    TGet4HitUnpacked hitCurrent[NB_CHAN_GET4];
00035    TGet4HitUnpacked hitLatest[NB_CHAN_GET4];
00036    
00037       // Check for Time ordering of Hits
00038    TGet4HitUnpacked hitCurrentBlock[NB_CHAN_GET4];
00039    TGet4HitUnpacked hitLatestBlock[NB_CHAN_GET4];
00040    
00041    // Rate variable
00042    Double_t   dInstantRateMean[NB_CHAN_GET4];
00043    Double_t  *dInstantRateOld[NB_CHAN_GET4]; 
00044    UInt_t     uInstantRateCounter[NB_CHAN_GET4];
00045   
00046    UInt_t     u_messageCountLastEpoch;
00047    
00048    
00049    // Histograms
00050    TH1 *fGet4FineTimeLE[NB_CHAN_GET4];        // Finetime of Leading Edge
00051    TH1 *fGet4FineTimeTE[NB_CHAN_GET4];        // Finetime of Trailing Edge
00052    TH1 *fGet4LeDnl[NB_CHAN_GET4];             // DNL value for each bin
00053    TH1 *fGet4LeDnlSum[NB_CHAN_GET4];          // Integral of DNL value up to each bin
00054    TH1 *fGet4TeDnl[NB_CHAN_GET4];             // DNL value for each bin
00055    TH1 *fGet4TeDnlSum[NB_CHAN_GET4];          // Integral of DNL value up to each bin
00056 
00057    // Finetime check
00058    UInt_t uNbHitsInEventLE[NB_CHAN_GET4];     // Nb of hits for each channel in this event
00059    UInt_t uNbHitsInEventTE[NB_CHAN_GET4];     // Nb of hits for each channel in this event
00060    TH1 *fGet4FineTimeLE_First[NB_CHAN_GET4];  // Finetime of Leading Edge first hit in event
00061    TH1 *fGet4FineTimeTE_First[NB_CHAN_GET4];  // Finetime of Trailing Edge first hit in event
00062    TH1 *fGet4FineTimeLE_Second[NB_CHAN_GET4]; // Finetime of Leading Edge second hit in event
00063    TH1 *fGet4FineTimeTE_Second[NB_CHAN_GET4]; // Finetime of Trailing Edge Second hit in event
00064 
00065    TH1 *fGet4TOT[NB_CHAN_GET4];               // Time over threshold
00066 
00067    TH1 *fGet4PulseSpacingClose[NB_CHAN_GET4]; // Pulse spacing between current and last hit, ns range
00068    TH1 *fGet4PulseSpacingMid[NB_CHAN_GET4];   // Pulse spacing between current and last hit, us range
00069    TH1 *fGet4PulseSpacingFar[NB_CHAN_GET4];   // Pulse spacing between current and last hit, s range
00070    TH2 *fGet4InstantRate[NB_CHAN_GET4];       // Instantaneous rate average over 8 or 10 hits
00071    TH1 *fGet4LeSpacingClose[NB_CHAN_GET4]; // Pulse spacing between current and last leading edge, ns range
00072    TH1 *fGet4TeSpacingClose[NB_CHAN_GET4]; // Pulse spacing between current and last trailing edge, ns range
00073                                 
00074    std::vector< TH1 * > fVGetTimeCorrelation; // Time Correlation between two channels
00075    std::vector< TH2 * > fVGetTotCorrelation;  // Tot  Correlation between two channels
00076    std::vector< TH1 * > fVCheckCorrelation;   // Correlation between three channels
00077    std::vector< TH2 * > fVCheckCorrelation4;  // Correlation between three channels
00078   
00079    TH1 *fGet4RisEdgesNbEvol[NB_CHAN_GET4];    // Nb of rising  edges depending on cycle/chan
00080    TH1 *fGet4FalEdgesNbEvol[NB_CHAN_GET4];    // Nb of falling edges depending on cycle/chan
00081    TH1 *fGet4HitsNbEvolution[NB_CHAN_GET4];   // Nb of matched hits depending on cycle/chan
00082   
00083    TH1 *fGet4MessValidEpochs;                 // Nb of Messages in valid Epochs 
00084   
00085    TH1 *fNbConsecutiveLE[NB_CHAN_GET4];       // Nb of consecutive Leading edges (should stay at 1 or max 2 when multi hits)
00086    TH1 *fNbConsecutiveTE[NB_CHAN_GET4];       // Nb of consecutive Trailing edges (should stay at 1 or max 2 when multi hits)
00087    TH2 *fTestConsecutiveLE[NB_CHAN_GET4];     // Checking id two consecutive leading edges are coming from Hit too close for GET4
00088                                               // by looking at the time between First edge and previous trailing edge
00089    TH2 *fTestConsecutiveTE[NB_CHAN_GET4];     // Checking id two consecutive trailing edges are coming from Hit too close for GET4
00090                                               // by looking at the time between First edge and previous leading edge
00091    TH2 *fTest2ConsecutiveLE[NB_CHAN_GET4];     // Checking id two consecutive leading edges are coming from Hit too close for GET4
00092                                               // by looking at the time between First edge and previous trailing edge
00093    TH2 *fTest2ConsecutiveTE[NB_CHAN_GET4];     // Checking id two consecutive trailing edges are coming from Hit too close for GET4
00094                                               // by looking at the time between First edge and previous leading edge
00095    
00096    TRpcRec();
00097 };
00098 
00099 #endif // TRPCREC_H

Generated on Tue Dec 10 2013 04:52:19 for ROCsoft by  doxygen 1.7.1