Presentation is loading. Please wait.

Presentation is loading. Please wait.

ALICE Alpide Test Software.

Similar presentations


Presentation on theme: "ALICE Alpide Test Software."— Presentation transcript:

1 ALICE Alpide Test Software

2 Software Structure & Status

3 Structure Basic Software Structure
Basic classes TAlpide and TReadoutBoard (DAQ Board or MOSAIC) Setup is contained in one vectors of TAlpides and one vector of TReadoutBoards Each Alpide “knows” its readout board Each readout board knows control interface and receiver number for each of its Alpides Relations can be set manually for each device, but pre-defined setups exist (Single chip, IB HIC, OB HIC) Scalable to arbitrarily large structures, test routines independent of structure Tests typically loop over complete vector of chips

4 Software Structure Helper Classes
In principle all functionality is available via basic functions (e.g. Read/WriteRegister) But several helper functions help to perform standard procedures: SetupHelpers.cpp: initialisaton of standard setups AlpideConfig.cpp: standard configuration methods (Masking, standard configurations of complete blocks: DTU, CMU…) AlpideDecoder.cpp: Decoding of Alpide event data Needs a bit of cleanup, but in principle OK to use with GUI where needed

5 Software Structure Test Applications
Set of independent test programs, one for each test type Output written to text files for further analysis Advantage: flexible and fast to prepare new tests But: not suitable for GUI -> Scan class

6 Todo / Next Steps

7 Known issues Encapsulate output in messaging class (Xiaoming) Use exceptions throughout basic classes (tbc) Move configuration settings to config file (Markus) Prepare setup for half-stave (Yasser) Prepare scan class to be used by GUI (Markus)

8 Tscan class

9 Tscan class General considerations
Generic base class containing all possible steps of a loop-based scan as virtual methods Implementation of specific actions in derived classes for the concrete scans 3-nested-loop scan should satisfy all present and future scans (e.g. threshold scan: inner loop pulse height, outer loop mask staging; 3 loops would add possibility to scan over ITHR)

10 Scan Steps Methods needed for the different phases of the scan
Tscan::Init() Prepare setup for scan, e.g. set voltages, save module configuration for later restoration Tscan::LoopStart(int loopIndex) Settings to be performed once at the beginning of the loop Tscan::PrepareStep(int loopIndex) Prepare the individual scan step, mainly setting of the loop scan variable Tscan::Execute() Execute a step of the scan Tscan::LoopEnd(int loopIndex) End-of-loop actions; typically histogram related actions or calculations needed for execution of next step Tscan::Terminate() End-of-scan actions, e.g. restoring of initial configuration

11 Loop Control Methods needed for the control of the scan loops
Bool Tscan::Loop(int loopIndex) Returns whether the given loop is currently active; check for scan range and abort flag Tscan::Next(int loopIndex) Moves to next loop step

12 Scan Execution, 3-Loop Scan
TScan *scn = new TScan (TScanType type, TScanConfig *cfg, std::vector<TAlpide> chips, std::vector<TReadoutBoard> boards); scn->Reset(); scn->Init(); scn->LoopStart (2); While (scn->Loop(2)) { scn->prepareStep(2); scn->LoopStart(1); while (scn->Loop(1)) { scn->PrepareStep(1); scn->LoopStart(0); while (scn->Loop(0)) { scn->PrepareStep(0); scn->Execute(); scn->Next(0); } scn->LoopEnd(0); scn->Next(1); scn->LoopEnd(1); scn->Next(2); scn->LoopEnd(2); scn->Terminate();

13 Parameters Scan parameters Chip vector Board vector Scan type
Trigger configuration Scan-specific chip settings (analogue or digital injection etc. ) Loop parameters Loop parameter (parameter that is changed in loop; note that mask staging is used as a special loop parameter) List of values for parameter or min, max, step size End-of-loop actions Later: information whether loop is performed in RU?


Download ppt "ALICE Alpide Test Software."

Similar presentations


Ads by Google