]>
Commit | Line | Data |
---|---|---|
5ac2e3b1 | 1 | #ifndef ALITRDMCMSIMCONFIGHANDLER_H |
2 | #define ALITRDMCMSIMCONFIGHANDLER_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | //////////////////////////////////////////////////////////////// | |
7 | // // | |
8 | // Multi Chip Module Simulation Configuration Handler Class // | |
9 | // // | |
10 | //////////////////////////////////////////////////////////////// | |
11 | ||
12 | ||
13 | #include <TObject.h> | |
5e86ff99 | 14 | #include "AliTRDltuParam.h" |
5f7c3c48 | 15 | #include "AliTRDCalOnlineGainTable.h" |
2b2b540f | 16 | #include "AliTRDtrapConfig.h" |
5ac2e3b1 | 17 | |
18 | class AliTRDtrapConfigHandler : public TObject { | |
19 | public: | |
2b2b540f | 20 | AliTRDtrapConfigHandler(AliTRDtrapConfig *cfg); |
5ac2e3b1 | 21 | virtual ~AliTRDtrapConfigHandler(); |
22 | ||
2b2b540f | 23 | void Init(); // Set DMEM allocation modes |
5ac2e3b1 | 24 | void ResetMCMs(); // Reset all trap registers and DMEM of the MCMs |
5e86ff99 | 25 | Int_t LoadConfig(); // load a default configuration suitable for simulation |
51380642 | 26 | Int_t LoadConfig(TString filename); // load a TRAP configuration from a file |
5f7c3c48 | 27 | Int_t SetGaintable(AliTRDCalOnlineGainTable const >bl); // Set a gain table to correct Q0 and Q1 for PID |
5ac2e3b1 | 28 | |
29 | void ProcessLTUparam(Int_t dest, Int_t addr, UInt_t data); // Process the LTU parameters | |
30 | void PrintGeoTest(); // Prints some information about the geometry. Only for debugging | |
31 | ||
32 | // UInt_t peek(Int_t rob, Int_t mcm, Int_t addr); // not implemented yet | |
33 | // Int_t poke(Int_t rob, Int_t mcm, Int_t addr, UInt_t value); // not implemented yet | |
34 | ||
35 | private: | |
2b2b540f | 36 | Bool_t AddValues(UInt_t det, UInt_t cmd, UInt_t extali, Int_t addr, UInt_t data); |
37 | ||
51380642 | 38 | void ConfigureDyCorr(Int_t det); // deflection length correction due to Lorentz angle and tilted pad correction |
39 | void ConfigureDRange(Int_t det); // deflection range LUT, range calculated according to B-field (in T) and pt_min (in GeV/c) | |
40 | void ConfigureNTimebins(Int_t det); // timebins in the drift region | |
41 | void ConfigurePIDcorr(Int_t det); // Calculate the mcm individual correction factors for the PID | |
5ac2e3b1 | 42 | |
6419bebb | 43 | Double_t Square(Double_t val) const { return val*val; }; // returns the square of a given number |
5ac2e3b1 | 44 | |
45 | AliTRDtrapConfigHandler(const AliTRDtrapConfigHandler &h); // not implemented | |
46 | AliTRDtrapConfigHandler &operator=(const AliTRDtrapConfigHandler &h); // not implemented | |
47 | ||
759042e7 | 48 | static const UInt_t fgkScsnCmdReset=6; // SCSN command for reset |
49 | static const UInt_t fgkScsnCmdPause=8; // SCSN command to pause | |
50 | static const UInt_t fgkScsnCmdRead=9; // SCSN command to read | |
51 | static const UInt_t fgkScsnCmdWrite=10; // SCSN command to write | |
52 | static const UInt_t fgkScsnCmdPtrg=12; // SCSN command for pretrigger | |
53 | static const UInt_t fgkScsnCmdRobPower=16; // SCSN command to switch ROB power | |
54 | static const UInt_t fgkScsnCmdRobReset=17; // SCSN command for ROB reset | |
55 | ||
56 | static const UInt_t fgkScsnCmdRestr=18; // SCSN command to restrict commands to specified chambers | |
57 | static const UInt_t fgkScsnCmdTtcRx=19; // SCSN command to configure TTCrx | |
58 | static const UInt_t fgkScsnCmdHwPtrg=20; // SCSN command to issue pretrigger pulse | |
59 | static const UInt_t fgkScsnCmdSetHC=22; // SCSN command to set HC ID | |
60 | static const UInt_t fgkScsnCmdMcmTemp=24; // SCSN command for MCM temperature sensors | |
61 | static const UInt_t fgkScsnCmdPM=25; // SCSN command for patchmaker | |
62 | static const UInt_t fgkScsnCmdOri=26; // SCSN command for ORI configuration | |
63 | static const UInt_t fgkScsnLTUparam=27; // extended SCSN command for the LTU configuration | |
5ac2e3b1 | 64 | |
5ac2e3b1 | 65 | static const Int_t fgkMCMperROBCol = 4; // MCMs per ROB column |
66 | static const Int_t fgkPadsPerMCM = 18; // readout pads per MCM | |
67 | static const Int_t fgkMCMperROBRow = 4; // MCMs per ROB row | |
68 | ||
2b2b540f | 69 | static const Int_t fgkMaxLinkPairs=4; // number of linkpairs used during configuration |
70 | static const Int_t fgkMcmlistSize=256; // list of MCMs to which a value has to be written | |
71 | ||
5e86ff99 | 72 | AliTRDltuParam ltuParam; // ltuParam class for the actual calculation of the parameters |
5ac2e3b1 | 73 | |
5e86ff99 | 74 | UInt_t fRestrictiveMask; // mask to restrict subsequent commands to specified chambers |
5ac2e3b1 | 75 | |
2b2b540f | 76 | AliTRDtrapConfig *fTrapConfig; // pointer to TRAP config in use |
5f7c3c48 | 77 | AliTRDCalOnlineGainTable fGtbl; // gain table |
78 | ||
5ac2e3b1 | 79 | ClassDef(AliTRDtrapConfigHandler,0) |
80 | }; | |
81 | ||
5ac2e3b1 | 82 | #endif |