o small fix
[u/mrichter/AliRoot.git] / TRD / AliTRDtrapConfigHandler.h
CommitLineData
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
18class 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 &gtbl); // 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