# combogen

`Usage: combogen <idx> [<host> <user> <pass> <db> <outputdb>]`

Combogen makes random combinations for runs. It reads from the runs table a minimum and a maximum number of racks for each combination, and a number of combinations to select for each point between the minimum and maximum. For example, if a run had a minimum of 19, a maximum of 25, and a number of combinations of 1000, then combogen would select 1000 random combos of 19 racks, 1000 random combos of 20, and so on up to the maximum. It makes an output table to put these combinations in, and this is also where the results of the run are stored after calc finishes them.

The combinations are not entirely random. Constraints can force racks to be selected, and of course the selection status of the racks affects their selectability. Because combogen is a facility-level selector, the combinations are not guaranteed to have the right number of racks (racks added by constraints aren't added to the total). If the constraints are set properly, however, the combinations will be made up of the correct number of facilities.

Parameters:

- idx: The idx of the run that combos are being generated for.
- host: The machine the database server is running on.
- user: The username for the database server.
- pass: The password for the database server.
- db: The name of the database that has the rack data in it.
- outputdb: The name of the database that is being used for PLUM run output.