Project
Loading...
Searching...
No Matches
TrapConfigHandler.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef O2_TRD_TRAPCONFIGHANDLER_H
13#define O2_TRD_TRAPCONFIGHANDLER_H
14
16// //
17// Multi Chip Module Simulation Configuration Handler Class //
18// //
20
21#include <string>
23
24namespace o2
25{
26namespace trd
27{
28
29class TrapConfig;
30
32{
33 public:
34 TrapConfigHandler(TrapConfig* cfg = nullptr);
36
37 void init(); // Set DMEM allocation modes
38 void resetMCMs(); // Reset all trap registers and DMEM of the MCMs
39 int loadConfig(); // load a default configuration suitable for simulation
40 int loadConfig(std::string filename); // load a TRAP configuration from a file
41 int setGaintable(CalOnlineGainTables& gtbl); // Set a gain table to correct Q0 and Q1 for PID
42
43 void processLTUparam(int dest, int addr, unsigned int data); // Process the LTU parameters
44 void printGeoTest(); // Prints some information about the geometry. Only for debugging
45
46 // unsigned int peek(int rob, int mcm, int addr); // not implemented yet
47 // int poke(int rob, int mcm, int addr, unsigned int value); // not implemented yet
48
49 private:
50 bool addValues(unsigned int det, unsigned int cmd, unsigned int extali, int addr, unsigned int data);
51
52 void configureDyCorr(int det); // deflection length correction due to Lorentz angle and tilted pad correction
53 void configureDRange(int det); // deflection range LUT, range calculated according to B-field (in T) and pt_min (in GeV/c)
54 void configureNTimebins(int det); // timebins in the drift region
55 void configurePIDcorr(int det); // Calculate the mcm individual correction factors for the PID
56
57 double square(double val) const { return val * val; }; // returns the square of a given number
58
59 TrapConfigHandler(const TrapConfigHandler& h); // not implemented
60 TrapConfigHandler& operator=(const TrapConfigHandler& h); // not implemented
61
62 static const unsigned int mgkScsnCmdReset = 6; // SCSN command for reset
63 static const unsigned int mgkScsnCmdPause = 8; // SCSN command to pause
64 static const unsigned int mgkScsnCmdRead = 9; // SCSN command to read
65 static const unsigned int mgkScsnCmdWrite = 10; // SCSN command to write
66 static const unsigned int mgkScsnCmdPtrg = 12; // SCSN command for pretrigger
67 static const unsigned int mgkScsnCmdRobPower = 16; // SCSN command to switch ROB power
68 static const unsigned int mgkScsnCmdRobReset = 17; // SCSN command for ROB reset
69
70 static const unsigned int mgkScsnCmdRestr = 18; // SCSN command to restrict commands to specified chambers
71 static const unsigned int mgkScsnCmdTtcRx = 19; // SCSN command to configure TTCrx
72 static const unsigned int mgkScsnCmdHwPtrg = 20; // SCSN command to issue pretrigger pulse
73 static const unsigned int mgkScsnCmdSetHC = 22; // SCSN command to set HC ID
74 static const unsigned int mgkScsnCmdMcmTemp = 24; // SCSN command for MCM temperature sensors
75 static const unsigned int mgkScsnCmdPM = 25; // SCSN command for patchmaker
76 static const unsigned int mgkScsnCmdOri = 26; // SCSN command for ORI configuration
77 static const unsigned int mgkScsnLTUparam = 27; // extended SCSN command for the LTU configuration
78
79 static const int mgkMaxLinkPairs = 4; // number of linkpairs used during configuration
80 static const int mgkMcmlistSize = 256; // list of MCMs to which a value has to be written
81
82 unsigned int mRestrictiveMask; // mask to restrict subsequent commands to specified chambers
83 FeeParam* mFeeParam; //pointer to a singleton
84 TrapConfig* mTrapConfig; // pointer to TRAP config in use
85 CalOnlineGainTables mGtbl; // gain table
86};
87
88} //namespace trd
89} //namespace o2
90#endif
Class for time synchronization of RawReader instances.
int setGaintable(CalOnlineGainTables &gtbl)
void processLTUparam(int dest, int addr, unsigned int data)
GLboolean * data
Definition glcorearb.h:298
GLuint GLfloat * val
Definition glcorearb.h:1582
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::string filename()