////////////////////////////////////////////////////////////////////////////// // File: L1_Tcc_Monit_Data_PerBunch.hpp // Created: 07-OCT-2001 Philippe Laurens (split away from Tcc_Monit_Data.hpp) ////////////////////////////////////////////////////////////////////////////// #ifndef __L1_Tcc_Monit_Data_PerBunch__ #define __L1_Tcc_Monit_Data_PerBunch__ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // array dimension parameters (used in definition or usage of some of the structures Below) #define kTcc_Pbs_Tot_ExpGrp kTcc_L1fw_Tot_ExpGrp // Total Number of Exposure Groups #define kTcc_Pbs_Tot_Foreign 10 // Total Number of Foreign Per Bunch Scaler #define kTcc_Pbs_Tot_Tick kTcc_L1fw_Max_TickNum // Total Number of Ticks in a Turn /////////////////////////////////////////////////////////////////////////////////// // Per Bunch Scalers Sub-Structure (used in definition of Monitoring Data Blocks) // A more accurate name would be "Per Tick Scaler" (from 1 to 159) as only SOME // of the Ticks (36 at the moment) are populated with an actual bunch of particles // in the machine, the other Ticks corresponding to empty RF buckets. /////////////////////////////////////////////////////////////////////////////////// // All scalers currently only have 32 bits filled, but will become 64 bit in the future // - Ticks in a turn are numbered from 1 to 159 // - Per Bunch Scalers are arrays of 160x 64-bit scaler counts. // - The element at index 1 holds the scaler count for Tick #1, index 2 is Tick #2, etc. // - The Scaler for a particular Tick will increment only if the indicator // being scaled is satisfied (as for any normal scaler) AND if this particular Tick // is currently crossing through the detector // - The first element in each array (at index 0) is not a "per bunch" scaler, // but will increment for any tick a soon as the indicator being scaled is satisfied. // The element at index 0 can thus be considered as a checksum // of all the other 159 scaler counts. // - The location of the populated bunches, typically numbered P1 to Pn by // the Accelerator Control Room needs to be determined separately // The mapping of Particle Bunch (populated bucket) to Tick will remain fixed. struct L1_Tcc_L1fw_Per_Bunch_Scaler { uint64 auqTick[kTcc_Pbs_Tot_Tick+1] ; } ; // parameter to use as an index with the auqTick fields // of the L1_Tcc_L1fw_Per_Bunch_Scaler data structure // to retrieve the integrated sum of all ticks (i.e. the NON-per-bunch scaler) #define kTcc_Pbs_AllTicksIntegrated 0 /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// // define alias for backwards compatibility typedef L1_Tcc_L1fw_Per_Bunch_Scaler Tcc_L1fw_Per_Bunch_Scaler ; ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// #endif // __L1_Tcc_Monit_Data_PerBunch__