In CMSIM we have adopted the standard definition of detector elements which groups into detector sets. The detector set definitions for the given list of detector elements depends only on convenience of their handling -- activating and deactivating by the proposed above mechanism via the FFREAD control card ``SETS''. Thus here we define detector sets corresponding to the subsystem hierarchy in section 1.5. The detector supersets, for example for the whole muon system, is defined by alliance of sets on base of detector types (IDTYPE). The following structure of the detector types (see sequence CMSDID) is used:
*
* CMS Detector IDentifiers
*
* cmsdid.inc
*
* *** CMS Detector IDentifiers:
*
* idtype = XYZUV
* X -- subsystem identifier:
* 1 - track system, 2 - calorimeters, 3 - muon system
* Y - detector type (technology)
* 1/2/3 - Pixels/ Silicon / MSGC for tracker
* 1/2/3 - E.M. calorimeter/Hadron/Forward for
* calorimeters
* 1/2/1/2 - DTBX/RPC/CSC/PPC for muon barrel and endcap
* Z - 1/2/3 - for barrel/endcap/tail
* UV - superlayer/sublayer number, user dependent,
* e.g., double/single side.
*
*Superset set subset detector element
*TRAK = 10000 -> PXLX = 11000 -> PBXL = 11100
* -> PFXL = 11200
* SVTX = 12000 -> TSBX = 12100 -> SWSn = 12110
* -> SWDn = 12120
* -> SWGn = 12130
* -> TSFX = 12200 -> SCSn = 12210
* -> SCDn = 12220
* -> SCGN = 12230
* MSGC = 13000 -> TGBX = 13100 -> GWSn = 13110
* -> GWDn = 13120
* -> GWGn = 13130
* -> TGFX = 13200 -> GCSn = 13210
* -> GCDn = 13220
* -> GCGn = 13230
*
*CALO = 20000 -> ECAL = 21000 -> ECBX = 21100
* -> ECFX = 21200
* -> ESBX = 25100
* -> ESFX = 25200
* -> HCAL = 22000 -> HCBX = 22100
* -> HCFX = 22200
* -> HTBX = 22300
* -> VCAL = 23000 PPC
* -> VCAL = 24000 QFiber
*MUON = 30000 -> MB = 30100 -> MDBX = 31100 (DTBX)
* -> MRBX = 32100 (RPC)
* -> MF = 30200 -> MCFX = 31200 (CSC)
* -> MRFX = 32200 (RPC)
*
* *** define CMS detector element identifiers
*
INTEGER IDSCH ! Graphics
INTEGER IDTRAK, IDSVTX, IDSVTB, IDSVTF,
& IDMSGC, IDMSGB, IDMSGF, IDTKTY
INTEGER IDPXLX, IDPXLB, IDPXLF ! pixel detector
INTEGER IDSVBS, IDSVBD, IDSVBG, ! barrel Silicon/ MGSC
& IDMGBS, IDMGBD, IDMGBG ! Single/Double sided
INTEGER IDSVFS, IDSVFD, IDSVFG, ! endcap Silicon/ MGSC
& IDMGFS, IDMGFD, IDMGFG ! Single/Double sided
*
* *** GRAPHICS
*
PARAMETER (IDSCH = 40 000)
*
* *** TRAK
*
PARAMETER (IDTRAK = 10 000)
PARAMETER (IDTKTY = IDTRAK/10000)
* Pixel, Barrel, Endcap
PARAMETER (IDPXLX = 11 000, IDPXLB = 11 100, IDPXLF = 11 200)
* Silicon, Barrel, Endcap
PARAMETER (IDSVTX = 12 000, IDSVTB = 12 100, IDSVTF = 12 200)
* Barrel Single sided, Double sided, Stereo side
PARAMETER (IDSVBS = 12 110, IDSVBD = 12 120, IDSVBG = 12 130)
* Endcap Single sided, Double sided, Stereo side
PARAMETER (IDSVFS = 12 210, IDSVFD = 12 220, IDSVFG = 12 230)
* MSGC, Barrel, Endcap
PARAMETER (IDMSGC = 13 000, IDMSGB = 13 100, IDMSGF = 13 200)
* Barrel Single sided, Double sided, Stereo side
PARAMETER (IDMGBS = 13 110, IDMGBD = 13 120, IDMGBG = 13 130)
* Endcap Single sided, Double sided, Stereo side
PARAMETER (IDMGFS = 13 210, IDMGFD = 13 220, IDMGFG = 13 230)
*
* *** CALO
*
INTEGER IDCALO, IDECAL, IDHCAL, IDVCAL, IDEBAR, IDHBAR, IDECAP,
& IDHCAP, IDTAIL, IDVPPC, IDVCQF, IDSB, IDSF
PARAMETER (IDCALO = 20 000)
PARAMETER (IDECAL = 21 000, IDHCAL = 22 000, IDVCAL = 23 000)
PARAMETER (IDEBAR = 21 100, IDECAP = 21 200)
* Tail catcher is part of barrel
PARAMETER (IDHBAR = 22 100, IDHCAP = 22 200, IDTAIL = 22 300)
PARAMETER (IDVPPC = 23 200, IDVCQF = 24 200)
PARAMETER (IDSB = 25 100, IDSF = 25 200)
*
* *** MUON
*
INTEGER IDMUON, IDMBAR, IDMCAP, IDMUTY
INTEGER IDDTBX, IDRPCB, IDCSCX, IDRPCF
PARAMETER (IDMUON = 30 000, IDMBAR = 30 100, IDMCAP = 30 200)
PARAMETER (IDDTBX = 31 100, IDCSCX = 31 200)
PARAMETER (IDRPCB = 32 100, IDRPCF = 32 200)
PARAMETER (IDMUTY = IDMUON/10000)
The four letter convention (xxxx) used above is adopted in CMSIM as a mnemonic for the detector element type identifier IDTYPE = IDxxxx and the above numbers a set via PARAMETER statement in the sequence CMSDID. Of couse it is supposed that any access to those detector element type identifiers will be done only via IDxxxx but not via numbers.
GEANT provides: