Valid for summer 2003 and later.


Controlling the High Voltage


· The HV PC is on the middle level, on the west side of the cavern and is labeled “HV PC”. This PC controls the LeCroy Mainframes 1,2,3 and 4 and corresponds to SuperModule 1 planes and shield mux boxes.


·There are now two HV PCs, the second one is further along the west side, but next to the middle of supermodule 2.  This PC controls the LeCroy Mainframes 5,6,7 and 8 and corresponds to SuperModule 2 planes and shield mux boxes.  Four files are necessary for the operation of hv and hv monitor.  In the home directory of user minos, there is a script “hv”, an executable “hv.exe” (can be generated with the make command in the hvsrc subdirectory) which is called by the hv script, a mainframe map “mfmap.db” and a channel map containing the logical, geometrical and voltage information called “hvmap.db”.  There are two main ways to examine the hv, monitor mode and interactive mode.  Monitor mode is reached by typing “hv mon” or “hvm; hvt” at the command prompt.  Interactive mode (for changing voltages) is reached by typing “hv”.


· Open a ssh connection to to control supermodule 1, and ssh to to control supermodule 2.  Once you have a command prompt, type “hv” and you should get a prompt:

|HV|MF1-4>                          for sm1

|HV|MF5-8>                          for sm2


This is the hv program prompt. (n.b. the mainframes are the 4 large blue LeCroy boxes. MF3 and MF4 are next to the HV PC on the westside. MF1 and MF2 are directly opposite on the eastside.)  This “hv” program is a script which interactively calls the hv.exe program.  “hv” only takes one parameter, and it will put the script into monitor mode, like “hv mon”, although it appears that a number of parameters will do this.


· As of this writing/revision (July 12th, 2003), both hv programs should be run in monitor mode whenever the detector is unattended AND the voltages are ramped up on more than zero channels.  In other words, if you have all HV channels turned off for debugging, do not run the monitor (it’ll send email to a slew of people).  To switch on monitor mode, exit from the controller program, and type (in order) “hvm” and then “hvt”.  These are aliases set up so that even if the terminal window is closed, the monitor will continue to run.  Do this on both supermodules whenever you aren’t debugging the detector.  (to see what the aliases are, type alias) .  Monitor mode will read all channels every ten minutes, writing to the database. 


·There are a number of relevant commands that the hv program will take (once at the hv prompt, NOT from the script). 


Typing the first three letters of each command will also work.  As an operator, you will most likely only use READ, STAT, SET, OFF, and ZERO.  You may also use select, but its use is not currently supported fully (its buggy still).


·READ will read all channels for which a voltage has been requested.


·STAT returns the state of each mainframe, and if all is okay, it should tell you that each of the mainframes are “enabled: HV OK”, and that the Imax is –100 counts.  If you have recently entered an OFF command, it will tell you that the mainframes are “enabled: HV OFF” and so on.  If you have pushed in the interlock button on the front of any mainframe, it will tell you that the mainframe is “INTERLOCKED: HV OFF” and you will not be able to control the mainframe remotely.  If you look at the front of a mainframe, there is a square colored pushbutton in the center, and a column of three LEDs in the right module.  Pushing the interlock will toggle the enable light.


·OFF turns all mainframes off, and will return the status immediately following.  All channels should now be near zero volts.


·ON will switch the mainframes back up, and the voltages will now be set to whatever you last “SET” them to.  This is an important point, if you change something in the map and then switch OFF and then ON, you will likely get an error on the changed channel, since the mainframe is setting the voltage to what it has in memory, and the hvmap.db file may be different, which the program will compare it with.  Use OFF and then SET to change voltages.  If you remove a channel, use ZERO first, since SET only modifies channels in the file.


·ZERO will set every channel in all mainframes that the program controls to zero volts, both the demand and the default.


·SET will read in the hvmap.db file and begin commanding the mainframes to store the demand and default voltages in memory.  At the end of SET, all the mainframes will turn on.


·SELECT puts the program in a special mode which only controls a range of planes.  If you wish to modify the voltage on only one channel, say pmt 0 on plane 459 (above 248 is SM2, so we’re now on dcshv2), you must type “SEL 2459” (prefix 1 or 2 for supermodule number).  To get a range of planes, put a colon and the second plane, like “SEL 2459:2463”.  All following commands must now be done under MANual mode.  Type “MAN” and then give the voltage when it asks (remember negative sign) and it will set all the channels on that plane/planes to that voltage.  So on selecting 459, you are affecting the voltages on all 3 PMT’s on both sides of plane 459.  To shut down these channels to do work on them, just give a voltage of zero when “MAN” requests it.  This voltage is not actually set in SELECT mode until the operator gives an ON command, which will affect only these selected planes.  If you shut down the program, it will forget these settings; a read will likely return errors, you must “SELECT”, “MAN” and then hit enter when it requests a voltage for it to set them back to default voltages from the hvmap.db file.  And of course ON will finish the job.


·It has happened that the communication buffers get gunky, if this might be a problem, type “CLEAR”, although this only helped in one case.


·Finally, there is a setting which allows you to set the current limiting values.  The default we use is 100 counts.  So if it ever gets screwy (seen by looking at output of a STAT command), issue a LIMIT command and give 100 as the value by typing “LIMIT 100”.






This program writes every READ to a mysql database on  You can look at this data from minos-gateway by using mysql – –user=reader –password=numi96.  use the database “dcs” and the relevant table is HVTABLE and HVTABLEVLD.  Our concept of  validity tables up at the mine is purely an internal invention and is different from the final validity tables generated at fnal and distributed by dbmauto (also to be implemented).  For example, to list all the planes and times for which there were errors, so long as they happened after july 1st, 2003, type ‘SELECT GEOMMAP, HV_TIMESTAMP FROM HVTABLE WHERE ALARMBIT!=0 AND HV_TIMESTAMP>”2003-07-01 00:00:00” ORDER BY HV_TIMESTAMP DESC;’ at the command prompt (without the outer single quotes of course, but with the quotes around the datetime).


If you have a problem with hv, email Erik Beall at