Revision: | 1.3 |
Committed: | Tue Feb 6 19:17:58 2007 UTC (18 years, 2 months ago) by elmer |
Branch: | MAIN |
CVS Tags: | cmsbuild_20130422-53X-slc5, cmsbuild_20130422-53X-osx107, cmsbuild_20130311_1500-61X-osx107, cmsbuild_20130311_1424-61X-osx108-gcc472, cmsbuild_20130327-61X-slc6, cmsbuild_20130405_1715-61X-gcc472, eulisse_20130330_1130-62X-armv7hl-dev, eulisse_20130411_1456-62X-slc6-dev, eulisse_20130227_1854-62X-dev, eulisse_20130411_1120-62X, eulisse_20130411_1129-62X-next, CMSSW_6_2_0_pre5slc6, dmendezl_20130423_1116-62X-next, dmendezl_20130423_1154-62X-next, dmendezl_20130423_1129-62X-slc6-dev, dmendezl_20130423_1112-62X-next, dmendezl_20130423_1102-62X, ForCMSSW_6_2_0_pre5slc6-slc6_amd64_gcc472, dgmlForCMSSW_6_2_0_pre5slc6-osx107_amd64_gcc472, ForCMSSW_6_2_0_pre5slc6-slc6_amd64_gcc480, dgmlForCMSSW_6_2_0_pre5slc6-slc5_amd64_gcc472, dmendezl_20130422_1417-62X-next, dmendezl_20130422_1359-62X-next, dmendezl_20130418_1659-62X-next, dmendezl_20130418_1643-62X-next, dmendezl_20130418_1706-62X-slc6-dev, dmendezl_20130418_1710-62X, sm20130422-53X-osx107, sm20130422-53X-slc5, dmendezl_20130411_1456-62X-slc6-dev, dmendezl_20130411_1134-62X-next, dmendezl_20130411_1129-62X-next, dmendezl_20130411_1124-62X-next, dmendezl_20130411_1120-62X, CMSSW_6_2_0_pre5-osx108_amd64_gcc472, CMSSW_6_2_0_pre5-osx107_amd64_gcc472, CMSSW_5_3_9_patch3-osx107, CMSSW_5_3_9_patch3, CMSSW_6_2_0_pre5-slc6_amd64_gcc472, CMSSW_6_2_0_pre5-slc6_amd64_gcc480, dmendezlForCMSSW_6_1_2_SLHC1-slc5_amd64_gcc472, geForCMSSW_6_2_0_pre5-slc5_amd64_gcc472, davidltForCMSSW_6_2_0_pre5-slc6_amd64_gcc472, davidltForCMSSW_6_2_0_pre5-osx108_amd64_gcc472, davidltForCMSSW_6_2_0_pre5-slc6_amd64_gcc480, davidltForCMSSW_6_2_0_pre5-osx107_amd64_gcc472, sm130409-53X-osx107, sm130409-53X, CMSSW_6_1_2_SLHC1-slc5_amd64_gcc472, CMSSW_6_1_2_SLHC1, davidltForCMSSW_6_1_2_SLHC1-slc5_amd64_gcc472, CMSSW_6_2_0_pre5-slc5_amd64_gcc472, CMSSW_6_2_0_pre5, davidltForCMSSW_6_2_0_pre5-slc5_amd64_gcc472, davidlt_20130408_1108-62X-slc6-dev, davidlt_20130408_1239-62X-next, davidlt_20130408_1107-62X, eulisse_20130407_1388-62X, eulisse_20130407_1218-62X, ge20130406_2000-62X, davidlt_20130403_1140-62X-slc6-dev, davidlt_20130403_1144-62X-next, davidlt_20130403_1139-62X, CMSSW_5_3_9_sherpa2beta2, sm130402-63X-slc5_mic, eulisseForCMSSW_6_1_2-slc6_amd64_gcc472, dmendezlForCMSSW_6_1_2-slc6_amd64_gcc472, davidlt_20130330_1130-62X-armv7hl-dev, davidlt_arm_6, davidlt_arm_5, davidlt_arm_4, davidlt_arm_3, davidlt_arm_2, davidlt_arm_1, davidlt_20130328_0732-62X-slc6-dev, davidlt_20130328_0731-62X-next, davidlt_20130328_0731-62X, dm20130327-61X-slc6, dgmlForCMSSW_6_1_2-osx107_amd64_gcc472, dgmlForCMSSW_6_1_2-osx108_amd64_gcc472, CMSSW_6_1_2, ForCMSSW_6_1_2-slc6_amd64_gcc472, davidlt_20130325_1139-62X-next, davidlt_20130325_1353-62X-next, davidlt_20130325_1132-62X-slc6-dev, davidlt_20130325_1131-62X-next, davidlt_20130325_1108-62X, dgmlForCMSSW_6_1_2-slc5_amd64_gcc472, CMSSW_6_2_0_pre4-slc6_amd64_gcc472, ForCMSSW_6_2_0_pre4-slc6_amd64_gcc472, CMSSW_6_2_0_pre4-osx107_amd64_gcc472, CMSSW_6_2_0_pre4-osx108_amd64_gcc472, CMSSW_6_2_0_pre4-slc6_amd64_gcc480, daForCMSSW_6_2_0_pre4-osx107_amd64_gcc472, daForCMSSW_6_2_0_pre4-osx108_amd64_gcc472, ForCMSSW_6_2_0_pre4-slc6_amd64_gcc480, CMSSW_5_3_9_patch2-osx107, davidlt_20130320_1840-62X-slc6-dev, CMSSW_5_3_9_patch2, BOOTSTRAP_slc6_amd64_gcc480, CMSSW_6_2_0_pre4-slc5_amd64_gcc472, CMSSW_6_2_0_pre4, daForCMSSW_6_2_0_pre4-slc5_amd64_gcc472, BOOTSTRAP_fc18_armv7hl_gcc480, pgForCMSSW_6_2_X_2013-03-15-0200-slc5_amd64_gcc472, davidlt_20130314_1540-62X-next, dmendezl_20130312_1520-slc6, dmendezl_20130311_1500-61X-osx107, dmendezl_20130311_1424-61X-osx108-gcc472, eulisse_20130311_0939-61X, geForCMSSW_6_1_2-slc5_amd64_gcc472, davidlt_20130307_0945-62X-next, davidlt_20130307_0943-62X, CMSSW_6_2_0_pre3-osx107_amd64_gcc472, CMSSW_6_2_0_pre3-osx108_amd64_gcc472, eulisse_20130405_1715-61X-gcc472, eulisse_20130304_1715-61X-osx107, eulisse_20130304_1715-61X-osx108-gcc472, eulisse_20130304_1714_61X-slc6, daForCMSSW_6_2_0_pre3-osx107_amd64_gcc472, daForCMSSW_6_2_0_pre3-osx108_amd64_gcc472, CMSSW_5_3_9_patch1-osx107, CMSSW_5_3_9_patch1, CMSSW_5_3_9, CMSSW_6_2_0_pre3-slc6_amd64_gcc472, ForCMSSW_6_2_0_pre3-slc6_amd64_gcc472, CMSSW_6_2_0_pre3-slc5_amd64_gcc472, CMSSW_6_2_0_pre3, CMSSW_6_1_1-osx108_amd64_gcc472, CMSSW_6_1_1-osx107_amd64_gcc472, daForCMSSW_6_2_0_pre3-slc5_amd64_gcc472, daForCMSSW_6_1_1-osx108_amd64_gcc472, daForCMSSW_6_1_1-osx107_amd64_gcc472, CMSSW_6_1_1_SLHCphase2tk1-slc5_amd64_gcc472, CMSSW_6_1_1_SLHCphase2tk1, daForCMSSW_6_1_1_SLHCphase2tk1-slc5_amd64_gcc472, davidlt_20130227_1855-62X-next, davidlt_20130227_1854-62X-dev, davidlt_20130227_1854-62X, CMSSW_5_3_9-osx107, CMSW_5_3_9, davidlt_20130227_1127-62X-next, davidlt_20130227_1126-62X-dev, davidlt_20130227_1125-62X, sm130226-53X-osx107, sm130226-53X-gcc462, davidlt_20130226_1240-62X-next, davidlt_20130226_1320-62X-dev, davidlt_20130226_1239-62X, CMSSW_6_1_1_SLHCphase1tk1-slc5_amd64_gcc472, CMSSW_6_1_1_SLHCphase1tk1, daForCMSSW_6_1_1_SLHCphase1tk1-slc5_amd64_gcc472, eulisse_20130225_1400-62x-next, eulisse_20130225_1400-62x, davidlt_20130225_1102-62X-next, davidlt_20130225_1025-62X-dev, davidlt_20130225_1025-62X, davidlt_20130222_1635-62X-next, davidlt_20130222_1634-62X-dev, davidlt_20130222_1633-62X, CMSSW_5_2_9, geForCMSSW_5_2_9-slc5_amd64_gcc462, davidlt_20130220_1737-62X-next, davidlt_20130220_1736-62X-dev, davidlt_20130220_1735-62X, CMSSW_6_2_0_pre2-slc5_amd64_gcc480, daForCMSSW_6_2_0_pre2-osx107_amd64_gcc472, daForCMSSW_6_2_0_pre2-osx108_amd64_gcc472, ForCMSSW_6_2_0_pre2-slc6_amd64_gcc472, daForCMSSW_6_2_0_pre2-slc5_amd64_gcc480, CMS_CONDWEB_DEV, CMS_CONDWEB_0_2, CMSSW_6_2_0_pre2-slc5_amd64_gcc472, CMSSW_6_2_0_pre2, CMS_CONDWEB_0_1, daForCMSSW_6_2_0_pre2-slc5_amd64_gcc472, sm130214a-53X-gcc462, sm130214a-53X-osx107, sm130214-53X-osx107, sm130214-53X-gcc462, CMSSW_6_1_1-slc5_amd64_gcc472, CMSSW_6_1_1, daForCMSSW_6_1_1-slc5_amd64_gcc472, davidlt_20130213_0902-62X-dev, davidlt_20130212_1424-62X-next, davidlt_20130212_1424-62X, davidlt_20130212_1000-62X-dev, davidlt_20130212_1020-62X-next, davidlt_20130212_1001-62X, daForCMSSW_6_1_0_SLHC-slc5_amd64_gcc472, davidlt_20130209_1053-61X-osx107-gcc472, davidlt_20130209_1051-61X-osx108-gcc472, davidlt_20130209_1109-61X-slc6-gcc472, davidlt_20130208_1428-62X-next, davidlt_20130208_1427-62X, BOOTSTRAP_slc5_amd64_gcc480, davidlt_20130207_2033-61X-gcc472, davidlt_20130207_1856-62X, davidlt_20130206_2133-62X-next, davidlt_20130206_2129-62X-osx107-gcc472, davidlt_20130207_1345-62X-osx108-gcc472, davidlt_20130206_2133-62X-gcc472-next, davidlt_20130206_1150-62X-osx107-gcc472, davidlt_20130206_1150-62X-osx108-gcc472, davidlt_20130206_1149-62X-gcc472-next, davidlt_20130206_1149-62X, davidlt_20130206_0923-62X-osx107-gcc472, davidlt_20130206_0922-62X-osx108-gcc472, davidlt_20130206_0922-62X-gcc472-next, davidlt_20130206_0909-62X, davidlt_20130205_2014-62X-osx108-gcc472, davidlt_20130205_1941-62X-osx107-gcc472, davidlt_20130205_1942-62X-gcc472-next, davidlt_20130205_1939-62X, CMSSW_5_3_8_patch3-osx107, CMSSW_5_3_8_patch3, CMSSW_5_3_7_patch6, CMSSW_5_3_7_patch6-osx107, geForCMSSW_6_2_0_pre1-osx108_amd64_gcc472, geForCMSSW_6_2_0_pre1-osx107_amd64_gcc472, CMSSW_6_2_0_pre1, geForCMSSW_6_2_0_pre1-slc5_amd64_gcc472, ForCMSSW_6_1_0-slc6_amd64_gcc472, CMSSW_5_3_8_patch2-osx107, CMSSW_5_3_8_patch2, eulisse_20130128_1430-62X-gcc472-next, eulisse_20130128_1430-62X-slc6-gcc472, eulisse_20130128_1430-62X, eulisse_20130128_1043-62X, CMSSW_5_3_8_patch1-osx107, CMSSW_5_3_8_patch1, CMSSW_5_3_8-osx107, CMSSW_5_3_8, davidlt_20130116_1037-62X-osx108-gcc472, davidlt_20130116_1009-62X-osx107-gcc472, davidlt_20130116_1008-62X-slc6-gcc472, davidlt_20130116_1043-62X, CMSSW_5_3_8_HI_patch2-osx107, CMSSW_5_3_8_HI_patch2, CMSSW_5_3_8_HI_patch1-osx107, CMSSW_5_3_7_patch5-osx107, CMSSW_5_3_8_HI_patch1, CMSSW_5_3_7_patch5, cms_adminFor-slc5_amd64_gcc472, eulisse_20130112_1105-62X, CMSSW_5_2_6_patch2, eulisse_20130112_0044-62X, geForCMSSW_5_2_6_patch2-slc5_amd64_gcc462, eulisse_20130109_2108-62X-gcc472, eulisse_20121231_1245-61X-gcc472, eulisse_20121230_2125-61X-gcc472, CMSSW_6_1_0-osx107, CMSSW_6_1_0-osx108, CMSSW_6_1_0, CMSSW_5_3_8_HI-osx107, CMSSW_5_3_8_HI, eulisse_20121217_2120-61X-gcc472, eulisse_20121217_2135-61X-gcc472, eulisse_20121217_2127-61X-slc6-gcc472, CMSSW_5_3_7_patch4-osx107, CMSSW_5_3_7_patch4, eulisse_20121217_2059-61X-osx107-gcc472, eulisse_20121217_1941-61X-osx107-gcc472, eulisse_20121216_1036-61X-gcc472, CMSSW_5_3_7_patch3-osx107, CMSSW_5_3_7_patch3, CMSSW_5_2_8_patch1, geForCMSSW_5_2_8_patch1-slc5_amd64_gcc462, eulisse_20121214_2046-61X-osx108-gcc472, eulisse_20121214_2022-61X-gcc472, CMSSW_6_0_1_PostLS1v2_patch4, eulisse_20121214_1049-61X-osx107-gcc472, eulisse_20121214_1044-61X-slc6-gcc472, eulisse_20121214_1009-61X-gcc472, eulisse_20121213_2246-61X-osx107-gcc472, eulisse_20121213_2133-61X-slc6-gcc472, eulisse_20121213_1659-61X-gcc472, davidlt_20121212_1833-61X-osx107-gcc472, davidlt_20121212_1832-61X-osx108-gcc472, davidlt_20121212_1831-61X-slc6-gcc472, davidlt_20121212_1831-61X-gcc472, CMSSW_6_1_0_pre8-slc5_amd64_gcc472, CMSSW_6_1_0_pre8, daForCMSSW_6_1_0_pre8-osx108_amd64_gcc472, daForCMSSW_6_1_0_pre8-osx107_amd64_gcc472, daForCMSSW_6_1_0_pre8-slc5_amd64_gcc472, davidlt_20121207_1047-61X-osx107-gcc472, davidlt_20121207_1046-61X-osx108-gcc472, davidlt_20121207_1045-61X-slc6-gcc472, davidlt_20121207_1045-61X-gcc472, CMSSW_5_3_7_25nspatch1-osx107, CMSSW_5_3_7_patch2-osx107, CMSSW_5_3_7_25nspatch1, CMSSW_5_3_7_patch2, davidlt_20121206_0901-61X-osx107-gcc472, davidlt_20121206_1159-61X-osx108-gcc472, davidlt_20121206_0900-61X-slc6-gcc472, davidlt_20121206_0859-61X-gcc472, CMSSW_6_1_0_pre7_TS127013-slc5_amd64_gcc472, CMSSW_6_1_0_pre7_TS127013, davidlt_20121204_1200-61X-osx107-gcc472, davidlt_20121204_1200-61X-osx108-gcc472, davidlt_20121204_1200-61X-slc6-gcc472, davidlt_20121204_1200-61X-gcc472, daForCMSSW_6_1_0_pre7_TS127013-slc5_amd64_gcc472, davidlt_20121204_0745-61X-osx107-gcc472, davidlt_20121204_0743-61X-osx108-gcc472, davidlt_20121204_0844-61X-slc6-gcc472, davidlt_20121204_0843-61X-gcc472, davidlt_20121203_1104-61X-osx107-gcc472, davidlt_20121203_0957-61X-osx108-gcc472, davidlt_20121203_0956-61X-slc6-gcc472, davidlt_20121203_0955-61X-gcc472, CMSSW_6_1_0_pre7-osx108_amd64_gcc472, CMSSW_6_1_0_pre7-osx107_amd64_gcc472, eulisse_20121129_1546-61X-gcc472, eulisse_20121129_1439-61X-gcc472, eulisse_20121129_1406-61X-gcc472, daForCMSSW_6_1_0_pre7-osx108_amd64_gcc472, daForCMSSW_6_1_0_pre7-osx107_amd64_gcc472, eulisse_20121129_1155-61X-gcc472, CMSSW_6_0_1_PostLS1v2_patch3-slc5_amd64_gcc462, CMSSW_6_0_1_PostLS1v2_patch3, daForCMSSW_6_0_1_PostLS1v2_patch3-slc5_amd64_gcc462, CMSSW_6_1_0_pre7-slc5_amd64_gcc472, CMSSW_6_1_0_pre7, sm121128-53X-osx107, sm121128-53X, daForCMSSW_6_1_0_pre7-slc5_amd64_gcc472, davidlt_20121128_0903-61X-osx107-gcc472, davidlt_20121128_0902-61X-osx108-gcc472, davidlt_20121128_0904-61X-slc6-gcc472, davidlt_20121128_0902-61X-gcc472, davidlt_20121127_1909-61X-osx108-gcc472, davidlt_20121127_1909-61X-osx107-gcc472, davidlt_20121127_1908-61X-slc6-gcc472, davidlt_20121127_1907-61X-gcc472, CMSSW_5_3_7_patch1-osx107, CMSSW_5_3_7_patch1, davidlt_20121127_1044-61X-osx107-gcc472, davidlt_20121127_1028-osx108-gcc472, davidlt_20121127_1020-61X-slc6-gcc472, davidlt_20121127_1012-gcc472, eulisse_20121126_2202_61X-gcc472, CMSSW_6_1_0_pre6_TS126203_TS126341_patch1-slc5_amd64_gcc472, CMSSW_6_1_0_pre6_TS126203_TS126341_patch1, daForCMSSW_6_1_0_pre6_TS126203_TS126341_patch1-slc5_amd64_gcc472, CMSSW_5_3_7_alcapatch1, CMSSW_6_1_0_pre6g496cand01-slc5_amd64_gcc472, CMSSW_6_1_0_pre6g496cand01, CMSSW_5_3_7, CMSSW_5_3_7-osx107, daForCMSSW_6_1_0_pre6g496cand01-slc5_amd64_gcc472, davidlt_20121122_1002-61X-g496cand01-gcc472, CMSSW_6_0_1_PostLS1v2_patch2-slc5_amd64_gcc462, CMSSW_6_0_1_PostLS1v2_patch2, daForCMSSW_6_0_1_PostLS1v2_patch2-slc5_amd64_gcc462, CMSSW_6_0_1_PostLS1v2_patch1-slc5_amd64_gcc462, CMSSW_6_0_1_PostLS1v2_patch1, daForCMSSW_6_0_1_PostLS1v2_patch1-slc5_amd64_gcc462, CMSSW_6_1_0_pre6-osx108_amd64_gcc472, CMSSW_6_1_0_pre6-osx107_amd64_gcc472, eulisse_20121120_1136_61X-gcc472, daForCMSSW_6_1_0_pre6-osx107_amd64_gcc472, daForCMSSW_6_1_0_pre6-osx108_amd64_gcc472, ForCMSSW_6_1_0_pre6-slc6_amd64_gcc472, davidlt_20121119_1533-61X-g496cand01-gcc472, CMSSW_6_1_0_pre6_TS126203_TS126341-slc5_amd64_gcc472, CMSSW_6_1_0_pre6_TS126203_TS126341, sm121119-53X-osx107, daForCMSSW_6_1_0_pre6_TS126203_TS126341-slc5_amd64_gcc472, sm121119-53X, CMSSW_6_1_0_pre6-slc5_amd64_gcc472, CMSSW_6_1_0_pre6, daForCMSSW_6_1_0_pre6-slc5_amd64_gcc472, CMSSW_6_0_1_PostLS1v2, sm121113-52X, sm121113-52X-osx107, sm121113-53X-osx107, sm121113-53X, davidlt_20121113_0821-61X-osx107-gcc472, davidlt_20121113_0816-osx108-gcc472, davidlt_20121113_0835-61X-slc6-gcc472, davidlt_20121113_0819-61X-gcc472, CMSSW_4_4_5_patch2, CMSSW_5_3_6_patch1, CMSSW_5_3_6_patch1-osx107, CMSSW_5_2_8-osx107, CMSSW_5_2_8, sm121112-53X-osx107, sm121112-53X, davidlt_20121110_0800-osx108-gcc472, davidlt_20121109_1131-61X-osx107-gcc472, davidlt_20121109_1130-61X-slc6-gcc472, davidlt_20121109_1127-0735-61X-gcc472, eulisse_20121107-0735-61X-gcc472, davidlt_20121105_1212-osx108-gcc472, davidlt_20121105_1128-61X-osx107-gcc472, davidlt_20121105_1127-61X-slc6-gcc472, davidlt_20121105_1126-61X-gcc472, CMSSW_5_3_6-osx107, CMSSW_5_3_6, CMSSW_6_1_0_pre5-slc5_amd64_gcc472, CMSSW_6_1_0_pre5, sm121102-53X-osx107, sm121102-53X, daForCMSSW_6_1_0_pre5-slc5_amd64_gcc472, CMSSW_6_0_1_PostLS1v1-slc5_amd64_gcc472, CMSSW_6_0_1_PostLS1v1-slc5_amd64_gcc462, CMSSW_6_0_1_PostLS1v1, geForCMSSW_5_2_8-slc5_amd64_gcc462, daForCMSSW_6_0_1_PostLS1v1-slc5_amd64_gcc472, daForCMSSW_6_0_1_PostLS1v1-slc5_amd64_gcc462, davidlt_20121101_1230-osx108-gcc472, davidlt_20121101_1230-61X-gcc472, davidlt_20121101_1230-61X-osx107-gcc472, davidlt_20121101_1230-61X-slc6-gcc472, eulisse_20121031_1202-52X, CMSSW_5_3_4_TC125616patch1, davidlt_20121030_1450-osx108-gcc472, davidlt_20121030_1450-61X-slc6-gcc472, davidlt_20121030_1450-61X-osx107-gcc472, davidlt_20121030_1450-61X-gcc472, eulisse_20121030_1025-52X, davidlt_20121029_1240-osx108-gcc472, davidlt_20121029_1251-61X-osx107-gcc472, davidlt_20121029_1108-61X-slc6-gcc472, davidlt_20121029_1056-61X-gcc472, CMSSW_6_0_1-osx107_amd64_gcc462, CMSSW_6_0_1-slc6_amd64_gcc462, eulisse_20121026_1128-61X-gcc472, ForCMSSW_6_0_1-slc6_amd64_gcc462, daForCMSSW_6_0_1-osx107_amd64_gcc462, eulisse_20121025_1358-61X-gcc472, davidlt_20121025_1106-osx108-gcc472, davidlt_20121025_1108-61X-osx107-gcc472, davidlt_20121025_1107-61X-slc6-gcc472, davidlt_20121025_1106-61X-gcc472, davidlt_20121024_1014-osx108-gcc472, davidlt_20121024_1014-61X-osx107-gcc472, davidlt_20121024_1013-61X-slc6-gcc472, davidlt_20121024_1011-61X-gcc472, eulisse_20121024_0912-61X-gcc472, eulisse_20121023_0912-61X-gcc472, davidlt_20121023_1647-61X-osx107-gcc472, BOOTSTRAP_osx107_amd64_gcc472, eulisse_20121023_1600-61X-gcc472, CMSSW_6_0_1-slc5_amd64_gcc472, CMSSW_6_0_1-slc5_amd64_gcc462, CMSSW_6_0_1, davidlt_20121023_1155-61X-slc6-gcc472, daForCMSSW_6_0_1-slc5_amd64_gcc472, daForCMSSW_6_0_1-slc5_amd64_gcc462, CMSSW_5_2_7_hltpatch2, CMSSW_5_2_7_onlpatch2_ONLINE, geForCMSSW_5_2_7_hltpatch2-slc5_amd64_gcc462, BOOTSTRAP_slc6_amd64_gcc472, davidlt_20121022_1024-60X-osx107, davidlt_20121022_1027-60X-slc6, davidlt_20121022_1019-60X-gcc472, davidlt_20121022_1013-60X, CMSSW_5_3_4_patch2, eulisse_20121017_1120-61X-gcc472, CMSSW_6_1_0_pre4-osx108_amd64_gcc472, CMSSW_6_1_0_pre4-osx107_amd64_gcc462, CMSSW_6_1_0_pre4-slc6_amd64_gcc462, eulisse_20121015_1727-61X-gcc472, daForCMSSW_6_1_0_pre4-osx108_amd64_gcc472, daForCMSSW_6_1_0_pre4-osx107_amd64_gcc462, ForCMSSW_6_1_0_pre4-slc6_amd64_gcc462, CMSSW_5_2_7_hltpatch1, geForCMSSW_5_2_7_hltpatch1-slc5_amd64_gcc462, CMSSW_5_2_7_onlpatch1_ONLINE, CMSSW_6_1_0_pre4-slc5_amd64_gcc472, CMSSW_6_1_0_pre4-slc5_amd64_gcc462, CMSSW_6_1_0_pre4, CMSSW_6_1_0_pre3_TS124729-slc5_amd64_gcc462, daForCMSSW_6_1_0_pre4-slc5_amd64_gcc472, daForCMSSW_6_1_0_pre4-slc5_amd64_gcc462, CMSSW_6_1_0_pre3_TS124729, eulisse_20121011_1741-61X-gcc472, eulisse_20121011_1728-61X-gcc472, eulisse_20121011_1718-61X-gcc472, daForCMSSW_6_1_0_pre3_TS124729-slc5_amd64_gcc462, CMSSW_5_3_5-osx107, CMSSW_5_3_5, davidlt_20121009_1600-61X-slc6, davidlt_20121009_1600-61X-osx107, davidlt_20121009_1600-61X-gcc472, davidlt_20121009_1600-61X, davidlt_20121009_1530-osx108-gcc472, sm121008a-53X-osx107, sm121008a-53X, davidlt_20121008_1222-osx108-gcc472, davidlt_20121008_1257-61X-osx107, davidlt_20121008_1223-61X-slc6, davidlt_20121008_1221-61X-gcc472, davidlt_20121008_1220-61X, sm121008-53X-osx107, sm121008-53X, davidlt_20121005_1417-61X-osx108_amd64_gcc472, davidlt_20121004_1021-60X-gcc472, BOOTSTRAP_osx108_amd64_gcc472, davidlt_20121003_1452-61X-gcc472, davidlt_2, davidlt_1, eulisse_20121003_1138-61X-gcc470, CMSSW_6_0_0_patch1-slc5_amd64_gcc472, CMSSW_6_0_0_patch1-slc5_amd64_gcc462, CMSSW_6_1_0_pre3-osx108_amd64_gcc470, CMSSW_6_1_0_pre3-osx107_amd64_gcc462, CMSSW_6_1_0_pre3-slc6_amd64_gcc462, CMSSW_6_1_0_pre3-slc5_amd64_gcc470, daForCMSSW_6_0_0_patch1-slc5_amd64_gcc462, daForCMSSW_6_0_0_patch1-slc5_amd64_gcc472, CMSSW_5_3_4_patch1, eulisse_20121001_1347-61X-gcc470, CMSSW_6_1_0_pre3-slc5_amd64_gcc462, CMSSW_6_1_0_pre3, daForCMSSW_6_1_0_pre3-osx108_amd64_gcc470, daForCMSSW_6_1_0_pre3-osx107_amd64_gcc462, ForCMSSW_6_1_0_pre3-slc6_amd64_gcc462, daForCMSSW_6_1_0_pre3-slc5_amd64_gcc470, daForCMSSW_6_1_0_pre3-slc5_amd64_gcc462, eulisse_20120930_1000-61X-gcc470, CMSSW_4_4_5_patch1, eulisse_20120928_0244-61X-gcc470, eulisse_20120928_0219-61X-gcc470, eulisse_20120928_0150-61X-gcc470, davidlt_20120927_1517-61X-osx108, davidlt_20120927_1510-61X-osx107, davidlt_20120927_1511-61X-slc6, davidlt_20120927_1508-61X-gcc470, davidlt_20120927_1507-61X, BOOTSTRAP_slc5_amd64_gcc472, davidlt_20120925_1134-61X-osx108, davidlt_20120925_1135-61X-osx107, davidlt_20120925_1129-61X-slc6, davidlt_20120925_1124-61X-gcc470, davidlt_20120925_1123-61X, CMSSW_5_2_7_ONLINE, CMSSW_5_2_7, CMSSW_5_3_4, sm1209122-53X, sm1209122-53X-osx107, geForCMSSW_5_2_7-slc5_amd64_gcc462, eulisse_20120921_1641-52X, davidlt_20120921_1153-61X-osx107, davidlt_20120921_1158-61X-slc6, davidlt_20120921_1151-61X-osx108, davidlt_20120921_1150-61X-gcc470, davidlt_20120921_1150-61X, davidlt_20120920_1536-61X-osx107, davidlt_20120920_1529-61X-osx108, davidlt_20120920_1529-61X-slc6, davidlt_20120920_1528-61X-gcc470, davidlt_20120920_1527-61X, eulisse_20120920_1429-61X-gcc470, CMSSW_5_3_2_patch5, CMSSW_5_2_7_cand4, geForCMSSW_5_2_7_cand4-slc5_amd64_gcc462, CMSSW_6_1_0_pre2-slc6_amd64_gcc462, CMSSW_6_1_0_pre2-slc5_amd64_gcc470, CMSSW_6_1_0_pre2-osx107_amd64_gcc462, CMSSW_6_1_0_pre2-osx108_amd64_gcc470, CMSSW_6_1_0_pre2-slc5_amd64_gcc462, CMSSW_6_1_0_pre2, eulisse_20120918_2117-61X-gcc470, CMSSW_5_3_4_cand2, CMSSW_5_3_4_cand1_patch1, eulisse_20120918_1706-61X-gcc470, ForCMSSW_6_1_0_pre2-slc6_amd64_gcc462, daForCMSSW_6_1_0_pre2-slc5_amd64_gcc470, CMSSW_6_0_0_patch1, daForCMSSW_6_1_0_pre2-osx107_amd64_gcc462, daForCMSSW_6_1_0_pre2-osx108_amd64_gcc470, daForCMSSW_6_1_0_pre2-slc5_amd64_gcc462, daForCMSSW_6_0_0_patch1-slc5_amd64_gcc470, davidlt_20120917_0750-61X-osx108, davidlt_20120917_0748-61X-osx107, davidlt_20120917_0802-61X-slc6, davidlt_20120917_0746-61X-gcc470, davidlt_20120917_0745-61X, davidlt_20120914_1755-61X-osx108, davidlt_20120914_1415-61X-osx107, davidlt_20120914_1414-61X-slc6, davidlt_20120914_1412-61X-gcc470, davidlt_20120914_1412-61X, davidlt_20120914_1040-61X-osx108, davidlt_20120914_1040-61X-osx107, davidlt_20120914_1039-61X-slc6, davidlt_20120914_1109-61X-gcc470, davidlt_20120914_1042-61X, davidlt-20120912-1527-osx107_amd64_gcc462, davidlt_20120912_1154-61X-osx107, davidlt_20120912_1156-61X-slc6, davidlt_20120912_1130-61X-gcc470, davidlt_20120912_1127-61X, CMSSW_6_0_0_SLHCtkpre1, daForCMSSW_6_0_0_SLHCtkpre1-slc5_amd64_gcc462, davidlt_20120911_0937-61X-osx108, ecbForCMSSW_6_0_0_SLHCtkpre1-slc5_amd64_gcc462, davidlt_20120910_1500-61X-osx108, davidlt-20120910-1500-61X-osx108_amd64_gcc470, CMSSW_5_2_6_hltpatch4, geForCMSSW_5_2_6_hltpatch4-slc5_amd64_gcc462, davidlt-20120910-1247-61X-osx108_amd64_gcc470, CMSSW_6_1_0_pre1-slc6_amd64_gcc462, ForCMSSW_6_1_0_pre1-slc6_amd64_gcc462, CMSSW_5_2_6_onlpatch4_ONLINE, CMSSW_6_1_0_pre1-slc5_amd64_gcc470, CMSSW_6_1_0_pre1, davidlt-20120904-1046-61X-osx108_amd64_gcc470, davidlt_20120903_2145-61X-osx107, davidlt_20120903_2005-61X-slc6, davidlt_20120903_1832-61X-gcc470, davidlt_20120903_1830-61X, daForCMSSW_6_1_0_pre1-slc5_amd64_gcc470, daForCMSSW_6_1_0_pre1-slc5_amd64_gcc462, CMSSW_5_3_4_cand1_TTpatch1, CMSSW_6_0_0-osx107_amd64_gcc462, CMSSW_6_0_0-slc6_amd64_gcc462, CMSSW_6_0_0-slc5_amd64_gcc470, fw20120831_after_the_changes, CMSSW_5_2_7_cand3_ONLINE-cms, fw20120831_before_the_changes, fw20120831_before_the_merge, CMSSW_5_3_4_cand1, daForCMSSW_6_0_0-osx107_amd64_gcc462, ForCMSSW_6_0_0-slc6_amd64_gcc462, daForCMSSW_6_0_0-slc5_amd64_gcc470, davidlt_20120831_0948-61X-osx107, davidlt_20120831_0947-61X-slc6, davidlt_20120831_0937-61X-gcc470, davidlt_20120831_0930-61X, cmsForCMSSW_6_1_X_2012-08-30-1000-slc5_amd64_gcc470, CMSSW_5_2_6_patch1, CMSSW_6_0_0_TS123272, davidlt_20120830_0812-61X-osx107, davidlt_20120830_1035-61X-slc6, davidlt_20120830_0810-61X-gcc470, davidlt_20120830_0810-61X, daForCMSSW_6_0_0_TS123272-slc5_amd64_gcc462, CMSSW_6_0_0_TS123032, davidlt_20120829_1119-61X-osx107, davidlt_20120829_1117-61X-slc6, davidlt_20120829_1116-61X-gcc470, davidlt_20120829_1115-61X, daForCMSSW_6_0_0_TS123032-slc5_amd64_gcc462, CMSSW_6_0_0, daForCMSSW_6_0_0-slc5_amd64_gcc462, davidlt-20120827-1519-61X-osx108_amd64_gcc470, davidlt-20120827-1506-61X-osx108_amd64_gcc470, davidlt-20120827-1431-61X-osx108_amd64_gcc470, davidlt_20120824_1354-61X-osx107, davidlt_20120824_1352-61X-slc6, davidlt_20120824_1351-61X, davidlt_20120824_1352-61X-gcc470, davidlt_20120824_0928-61X-osx107, davidlt_20120824_0927-61X-slc6, davidlt_20120824_0926-61X, davidlt_20120824_0926-61X-gcc470, CMSSW_5_3_3_patch3, geForCMSSW_5_3_3_patch3-slc5_amd64_gcc462, davidlt_20120822_1706-61X, davidlt_20120822_0925-61X-osx107, davidlt_20120822_1136-61X-slc6, davidlt_20120822_0921-61X-gcc470, davidlt_20120822_0921-61X, davidlt_20120820_1005-61X-gcc470, davidlt_20120820_1003-61X-osx107, davidlt_20120820_0956-61X-slc6, davidlt_20120820_0956-61X, CMSSW_5_2_7_cand3_ONLINE, CMSSW_5_2_6_onlpatch3_ONLINE, CMSSW_5_2_7_cand3, geForCMSSW_5_2_7_cand3-slc5_amd64_gcc462, geForCMSSW_5_3_3_cand1_patch1-slc5_amd64_gcc462, geForCMSSW_5_3_3_cand1patch1-slc5_amd64_gcc462, CMSSW_4_4_5, sm120813-44X, davidlt_20120813_1021-60X-gcc470, sm120810a-53X, sm120810a-53X-osx107, sm120810-53X-osx107, sm120810-53X, geForCMSSW_5_2_7_cand2-slc5_amd64_gcc462, sm120809-53X-osx107, sm120809-53X, davidlt_20120809_1259-60X-gcc470, davidlt_20120809_1258-60X, davidlt_20120809_1256-60X-slc6, davidlt_20120809_1255-60X-osx107, davidlt_20120809_1000-52X, davidlt_20120809_1000-52X-osx106, CMSSW_5_3_3_patch2-osx107, CMSSW_5_3_3_patch2, davidlt_20120808_1030-60X-osx107, davidlt_20120808_1030-60X-gcc470, davidlt_20120808_1030-60X-slc6, davidlt_20120808_1030-60X, davidlt_20120808_1000-60X-osx107, davidlt_20120808_1000-60X-gcc470, davidlt_20120808_1000-60X-slc6, davidlt_20120808_1000-60X, CMSSW_4_2_8_SLHChcal6, CMSSW_6_0_0_pre11-slc6, CMSSW_6_0_0_pre11-osx107, CMSSW_6_0_0_pre11-gcc470, ecbForCMSSW_4_2_8_SLHChcal6-slc5_amd64_gcc434, ForCMSSW_6_0_0_pre11-slc6_amd64_gcc462, daForCMSSW_6_0_0_pre11-osx107_amd64_gcc462, daForCMSSW_6_0_0_pre11-slc5_amd64_gcc470, CMSSW_6_0_0_pre11, eulisse_20120803_1320-52X, daForCMSSW_6_0_0_pre11-slc5_amd64_gcc462, CMSSW_5_3_3_patch1-osx107, CMSSW_5_3_3_patch1, sm120801-53X-osx107, sm120801-53X, davidlt_20120801_0942-60X-osx107, davidlt_20120801_0941-60X-slc6, davidlt_20120801_0940-60X-gcc470, davidlt_20120801_0940-60X, davidlt_20120730_1526-60X-osx107, davidlt_20120730_1520-60X-gcc470, davidlt_20120730_1521-60X-slc6, davidlt_20120730_1520-60X, CMSSW_5_3_3, CMSSW_5_3_3-osx107, CMSSW_5_2_6_onlpatch2_ONLINE, davidlt_20120725_1000-60X-osx107, davidlt_20120725_1000-60X-gcc470, davidlt_20120725_1000-60X-slc6, davidlt_20120725_1000-60X, CMSSW_6_0_0_pre10, daForCMSSW_6_0_0_pre10-slc5_amd64_gcc462, davidlt_20120724_1813-60X-osx107, davidlt_20120724_1817-60X-slc6, davidlt_20120724_1811-60X-gcc470, davidlt_20120724_1805-60X, CMSSW_6_0_0_pre9-gcc470, CMSSW_6_0_0_pre9-osx107, CMSSW_6_0_0_pre9, CMSSW_6_0_0_pre9-slc6, CMSSW_5_2_6_onlpatch1_ONLINE, CMSSW_4_2_8_SLHChcal5, daForCMSSW_6_0_0_pre9-slc5_amd64_gcc470, ForCMSSW_6_0_0_pre9-slc6_amd64_gcc462, daForCMSSW_6_0_0_pre9-osx107_amd64_gcc462, daForCMSSW_6_0_0_pre9-slc5_amd64_gcc462, ecbForCMSSW_4_2_8_SLHChcal5-slc5_amd64_gcc434, davidlt_20120718_1227-60X-osx107, davidlt_20120718_1208-60X-slc6, davidlt_20120718_1202-60X-gcc470, davidlt_20120718_1232-60X, davidlt_20120716_1513-53X-osx107, davidlt_20120716_1512-53X, davidlt_20120716_1148-52X-osx106, davidlt_20120716_1146-52X-osx107, davidlt_20120716_1143-52X, davidlt_20120715_1023-60X-osx107, davidlt_20120715_1022-60X-slc6, davidlt_20120715_1021-60X-gcc470, davidlt_20120715_1021-60X, davidlt_20120714_2227-60X-osx107, davidlt_20120714_2232-60X-slc6, davidlt_20120714_2228-60X-gcc470, davidlt_20120714_2229-60X, CMSSW_6_0_0_pre8-slc6, CMSSW_6_0_0_pre8-osx107, CMSSW_6_0_0_pre8-gcc470, CMSSW_4_2_8_SLHCstd2_patch2, CMSSW_4_2_8_SLHCtk3_patch2, CMSSW_4_2_8_SLHChcal2_patch3, daForCMSSW_4_2_8_SLHChcal2_patch3-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd2_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCtk3_patch2-slc5_amd64_gcc434, davidlt_20120712_1112-60X-gcc470, davidlt_20120712_1111-60X-slc6, davidlt_20120712_1109-60X-osx107, davidlt_20120712_1054-60X, CMSSW_5_3_2_patch4, geForCMSSW_5_3_2_patch4-slc5_amd64_gcc462, ForCMSSW_6_0_0_pre8-slc6_amd64_gcc462, daForCMSSW_6_0_0_pre8-osx107_amd64_gcc462, daForCMSSW_6_0_0_pre8-slc5_amd64_gcc470, CMSSW_5_2_6_ONLINE, CMSSW_6_0_0_pre8, daForCMSSW_6_0_0_pre8-slc5_amd64_gcc462, CMSSW_4_2_8_SLHCstd2_patch1, CMSSW_4_2_8_SLHCtk3_patch1, CMSSW_4_2_8_SLHChcal4_patch4, ecbForCMSSW_4_2_8_SLHCtk3_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCstd2_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal4_patch4-slc5_amd64_gcc434, davidlt_20120710_1803-60X-osx107, davidlt_20120710_1802-60X-slc6, davidlt_20120710_1801-60X-gcc470, davidlt_20120710_1759-60X, ecbForCMSSW_4_2_8_SLHChcal2_patch3-slc5_amd64_gcc434, CMSSW_5_3_2_patch3, davidlt_20120709_0949-60X-osx107, davidlt_20120709_0947-60X-slc6, davidlt_20120709_0945-60X-gcc470, davidlt_20120709_0944-60X, CMSSW_5_3_3_cand1, CMSSW_5_3_2_patch2, CMSSW_5_2_7_cand1, av20120708-cmssw526-gcc462onl, CMSSW_5_2_4_onlpatch5_ONLINE, CMSSW_5_2_4_onlpatch4_ONLINE, geForCMSSW_5_3_2_patch2-slc5_amd64_gcc462, geForCMSSW_5_2_7_cand1-slc5_amd64_gcc462, CMSSW_5_3_2_metpatch1, CMSSW_5_2_6_hltpatch1, geForCMSSW_5_2_6_hltpatch1-slc5_amd64_gcc462, davidlt_20120630_1032-60X, davidlt_20120629_1426-60X-osx107, davidlt_20120629_1422-60X-slc6, davidlt_20120629_1419-60X-gcc470, davidlt_20120629_1321-60X, davidlt_20120629_1048-53X-osx107, davidlt_20120629_1042-53X, davidlt_20120629_1042-CMSSW_5_3_2_patch1, davidlt_20120628_1611-52X-osx107, davidlt_20120628_1603-52X-osx106, davidlt_20120628_1536-52X, CMSSW_4_2_8_SLHChcal4_patch3, daForCMSSW_4_2_8_SLHChcal4_patch3-slc5_amd64_gcc434, davidlt_20120628_1117-52X-osx107, davidlt_20120628_1114-52X-osx106, davidlt_20120628_1114-52X, davidlt_20120627_1636-60X-slc6, davidlt_20120627_1635-60X-osx107, davidlt_20120627_1634-60X-gcc470, davidlt_20120627_1632-60X, davidlt_20120627_1115-60X-slc6, davidlt_20120627_1106-60X-osx107, davidlt_20120627_1104-60X-gcc470, CMSSW_6_0_0_pre7py273, davidlt_20120627_1102-60X, sm120627-53X-osx107, sm120626-53X-osx107, ecbForCMSSW_4_2_8_SLHChcal4_patch3-slc5_amd64_gcc434, CMSSW_5_2_6, CMSSW_5_3_2_patch1, sm120626-53X, daForCMSSW_6_0_0_pre7py273-osx107_amd64_gcc462, daForCMSSW_6_0_0_pre7py273-slc5_amd64_gcc462, geForCMSSW_5_2_6-slc5_amd64_gcc462, sm120625-53X, davidlt_20120625_1521-osx107, davidlt_20120625_1518-CMSSW_6_0_0_pre7, davidlt_20120625_1026-60X-osx107, davidlt_20120625_1025-60X-slc6, davidlt_20120625_1024-60X-gcc470, davidlt_20120625_1016-60X, davidlt_test_py273, CMSSW_4_2_8_SLHChcal4_patch2, daForCMSSW_4_2_8_SLHChcal4_patch2-slc5_amd64_gcc434, CMSSW_6_0_0_pre7-osx107, CMSSW_6_0_0_pre7-slc6, CMSSW_6_0_0_pre7-gcc470, daForCMSSW_6_0_0_pre7-osx107_amd64_gcc462, ForCMSSW_6_0_0_pre7-slc6_amd64_gcc462, daForCMSSW_6_0_0_pre7-slc5_amd64_gcc470, CMSSW_4_2_8_SLHChcal4_patch1, daForCMSSW_4_2_8_SLHChcal4_patch1-slc5_amd64_gcc434, CMSSW_5_3_2, CMSSW_6_0_0_pre7, geForCMSSW_5_3_2-slc5_amd64_gcc462, ge20120615-52X, ge20120615, CMSSW_5_2_6_cand1, eulisse_20120615_1606-53X, daForCMSSW_6_0_0_pre7-slc5_amd64_gcc462, ecbForCMSSW_4_2_8_SLHChcal4_patch1-slc5_amd64_gcc434, geForCMSSW_5_2_6_cand1-slc5_amd64_gcc462, davidlt_20120614_2147-gcc470, davidlt_20120614_2144-CMSSW_6_0_0_pre6, eulisse_20120614_2109-ge20120614, ge20120614, davidlt_20120613_1051-60X-gcc470, ge20120612-xdaq-fixed, eulisse_20120612_1208-ge20120606, CMSSW_5_3_1_TS121128, davidlt_20120611_1736-CMSSW_6_0_0_pre6, davidlt_20120611_1739-gcc470, CMSSW_5_3_1_TS120913, CMSSW_5_2_4_hltpatch4, geForCMSSW_5_2_4_hltpatch4-slc5_amd64_gcc462, davidlt_20120608_1804-60X-gcc470, davidlt_20120608_1759-60X-slc6, davidlt_20120608_1756-60X-osx107, davidlt_20120608_1436-60X, CMSSW_6_0_0_pre6Nmix-gcc470, CMSSW_6_0_0_pre6Nmix, daForCMSSW_6_0_0_pre6Nmix-slc5_amd64_gcc470, daForCMSSW_6_0_0_pre6Nmix-slc5_amd64_gcc462, CMSSW_6_0_0_pre6g495p01-gcc470, CMSSW_6_0_0_pre6g495p01, daForCMSSW_6_0_0_pre6g495p01-slc5_amd64_gcc462, daForCMSSW_6_0_0_pre6g495p01-slc5_amd64_gcc470, davidlt_20120607_1801-60X-gcc470, davidlt_20120607_1755-60X, davidlt_20120607_1525-60X-gcc470, davidlt_20120607_1041-60X-osx107, davidlt_20120607_1039-60X-slc6, davidlt_20120607_1035-60X, CMSSW_4_2_8_lowpupatch1, daForCMSSW_4_2_8_lpupatch1-slc5_amd64_gcc434, davidlt_20120606_2304-60X-gcc470, eulisse_20120606_2052-52X-osx107, eulisse_20120606_2011-52X-osx106, ge20120606, davidlt_20120606_1728-53X, daForCMSSW_4_2_8_lowpupatch1-slc5_amd64_gcc434, davidlt_20120606_1135-52X-osx107, davidlt_20120606_1130-52X-osx106, davidlt_20120606_1126-52X, CMSSW_5_2_5_patch3, geForCMSSW_5_2_5_patch3-slc5_amd64_gcc462, davidlt_20120605_2037-60X-gcc470, ge20120605b, ge20120605, CMSSW_5_2_5_patch2, geForCMSSW_5_2_5_patch2-slc5_amd64_gcc462, CMSSW_4_2_8_patch7, davidlt_20120604_1841-60X-gcc470, ge20120604-llvm, CMSSW_6_0_0_pre6-slc6, CMSSW_6_0_0_pre6-osx107, CMSSW_6_0_0_pre6-gcc470, CMSSW_6_0_0_pre6, sm120601-53X, sm120601-53X-osx107, daForCMSSW_6_0_0_pre6-osx107_amd64_gcc462, ForCMSSW_6_0_0_pre6-slc6_amd64_gcc462, daForCMSSW_6_0_0_pre6-slc5_amd64_gcc470, daForCMSSW_6_0_0_pre6-slc5_amd64_gcc462, davidlt_20120531_1114-60X-osx107, davidlt_20120531_1112-60X-slc6, davidlt_20120531_1111-60X-gcc470, davidlt_20120531_1110-60X, davidlt_20120529_1108-60X, davidlt_20120529_1110-60X-gcc470, davidlt_20120529_1112-60X-slc6, davidlt_20120529_1113-60X-osx107, davidlt_20120529_1024-60X-gcc470, davidlt_20120528_1234-60X-osx107, davidlt_20120528_1232-60X-slc6, davidlt_20120528_1230-60X-gcc470, davidlt_20120528_1228-60X, davidlt_20120525_1144-60X-gcc470, cmsForCMSSW_6_0_X_2012-05-25-0200-slc5_amd64_gcc470, davidlt_20120525_0906-60X-slc6, davidlt_20120525_0901-60X-osx107, davidlt_20120524_1540-60X-gcc470, davidlt_20120524_1535-60X, davidlt_test_gcc470_1, davidlt_20120523_1319-60X-slc6, davidlt_20120523_1316-60X-osx107, davidlt_20120523_1314-60X-gcc470, davidlt_20120523_1311-60X, CMSSW_5_3_1, CMSSW_4_1_8_patch10, daForCMSSW_4_1_8_patch10-slc5_amd64_gcc434, CMSSW_6_0_0_pre5-gcc470, CMSSW_6_0_0_pre5-osx107, CMSSW_6_0_0_pre5-slc6, CMSSW_5_2_5_ecalpatch1, geForCMSSW_5_2_5_ecalpatch1-slc5_amd64_gcc462, daForCMSSW_6_0_0_pre5-slc5_amd64_gcc470, davidltForCMSSW_6_0_0_pre5-osx107_amd64_gcc462, ForCMSSW_6_0_0_pre5-slc6_amd64_gcc462, ge20120521-cms-common, CMSSW_6_0_0_pre5, cmsForCMSSW_6_0_X_2012-05-18-1400-slc5_amd64_gcc470, CMSSW_5_3_0_patch1, CMSSW_4_2_8_SLHCtk3, CMSSW_4_2_8_SLHChcal4, sm120518-60X-slc6, sm120518-60X-osx107, sm120518-60X-gcc470, sm120518-60X, sm120508a-60X-osx107, sm120508a-60X-gcc470, sm120508a-60X, sm120518a-52X-slc6, sm120518-52X-osx106, sm120518-52X, sm120518-52X-slc6, sm120518-52X-osx107, sm120518-53X, sm120518-53X-slc6, sm120518-53X-gcc470, sm120518-53X-osx107, sm120508-60X-slc6, sm120508-60X-gcc470, sm120508-60X-osx107, sm120508-60X, sm120508-slc6, sm120508-gcc470, sm120508-osx107, wtForCMSSW_6_0_0_pre4-slc5_amd64_gcc462, ecbForCMSSW_4_2_8_SLHChcal4-slc5_amd64_gcc434b, CMSSW_5_2_5_patch1, ecbForCMSSW_4_2_8_SLHCtk3-slc5_amd64_gcc434, daForCMSSW_6_0_0_pre5-slc5_amd64_gcc462, CMSSW_4_2_9_HLT1_bphpatch4, daForCMSSW_4_2_9_HLT1_bphpatch4-slc5_amd64_gcc434, geForCMSSW_5_2_5_patch1-slc5_amd64_gcc462, CMSSW_4_2_8_SLHCstd2, davidlt_20120514_1045-60X, davidlt_20120514_1052-60X-gcc470, davidlt_20120514_1054-60X-slc6, davidlt_20120514_1057-60X-osx107, cmsForCMSSW_6_0_X_2012-05-11-1400-slc5_amd64_gcc470, ge20120511-clang, CMSSW_5_2_5_ONLINE, ge20120511b-gcc47x, davidlt_20120510_1929-60X, ge20120511-gcc47x, ge20120510-gcc47x, cmsForCMSSW_6_0_X_2012-05-10-1400-slc5_amd64_gcc470, ecbForCMSSW_4_2_8_SLHCstd2-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCstd2-slc5_amd64_gcc434, davidlt_20120510_1021-60X-gcc470, davidlt_20120510_1028-60X-osx107, davidlt_20120510_1008-60X-slc6, davidlt_test_6, ecbForCMSSW_4_2_8_SLHCstd_patch1-slc5_amd64_gcc434, CMSSW_5_3_0, CMSSW_6_0_0_pre4-slc6, CMSSW_6_0_0_pre4-osx107, CMSSW_6_0_0_pre4-gcc470, CMSSW_6_0_0_pre4, ge20120508-slc6, ForCMSSW_6_0_0_pre4-slc6_amd64_gcc462, daForCMSSW_6_0_0_pre4-slc5_amd64_gcc470, geForCMSSW_5_2_5-osx106_amd64_gcc462, geForCMSSW_5_2_5-osx107_amd64_gcc462, daForCMSSW_6_0_0_pre4-osx107_amd64_gcc462, daForCMSSW_6_0_0_pre4-slc5_amd64_gcc462, CMSSW_5_2_5, davidlt_20120504_1635-60X-osx107, davidlt_20120504_1632-60X-slc6, davidlt_20120504_1630-60X-gcc470, davidlt_20120504_1624-60X, davidlt_20120504_1635-53X-osx107, CMSSW_5_2_4_onlpatch3_ONLINE, geForCMSSW_5_2_5-slc5_amd64_gcc462, CMSSW_5_2_4_hltpatch3, davidlt_20120504_1635-63X-osx107, davidlt_20120504_1632-53X-slc6, davidlt_20120504_1630-53X-gcc470, davidlt_20120504_1624-53X, ge20120505, ge20120503-60x-gcc470, geForCMSSW_5_2_4_hltpatch3-slc5_amd64_gcc462, CMSSW_5_2_4_hltpatch2, geForCMSSW_5_2_4_hltpatch2-slc5_amd64_gcc462, CMSSW_4_2_9_HLT1_bphpatch3, ge20120502b, ge20120502, daForCMSSW_4_2_9_HLT1_bphpatch3-slc5_amd64_gcc434, av20120430-cmssw525cand1-gcc462onl, davidlt_20120428_1114-60X-osx107, davidlt_20120428_1111-60X-slc6, davidlt_20120428_1106-60X, CMSSW_5_2_5_cand1, geForCMSSW_5_2_5_cand1-slc5_amd64_gcc462, ge20120428, ge20120427, davidlt_20120427_1349-60X-gcc470, davidlt_test_5, ge20120426-lion, ge20120426, CMSSW_4_2_8_SLHCtk_patch2, CMSSW_4_2_8_SLHChcal2_patch2, CMSSW_4_2_8_SLHC2_patch2, CMSSW_5_2_4_patch4, geForCMSSW_5_2_4_patch4-slc5_amd64_gcc462, cmsForCMSSW_6_0_X_2012-04-25-1400-slc5_amd64_gcc470, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434d, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434c, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHC2_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHCtk_patch2-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2_patch2-slc5_amd64_gcc434, davidlt_test_4, davidlt_20120425_1142-60X-osx107, davidlt_20120425_1139-60X-gcc470, davidlt_20120425_1137-60X-slc6, davidlt_20120425_1134-60X, davidlt_20120425_1120-52X-slc6, davidlt_20120425_1117-52X-lion, davidlt_20120425_1113-52X, ecbForCMSSW_4_2_8_SLHChcal4-slc5_amd64_gcc434, CMSSW_6_0_0_pre3-osx107, CMSSW_6_0_0_pre3-slc6, CMSSW_6_0_0_pre3-gcc470, CMSSW_6_0_0_pre3, ge20120424-cms-common, ForCMSSW_6_0_0_pre3-slc6_amd64_gcc462, daForCMSSW_6_0_0_pre3-osx107_amd64_gcc462, daForCMSSW_6_0_0_pre3-slc5_amd64_gcc470, CMSSW_5_2_4_patch3, CMSSW_4_2_8_SLHCtk2, geForCMSSW_5_2_4_patch3-slc5_amd64_gcc462, daForCMSSW_6_0_0_pre3-slc5_amd64_gcc462, daForCMSSW_4_2_8_SLHCtk2-slc5_amd64_gcc434, CMSSW_5_2_4_patch2, geForCMSSW_5_2_4_patch2-slc5_amd64_gcc462, CMSSW_4_2_8_SLHChcal3, CMSSW_4_2_8_SLHCstd, daForCMSSW_4_2_8_SLHChcal3-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434, davidlt_20120419_1945-CMSSW_4_2_8_SLHChcal3-gcc434, davidlt_20120419_1841-CMSSW_4_2_8_SLHCstd-gcc434, davidlt_20120419_1841-slc5_amd64_gcc434b, ecbForCMSSW_4_2_8_SLHCtk2-slc5_amd64_gcc434, davidlt_20120419_1431-60X-gcc470, davidlt_20120418_2032-60X-gcc470, davidlt_20120418_1546-60X-gcc470, ecbForCMSSW_4_2_8_SLHChcal3-slc5_amd64_gcc434, davidlt_test_3, davidlt_test_2, ecbForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434b, davidlt_test_1, CMSSW_5_2_4_onlpatch1_ONLINE, CMSSW_5_2_4_ONLINE, ecbForCMSSW_4_2_8_SLHCstd-slc5_amd64_gcc434, CMSSW_5_2_4_patch1, daForCMSSW_5_2_4_patch1-slc5_amd64_gcc462, CMSSW_5_2_4-osx107, CMSSW_5_2_4-osx106, daForCMSSW_5_2_4-osx106_amd64_gcc462, daForCMSSW_5_2_4-osx107_amd64_gcc462, CMSSW_5_2_4, daForCMSSW_5_2_4-slc5_amd64_gcc462, CMSSW_5_2_3_patch4_ONLINE, CMSSW_5_2_3_patch4, CMSSW_4_2_8_SLHC2_patch1, CMSSW_4_2_8_SLHCtk_patch1, CMSSW_4_2_8_SLHChcal2_patch1, daForCMSSW_4_2_8_SLHC2_patch1-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHChcal2_patch1-slc5_amd64_gcc434, daForCMSSW_4_2_8_SLHCtk_patch1-slc5_amd64_gcc434, CMSSW_4_2_9_HLT1_bphpatch2, daForCMSSW_4_2_9_HLT1_bphpatch2-slc5_amd64_gcc434, davidlt_20120406_1647-60X-gcc470, CMSSW_5_2_3_patch3, daForCMSSW_5_2_3_patch3-slc5_amd64_gcc462, ecbForCMSSW_4_2_8_SLHC2_patch1-slc5_amd64_gcc434, ecbForCMSSW_4_2_8_SLHChcal2_patch1-slc5_amd64_gcc434, ecbFor428slhctkp1, davidlt_20120405_1007-60X-gcc470, CMSSW_4_2_9_HLT1_bphpatch1, CMSSW_6_0_0_pre2-osx107, CMSSW_6_0_0_pre2-slc6, CMSSW_6_0_0_pre2, daForCMSSW_4_2_9_HLT1_bphpatch1-slc5_amd64_gcc434, sm20120404-60X-osx107, sm20120404-60X-slc6, sm20120404-60X-gcc470, sm20120404-60X, davidlt_20120404_1419-42X-HLT1-bph1, CMSSW_5_2_3_patch2, geForCMSSW_5_2_3_patch2-slc5_amd64_gcc462, davidlt_20120403_1447-60X-slc6, davidlt_20120403_1455-60X-gcc470, davidlt_20120403_1459-60X-osx107, davidlt_20120403_1446-60X, geForCMSSW_5_2_3-osx106_amd64_gcc462, geForCMSSW_5_2_3-osx107_amd64_gcc462, davidlt_20120401_1059-60X-slc6, CMSSW_5_2_3_patch1_ONLINE, CMSSW_5_2_3_patch1, av20120330-cmssw523patch1-gcc462onl, geForCMSSW_5_2_3_patch1-slc5_amd64_gcc462, CMSSW_5_2_3_onlpatch1_ONLINE, av20120329-cmssw523onlpatch1-gcc462onl, CMSSW_5_2_3_ONLINE, CMSSW_5_2_3, geForCMSSW_5_2_3-slc5_amd64_gcc462, davidlt_20120327_1112-51X-gcc470, davidlt_1-51X-gcc470, sm20120327-60X-osx107, sm20120327-60X-gcc470, sm20120327-60X-slc6, sm20120327-60X, CMSSW_5_2_2_ONLINE, fw20120325-cmssw522-gcc462onl, av20120324-cmssw522-gcc462onl, CMSSW_6_0_0_pre1_LOOPER, davidlt_20120323_1820-slc6, davidlt_20120323_1438-osx107, davidlt_20120323_1340-60X, CMSSW_6_0_0_pre1-osx107, CMSSW_6_0_0_pre1-slc6, CMSSW_6_0_0_pre1, sm20120322-60x-slc6, CMSSW_4_1_8_patch9, eulisse_20120321_1634-52X, davidlt_20120321_1033-60X-lion, davidlt_20120321_1024-60X, CMSSW_5_1_3, geForCMSSW_5_2_2-osx107_amd64_gcc462, geForCMSSW_5_2_2-osx106_amd64_gcc462, CMSSW_5_2_2, geForCMSSW_5_2_2-slc5_amd64_gcc462, geForCMSSW_5_2_1-osx107_amd64_gcc462, ge20120314-52X-lion, geForCMSSW_5_2_1-osx106_amd64_gcc462, CMSSW_5_2_1, daForCMSSW_5_1_3-osx106_amd64_gcc462, daForCMSSW_5_1_3-slc5_amd64_gcc462, geForCMSSW_5_2_1-slc5_amd64_gcc462, ge20120316-52X, davidlt_20120315_1325-60X-gcc470, davidlt_20120313_1031-60X-lion, davidlt_20120307_0959-60X-slc6, davidlt_20120313_1023-60X, davidlt_20120314_1407-60X-gcc470, BOOTSTRAP_slc5_amd64_gcc470, davidlt_20120314_1059-51X-gcc462, ge20120314-52X, davidlt_20120313_1031-52X-lion, davidlt_20120313_1023-52X, davidlt_20120312_1508-51X-gcc462, davidlt_60X_gcc470_2, davidlt_60X_gcc470, CMSSW_4_4_4-ports, CMSSW_4_4_4, ge20120310-52X, sm20120309, sm20120309-ports, CMSSW_5_1_2_patch1, daForCMSSW_5_1_2_patch1-slc5_amd64_gcc462, geForCMSSW_5_2_0-osx106_amd64_gcc462, geForCMSSW_5_2_0-osx107_amd64_gcc462, CMSSW_5_2_0, davidlt_20120307_1529-51X-gcc462, davidlt_20120307_0959-52X-slc6, geForCMSSW_5_2_0-slc5_amd64_gcc462, CMSSW_5_1_2_ONLINE, ge20120305-52X-lion, fw20120305-cmssw512-gcc462onl, CMSSW_5_1_1_patch2_ONLINE, ge20120305-52X, davidlt_20120304_1754-52X-slc6, CMSSW_5_1_1_patch3, daForCMSSW_5_1_1_patch3-slc5_amd64_gcc462, sm20120302-52X-slc6, sm20120302-52X-lion, sm20120302-52X, fw20120302-cmssw511p2-gcc461onl, davidlt_20120301_1448-52X-gcc462-slc6, ge20120301-52X-lion, ge20120301-52X, davidlt_20120229_1507-52X-gcc462-slc6, da20120229-52X-gcc462-slc6, davidlt_slc6c, davidlt_slc6b, geForCMSSW_5_2_0_pre6_TS117498-slc5_amd64_gcc462, CMSSW_5_2_0_pre5_TS117504, davidlt_slc6a, sm20120228-44X-ports, sm20120228-44X, geForCMSSW_5_2_0_pre5_TS117504-slc5_amd64_gcc462, BOOTSTRAP_slc6_amd64_gcc462, ge20120227-52X, geForCMSSW_5_2_0_pre6-osx106_amd64_gcc462, geForCMSSW_5_2_0_pre6DQM-slc5_amd64_gcc462, CMSSW_5_1_2, daForCMSSW_5_1_2-osx106_amd64_gcc462, daForCMSSW_5_1_2-slc5_amd64_gcc462, geForCMSSW_5_2_0_pre6-osx107_amd64_gcc462, CMSSW_5_2_0_pre6, davidlt_20120224_2132-51X-gcc462, CMSSW_5_1_1_ONLINE, geForCMSSW_5_2_0_pre6-slc5_amd64_gcc462, fw20120222-cmssw511-gcc461onl-3, fw20120222-cmssw511-gcc461onl-2, fw20120222-cmssw511-gcc461onl, ge20120222-52X-gcc462-lion, ge20120222-52X-gcc462, fw20120221-gcc461onl, sm120221, CMSSW_5_1_1_patch2, daForCMSSW_5_1_1_patch2-slc5_amd64_gcc462, sm120220-ports, sm120220, ge20120218-52X-gcc462-lion, vs20120218-52X-gcc462-lion, ge20120218-52X-gcc462, ge20120215-52X-gcc462, CMSSW_4_4_3_patch1-ports, CMSSW_4_4_3_patch1, CMSSW_5_1_1_patch1, daForCMSSW_5_1_1_patch1-slc5_amd64_gcc462, vs20120215-52X-gcc462, vs20120215-52X, vs20120215-52X-gcc462-lion, vs20120215-51X-gcc462, vs20120215-51X, vs20120215-50X-gcc461-ports, vs20120215-50X, vs20120215-50X-ports, vs20120215-44X, vs20120215-44X-ports, CMSSW_5_2_0_pre5, da20120215-52X-gcc462-lion, da20120215-52X-gcc462, da20120214-50X-ports, da20120214-50X, da20120214-50X-gcc461-ports, CMSSW_5_1_1, geForCMSSW_5_2_0_pre5-osx106_amd64_gcc462, geForCMSSW_5_2_0_pre5-osx107_amd64_gcc462, geForCMSSW_5_2_0_pre5-slc5_amd64_gcc462, geForCMSSW_5_2_0_pre5-slc5_amd64_gcc461, CMSSW_5_0_1_patch3-gcc461-ports, CMSSW_5_0_1_patch3, ge20120213-52X-gcc462, daForCMSSW_5_0_1_patch3b-slc5_amd64_gcc461, daForCMSSW_5_0_1_patch3b-slc5_amd64_gcc434, daForCMSSW_5_1_1b-osx106_amd64_gcc462, daForCMSSW_5_1_1b-slc5_amd64_gcc462, da20120213-51X-gcc462, ge20120213-52X-gcc462-lion, ge20120212c-52X-gcc462-lion, daForCMSSW_5_1_1-osx106_amd64_gcc462, daForCMSSW_5_0_1_patch3-slc5_amd64_gcc434, daForCMSSW_5_1_1-slc5_amd64_gcc462, ge20120212b-52X-gcc462-lion, ge20120212-52X-gcc462-lion, ecbForCMSSW_4_2_8_SLHChcal2-slc5_amd64_gcc434, CMSSW_4_1_8_patch8, da20120209-52X-gcc462-lion, da20120209-52X-gcc462, da20120209-52X, CMSSW_5_0_1_patch2-gcc461-ports, CMSSW_5_0_1_patch2, vs20120207-52X, vs20120207a-51X, da20120207b-51X-gcc462, da20120207-51X-gcc462, daForCMSSW_5_0_1_patch2c-slc5_amd64_gcc461, daForCMSSW_5_0_1_patch2c-slc5_amd64_gcc434, daForCMSSW_5_0_1_patch2-slc5_amd64_gcc461, CMSSW_5_2_0_pre4, daForCMSSW_5_0_1_patch2b-slc5_amd64_gcc434, vs20120207-51X, daForCMSSW_5_0_1_patch2-slc5_amd64_gcc434, da20120206-50X-gcc461-ports, da20120206-50X, da20120206-50X-ports, geForCMSSW_5_2_0_pre4-slc5_amd64_gcc461, geForCMSSW_5_2_0_pre4, da20120205-44X-ports, da20120205-44X, da20120205-50X-gcc461-ports, da20120205-50X-ports, da20120205-50X, da20120205-51X, fw20120205-cmssw50x-online, CMSSW_5_0_1_ONLINE, ge20120204-51X-gcc462-lion, ge20120204-51X-gcc462, da20120204-52X-gcc462-lion, da20120204-52X, geForCMSSW_5_2_0_pre2_TS113282_TS115242, CMSSW_4_2_8_SLHCtk, CMSSW_5_0_1_patch1-gcc461-ports, CMSSW_5_0_1_patch1, vskarupeForCMSSW_4_2_8_SLHCtkd, vskarupeForCMSSW_4_2_8_SLHCtkc, da20120201-42X-ports, da20120201-42X, vskarupeForCMSSW_4_2_8_SLHCtkb, vskarupeForCMSSW_4_2_8_SLHCtk, CMSSW_5_0_0_patch2-gcc461-ports, CMSSW_5_0_0_patch2, fw20120202cmssw501online, CMSSW_4_2_8_p7rootfix, fw20120201cmssw501online, ecbFor428slhcstd, da20120130-52X, daFor428p7rootfix-ports, daFor428p7rootfix, CMSSW_5_0_1-ports, CMSSW_5_0_1-gcc461-ports, CMSSW_5_0_1, da20120129-50X-ports, da20120129-50X, da20120129-50X-gcc461-ports, da20120129-52X, ecbFor428slhctk, CMSSW_5_0_0_ONLINE-cms, fw20120127gcc461cmssw500onl, ebFor428slhc1p1, fw20120126gcc461cmssw500onl, CMSSW_5_2_0_pre2_TS113282, daFor520pre2TS113282, daFor520pre2TS113042, fw20120125gcc461cmssw500onl, CMSSW_4_4_3-ports, CMSSW_4_4_3, sm120124-ports, da20120124-52X, da20120123-52X, da20120123-51X, da20120123-50X-ports, da20120123-50X, da20120123-50X-gcc461-ports, da20120123-44X-ports, da20120123-44X, CMSSW_5_0_0_patch1-gcc461-ports, CMSSW_5_0_0_patch1, CMSSW_5_2_0_pre2, daFor520pre2, da20120120-52X, CMSSW_5_2_0_pre1, daFor520pre1, CMSSW_4_4_2_p10JEmalloc, CMSSW_5_1_0_pre2, daFor510pre2, da20120116-52X, da20120112b-51X, da20120112b-52X, da20120112-50X-ports, da20120112-50X, da20120112-50X-gcc461-ports, da20120112-51X, da20120112-52X, CMSSW_5_0_0_ONLINE, da20120110-50X-ports, da20120110-50X, da20120110-50X-gcc461-ports, da20120110-51X, fw20120110gcc461cmssw500onl, da20120110-52X, CMSSW_4_1_8_patch7, da20120109b-51X, da20120109b-52X, da20120109-52X, da20120108-52X-ports, da20120108-52X, da20120108-52X-gcc461-ports, da20120106-52X-ports, da20120106-52X, da20120106-52X-gcc461-ports, sm120105onl500, CMSSW_5_0_0_g4emtest, sm111222a-onlgcc461, sm111222-onlgcc461, CMSSW_4_4_2_patch10-ports, CMSSW_4_4_2_patch10, CMSSW_5_0_0-ports, azFor442patch10gcc451, azFor442patch10, da20111220-50X-ports, da20111220-50X, da20111220-50X-gcc461-ports, da20111219-50X-ports, da20111219-50X, da20111219-50X-gcc461-ports, sjgFor510pre1, CMSSW_5_1_0_pre1-gcc461-ports, sjgFor510pre1d-gcc461-ports, sjgFor510pre1c-gcc461-ports, sjgFor510pre1b-gcc461-ports, daFor510pre1c-gcc461-ports, sjgFor500-ports, CMSSW_5_0_0-gcc461-ports, CMSSW_5_0_0, sjgFor500-gcc461-ports, sjgFor500, daFor510pre1b-gcc461-ports, az20111214-50X-gcc461-ports, az20111214-50X-ports, az20111214-50X, CMSSW_4_2_8_SLHChcal, CMSSW_4_4_2_patch9-ports, CMSSW_4_4_2_patch9, vsFor442patch9gcc451, vsFor442patch9, ecbFor428slhchcal, vs20111213-50X-ports, vs20111213-50X, daFor510pre1-gcc461-ports, sjgFor510pre1-gcc461-ports, fwFor500pre7-online, CMSSW_4_4_2_patch8-ports, CMSSW_4_4_2_patch8, CMSSW_5_0_0_pre7pythia424, sjgFor500pre7p424b, sjgFor500pre7p424, CMSSW_4_1_8_patch6, CMSSW_5_0_0_pre7, CMSSW_5_0_0_pre7-gcc461-ports, sjgFor500pre7-ports, sjgFor500pre7-gcc461-ports, sjgFor500pre7, da20111206b-50X-gcc461-ports, da20111206-50X-gcc461-ports, da20111205-50X-ports, da20111205-50X-gcc461-ports, da20111205-50X, sjg20111204b-50X, sjg20111204-50X, da20111202-50X-ports, da20111202-50X-gcc461-ports, da20111202-50X, vs20111201-50X-ports, da20111201f-50X-gcc461-ports, da20111201e-50X-gcc461-ports, vs20111201c-50X, vs20111201temp-50X, da20111201d-50X-gcc461-ports, vs20111201b-50X, CMSSW_4_2_4_g94p03c, da20111201c-50X-gcc461-ports, vs20111201-50X, da20111201c-50X-ports, da20111201b-50X-ports, da20111201b-50X-gcc461-ports, da20111201b-50X, da20111201-50X-gcc461-ports, da20111201-50X, vs20111130-42X-ports, vs20111130-42X, vs20111130-44X-ports, vs20111130-44X, da20111130-50X-ports, da20111130-50X-gcc461-ports, da20111130-50X, CMSSW_4_2_8_SLHC1, CMSSW_4_2_8_SLHC2, CMSSW_5_0_0_pre6g494, da20111128-50X-ports, da20111128-50X-gcc461-ports, da20111128-50X, sjgFor500pre6gcc494, az20111126-50X-gcc461-ports, az20111126-50X-ports, az20111126-50X, sm20111126-50X-gcc461-ports, sm20111126-50X-ports, sm20111126-50X, az20111125-50X-ports, az20111125-50X-gcc461-ports, az20111125-50X, az20111124-50X-ports, az20111124-50X-gcc461-ports, az20111124-50X, az20111123-50X-gcc461-ports, az20111123-50X-ports, az20111123-50X, CMSSW_4_4_2_patch7-ports, CMSSW_4_4_2_patch7, azFor442patch7gcc451, azFor442patch7gcc434, CMSSW_4_1_8_patch5, azFor418patch5, ecbFor428slhc1, CMSSW_5_0_0_pre6, CMSSW_5_0_0_pre6-ports, CMSSW_5_0_0_pre6-gcc461-ports, ecbFor428slhc2, sjgFor500pre6-ports, sjgFor500pre6-gcc461-ports, sjgFor500pre6, sm20111121-50X-gcc461-ports, sm20111121-50X, sm20111121-50X-ports, az20111121-50X-ports, CMSSW_4_4_2_patch6-ports, CMSSW_4_4_2_patch6, az20111118b-50X-gcc461-ports, az20111118b-50X-ports, az20111118-50X-ports, azFor442patch6gcc451, azFor442patch6gcc434, sm20111118-50X-gcc461-ports, az20111117b-50X-gcc461-ports, az20111117b-50X-ports, az20111117b-50X, az20111117-50X-gcc461-ports, az20111117-50X-ports, az20111117-50X, az20111116-50X-gcc461-ports, az20111116-50X-ports, az20111116-50X, CMSSW_4_4_2_onlpatch2_ONLINE, az20111115b-50X-gcc461-ports, az20111115b-50X-ports, az20111115-50X-gcc461-ports, az20111115-50X-ports, sm111115-onlgcc461, az20111115-50X, CMSSW_4_1_8_patch4, az20111110-42X-ports, CMSSW_5_0_0_pre5_root532rc1, azFor500pre5r532rc1, az20111111b-50X, az20111111-50X, CMSSW_4_4_2_patch5-ports, CMSSW_4_4_2_patch5, azFor442patch5gcc451, azFor442patch5gcc434, CMSSW_4_4_2_patch4-ports, CMSSW_4_4_2_patch4, azFor442patch4gcc451, azFor442patch4gcc434, az20111110-42X, az20111109b-44X, az20111109b-44X-ports, az20111109-44X-ports, az20111109-44X, CMSSW_4_4_2_patch3-ports, CMSSW_4_4_2_patch3, azFor442patch3gcc451, azFor442patch3gcc434, sjg111108-50X-gcc461-ports, az20111108-50X-gcc461-ports, az20111108-50X-ports, az20111108-50X, CMSSW_4_2_3_SLHC4_patch1, CMSSW_4_4_2_patch2-ports, CMSSW_4_4_2_patch2, CMSSW_5_0_0_pre5-ports, CMSSW_5_0_0_pre5, CMSSW_5_0_0_pre5-gcc461-ports, sjgFor500pre5-50X-gcc461-ports, sjgFor500pre5-ports, sjgFor500pre5, CMSSW_4_4_2_patch1-ports, CMSSW_4_4_2_patch1, azFor442patch1gcc451, azFor442patch1gcc434, CMSSW_4_1_8_patch3, fwFor500pre4-online, az20111102b-50X-ports, az20111102b-50X-gcc461-ports, az20111102b-50X, az20111102-50X, CMSSW_4_4_2_onlpatch1_ONLINE, CMSSW_4_4_2_ONLINE, az20111031-42X-ports, az20111031-42X, az20111031c-50X-gcc461-ports, az20111031c-50X-ports, az20111031c-50X, az20111031b-50X, az20111031-50X, ebFor423slhc4p1, CMSSW_4_4_2-ports, CMSSW_4_4_2, az20111027c-50X-gcc461-ports, azFor442gcc451, azFor442gcc434, CMSSW_5_0_0_pre4-gcc461-ports, CMSSW_5_0_0_pre4-ports, CMSSW_5_0_0_pre4, az20111027b-50X-gcc461-ports, az20111027b-50X-ports, az20111027b-50X, az20111027-50X-gcc461-ports, az20111027-50X-ports, az20111027-50X, sjgFor500pre4-gcc461-ports, sjgFor500pre4-ports, sjgFor500pre4, az20111026-50X-gcc461-ports, az20111026-50X-ports, az20111026-50X, az20111025-50X-gcc461-ports, az20111025-50X-ports, az20111025-50X, sm20111025-50X-ports, sm20111025-50X-gcc461-ports, sm20111025-50X, CMSSW_4_2_9_HLT3_onlpatch4_ONLINE, az20111024-50X-gcc461-ports, az20111024-50X-ports, az20111024-50X, az20111022-50X, sjg111021c-50X-gcc461-ports, sjg111021b-50X-ports, sjg111021b-50X-gcc461-ports, sjg111021d-50X, sjg111021c-50X, sjg111021-50X-gcc461-ports, sjg111021-50X-ports, sjg111021b-50X, sjg111021-50X, CMSSW_4_2_9_HLT3_onlpatch3_ONLINE, az20111020-50X-gcc461-ports, CMSSW_4_4_0_patch4-ports, CMSSW_4_4_0_patch4, azFor440patch4gcc451, azFor440patch4gcc434, CMSSW_5_0_0_pre3, CMSSW_5_0_0_pre3-gcc461-ports, CMSSW_5_0_0_pre3-ports, CMSSW_4_1_8_patch2, sjgFor500pre3-gcc461-ports, sjgFor500pre3-ports, sjgFor500pre3, sjgFor500pre2d-gcc461-ports, sjgFor500pre2c-gcc461-ports, sjgFor500pre2b-gcc461-ports, az20111014b-50X-gcc461-ports, az20111014-50X-ports, az20111014-50X, CMSSW_4_4_1_ONLINE, az20111014-50X-gcc461-ports, CMSSW_4_2_9_HLT3_hltpatch3, CMSSW_4_4_1-ports, CMSSW_4_4_1, sjgFor500pre2-gcc461-ports, az20111012-50X-ports, az20111012-50X, azFor441gcc451, azFor441gcc434, az20111011c-50X-gcc461-ports, az20111011b-50X-gcc461-ports, az20111011b-50X-ports, az20111011b-50X, az20111011a-50X-gcc461-ports, az20111011a-50X-ports, az20111011a-50X, az20111011-50X, az20111010-50X-gcc461-ports, CMSSW_4_2_9_HLT3_onlpatch2_ONLINE, CMSSW_5_0_0_pre2, CMSSW_5_0_0_pre2-ports, sjgFor500pre2-ports, sjgFor500pre2, CMSSW_4_4_0_patch3-ports, CMSSW_4_4_0_patch3, CMSSW_4_2_8_patch6, CMSSW_4_2_8_patch6-ports, azFor440patch3gcc451, azFor440patch3gcc434, az20111007-50X-gcc461-ports, az20111007-50X-ports, az20111007-50X, CMSSW_4_4_0_patch2-ports, CMSSW_4_4_0_patch2, azFor440patch2gcc451, azFor440patch2gcc434, az20111005-50X-gcc461-ports, az20111004a-50X-gcc461-ports, az20111004-50X-gcc461-ports, CMSSW_4_2_4_g94p02, CMSSW_4_2_4_g93p01, CMSSW_4_2_9_HLT3_hltpatch1, CMSSW_4_2_9_HLT3_hltpatch2, az20111003-50X-gcc461-ports, CMSSW_4_2_9_HLT3_onlpatch1_ONLINE, CMSSW_4_2_9_HLT3_ONLINE, CMSSW_4_4_0_patch1-ports, CMSSW_4_4_0_patch1, azFor440patch1gcc451a, azFor440patch1gcc434a, azFor440patch1gcc451, azFor440patch1gcc434, CMSSW_4_2_8_patch5-ports, CMSSW_4_2_8_patch5, az20110930a-50X-gcc461-ports, az20110930-50X-gcc461-ports, ge20110930-gcc461-ports, CMSSW_5_0_0_pre1-ports, CMSSW_4_2_9_HLT3-ports, CMSSW_4_2_9_HLT3, az20110929a-50X-gcc461-ports, sjgFor500pre1-ports, az20110929-50X-ports, az20110929-50X-gcc461-ports, ge20110929-gcc461-ports, az20110928a-50X-gcc461-ports, az20110928a-50X-ports, az20110928a-50X, az20110928-50X-gcc461-ports, az20110928-50X-ports, az20110928-50X, az20110928-50X-461-ports, az20110926-50X-ports, az20110926a-50X-gcc461-ports, az20110926-gcc461-ports, ge20110926-gcc461-ports, CMSSW_5_0_0_pre1, sjgFor500pre1b, sjgFor500pre1, az20110922c-50X, ge20110923-gcc461-ports, CMSSW_4_4_0-ports, CMSSW_4_4_0, az20110922c-50X-ports, azFor440gcc451, azFor440gcc434, az20110922b-50X-ports, az20110922b-50X, ge20110922b-gcc461-ports, CMSSW_4_2_9_HLT2_hltpatch1, az20110922a-50X-ports, az20110922a-50X, az20110922-50X, ge20110922-gcc461-ports, ge20110921-gcc461-ports, CMSSW_4_2_9_HLT2_onlpatch1_ONLINE, CMSSW_4_2_9_HLT2_ONLINE, az20110921-44X-ports, az20110921-44X, CMSSW_4_2_9_HLT2, CMSSW_4_2_9_HLT2-ports, az20110920-50X-ports, az20110920-50X, ge20110919-gcc461, az20110918-50X-ports, az20110918-50X, az20110916c-50X-ports, az20110916c-50X, az20110916b-50X, az20110916a-50X, az20110916-50X, CMSSW_4_2_8_patch4-ports, CMSSW_4_2_8_patch4, CMSSW_4_2_9_HLT1_patch1-ports, CMSSW_4_2_9_HLT1_patch1, az20110914-44X-ports, az20110914-44X, ge20110914-gcc461, az20110913-44X-ports, az20110913-44X, az20110912-50X-ports, az20110912-50X, CMSSW_4_2_9_HLT1_ONLINE, az20110912-44X-ports, az20110912-44X, sm20110912-50X-ports, sm20110912-50X, CMSSW_4_4_0_pre10_ONLINE, fwFor440pre10online, CMSSW_4_4_0_pre10-ports, CMSSW_4_4_0_pre10, azFor440pre10gcc451, azFor440pre10gcc434, az20110909b-44X-ports, az20110909b-44X, az20110909a-44X-ports, az20110909a-44X, az20110909-44X-ports, az20110909-44X, az20110908-50X-ports, az20110908-50X, az20110907c-50X, az20110907c-50X-ports, CMSSW_4_1_8_patch1, az20110907b-50X, sjgFor418p1a, sjgFor418p1, az20110906b-44X, az20110906a-44X, sm20110907-50X-ports, sm20110907-50X, az20110906a-50X-ports, az20110906-44X-ports, az20110906-44X, az20110906-50X-ports, az20110904-50X-ports, az20110904-50X, az20110902b-50X-ports, az20110902b-50X, az20110902a-50X, az20110902-50X-ports, az20110902-50X, CMSSW_4_2_8_patch3-ports, CMSSW_4_2_8_patch3, azFor428patch3gcc451, azFor428patch3gcc434, az20110831-50X-ports, az20110831-50X, ebFor423slhc2p1, CMSSW_4_4_0_pre9, CMSSW_4_4_0_pre9-ports, azFor440pre9gcc451, azFor440pre9gcc434, az20110827-50X-ports, az20110827-50X, CMSSW_4_2_9_HLT1_hltpatch1-ports, CMSSW_4_2_9_HLT1_hltpatch1, az20110826b-50X-ports, az20110826b-50X, az20110826a-50X, az20110826-50X, CMSSW_4_2_7_hinpatch1_ONLINE, az20110825-50X-ports, az20110825-50X, CMSSW_4_1_8_FWLITE, CMSSW_4_1_8, azFor418gcc434, az20110823-50X-ports, az20110823-50X, CMSSW_4_2_8_patch2-ports, CMSSW_4_2_8_patch2, az20110821-44X-ports, az20110821-44X, CMSSW_4_2_9_HLT1-ports, CMSSW_4_2_9_HLT1, az20110818a-50X-ports, az20110818a-50X, az20110818-50X-ports, az20110818-50X, CMSSW_4_2_9_HLT-ports, CMSSW_4_2_9_HLT, sm20110816-42X, sm20110816-42X-ports, CMSSW_4_4_0_pre8-ports, CMSSW_4_4_0_pre8, azFor440pre8gcc451, azFor440pre8gcc434, sjg110813b-50X-ports, sjg110813b-50X, sjg110813a-50X-ports, sjg110813a-50X, CMSSW_4_2_7_onlpatch3_ONLINE, CMSSW_4_2_7_hltpatch3, CMSSW_4_1_7_patch3, az20110809b-50X-ports, az20110809b-50X, az20110809a-50X, az20110809a-44X-ports, az20110809a-44X, az20110809-50X-ports, az20110809-50X, az20110809-44X-ports, az20110809-44X, CMSSW_4_2_8_patch1-ports, CMSSW_4_2_8_patch1, CMSSW_4_4_0_pre7_g494p02-ports, CMSSW_4_4_0_pre7_g494p02, azFor440p7g494p02-g451, azFor440p7g494p02, az20110804-44X-ports, az20110804-44X, sjg110804-50X-ports, sjg110804-50X, sjg110803-50X-ports, sjg110803-50X, az20110802-42X-ports, az20110802-42X, CMSSW_4_1_7_patch2, CMSSW_4_4_0_pre7-ports, CMSSW_4_4_0_pre7, azFor440pre7gcc451, azFor440pre7gcc434, az20110801-44X, az20110801-44X-ports, CMSSW_4_4_0_pre6-ports, CMSSW_4_4_0_pre6, azFor440pre6gcc451, azFor440pre6gcc434, az20110729-44X-ports, az20110729-44X, CMSSW_4_2_8-ports, CMSSW_4_2_8, CMSSW_4_2_7_onlpatch2_ONLINE, CMSSW_4_2_7_hltpatch2, azFor428gcc451, azFor428gcc434, DBS_2_1_6-pre1, az20110726a-44X-ports, az20110726a-44X, az20110726-44X-ports, az20110726-44X, az20110725c-44X-ports, az20110725c-44X, az20110725b-44X-ports, az20110725b-44X, az20110725a-44X-ports, az20110725-44X-ports, az20110725a-44X, az20110725-44X, az20110723a-44X-ports, az20110723a-44X, az20110723-44X, CMSSW_4_2_7_hltpatch1, az20110720-42X-ports, az20110720-42X, CMSSW_4_2_7_patch2, CMSSW_4_2_7_patch2-ports, azFor427patch2gcc451, azFor427patch2gcc434, CMSSW_4_4_0_pre5-ports, CMSSW_4_4_0_pre5, azFor440pre5gcc451, azFor440pre5gcc434, az20110718-42X-ports, az20110718-42X, az20110715a-44X-ports, az20110715a-44X, az20110715-44X, CMSSW_4_2_7_patch1, CMSSW_4_2_7_patch1-ports, azFor427patch1g451, azFor427patch1, az20110714a-44X-ports, az20110714a-44X, az20110714-44X-ports, az20110714-44X, CMSSW_4_2_7_onlpatch1_ONLINE, CMSSW_4_2_7_ONLINE, CMSSW_4_2_7-ports_FWLITE, CMSSW_4_2_7-ports, CMSSW_4_2_7_FWLITE, CMSSW_4_2_7, azFor427g451, azFor427g434, az20110713a-44X-ports, az20110713a-44X, az20110713-44X, ebFor423slhc4, CMSSW_4_1_7_patch1, az20110712c-44X-ports, az20110712c-44X, az20110712b-44X-ports, az20110712a-44X, az20110712-42X-ports, az20110712-42X, ge20110712-44X-ports, az20110712-44X-ports, az20110712-44X, CMSSW_4_2_6_onlpatch1_ONLINE, az20110711-43X-ports, az20110711-43X, ge20110711-44X, ge20110711-44X-ports, ge20110710b-44X, ge20110710b-44X-ports, ge20110710-44X, ge20110710-44X-ports, ge20110709b-44X-ports, ge20110709-44X-ports, ge20110708-44X-ports, CMSSW_4_4_0_pre4-ports_FWLITE, CMSSW_4_4_0_pre4-ports, CMSSW_4_4_0_pre4_FWLITE, CMSSW_4_4_0_pre4, azFor440p4g451, azFor440p4g434, CMSSW_4_3_0_dqmpatch2-ports, CMSSW_4_3_0_dqmpatch2, sjgFor430dqmp2-ports, sjgFor430dqmp2, CMSSW_4_2_6_ONLINE, CMSSW_4_2_6-ports_FWLITE, CMSSW_4_2_6-ports, CMSSW_4_2_6_FWLITE, CMSSW_4_2_6, az20110706-44X-ports, az20110706-44X, azFor426gcc451, azFor426gcc434, az20110705-42X-ports, az20110705-42X, az20110701-44X-ports, az20110701-44X, CMSSW_4_4_0_pre3-ports, CMSSW_4_4_0_pre3, azFor440pre3gcc451, azFor440pre3gcc434, CMSSW_4_3_0_dqmpatch1-ports, CMSSW_4_3_0_dqmpatch1, az20110629-44X-ports, az20110629-44X, sjgFor430dqmp1, sjgFor430dqmp1-ports, sjfFor430dqmp1-ports, sjfFor430dqmp1, az20110627a-44X-ports, az20110627-44X-ports, az20110627-44X, CMSSW_4_3_0-ports, CMSSW_4_3_0, sjgFor430-ports, sjgFor430, CMSSW_4_4_0_pre2_FWLITE, CMSSW_4_4_0_pre2, CMSSW_4_4_0_pre2-ports_FWLITE, CMSSW_4_4_0_pre2-ports, azFor440pre2gcc451, azFor440pre2gcc434, CMSSW_4_2_5_hltpatch1, CMSSW_4_2_5_onlpatch1_ONLINE, CMSSW_4_2_5_ONLINE, fwFor425online, sm20110622a-44X-ports, sm20110622a-43X-ports, sm20110622a-43X, sm20110622a-44X, CMSSW_4_2_4_hltpatch1, sm20110622-43X-ports, sm20110622-43X, sm20110622-44X-ports, sm20110622-44X, CMSSW_4_2_5, CMSSW_4_2_5-ports, CMSSW_4_1_7, sm20110621-42X-ports, sm20110621-42X, sjgFor425b-ports, sjgFor425b, sjg110620a, sm20110620-42X-ports, sm20110620-42X, sjgFor425-ports, sjgFor425, sm20110620-44X, sm20110620-44X-ports, fw20110617-41X, sm20110616-44X-ports, sm20110616-44X, CMSSW_4_4_0_pre1-ports, CMSSW_4_4_0_pre1, az20110615-43X-ports, az20110615-43X, azFor20110615-43X, azFor20110615-43X-ports, azFor440pre1gcc451, azFor440pre1, sm20110615-43X-ports, sm20110615-43X, sm20110615-42X-ports, sm20110615-42X, sjgFor430pre6dqmIO-ports, sjgFor430pre6dqmIO, sm20110614b-44X-ports, sm20110614b-44X, sm20110614a-44X-ports, sm20110614a-44X, sm20110614-44X-ports, sm20110614-44X, sm20110607a-44X, sm20110607a-44X-ports, CMSSW_4_3_0_pre7, CMSSW_4_3_0_pre7-ports, sjgFor430pre6dp1, sjgFor430pre6dp1-ports, sjgFor430pre7, sjgFor430pre7-ports, sm20110610-44X-ports, sm20110610-44X, sm20110609-43X-ports, sm20110609-43X, CMSSW_4_2_4_patch1-ports, CMSSW_4_2_4_patch1, sm20110608-44X-ports, sm20110608-44X, fwFor424online3, fwFor424online2, sm20110607-44X, sm20110607-44X-ports, sm20110606a-ports, CMSSW_4_2_4_onlpatch1_ONLINE, CMSSW_4_2_4_ONLINE, fwFor424online, sm20110606a, CMSSW_4_2_3_SLHC3, sm20110606, CMSSW_4_2_4-ports_FWLITE, CMSSW_4_2_4-ports, CMSSW_4_2_4_FWLITE, CMSSW_4_2_4, azFor424fgcc451, azFor424fgcc434, azFor424g434, ebFor423slhc3, az20110601-for42X-ports, az20110601-for42X, azFor424agcc451, azFor424agcc434, CMSSW_4_2_3_SLHC2, azFor424gcc451, for423SLHC2, azFor424gcc434, CMSSW_4_1_6_patch1, CMSSW_4_1_6, CMSSW_4_2_3_patch5-ports, CMSSW_4_2_3_patch5, azFor423patch5gcc451, azFor423patch5gcc434, azFor423patch4agcc434, CMSSW_4_2_3_patch4-ports, CMSSW_4_2_3_patch4, azFor423patch4gcc451, azFor423patch4gcc434, CMSSW_4_3_0_pre6, CMSSW_4_3_0_pre6-ports, sjgFor430pre6-ports, sjgFor430pre6, sm20110528-for42X-ports, sm20110528-for42X, sm20110528-for43X, sm20110528-for43X-ports, sm20110527-for43X-ports, CMSSW_4_2_3_patch3-ports, CMSSW_4_2_3_patch3, azFor423patch3gcc451, azFor423patch3gcc434, sm20110523a-for43X-ports, sm20110523a-for43X, sm20110523-for43X, sm20110523-for43X-ports, CMSSW_4_2_3_onlpatch4_ONLINE, sm20110516-for43X-ports, sm20110516-for43X, CMSSW_4_2_3_patch2-ports, CMSSW_4_2_3_patch2, azFor423patch2gcc451, azFor423patch2gcc434, sjg110514a-for43x-ports, sjg110514a-for43x, sm20110514a-for43X-ports, sm20110514a-for43X, ge20110514-for43X-ports, sm20110514-for43X, sm20110514-for43X-ports, CMSSW_4_2_3_onlpatch3_ONLINE, sjg110513a-for43X-ports, sjg110513a-for43X, CMSSW_4_2_3_onlpatch2_ONLINE, azFor423onlpatch2, CMSSW_4_3_0_pre5-ports, CMSSW_4_3_0_pre5, sjgFor430pre5, sjgFor430pre5-ports, CMSSW_4_2_3_patch1, CMSSW_4_2_3_patch1-ports, azFor423patch1gcc451, azFor423patch1gcc434, CMSSW_4_2_3_SLHC_pre1, ebFor423slhcPre1, CMSSW_4_2_3_onlpatch1_ONLINE, CMSSW_4_2_3_ONLINE, fwFor423online, sm20110509a-for43X, sm20110509a-for43X-ports, sm20110509-for43X, CMSSW_4_2_2_patch2, CMSSW_4_2_2_patch2-ports, fwFor416, fwFor416sherpa123, CMSSW_4_2_3, CMSSW_4_2_3_FWLITE, CMSSW_4_2_3-ports_FWLITE, CMSSW_4_2_3-ports, azFor423gcc434_fwlite, azFor423g451, azFor423gcc451, azFor423gcc434, sm20110505-for42X-ports, sm20110505-for42X, sm20110504-for43X, sm20110504-for43X-ports, sm20110504-for42X-ports, sm20110504-for42X, sm20100504-ports, sm20100504, CMSSW_4_3_0_pre4-ports_FWLITE, CMSSW_4_3_0_pre4_FWLITE, CMSSW_4_3_0_pre4-ports, CMSSW_4_3_0_pre4, CMSSW_4_2_2_patch1-ports, CMSSW_4_2_2_patch1, azFor430pre4gcc451, azFor430pre4gcc434, CMSSW_4_2_1_patch2-ports, CMSSW_4_2_1_patch2, azFor421patch2gcc451, azFor421patch2gcc434, CMSSW_4_2_2_SLHC_pre1, pe20110427a-for43X-ports, pe20110427a-for43X, pe20110426a-for43X-ports, pe20110426a-for43X, ebFor422slhcPre1, CMSSW_4_2_2-ports_FWLITE, CMSSW_4_2_2_FWLITE, CMSSW_4_2_2-ports, CMSSW_4_2_2, azFor422gcc451, azFor422gcc434, azFor422g451, azFor422g434, CMSSW_4_2_1_patch1-ports, CMSSW_4_2_1_patch1, CMSSW_4_1_4_patch3, azFor421patch1gcc451a, azFor421patch1gcc434a, CMSSW_4_1_5, CMSSW_4_1_4_patch2, azFor421patch1gcc451, azFor421patch1gcc434, azFor421patch1g451, azFor421patch1g434, pe20110420b-for43X-ports, pe20110420b-for43X, pe20110420a-for43X, sjg110420a-ports, sjg110420a, pe20110419a-for43X-ports, pe20110419a-for43X, pe20110418a-for43X-ports, pe20110418a-for43X, CMSSW_4_3_0_pre3, CMSSW_4_3_0_pre3-ports, sjgFor430pre3-ports, sjgFor430pre3, sjg110417a-for43X-ports, sjg110417a-for43X, sm20110415-for43X, sm20110415-for43X-ports, CMSSW_4_2_1-ports_FWLITE, CMSSW_4_2_1-ports, CMSSW_4_2_1_FWLITE, CMSSW_4_2_1, azFor421g451, azFor421g434, CMSSW_4_1_4_onlpatch1_ONLINE, CMSSW_4_1_4_ONLINE, fwFor414p2, pe20110413a-for43X-ports, pe20110413a-for43X, fwFor414online, sm110412-for43X, pe20110412a-for43X, pe20110411a-for43X, CMSSW_4_1_4_patch1, sm110408, CMSSW_4_2_0-ports_FWLITE, CMSSW_4_2_0_FWLITE, CMSSW_4_3_0_pre2, CMSSW_4_2_0-ports, CMSSW_4_2_0, azFor420g451-fwlite, azFor420g434-fwlite, azFor420p434-fwlite, azFor420gcc451, azFor420gcc434, azFor420g451, azFor420g434, CMSSW_4_3_0_pre2-ports, CMSSW_4_1_4, sjgFor430pre2-ports, sjgFor430pre2, pe20110331b-for43X-ports, pe20110331b-for43X, pe20110331a-for43X-ports, pe20110331a-for43X, fwFor413op1, ge20110430-for43X-ports, CMSSW_4_1_3_patch3, CMSSW_4_1_2_patch2, pe20110328a-for43X-ports, pe20110328a-for43X, CMSSW_4_2_0_pre8_FWLITE, sjgFor430pre1-fwlite, CMSSW_4_3_0_pre1-ports, CMSSW_4_3_0_pre1, azFor420p8_fwlite, sjgFor430pre1-ports, pe20110324b-for43X-ports, pe20110324b-for43X, fwFor413xdaq11b6online, CMSSW_4_1_3_ONLINE, sjgFor430pre1, fwFor413p2, pe20110324a-for43X-ports, pe20110324a-for43X, CMSSW_4_2_0_pre8-ports, CMSSW_4_2_0_pre8, azFor420p8g451, azFor420p8g434, CMSSW_4_1_3_patch1, fwFor412op1, fwFor413online, pe20110318b-for4XY-ports, CMSSW_4_1_3, pe20110318a-for4XY-ports, fwFor413, pe20110317a-for4XY-ports, pe20110317a-for4XY, pe20110315a-for4XY-ports, pe20110315a-for4XY, ebFor363slhc3p1, azFor420p7g434_fwlite, azFor420p7_fwlite, sm110311fwlite, pe20110310a-for4XY-ports, CMSSW_3_11_3, pe20110310a-for4XY, CMSSW_4_2_0_pre7-ports, CMSSW_4_2_0_pre7, azFor420p7g451, azFor420p7g434, CMSSW_4_1_2_patch1, CMSSW_4_1_1_onlpatch2_ONLINE, pe20110307a-for4XY-ports, pe20110307a-for4XY, CMSSW_4_1_2_ONLINE, pe20110303-for412-ports, CMSSW_4_1_2, CMSSW_4_1_1_onlpatch1_ONLINE, CMSSW_4_1_1_ONLINE, CMSSW_4_2_0_pre6-ports, CMSSW_4_2_0_pre6, DQMGUI_5_4_0, azFor420p6g451, azFor420p6g434, fwFor411online, pe20110301-for412, CMSSW_3_11_2, CMSSW_4_1_1, pe20110228a-for4XY-ports, pe20110228a-for4XY, CMSSW_3_11_1_hclpatch1, sjgFor3111hclp1, sjgFor3111hcalp1, CMSSW_4_1_0_pre3-ports, CMSSW_4_1_0_pre3, pe20110225a-for311X, pe20110225b-for4XY-ports, pe20110225b-for4XY, pe20110225a-for4XY-ports, pe20110225a-for4XY, CMSSW_3_11_1_hltpatch1, CMSSW_3_11_1_patch3, pe20110223a-for4XY-ports-osx, pe20110223a-for4XY-ports, pe20110223a-for4XY, CmsTC_0_0_4, CMSSW_3_9_9_patch1, apFor399p1v0, fwFor410pre2online, CMSSW_3_11_1_onlpatch1_ONLINE, CMSSW_4_2_0_pre5-ports, CMSSW_4_2_0_pre5, CMSSW_3_9_9, azFor420p5g451a, fwFor3111op1-online, azFor420p5g451, azFor420p5g434, azFor420pre5gcc451a, azFor420pre5gcc451, azFor420pre5gcc434, apFor399v0, CMSSW_3_6_3_SLHC3, ebFor363slhc3, CMSSW_3_11_1_patch2, CMSSW_4_1_0_pre2, pe20110215-for410p2, CMSSW_4_2_0_pre4-ports, CMSSW_4_2_0_pre4, azFor420pre4gcc451, azFor420pre4gcc434, azFor420p4g451, azFor420p4g434, pe20110213a-for4XY-ports, pe20110213a-for4XY, CMSSW_3_11_1_patch1, CMSSW_4_2_0_pre3-ports, CMSSW_4_2_0_pre3, sjgFor3111p1b, sjgFor3111p1, azFor420pre3gcc451, azFor420pre3gcc434, DQMGUI_5_3_2b, pe20110210a-for4XY-ports, pe20110210a-for4XY, DQMGUI_5_3_2a, CMSSW_3_11_1_ONLINE, CMSSW_3_11_1, fwFor3111, CMSSW_3_9_8_patch2, apFor398p2v0, ebFor363slhc2, pe20110208a-for4XY, pe20110208a-for4XY-ports, pe20110207b-for4XY-ports, pe20110207b-for4XY, pe20110207a-for4XY, CMSSW_4_2_0_pre2-ports, CMSSW_4_2_0_pre2, azFor420pre2gcc434c, azFor420pre2gcc434b, azFor420pre2gcc451, CMSSW_4_1_0_pre1, azFor420pre2gcc434, pe20110205-for410p1, CMSSW_3_9_8_patch1, apFor398p1v0, pe20110203a-for4XY-ports, pe20110203a-for4XY, CMSSW_3_9_8, pe20110203-for410p1, pe20110202a-for311X, pe20110202a-for4XY-ports, pe20110202a-for4XY, apFor398v0, CMSSW_3_6_3_SLHC1_patch3, fw20110201-41X-online, pe20110131b-for4XY-ports, pe20110131b-for4XY, pe20110131a-for4XY-ports, pe20110131a-for4XY, ebFor363slhc1pat3, fw20110131-311x-online, CMSSW_3_11_0_pre5r52706bT2, CMSSW_3_11_0_ONLINE, fw20110128-311X-online, CMSSW_4_2_0_pre1-ports, CMSSW_4_2_0_pre1, CMSSW_3_6_3_SLHC1_patch2, CMSSW_3_11_0, azFor420pre1gcc451, azFor420pre1g451n, azFor420pre1g434, pe20110127a-for311X-ports, pe20110127a-for311X, azFor420pre1g451, azFor420pre1, fw20110127a-311X, fw20110127-311X, fwFor3110, pe20110126b-for311X-ports, pe20110126b-for311X, fw20110126a-311X-online, fw20110126a-311X-ports, smFor398a, smFor398, pe20110126a-for311X-ports, pe20110126a-for311X, sm110126a, sm110126, fw20110126-311X-online, ebFor363slhc1pat2, sm110125, pe20110125-for3110p5r52706bT2, pe20110124b-311X-ports, pe20110124b-311X, pe20110124a-311X, fw20110122-311X-ports, fw20110122-311X-online, pe20110122b-311X-ports, pe20110122a-311X-ports, pe20110122a-311X, CMSSW_3_11_0_pre5_ONLINE, fw20110121b-311X-ports, fw20110121b-311X-online, pe20110121-for3110p5r52706b, fw20110121a-311X-ports, fw20110121a-311X-online, fw20110121-311X-ports, fw20110121-311X-online, fw20110121, pe20110120b-311X, pe20110120a-311X-ports, pe20110120a-311X, fw20110120b-311X-ports, fw20110120b-311X-online, CMSSW_3_10_1, CMSSW_3_11_0_pre5-ports, CMSSW_3_11_0_pre5, fw20110120a-311X-ports, fw20110120a-311X-online, fw20110120-311X-online, fw20110119-311X-online, smFor3101, fwFor3110pre5-online, fwFor3110pre5-ports, CMSSW_3_10_0_pre9G493, fwFor3110pre5, pe20110118b-311X-ports, pe20110118b-311X, pe20110118a-311X, CMSSW_3_11_0_pre4, fwFor3110pre4online, pe20110117c-311X-ports, pe20110117b-311X-ports, pe20110117c-311X, fwFor3110pre4, fw20110117-for311X, pe20110117a-311X-ports, pe20110117b-311X, sm110117, fwFor3100xdaq11b4online, pe20110112d-for311X, pe20110112c-for311X-ports, CMSSW_3_9_5_xdaq11b4_ONLINE, CMSSW_3_8_7_patch2, sjgFor387p2b, sjgFor387p2, pe20110112b-for311X-ports, pe20110112a-for311X-ports, pe20110112a-for311X, pe20110111b-for311X, pe20110111a-ports, pe20110110-ports, sm110110-for311X, pe20110107e-for311Xrb, pe20110107d-for311Xrb, pe20110107c-for311Xrb, CMSSW_3_11_0_pre3, pe20110106b-for311Xrb, smFor3110pre3a, smFor3110pre3, pe20110106a-for311Xrb, pe20110105e-for311Xrb, pe20110105d-for311Xrb, pe20110105c-for311Xrb, pe20110105b-for311Xrb, pe20110105a-for311Xrb, pe20101230-311XAB, CMSSW_3_11_0_pre2, pe20101229-for311X, fwFor311pre2, CMSSW_3_10_0, CMSSW_3_9_7, smFor3100c, apFor397v0, CMSSW_3_9_6, pe20101221a-for3100p9io, smFor3100b, apFor396v0, smFor3100a, smFor3100, pe20101217b-for3100p9io, pe20101217a-for3100p9io, CMSSW_3_8_7_patch1, pe20101217a-for310Xrb, CMSSW_3_11_0_pre1, fwFor311pre1, smFor3100pre9G493, CMSSW_3_10_0_pre9r52706b, pe20101215-for3100p9r52706b, pe20101215a-for310Xrb, pe20101214b-for310Xrb, CMSSW_3_10_0_pre9, pe20101214a-for310Xrb, smFor3100pre9a, pe20101213a-for310Xrb, smFor3100pre9, CMSSW_3_9_5_patch2, apFor395p2v0, CMSSW_3_10_0_pre8, pe20101208c-for310Xrb, pe20101208b-for310Xrb, pe20101208a-for310Xrb, smFor3100pre8, smFor310X-101207, smFor310X-101206b, smFor310X-101206ab, smFor310X-101206a, smFor310X-101206, pe20101206-for3100pre7r52706b, CMSSW_3_10_0_pre7g494c1, CMSSW_3_9_5_patch1, apFor395p1v0, smFor3100pre7G494C1a, pe20101203-root52706b, DQMGUI_5_3_2, pe20101202a-for310Xrb, dsr20101201fwlite387, CMSSW_3_10_0_pre7io, azFor3100pre7io-a, smFor3100pre7io-a, azFor3100pre7io-Updated, smFor3100pre7G494C1, azFor3100pre7io, smFor3100pre7io, CMSSW_3_10_0_pre7, pe20101130a-for310Xrb, smFor3100pre7, smFor310X-101130, CMSSW_3_8_7, smFor310X-101129, dsr20101129fwlite394, CMSSW_3_9_5_ONLINE, CMSSW_3_9_5, CMSSW_3_10_0_pre6, smFor3100pre6, apFor395v0, sjg101126b, sjg101126a, pe20101125f-for310Xrb, pe20101125e-for310Xrb, pe20101125d-for310Xrb, pe20101125c-for310Xrb, pe20101125b-for310Xrb, pe20101125a-for310Xrb, CMSSW_3_9_4, smFor310X-101123, apFor394v0, smFor39X-101123, for310X-101122a, CMSSW_3_8_6_patch2, sjgFor386p2, CMSSW_3_9_1_onlpatch4_ONLINE, CMSSW_3_9_1_onlpatch3_ONLINE, for310X-101122, sjg101122b, sjg101122a, CMSSW_3_10_0_pre5, CMSSW_3_9_3_ONLINE, azFor3100p5, CMSSW_3_9_3, apFor393v0, pe20101114a-for310Xrb, CMSSW_3_10_0_pre4r52706, pe20101112b-for3100p4r52706, pe20101112-for3100p4r52706, smFor310X-101111, pe20101111a-for310Xrb, CMSSW_3_9_2_patch5, CMSSW_3_10_0_pre4, CMSSW_3_9_2_patch4, azFor3100pre4-Updated, azFor3100pre4, ge20101109, smFor392p4, CMSSW_3_8_6_patch1, pe20101108d-for310Xrb, sjgFor386p1, pe20101108c-for310Xrb, pe20101108b-for310Xrb, CMSSW_3_9_2_patch3, apFor392p3v0, pe20101108a-for310Xrb, CMSSW_3_9_2_patch2, apFor392p2v0, smFor310-101106, pe20101105b-for310Xrb, pe20101105a-for310Xrb, CMSSW_3_9_2_patch1, apFor392p1v0, CMSSW_3_9_1_onlpatch2_ONLINE, CMSSW_3_9_1_onlpatch1_ONLINE, pe20101104c-for310Xrb, pe20101104b-for310Xrb, smFor310-101104, CMSSW_3_9_2, pe20101104a-for310Xrb, apFor392v0, sjgFor392, CMSSW_3_10_0_pre3, pe20101103e-for310Xrb, CMSSW_3_8_6, azFor3100p3a, pe20101103d-for310Xrb, pe20101103c-for310Xrb, pe20101103b-for310Xrb, smFor386a, azFor3100p3, pe20101103a-for310Xrb, pe20101102e-for310Xrb, CMSSW_3_9_1_patch1, pe20101102d-for310Xrb, smFor391patch1, pe20101102c-for310Xrb, pe20101102b-for310Xrb, pe20101102a-for310Xrb, CMSSW_3_9_1_ONLINE, smFor391onl, CMSSW_3_9_1, smFor391, pe20101029a-for310Xrb, apFor391v1, apFor391v0, ebFor363slhc1pat1v0, smFor386, CMSSW_3_10_0_pre2, pe20101028a-for310Xrb, smFor3100pre2, CMSSW_3_8_5_patch3, apFor385p3v0, pe20101025c-for310Xrb, pe20101025b-for310Xrb, pe20101025a-for310Xrb, CMSSW_3_8_5_onlpatch4_ONLINE, CMSSW_3_8_5_onlpatch3_ONLINE, CMSSW_3_10_0_pre1, smFor3100pre1, CMSSW_3_8_5_patch2, sjgFor385p2, CMSSW_3_8_5_patch1, sjgFor385p1, eskFor3XYpreZ, CMSSW_3_9_0, apFor390v0, CMSSW_3_8_5_onlpatch1_ONLINE, CMSSW_3_8_5_ONLINE, fw385online, pe20101011f-for39Xrb, pe20101011e-for39Xrb, pe20101011d-for39Xrb, pe20101011c-for39Xrb, pe20101011b-for39Xrb, pe20101011a-for39Xrb, CMSSW_3_8_1_onlpatch7_ONLINE, pe20101008c-for39Xrb, pe20101008b-for39Xrb, pe20101008a-for39Xrb, CMSSW_3_9_0_pre7, CMSSW_3_8_4_patch4, sjfFor384p4, apFor390pre7v0, sm39Xtoolconf-101007, CMSSW_3_8_5, sjgFor385, sm39Xtoolconf-101005, pe20101005a-for39Xrb, pe20101004a-for39Xrb, DQMGUI_5_3_1, CMSSW_3_9_0_pre6, CMSSW_3_8_1_onlpatch6_ONLINE, apFor390pre6v0, smFor390pre6toolconf-101001, pe20101001b-for39Xrb, pe20101001a-for39Xrb, pe20100930c-for39Xrb, CMSSW_3_8_4_patch3, pe20100930b-for39Xrb, pe20100930a-for39Xrb, sjgFor384patch3v3, sjgFor384patch3v2, sjgFor384patch3, smFor390pre6toolconf-100929, smFor390pre6toolconf, smFor385toolconf, sm100928a, pe20100925a-for39Xrb, CMSSW_3_9_0_pre5, apFor390pre5v0, pe20100924b-for39Xrb, pe20100924a-for39Xrb, pe20100923c-for39Xrb, pe20100923b-for39Xrb, pe20100923a-for39Xrb, CMSSW_3_8_4_patch2, bhFor384p2, CMSSW_3_8_4_patch1, bhFor384p1, pe20100922b-for39Xrb, pe20100922a-for39Xrb, CMSSW_3_9_0_pre4, CMSSW_3_8_4, bhFor384, CMSSW_3_8_1_onlpatch5_ONLINE, apFor390pre4v0, CMSSW_3_8_3, pe20100912-for39X, bhFor383, apFor383v1, apFor383v0, CMSSW_3_8_1_onlpatch4_ONLINE, pe20100908b-for39Xrb, pe20100908a-for39Xrb, pe20100907c-for39Xrb, pe20100907b-for39Xrb, pe20100907a-for39Xrb, pe20100906a-for39Xrb, CMSSW_3_8_2_patch1, bhFor382p1, CMSSW_3_6_3_SLHC1, pe20100902a-for39Xrb, CMSSW_3_8_1_onlpatch3_ONLINE, pe20100901b-for39Xrb, fc20100901b, fc20100901a, pe20100901a-for39Xrb, CMSSW_3_9_0_pre3, sm100901a, CMSSW_3_8_1_onlpatch2_ONLINE, CMSSW_3_8_1_onlpatch1_ONLINE, CMSSW_3_8_1_patch4, bhFor381patch4, sm390p3toolconf, pe20100830c-for39Xrb, pe20100830b-for39Xrb, pe20100830a-for39Xrb, pe20100829a-for39Xrb, pe20100827a-for39Xrb, sm100826a, pe20100826a-for39Xrb, pe20100825b-for39Xrb, pe20100825a-for39Xrb, pe20100824c-for39Xrb, pe20100824b-for39Xrb, sm100824a, pe20100824a-for39Xrb, CMSSW_3_8_2, bhFor382, sm39XPoolLess, sm100823a, CMSSW_3_8_1_patch3, smFor381patch3, pe20100819a-for390p2r52704, CMSSW_3_6_1_patch7, pe20100817a-for390p2r52704, smFor361patch7, dsr20100816fwlite381, dsr20100816fwlite371, CMSSW_3_9_0_pre2, CMSSW_3_8_1_ONLINE, for390pre2, dsr20100812fwlite371, CMSSW_3_6_3_hltpatch4, CRABSERVER_1_1_3_pre2_BUILD_SLC5, CMSSW_3_8_1_patch2, bhFor381p2, for390p2tools1, for390pre2tools, sm100811b, sm100811a, sm20100810a, CRABSERVER_1_1_3_pre1_BUILD_SLC5, CMSSW_3_8_1_patch1, bhFor381patch1, fw381online, CMSSW_3_7_1, CMSSW_3_8_1, bhFor381, fw371, dsr20100805fwlite363, CMSSW_3_6_3_onlpatch4_ONLINE, CMSSW_3_8_0_patch2, bhFor380patch2, smFor363patch2, fw380online, fw380online_3, fw380online_2, CMSSW_3_9_0_pre1, fw380online_0, apFor390pre1v0, pe20100727a-for39X, FRONTEND_CONF_3_30_20100724, FRONTEND_CONF_3_29_20100723, CMSSW_3_6_3_onlpatch3_ONLINE, CMSSW_3_8_0_patch1, bhFor380patch1, ge20100722-rpm-osx-64-bit, CMSSW_3_8_0, bhFor380, CMSSW_3_6_1_patch6, apFor361p6v0, CMSSW_3_8_0_pre8, bhFor380pre8, CMSSW_3_6_3_patch1, apFor363p1v0, CMSSW_3_6_3_onlpatch2_ONLINE, CMSSW_3_8_0_pre7, bhFor380pre7, CMSSW_3_7_0_patch4, CMSSW_3_8_0_pre6, smFor370patch4, CMSSW_3_7_0_patch3, bhFor380pre6, CMSSW_3_8_0_pre5ssl, pe20100624b-for38Xssl, pe20100624a-for38Xssl, CMSSW_3_8_0_pre5, CMSSW_3_6_1_patch5, smFor370patch3, pe20100623a-for38Xssl, smFor361patch5, apFor380pre5v0, ge20100621-bootstrap-rpm-4-8-macosx, CRABSERVER_1_1_2_py26_BUILD_SLC5, CRABSERVER_1_1_2_BUILD_SLC5, CMSSW_3_8_0_pre4catfix, bhFor380pre4catfix, bhFor380pre4_cat_fix, CMSSW_3_8_0_pre4, bhFor380pre4, CMSSW_3_8_0_pre3, CMSSW_3_6_3_onlpatch1_ONLINE, bhFor380pre3, CMSSW_3_6_3_ONLINE, CMSSW_3_6_3, apFor363v0, pe20100612a-gcc45-from380p2, CRABSERVER_1_1_2_pre1_BUILD_SLC5, ge20100611-apt-rpm-4-8-gcc-4-5-0, MotT0_1_0_15, CMSSW_3_8_0_pre2, MotT0_1_0_14, CMSSW_3_7_0_patch2, smFor370p2, bhFor380_pre2, MotT0_1_0_13, pe20100606a-for38X, CMSSW_3_6_2_ONLINE, fw361online_test5, CMSSW_3_6_2, MotT0_1_0_12, MotT0_1_0_11, MotT0_1_0_10, CMSSW_3_7_0_patch1, MotT0_1_0_9, MotT0_1_0_8, smFor370patch1, MotT0_1_0_6, MotT0_1_0_5, apFor362v1, apFor362v0, CMSSW_3_8_0_pre1, MotT0_1_0_4, MotT0_1_0_3, apFor380pre1v0, MotT0_1_0_2, MotT0_1_0_1, MotT0_1_0_0, MotT0_100531_1, CRABSERVER_1_1_2_beta_BUILD_SLC5, fw361online_test4, CRABSERVER_1_1_2_beta_BUILD_SLC4, CMSSW_3_6_1_patch4, MotT0_100528_1, apFor361p4v0, fw361online_test3, CMSSW_3_7_0, smFor370, dsr20100526fwlite361, fw361online_test2, CMSSW_3_6_1_patch3, fw361online_test1, apFor361p3v0, CMSSW_3_5_7_hltpatch4, apFor357hltp4v0, CMSSW_3_7_0_pre5g493ref04, CMSSW_3_6_1_patch2, apFor361p2v0, ge20100521b-new-rpm, ge20100521-new-rpm, pe20100521-for37X-newG4, DQMGUI_5_2_1c, DQMGUI_5_2_1, pe20100519a-for37X, ge20100519-new-apt, CMSSW_3_7_0_pre5, smFor370pre5, CMSSW_3_6_1_patch1, apFor361p1v2, apFor361p1v1, apFor361p1v0, T0Mon_100518_1, CMSSW_3_5_8_patch4, apFor358p4v3, apFor358p4v2, apFor358p4v1, apFor358p4v0, DQMGUI_5_2_0, CMSSW_3_7_0_pre4, sm370pre4, sm100511a, pe20100511b-for37X, pe20100511a-for37X, sm100511, CMSSW_3_6_1, pe20100510b-for37X, pe20100510a-for37X, apFor361v1, apFor361v0, fw360online_test5, fw360online_test4, fw360online_test3, sm100507pftrack, fw360online_test2, fw360online_test1, sm100506, sm100505a, sm100505, CMSSW_3_7_0_pre3, for370pre3, CMSSW_3_6_0_patch2, apFor360p2v0, CMSSW_3_6_0_patch1, apFor360p1v2, apFor360p1v1, apFor360p1v0, CMSSW_3_5_8_patch3, apFor358p3v0, T0Mon_100503_1, CMSSW_3_5_8_patch2, apFor358p2v0, CMSSW_3_5_8_patch1, apFor358p1v1, apFor358p1v0, CMSSW_3_5_7_onlpatch2_ONLINE, CMSSW_3_7_0_pre2, for370pre2, ge20100427-rpm-on-linux, CMSSW_3_5_8, CMSSW_3_5_7_onlpatch1_ONLINE, CMSSW_3_5_7_ONLINE, apFor358v0, ge20100422-rpm-4-8-0, CMSSW_3_5_4_onlpatch4_ONLINE, CMSSW_3_7_0_pre1, smFor370pre1, pe20100420a-for37X, pe20100419b-for37X, pe20100419a-for37X, pe20100419a-for36X-37X, pe20100419a-gcc45-from360, CMSSW_3_6_0, fwFor357online, pe20100416a-for36X, CMSSW_3_5_7, apFor357v2, apFor357v1, pe20100414b-gcc45-from360p6, pe20100414-gcc45-from360p6, apFor357v0, pe20100410-gcc45-from360p6, CMSSW_3_6_0_pre6, pe20100409b-for36X, pe20100409a-for36X, CMSSW_3_6_0_pre5io, pe20100408a-for36Xio, CMSSW_3_5_6_patch1, for356p1, CRABSERVER_1_1_1_BUILD_SLC4, CMSSW_3_6_0_pre5, pe20100401a-for36X, pe20100330a-for36X, CMSSW_3_5_4_patch2, CMSSW_3_5_6, for356, pe20100329a-for36X, for354p2, CRABSERVER_1_1_1_BUILD_SLC5, dsr20100326fwlite355osx, dsr20100326fwlite355, CMSSW_3_5_5, CMSSW_3_6_0_pre4, pe20100324a-for36X, dg20100323-prodagent, CMSSW_3_5_4_onlpatch3_ONLINE, apFor355v0, pe20100321a-for36X, CMSSW_3_5_4_patch1, for354patch1, CMSSW_3_5_4_onlpatch2_ONLINE, CMSSW_3_5_4_onlpatch1_ONLINE, CMSSW_3_5_4_ONLINE, T0Mon_100316_1, CMSSW_3_6_0_pre3, DQMGUI_5_1_8, pe20100313a-for36X, pe20100312a-for36X, pe20100311a-for36X, fwFor354onl, CMSSW_3_5_4, apFor354v0, T0Mon_100308_2, T0Mon_100308_1, CRABSERVER_1_1_1_pre12_BUILD_SLC5, pe20100307a-for36X, pe20100305e-for36X, pe20100305d-for36X, pe20100305c-for36X, pe20100305b-for36X, CMSSW_3_5_3_ONLINE, pe20100305-for36X, fwFor353onl, CMSSW_3_5_3, CRABSERVER_1_1_1_pre10_BUILD_SLC5, CMSSW_3_6_0_pre2, apFor353v0, CRABSERVER_1_1_1_pre9_BUILD_SLC4, DAS_20100302_slc5_amd64_gcc434, sm100302a-for35X, sm100302b-for36X, sm100302a-for36X, wmtFor360pre2, fc20100228, pe20100228a-for36X, CMSSW_3_5_2_patch2, apFor352p2v0, CMSSW_3_5_2_patch1, apFor352p1v0, DBS_20100226_slc5_amd64_gcc434, fwFor352onl, CMSSW_3_5_1_onlpatch1_ONLINE, CMSSW_3_6_0_pre1, pe20100223c-for36X, pe20100223b-for36X, CRABSERVER_1_1_1_pre9_BUILD_SLC5, pe20100223a-for36X, CMSSW_3_5_2, apFor352v0, CRABSERVER_1_1_1_pre8_BUILD_SLC5, apFor351p2v0, CRABSERVER_1_1_1_pre7_BUILD_SLC5, CRABSERVER_1_1_1_pre7_BUILD_SLC4, CMSSW_3_5_1_patch1, for351patch1, CMSSW_3_5_1_ONLINE, DBS_20100217_slc5_amd64_gcc434, FILEMOVER_20100217_slc5_amd64_gcc434, FRONTEND_CONF_3_24_20100217, DAS_20100217_slc5_amd64_gcc434, dsr20100216fwlite350, DAS_20100216b_slc5_amd64_gcc434, CRABSERVER_1_1_1_pre6_BUILD_SLC4, CRABSERVER_1_1_1_pre6_BUILD_SLC5, CMSSW_3_5_1, T0Mon_100216_1, DAS_20100216_slc5_amd64_gcc434, forFrontend-3, pe20100216b-for36Xmin, pe20100216a-for36X, apFor351v0, ge20100215-rootqt-r522, ge20100215-rootqt-pre5r526, CMSSW_3_3_6_patch6, CMSSW_3_5_0_pre5r526, sm100215, ge20100212-boost, ge20100112-boost, T0Mon_100210_1, dsr20100209fwlite342, T0Mon_100204_4, DQMGUI_5_1_7b, CMSSW_3_5_0_patch1, CMSSW_3_4_2_patch1, T0Mon_100204_3, for350patch1, for342patch1, T0Mon_100204_2, CRABSERVER_1_1_1_pre5_BUILD_SLC5, CRABSERVER_1_1_1_pre5_BUILD_SLC4, CMSSW_3_5_0_ONLINE, CMSSW_3_4_2, fwFor350online, CMSSW_3_5_0, apFor350v0, CMSSW_3_3_6_patch5, pe20100205a-for35X, T0Mon_100204_1, apFor336p5v1, eskFor342, pe20100204a-for35X, DQMGUI_5_1_7, DQMGUI_5_1_6, CMSSW_3_3_6_patch4, apFor336p5v0, for341op1-onl-slc5, dg20100201-dbs3, FILEMOVER_20100201_slc5_amd64_gcc434, CMSSW_3_5_0_pre5_ONLINE, FILEMOVER_20100128b_slc5_amd64_gcc434, dg20100129-dbs3, for350p5-onl-slc5, pe20100131c-for35Xr526, pe20100131b-for35Xr526, pe20100131a-for35Xr526, CMSSW_3_5_0_pre5g493, pe20100130b-for35Xg493, pe20100130-for35Xg493, CMSSW_3_5_0_pre5, for350p4-onl-slc5, pe20100129a-for35X, CMSSW_3_5_0_pre4, for336patch4, apFor350pre5v0, dg20100128-dbs3, FILEMOVER_20100128_slc5_amd64_gcc434, sm100128a, sm100128, apFor350pre4v0, DAS_20100127_slc5_amd64_gcc434, pe20100127e-for35X, pe20100127d-for35X, T0Mon_100127_1, pe20100127c-for35X, sm100127-onl35x, CMSSW_3_4_1_ONLINE, pe20100127b-for35X, pe20100127a-for35X, DAS_20100126_slc5_amd64_gcc434, sm100126, pe20100124a-for35X, ap20100123a-for35X, DBS-APP_20100122_slc4, FILEMOVER_20100122_slc5_amd64_gcc434, DBS-APP_20100121_slc4, CRABSERVER_1_1_1_pre4_BUILD_SLC5, CRABSERVER_1_1_1_pre4_BUILD_SLC4, DBS-WEB_20100120_slc4, DBS-APP_20100120_slc4, CRABSERVER_1_1_1_pre3_BUILD_SLC5_1, CRABSERVER_1_1_1_pre3_BUILD_SLC4, CRABSERVER_1_1_1_pre3_BUILD_SLC5, CRABSERVER_1_1_1_pre3_BUILD_OK, DAS_20100119_slc5_amd64_gcc434, CS_1_1_1_slc4_1_BUILD, DBS-APP_20100118_slc4, DBS-WEB_20100118_slc4, CMSSW_3_3_3_TSG, CMSSW_3_5_0_pre3, CS_1_1_1_test1_SLC4_BUILD, CS_1_1_1_test1_BUILD, DAS_20100115_slc5_amd64_gcc434, dg20100115-security, CS_1_1_1_slc5_BUILD, DBS_20100115_slc5_amd64_gcc434, CS_1_1_1_slc4_BUILD, ds20100115_cs_SLC5_workOK, apFor350pre3v0, sm100115-333tsg, DBS-APP_20100114_slc4, DBS-WEB_20100113_slc4, pe20100113a-for35X, sm20100113a-for35X, sm20100113-for35X, pe20100112b-for35X, dg20100112-security, DBS_20100112_slc5_amd64_gcc434, sm20100112a-for35X, sm20100112-for35X, pe20100112-for35X, DBS_20100111_slc5_amd64_gcc434, dg20100111-security, CS_SLC5_test_4, dg20100107b-wmcore, dg20100107-wmcore, dsr20100107fwlite341, sm100107a, sm100106a, DAS_20100105_slc5_amd64_gcc434, sm100105c, sm100105b, pe20100105a-for34X-for35X, ge20100105-pyqt-relocatable-build, sm100105a, CRABSERVER_CS_SLC5_test_3_BUILD, pe20091227a-ports, DAS_20091221_slc5_amd64_gcc434, CMSSW_3_5_0_pre2, CMSSW_3_4_1, apFor350pre2v2, apFor350pre2v1, apFor350pre2v0, eskFor341, dg20091218c-crabserver, dg20091215c-crabserver, dg20091218b-crabserver, dg20091218-crabserver, CMSSW_3_3_6_patch3, apFor336p3v0, CRABSERVER_1_1_1_pre3_BUILD, CRABSERVER_1_1_1_pre2_BUILD, pe20091216b-for34X-for35X, pe20091216a-for34X-for35X, CMSSW_3_4_0, dg20091215b-crabserver, ge20091214b-new-bootstrap, ge20091214a-new-bootstrap, ge20091214-new-bootstrap, DAS_20091214_slc5_amd64_gcc434, ge20091214-fix-rh5x, dg20091215-crabserver, CMSSW_3_5_0_pre1, CMSSW_3_3_6_patch1, apFor350pre1v0, eskFor336ptch1, eskFor340, dg20091211-couchdb, dg20091210-phedex, DQMGUI_5_1_5, pe20091209b-for34X-for35X, dg20091203c-comp-base, pe20091209a-for34X-for35X, DD_20091208_slc5_amd64_gcc434, DAS_20091208_slc5_amd64_gcc434, FILEMOVER_20091208_slc5_amd64_gcc434, DBS_20091208_slc5_amd64_gcc434, CMSSW_3_3_6, CMSSW_3_3_6_slc5-gcc434, apFor336v0-slc5-gcc434, apFor336v0, CMSSW_3_3_5_patch4, CMSSW_3_3_5_patch4_slc5-gcc434, apFor335p4v0-slc5-gcc434, apFor335p4-slc5-gcc434, apFor335p4v0, CMSSW_3_3_5_patch3, CMSSW_3_3_5_patch3_slc5-gcc434, apFor335p3v0-slc5-gcc434, apFor335p3v0, CMSSW_3_4_0_pre7, eskFor340p7-slc5-gcc434, CMSSW_3_3_5_patch2_slc5-gcc434, CMSSW_3_3_5_patch2, dg20091203b-comp-base, dg20091203-comp-base, CMSSW_3_3_3_onlpatch5_ONLINE, CRABSERVER_1_1_1_pre1_BUILD, apFor335p2v0-slc5-gcc434, apFor335p2v0, CMSSW_3_3_5_patch1_slc5-gcc434, DAS_20091202, pe20091201a-for34X-slc5-gcc434, CMSSW_3_3_5_patch1, apFor335pat1v2-slc5-gcc434, apFor335pat1v2, apFor335pat1v1, apFor335pat1v1-slc5-gcc434, apFor335pat1v0-slc5-gcc434, apFor335pat1v0, DQMCATTEST_0_0_1, lsFor335patch1, lsFOR335patch1v0, pe20091130b-for34X-slc5-gcc434, pe20091130a-for34X-slc5-gcc434, CMSSW_3_3_5_slc5-gcc434, CMSSW_3_3_5, FILEMOVER_20091118, CMSSW_3_3_3_onlpatch4_ONLINE, apFor335v0, apFor335v0-sl5igcc4, pe20091126a-for33X-slc4-gcc345, pe20091126a-for33X-slc5-gcc434, DBS-APPS_20090929, CMSSW_3_1_6, bhFor316v0, CMSSW_3_3_3_onlpatch2_ONLINE, CMSSW_3_3_3_onlpatch3_ONLINE, pe20091120c-for34X-slc5-gcc434, CMSSW_3_4_0_pre6, pe20091120b-for34X-slc5-gcc434, pe20091120a-for34X-slc5-gcc434, DQMGUI_5_1_5_pre1, pe20091119b-for34X-slc5-gcc434, DQMGUI_5_1_4, pe20091119a-for34X-slc5-gcc434, CMSSW_3_3_4_slc5-gcc434, CMSSW_3_3_4, eskFor340p6-slc5-gcc434, apFor334v0-sl5igcc4, apFor334v0, pe20091117a-fromDAS_20090709, DAS_20091117, CMSSW_3_3_3_DQM, pe20091116b-fromDAS_20090709, apFor333dqmv0, CRABSERVER_1_1_0_BUILD, pe20091116a-fromDAS_20090709, pe20091116a-for34X-slc5-gcc434, CMSSW_3_3_3_patch1, CMSSW_3_3_3_slc5-gcc434, lmFor333pat1v0, CMSSW_3_3_3_ONLINE, fw20091114b, fw20091114a, pe20091114a-for34X-slc5-gcc434, ap20091114a, fw20091114, ap20091114, CMSSW_3_3_3, pe20091113c-for34X-slc5-gcc434, pe20091113c-for33X-slc5-gcc434, CMSSW_3_1_5, pe20091113b-for33X-slc5-gcc434, pe20091113a-for33X-slc5-gcc434, pe20091113a-for33X-slc4-gcc345, apFor333v1-sl5igcc4, apFor333v1-sl4igcc4, apFor333v1, apFor333v0_sl5igcc4, apFor333v0_sl4igcc4, apFor333v0, CMSSW_3_3_2_ONLINE-slc5, bhFor315v0, bhFor314v0, sm091112c-slc5onl, sm091112b-slc5onl, sm091112a-slc5onl, sm091112-slc5onl, T0Mon_091111_1, pe20091110c-34X-slc5-gcc434, pe20091110c-34X-slc4-gcc432, pe20091110c-for33X-slc5-gcc434, pe20091110c-for33X-slc4-gcc432, pe20091110c-for33X-slc4-gcc345, pe20091110b-for33X-slc5-gcc434, pe20091110b-for33X-slc4-gcc345, pe20091110b-for33X-slc4-gcc432, pe20091110a-for33X-slc5-gcc434, pe20091110a-for33X-slc4-gcc432, pe20091110a-for33X-slc4-gcc345, CRABSERVER_1_1_0_pre7_BUILD, CMSSW_3_3_2_onlpatch2_ONLINE, CMSSW_3_3_2_ONLINE, CMSSW_3_3_2_onlpatch1_ONLINE, pe20091109a-for33X-slc4-gcc345, pe20091108c-34X-slc5-gcc434, pe20091108c-34X-slc4-gcc432, pe20091108b-34X-slc5-gcc434, pe20091108b-34X-slc4-gcc432, pe20091108a-34X-slc4-gcc432, ap20091107-slc5onl, CMSSW_3_4_0_pre5-slc5-gcc434, pe20091106a-34X-slc5-gcc434, pe20091106a-34X-slc4-gcc432, CMSSW_3_4_0_pre5-slc4-gcc432, CMSSW_3_4_0_pre4-slc4-gcc432, CMSSW_3_4_0_pre5-slc4_gcc432, dl091106, BUILDBOT_01, DQMGUI_5_1_3, DQMGUI_5_1_2, CERNOIDv02, DAS_20091104, pe20091103d-34X-slc5-gcc434, pe20091103d-34X-slc4-gcc432, pe20091103c-34X-slc5-gcc434, pe20091103c-34X-slc4-gcc432, pe20091103b-slc4-gcc432, ap-20091103a-slc5onl-bootstrap, pe20091103a-slc5-gcc434, pe20091103a-slc4-gcc432, pe20091103a--slc4-gcc432, pe20091103a-for34X, ap-20091103-slc5onl-bootstrap, DQMGUI_5_1_1, CRABSERVER_1_1_0_pre6_BUILD, ge20091102-qt-conf, CMSSW_3_3_2_FWLITE-slc5-gcc434, apFor332fwlv1, apFor332fwlv1-slc5-gcc434, apFor332fwlv0, eskFor340p4, CMSSW_3_3_2-slc5-gcc434, CMSSW_3_3_2-slc4-gcc432, CMSSW_3_3_2, DQMGUI_5_1_0, pe20091031a-for34X, apFor332v0_sl4igcc4, apFor332v0_sl5igcc4, apFor332v0, pe20091030a-for34X, DBS-WEB_20091021, CMSSW_3_4_0_pre3, CouchDB_0_10_0, eskFor340p3, apFor331fwlv1-slc5gcc434, apFor331fwlv1, apFor331fwlv0, sm091023b-slc5onl, sm091023a-slc5onl, CMSSW_3_3_1-slc5-gcc434, CMSSW_3_3_1-slc4-gcc432, CMSSW_3_3_1, CMSSW_3_3_0_onlpatch2_ONLINE, CMSSW_3_2_7_onlpatch6_ONLINE, for330op2, for327op6, pe20091022a-ports, pe20091022a-ports5, pe20091022a-for33X, CMSSW_3_3_0_onlpatch1_ONLINE, pe20091021a-ports5, pe20091021a-ports, CMSSW_3_2_7_onlpatch5_ONLINE, pe20091021a-for33X, CMSSW_3_2_7_onlpatch4_ONLINE, CMSSW_3_4_0_pre2-432, CMSSW_3_4_0_pre1-432, CMSSW_3_4_0_pre2, CRABSERVER_1_1_0_pre5_BUILD, pe20091018a-ports5, ge20091019, sm327op4, sm340p2, CMSSW_3_2_8, DAS_20091016, CERNOIDv01, ge20091015-comp-bootstrap, CMSSW_3_3_0-slc5, CMSSW_3_3_0-432, DAS_20091014, WMCORE-before-refactor, CMSSW_3_3_0_ONLINE, sm091013a, DBS-WEB_20091012, sm091012c, sm091012b, sm091012a, CMSSW_3_2_7_onlpatch3_ONLINE, CMSSW_3_3_0, eskFor328, apFor330v0, pe20091009a-for33X, pe20091008d-ports5, pe20091008d-ports, pe20091008d-for33X, pe20091008c-ports5, ge20091008-fix-rpm-relocation, CMSSW_3_4_0_pre1, pe20091008b-ports5, pe20091008a-ports5, sm091007a, ge20091010-bootstrap, CRABSERVER_1_1_0_pre4_BUILD, pe20091006e-ports5, ge20091006-bootstrap-3, pe20091006d-ports5, ge20091006-bootstrap-2, CMSSW_3_3_0_pre6-432, pe20091006c-ports5, ge20091006, pe20091006b-ports5, pe20091006a-ports5, pe20091006a-ports, pe20091006a-for33X, CMSSW_3_1_4, CRABSERVER_1_1_0_pre3_BUILD, CMSSW_3_3_0_pre6, apFor330pre6v0, PerfSuiteDB_20090930, CRABSERVER_1_0_10_BUILD, pe20090929a-ports, pe20090929a-for33X, ge20090929-amd64, ge20090929-ia32, ap20090929a-ports, ap20090929a-for33X, ap20090929-for33X, CMSSW_3_3_0_pre5-432, CMSSW_3_2_7_onlpatch2_ONLINE, sm090928a, CMSSW_3_3_0_pre5, apFor330pre5v0, pe20090925a-ports, pe20090925a-for33X, pe20090924b-for33X, CRABSERVER_1_0_10_pre1_BUILD, pe20090924a-ports, pe20090924a-for33X, CMSSW_3_1_3, pe20090923b-for33X, pe20090923b-ports, CMSSW_3_2_7_onlpatch1_ONLINE, CMSSW_3_2_7_ONLINE, sm090923a, pe20090923a-ports, pe20090923a-for33X, pe20090922e-ports, pe20090922e-for33X, pe20090922d-ports, pe20090922c-ports, pe20090922c-for33X, pe20090922b-ports, pe20090922a-ports, pe20090922a-for33X, ge20090922-ports, sm090922a, CMSSW_3_2_7, pe20090921d-ports, pe20090921d-for33X, ge20090921-ports, pe20090921c-ports, pe20090921c-for33X, pe20090921b-for33X, DBS-WEB_20090921, pe20090921a-ports, CMSSW_3_3_0_pre4, apFor330pre4v0, eskFor327, pe20090918a-ports, webconddb173, condapp173, CRABSERVER_1_1_0_pre2_BUILD, PerfSuiteDB_20090916, webconddb172, condapp172, pe20090912a-ports-xdaq, pe20090911a-ports-xdaq, CMSSW_3_3_0_pre3, pe20090910-fromDAS_20090709, FILEMOVER_20090910, apFor330pre3v0, pe20090907a-ports, pe20090907a-for33X, CMSSW_3_3_0_pre2, apFor330pre2v1, apFor330pre2v0, CMSSW_3_2_6, PerfSuiteDB_20090904_almost_stable, CRABSERVER_1_1_0_pre1_BUILD, pe20090904a-ports, pe20090904a-for33X, DBS-WEB_20090817, PerfSuiteDB_20090904, pe20090903b-for33X, eskFor326, pe20090903b-ports, pe20090903a-ports, pe20090903-for33X, FILEMOVER_20090828, PerfSuiteDB_20090901, DBS-APPS_20090706, CMSSW_3_3_0_pre1, CMSSW_3_2_1_onlpatch6_ONLINE, sm090829a, T0Mon_090828_1, forHEARTBEATr04, esk090827, pe20090827a-ports, pe20090827a-33X, pe20090826a-33X, CMSSW_3_2_1_onlpatch5_ONLINE, pe20090826a-ports, RPMVERIFY_0_2, sm090826a, forHEARTBEATr01, T0Mon_090822_1, CMSSW_3_2_5, smFor325v0, eskFor325, CMSSW_3_2_1_onlpatch4_ONLINE, sm090818a, webconddb171, condapp171, WEBTOOLS_APPS_20090817, CMSSW_3_2_4_ONLINE, sm090813e, CMSSW_3_2_4_patch1, CMSSW_3_2_4, sm090813d, sm090813c, sm090813b, sm324p1a, sm090813a, CMSSW_3_2_1_onlpatch3_ONLINE, sm090810a, CMSSW_3_2_1_onlpatch2_ONLINE, sm090806a, DBS-APPS_20090804, CMSSW_3_2_3, apFor323v1, apFor323v0, DQMGUI_5_0_2, DQMGUI_5_0_1, DQMGUI_5_0_0, DBS-APPS_20090730, DAS_20090709, CMSSW_3_2_1_onlpatch1_ONLINE, CMSSW_3_2_2_patch2, apFor321onlp1v1, apFor321onlp1v0, apFor322patch2v0, CRABSERVER_1_0_9_BUILD, CMSSW_3_2_2_patch1, apFor322pa1v0, CMSSW_3_2_2, CMSSW_3_1_2, CMSSW_3_2_1-432, apFor322v0, dl090723, CRABSERVER_1_0_9_pre3_BUILD, pe20090722b-31Xports-432, pe20090722a-31Xports-432, CRABSERVER_1_0_9_pre2_BUILD, CRABSERVER_1_0_9_pre1_BUILD, CRABSERVER_1_0_9_pre1, CMSSW_3_2_1_ONLINE, CMSSW_3_2_1, sm090721b, sm090721a, apFor321v0, sm090720b, sm090720a, apFor320onlv1, apFor320onlv0, CMSSW_3_2_0, apFor320v1, apFor320v0, CMSSW_3_1_1_patch1, sm090716a_off, CMSSW_3_1_1_onlpatch3_ONLINE, sm090716a, T0Mon_090715_1, CMSSW_3_1_1_onlpatch2_ONLINE, sm090715c, sm090715b, sm090715a, CMSSW_3_ONLINE_BOOTSTRAP, sm090709a, CMSSW_3_1_1_onlpatch1_ONLINE, sm090708g, CMSSW_3_1_1_ONLINE, CMSSW_3_1_1_reallyThisTime, sm090708f, sm090708e, sm090708d, sm090708c, sm090708b, CMSSW_3_1_0_ONLINE2, sm090708a, CMSSW_3_1_1, dl090707, pe20090707c-31Xports-432, pe20090707b-31Xports-432, pe20090707a-31Xports-432, pe20090706b-31Xports-432, pe20090706a-31Xports-432, CMSSW_3_1_0_onlpatch1_ONLINE, sm090703a, CMSSW_2_2_13_offpatch1, apFor2213offpatch1v0, CMSSW_3_1_0_patch1, pe20090701a-31Xports-432, CMSSW_3_1_0_ONLINE, sm090701b, CMSSW_3_1_0, sm090701a, CMSSW_3_1_0_pre11, DAS_20090607, CMSSW_2_2_13_FWLITE, apFor2213fwlitev0, CRABSERVER_1_0_8_BUILD, DBS-WEB_20090618, CRABSERVER_1_0_8_pre7_BUILD, webconddb170, condapp170, dl090623, CRABSERVER_1_0_8_pre6_BUILD, CMSSW_3_1_0_pre10_ONLINE, sm090621b, sm090621a, sm090620b, sm090620a, sm090619e, sm090619d, DBS-APPS_20090619, sm090619c, sm090619b, sm090619a, sm090618a, CRABSERVER_1_0_8_pre5_BUILD, CMSSW_3_1_0_pre10-432, pe20090616a-31Xports-432, pe20090615a-31Xports-432, T0Mon_090612_1, CMSSW_3_1_0_pre10, dl090611, DBS-APPS_20090608, CMSSW_3_1_0_pre9, pe20090611c-31Xports-432, pe20090611b-31Xports-432, T0Mon_090611_1, pe20090611a-31Xports-432, pe20090610d-31Xports-432, CRABSERVER_1_0_8_pre4_BUILD, pe20090610c-31Xports-432, pe20090610b-31Xports-432, pe20090610a-31Xports-432, T0Mon_090610_1, CMSSW_2_2_13_HLT, apFor2213hltv0, CMSSW_2_2_13, apFor2213v0, DBS-APPS_20090604_1, DAS_20090604, DBS-APPS_20090604, pe20090604a-31Xports-432, DAS_20090603, condapp164b, webconddb164b, DBS-APPS_20090603, CMSSW_2_2_12_HLT, T0Mon_090601_1, CMSSW_2_2_12, apFor2212hltv0, CMSSW_3_1_0_pre8, apFor2212v2, apFor2212v1, apFor2212v0, DBS-APPS_20090528, apFor2211off1v0, CMSSW_2_2_11_offpatch1, T0Mon_090527_2, T0Mon_090527_1, CRABSERVER_1_0_8_pre3_BUILD, pe20090526a-31Xports-432, webconddb164, conapp164, condcore306, pe20090525b-31Xports-432, pe20090525a-31Xports-432, T0Mon_090522_1, dl090520t2, dl090520, ap20090520-osx105, T0Mon_090519_2, T0Mon_090519_1, ap20090519-osx105, DBS_APPS_20090518, T0Mon_090517_1, CMSSW_2_2_11, CMSSW_2_2_11_HLT, T0Mon_090516_1, apFor2211v1, apFor2211hltv0, apFor2211v0, T0Mon_090515_4, CMSSW_3_1_0_pre7, T0Mon_090515_3, T0Mon_090515_2, T0Mon_090515_1, DAS_20090514_3, DAS_20090514_2, DAS_20090514_1, DAS_20090514, pe20090514b-31Xports-432, dl090514t3, dl090514t2, pe20090514a-31Xports-432, dl090514, CMSSW_2_2_10_HLT, DBS-WEB_20090512, pe20090512a-31Xports-432, apFor2210hltv0, pe20090511a-31Xports-432, CRABSERVER_1_0_8_pre2_BUILD, T0Mon_090510_1, CMSSW_2_2_10, dl090509, apFor2210v0, DBS-WEB_20090507, zx20090506, dl090504gcc41, pe20090505b-31Xports-432, pe20090505a-31Xports-432, dl090504, pe20090504a-31Xports-432, DBS_APPS_20090504, CMSSW_3_1_0_pre6, DBS_APPS_20090501, DBS-APPS_20090429_2, DBS-WEB_20090429, DBS-APPS_20090429, DBS-WEB_20090428, dl090425, CMSSW_2_2_9, apFor229v2, apFor229v1, apFor229v0, forPHEDEX-web-services-20090423, DBS-WEB_20090422, dl090421, apFor2119v1, apFor2119v0, DBS-WEB_20090420, DBS-APPS_20090417, CMSSW_2_2_8, apFor228v0, CMSSW_3_1_0_pre5, dl090416, DBS-APPS_20090415, pe20090414a-31Xports-432, dl090410, DBS-APPS_20090410, dl090409t2, dl090409, DAS_20090408, pe20090407a-31Xports-432, dl090406t2, dl090406, DBS-APPS_20090406, T0Mon_090406_1, pe20090406b-31Xports-432, pe20090406a-31Xports-432, forPHEDEX-web-services-20090406, dl090403, pe20090403a-31Xports-432, dl090401t2, DAS_20090330, dl090401, dl090330, dl090329, dl0903029, CMSSW_2_2_7, apFor227v2, CMSSW_3_1_0_pre4, DBS-APPS_20090326, T0Mon_090326_1, T0Mon_090325_1, DAS_20090319_1, DAS_20090319, CMSSW_2_2_6_HLT_ONLINE1, nr090319_for226hltonl1, pe20090318b-for31X-412, pe20090318b-for31X, DBS-APPS_20090318, pe20090318-for31X, CMSSW_2_2_6_HLT_ONLINE, T0Mon_090318_1, apFor227v1, dl090317t2, dl090317, DBS-APPS_20090316, DAS_20090316, T0Mon_090315_1, DAS_20090313, COUCHDB_20090313, apFor227v0, CMSSW_2_2_6_onlpatch1_ONLINE, CMSSW_2_2_6_ONLINE, CMSSW_2_2_6_HLT, apFor226HLTv0, CRABSERVER_1_0_8_pre1_BUILD, forPHEDEX313a, DBS-APPS_20090310, WEBTOOLS-APPS_20090310_1, WEBTOOLS-APPS_20090310, WEBTOOLS-APPS_20090309, CMSSW_2_2_6, nr090307for226_onlpatch1, CMSSW_3_1_0_pre3, DBS-APPS_20090306, apFor226v3, nr090306onl226_tkonlsw_too_new, DBS-APPS_20090304_1, DBS-APPS_20090304, pe20090304-for31X-412, pe20090304-for31X, pe20090304b-30Xports-432, pe20090304a-30Xports-432, dl090304_cmsswtoolconf9cms_gcc412, dl090304_cmsswtoolconf9cms, DBS-APPS_20090303_1, DBS-APPS_20090303, T0Mon_090303_1, apFor226v2, apFor226v1, DBS-APPS_20090302, dl090302_cmsswtoolconf9gcc412, dl090302_cmsswtoolconf9, dl090301, apFor226v0, apFor226, pe20090226b-30Xports-432, pe20090226a-30Xports-432, CMSSW_3_1_0_pre2, pe20090225d-for30XIB-412, pe20090225d-for30XIB, pe20090225c-for30XIB, pe20090225b-for30XIB-412, pe20090225b-for30XIB, pe20090225a-for30XIB, zx20090224, nr20090224_for226, CMSSW_3_1_0_pre1, pe20090224b-30Xports-432, pe20090224a-30Xports-432, pe20090224c-for30XIB-412, pe20090224c-for30XIB, pe20090224b-for30XIB-412, pe20090224b-for30XIB, pe20090224a-for30XIB-412, pe20090224a-for30XIB, DBS-APPS_20090220_1, DBS-APPS_20090220, CMSSW_3_0_0_pre10, T0M_0_0_5, MEMCACHED_20090219_1, MEMCACHED_20090219, sm080219a, zx20090219, pe20090218a-30Xports-432, forPHEDEX313, WEBTOOLS-APPS_20090217_1, WEBTOOLS-APPS_20090217, WEBTOOLS-APPS_20090216, pe20090216b-30Xports-432, pe20090216a-30Xports-432, zx20090217, forPHEDEX-web-services-20090216, zx20090216, CMSSW_3_0_0_pre9, pe20090213b-for30X-412, pe20090213b-for30X, pe20090213-for30X-412, pe20090213-for30X, WEBTOOLS-APPS_20090212, CMSSW_2_2_5, apFor225v0, condcore305, CRABSERVER_1_0_7_BUILD, WEBTOOLS-APPS_20090209_64bit, CRABSERVER_1_0_7_pre4_BUILD, zx20090209, condcore304, forPHEDEX312, WEBTOOLS-APPS_20090206, CRABSERVER_1_0_7_pre3_BUILD, condcore303, T0M_0_0_4, T0M_0_0_3, pe20090205-for30X, CMSSW_2_2_4, WEBTOOLS-APPS_20090203_1, WEBTOOLS-APPS_20090203, apFor224v4, T0M_0_0_2, apFor224v3, zx20090201, pe20090202-for30X, dl090131-412, dl090131, WEBTOOLS-APPS_20090130, apFor224v2, apFor224v1, apFor224v0, WEBTOOLS-APPS_20090129, PRODAGENT_0_12_10_pre3, CRABSERVER_1_0_7_pre2_BUILD, smFor224v0, pe20090127c-30Xports-432, pe20090127b-30Xports-432, PRODAGENT_0_12_10_pre2_20090127_V2, pe20090127a-30Xports-432, CRABSERVER_1_0_7_pre1_BUILD, pe20090125a-30Xports-432, CMSSW_3_0_0_pre8, pe20090124b-for30X-root522-412, pe20090124b-for30X-root522, pe20090124a-for30X-root522-412, pe20090124a-for30X-root522, pe20090123b-for30X-root522-412, pe20090123b-for30X-root522, pe20090123a-for30X-root522, PRODAGENT_0_12_10_20090122, PRODAGENT_0_12_10_pre1_MISC, CMSSW_3_0_0_pre7, pe20090116a-for30X-root522, pe20090115a-for30X-root522, sw_20090115a, sw_20090115, zx20090115, zx20090114, pe20090114c-ports, pe20090114b-ports, pe20090114a-ports, WEBTOOLS-APPS_20090113, DBS-APPS_20090109, pe20090109b-for30XIB-412, pe20090109b-for30XIB, pe20090109a-for30XIB-412, pe20090109a-for30XIB, DBS-APPS_20090108, sw_20090108, CMSSW_3_0_0_pre6, WEBTOOLS-APPS_20090108, CMSSW_3_0_0_pre5, pe20090107a-for30XIB-412, pe20090107a-for30XIB, CMSSW_2_2_3_FWLITE, CMSSW_3_0_0_pre4, DBS-APPS_20090106, DBS-APPS_20090105, pe20090105a-for30XIB-412, pe20090105a-for30XIB, FMWS_20090103, pe20090101a-for30XIB-412, pe20090101a-for30XIB, nr081230_fwlite223, pe20081230a-for30XIB, pe20081230-for30X-newcoralpool, pe20081229-for30X-G492, FMWS_20081224_1, FMWS_20081224, FMWS_20081222_3, FMWS_20081222_2, FMWS_20081222, PRODAGENT_0_12_9_patch1_20081219, PRODAGENT_0_12_10_20081219, DBS-APPS_20081218, PRODAGENT_0_12_9_20081218, pe20081218b-for30XIB-412, pe20081218b-for30XIB, pe20081218-for30XIB-412, pe20081218-for30XIB, pe20081216-for30XIB-412, pe20081216-for30XIB, pe20081216c-for30X, pe20081216b-for30X, pe20081216a-for30X, CMSSW_2_2_3, apFor223v0, pe20081214a-for30X, pe20081213c-30Xports-432, pe20081213c-30Xports, pe20081213b-30Xports, pe20081213a-30Xports, FMWS_20081212_1, CMSSW_2_2_2, CMSSW_3_0_0_pre3, FMWS_20081212, apFor222v0, FMWS_20081211, DBS-APPS_20081211, PRODAGENT_0_12_8_20081211, forPHEDEX311, DBS-APPS_20081210, CRABSERVER_1_0_6_BUILD, forPHEDEX310, DBS-APPS_20081209, pe20081209a-for30X-412, pe20081209a-for30X, CRABSERVER_1_0_6_pre6_BUILD, WEBTOOLS-APPS_20081208, forPHEDEX310pre2, DBS-APPS_20081205, CRABSERVER_1_0_6_pre5_BUILD, forPHEDEX-web-services-20081205, smFor221v1, DBS-APPS_20081204, DBS-APPS_200811204, pe20081204a-for30X-412, pe20081204a-for30X, pe20081104a-for30X, forPHEDEX310pre1, CRABSERVER_1_0_6_pre4_BUILD, apFor221v0, PRODAGENT_0_12_8_pre1_20081129, CRABSERVER_1_0_6_pre3_BUILD, DBS-APPS_20081126_1, DBS-APPS_20081126, DBS-APPS_20081125, pe20081125d-30Xports-432, pe20081125d-30Xports, pe20081125c-30Xports-432, pe20081125c-30Xports, pe20081125b-30Xports, pe20081125b-30Xports-432, pe20081125a-30Xports, pe20081124d-30Xports, pe20081124a-for30X-412, pe20081124a-for30X, pe20081124c-30Xports, pe20081124b-30Xports, pe20081124a-30Xports, pe20081121a-for30X-412, pe20081121a-for30X, CMSSW_2_2_0, pe20081121b-30Xports, pe20081121a-30Xports, apFor220v0, ofctest, testofc, PRODAGENT_BUILD_TEST_0_0_5_20081120, PRODAGENT_BUILD_TEST_0_0_4_20081120, PRODAGENT_BUILD_TEST_0_0_3_20081120_V1, PRODAGENT_BUILD_TEST_0_0_3_20081120, CRABSERVER_1_0_6_pre2_BUILD, CMSSW_2_1_17, DBS-APPS_20081119, DBS-APPS_20081118, PRODAGENT_0_12_7_20081118_V3, PRODAGENT_0_12_7_20081118_V2, PRODAGENT_0_12_7_20081118_V1, PRODAGENT_0_12_7_20081118, apFor2117v1, apFor2117v0, DBS-APPS_20081117, pe20081117a-for30X-412, pe20081117a-for30X, DBS-APPS_20081114_1, DBS-APPS_20081114, CRABSERVER_1_0_6_pre1_BUILD, DBS-APPS_20081112, CRABSERVER_1_0_5_BUILD, CRABSERVER_1_0_5_pre5_BUILD, DBS-APPS_20081111_1, DBS-APPS_20081110_2, DBS-APPS_20081110_1, WEBTOOLS-APPS_20081110, DBS-APPS_20081110, CMSSW_3_0_0_pre2, PRODAGENT_0_12_7_pre2_20081110, pe20081110a-for30X, pe20081108a-for30X-412, pe20081108a-for30X, CRABSERVER_1_0_5_pre4_BUILD, CMSSW_2_2_0_pre1, apFor220p1v1, WEBTOOLS-APPS_20081107_1, WEBTOOLS-APPS_20081107, apFor220p1v0, DBS-APPS_20081107, pe20081107a-for30X-412, pe20081107a-for30X, T0Mon_081107_1, pe20081105-noseal, CRABSERVER_1_0_5_TEST_2_BUILD, CRABSERVER_1_0_5_TEST_1_BUILD, DBS-APPS_20081105, T0Mon_081105_1, DBS-APPS_20081104, CRABSERVER_1_0_5_TEST_BUILD, WEBTOOLS-APPS_20081031_2, pe20081031b-for30X-412, pe20081031b-for30X, DBS-APPS_20081031_2, DBS-APPS_20081031_1, WEBTOOLS-APPS_20081031_1, pe20081031-for30X-412, pe20081031-for30X, WEBTOOLS-APPS_20081031, PRODAGENT_0_12_6_20081030, CMSSW_2_1_12, forPHEDEX307, apFor2112v0, DBS-APPS_20081024, CMSSW_3_0_0_pre1, CMSSW_2_1_10_patch2, WEBTOOLS-APPS_20081020_1, WEBTOOLS-APPS_20081020, DQMGUI_4_2_6c, DQMGUI_4_2_6b, CMSSW_2_1_10_patch1, forFrontend-2, PRODAGENT_0_12_5_20081016, WEBTOOLS-APPS_20081016_2, WEBTOOLS-APPS_20081016_1, WEBTOOLS-APPS_20081016, CRABSERVER_104_BUILD, WEBTOOLS-APPS_20081015, WEBTOOLS-APPS_20081013_1, WEBTOOLS-APPS_20081013, CRABSERVER_TEST_BUILD_V14, CRABSERVER_TEST_BUILD_V13, CMSSW_2_1_10, CRABSERVER_TEST_BUILD_V12, PRODAGENT_0_12_4_20081009, WEBTOOLS-APPS_20081009, apFor2110v2-gcc412, apFor2110v2, apFor2110v1-gcc412, apFor2110v1, PRODAGENT_0_12_3_20081009, WEBTOOLS-APPS_20081008_1, WEBTOOLS-APPS_20081008, CRABSERVER_TEST_BUILD_V11, DQMGUI_4_2_6, forPHEDEX-web-services-20081008, forPHEDEX-web-services-20081007, forPHEDEX-web302_test1, apFor2110v0-gcc412, apFor2110v0, PRODAGENT_0_12_2_20081001_V3, PRODAGENT_0_12_2_20081001_V2, PRODAGENT_0_12_2_20081001_V1, PRODAGENT_0_12_2_20081001, PRODAGENT_0_12_2, CMSSW_2_1_9_ONLINE, forPHEDEX306, forPHEDEX-datasvc120_test1, T0Mon_080926_1, CRABSERVER_TEST_BUILD_V10, CRABSERVER_TEST_BUILD_V9, CRABSERVER_TEST_BUILD_V8, CMSSW_2_1_7_FWLITE, WEBTOOLS-APPS_20080922, T0Mon_080920_2, T0Mon_080920_1, T0Mon_080916_2, forFrontend-1, CMSSW_2_1_9, apFor219v0, WEBTOOLS-APPS_20080917, WEBTOOLS-APPS_20080916, PRODAGENT_0_12_1_20090916, WEBTOOLS-APPS_20080915, PRODAGENT_0_12_0_20090915_V2, PRODAGENT_0_12_0_20090915, CMSSW_2_1_8, apFor218v0, apFor217patch1v1, DQMGUI_4_2_4, DQMGUI_4_2_3, PRODAGENT_BUILD_TEST_0_0_2_20090912, forPHEDEX305, DBS-APPS_20080910_1, WEBTOOLS-APPS_20080910_1, WEBTOOLS-APPS_20080910, CRABSERVER_TEST_BUILD_V7, CRABSERVER_TEST_BUILD_V6, CRABSERVER_TEST_BUILD_V5, DBS-APPS_20080910, apFor217patch1v0, DQMGUI_4_2_2c, WEBTOOLS-APPS_20080909, DQMGUI_4_2_2, DBS-APPS_20080908, DQMGUI_4_2_1d, DQMGUI_4_2_1c, DQMGUI_4_2_1b, DQMGUI_4_2_1, DQMGUI_4_2_0, CMSSW_2_1_7, CMSSW_2_1_, apFor217v1, T0Mon_080905_1, apFor217v0, T0Mon_080905_01, WEBTOOLS-APPS_20080903, T0Mon_080902_2, T0Mon_080902_1, CMSSW_2_1_6, apFor216v0, PRODAGENT_0_11_8_20080901, CMSSW_2_1_5, PRODAGENT_0_12_0_pre3_20080828, apFor215v1, apFor215v0, WEBTOOLS-APPS_20080826, zx20080825, T0Mon_080824_1, T0Mon_080823_1, T0Mon_080826_1, CMSSW_2_1_4_FWLITE, T0Mon_080825_1, CMSSW_2_0_10_FWLITE, WEBTOOLS-APPS_20080822, PRODAGENT_TEST_BUILD_20080822_V3, PRODAGENT_TEST_BUILD_20080822_V2, PRODAGENT_TEST_BUILD_20080822_V1, WEBTOOLS-APPS_20080821, WEBTOOLS-APPS_20080818_1, WEBTOOLS-APPS_20080818, CMSSW_2_1_4_ONLINE1, buildset_V2_8, CMSSW_2_1_4, apFor214v1, apFor214v0, CMSSW_2_1_3, PRODAGENT_0_11_7_20080813_V1, apFor213v0, CMSSW_2_1_2, CMSSW_2_1_1, CMSSW_2_1_1_ONLINE1, apFor212v0, apFor211v0, CMSSW_2_1_0_ONLINE1, apTestv0, PRODAGENT_0_11_6_20080807_V1, PRODAGENT_0_11_5_20080807_V4, PRODAGENT_0_11_5_20080807_V3, PRODAGENT_0_11_5_20080807_V2, PRODAGENT_0_11_5_20080807_V1, nr080806_for210onl, PRODAGENT_0_12_0_pre1_20080806_V2, forPHEDEX-web301, PRODAGENT_0_12_0_pre1_20080805_V1, PRODAGENT_0_11_4_20080805_V4, PRODAGENT_0_11_4_20080805_V3, PRODAGENT_0_11_4_20080805_V2, PRODAGENT_0_11_4_20080805_V1, CMSSW_2_1_0, apFor210v0, CMSSW_2_1_0_pre11, apFor210p11v0, dl080727_bootstrap, CMSSW_2_0_11, CMSSW_2_1_0_pre10, apFor210p10v1, apFor210p10v0, WEBTOOLS-APPS_20080725, WEBTOOLS-APPS_20080724, pe20080723a-for21X-412, pe20080723a-for21X, re-deps-20080722, CMSSW_2_1_0_pre9, apFor210p9v0, zx20080718, WEBTOOLS-APPS_20080717, PRODAGENT_0_11_0_20080717, WEBTOOLS-APPS_20080716, PRODAGENT_0_11_0_20080716, WEBTOOLS-APPS_20080715_2, WEBTOOLS-APPS_20080715_1, WEBTOOLS-APPS_20080715, PRODAGENT_0_0_13_V2, PRODAGENT_0_0_13, zx20080715, CMSSW_2_0_10_ONLINE1, nr080714_forCRAB, PRODAGENT_0_10_12_V18, PRODAGENT_0_10_12_V17, PRODAGENT_0_10_12_V16, PRODAGENT_0_10_12_V15, PRODAGENT_0_10_12_V14, PRODAGENT_0_10_12_V13, WEBTOOLS-APPS_20080713, CMSSW_2_1_0_pre8, PRODAGENT_0_10_12_V12, PRODAGENT_0_10_12_V11, apFor210p8v1, PRODAGENT_0_10_12_V10, PRODAGENT_0_10_12_V9, apFor210p8v0, dl080710_apt0_5_15lorg3_2, forPHEDEX304, CMSSW_2_1_0_pre7, apFor210p7v1, apFor210pre7v1, zx20080707, CMSSW_2_0_10, apFor210p7v0, pe20080702b-for21X-412, pe20080702b-for21X, pe20080702a-for21X-412, pe20080702a-for21X, forPHEDEX-datasvc110, forPHEDEX-web300, forPHEDEX-web110, pe20080627a-for21X-412, pe20080627a-for21X, re20080627, nr080626_for1612flt, pe20080626a-for21X-412, pe20080626a-for21X, CMSSW_2_0_9, zx20080625, WEBTOOLS-APPS_20080624, nr080624_for21x, pe20080624a-for21X-412, pe20080624a-for21X, nr080623_for21x, pe20080623b-for21X-gp-412, pe20080623b-for21X-gp, pe20080623-for21X-gp, CMSSW_2_1_0_pre6, WEBTOOLS-APPS_20080619_1, WEBTOOLS-APPS_20080619, apFor210p6v0, WEBTOOLS-APPS_20080617, pe20080616-for21X-412, pe20080616-for21X, zx20080611, pe20080611-for21X-412, WEBTOOLS-APPS_20080611, pe20080611-for21X, CMSSW_2_0_8_ONLINE1-cms2, pe20080610-for21X, zx20080610, pe20080610-for21X-412, WEBTOOLS-APPS_20080609_1, WEBTOOLS-APPS_20080609, zx20080609, pe20080609-for21X-412, pe20080609-for21X, sw_20080509, CMSSW_1_6_12, pe20080607-21X-gendict, sm080606a, apFor1612v0, CMSSW_2_1_0_pre5g491p02, CMSSW_2_0_8_ONLINE1, pe20080604-for21X-g491p02, apFor1612p3v0, SiteDB_030608_1, CMSSW_2_0_8, CMSSW_2_1_0_pre5, pe20080531-for210p5, SiteDB_300508_1, nr080529_onl_cmsBuild, nr080528_onl_cmsBuild, SiteDB_280508_1, WEBTOOLS-APPS_20080527_2, WEBTOOLS-APPS_20080527, CMSSW_1_6_12_pre2, WEBTOOLS-APPS_20080523, apFor1612p2v1, apFor1612p2v0, CMSSW_1_6_12_pre1, CMSSW_2_0_7_FWLITE, WEBTOOLS-APPS_20080522, WEBTOOLS-APPS_20080521, sm080520a, WEBTOOLS-APPS_20080520, WEBTOOLS-APPS_20080519, pe20080518b-ports-from210p4, pe20080518a-ports-from210p4, zx20080519, apFor1612p1v1, apFor1612p1v0, CMSSW_2_1_0_pre4, CMSSW_2_0_7, nr080514_206fwlite_no_trajectory, nr080514_206fwlite_alldicts, pe20080512-for21X, WEBTOOLS-APPS_20080511, zx20080509b, zx20080509, pe20080508-testcvs, dl080507, CMSSW_2_0_6, apFor210p4v1, WEBTOOLS-APPS_20080507_1, WEBTOOLS-APPS_20080507, apFor210p4v0, pe20080507-for21X, WEBTOOLS-APPS_20080506, dl080506, dl080505t2, dl080505, WEBTOOLS-APPS_20080501, CMSSW_2_0_5, zx20080430, CMSSW_2_0_4_ONLINE1, dl080425_for21x, dl080425, nr080425for204onl1, CMSSW_2_0_0_ONLINE2, CMSSW_2_1_0_pre3, nrnr080424for200onl2, CMSSW_2_0_3_ONLINE1, nr080326fwl200p7, CMSSW_2_0_4, dl080422, WEBTOOLS-APPS_20080422, nr080421for203onl, CMSSW_2_0_3, apFor210p3v1, apFor210p3v0, dl080419for202, CMSSW_2_0_1, dl080418, CMSSW_2_1_0_pre2, WEBTOOLS-APPS_20080416, CMSSW_2_0_0_ONLINE1, apFor210p2v2, dl080415t2, dl080415, apFor210p2v1, apFor210p2v0, CMSSW_1_6_11, zx20080415-comp, webconddb_1_1_1, WEBTOOLS-APPS_20080414, nr080413, WEBTOOLS-APPS_20080412, WEBTOOLS-APPS_20080411_1, WEBTOOLS-APPS_20080411, CMSSW_2_0_0, WEBTOOLS-APPS_20080410, WEBTOOLS-APPS_20080409_1, WEBTOOLS-APPS_20080409, dl080408cand200t1, dl080408t1, WEBTOOLS-APPS_20080408_1, WEBTOOLS-APPS_20080408, nr080408for200p9, dl080407t3, dl080407t2, CMSSW_2_1_0_pre1, DBS-APPS_20080407, CMSSW_2_0_0_pre7_ONLINE1, WEBTOOLS-APPS_20080407, dl080407, apFor210p1, CMSSW_2_0_0_pre9, dl080405, CMSSW_1_8_4, pe20080405-for184, WEBTOOLS-APPS_20080404_2, WEBTOOLS-APPS_20080404_1, WEBTOOLS-APPS_20080404, WEBTOOLS-APPS_20080403_4, WEBTOOLS-APPS_20080403_3, WEBTOOLS-APPS_20080403_2, WEBTOOLS-APPS_20080403_1, WEBTOOLS-APPS_20080403, nr080331for200p7onl1, CMSSW_2_0_0_pre8, sm080328a, WEBTOOLS-APPS_20080328, WEBTOOLS-APPS_20080327_1, WEBTOOLS-APPS_20080327, CMSSW_1_8_3, CMSSW_2_0_0_pre7, WEBTOOLS-APPS_20080326_6, WEBTOOLS-APPS_20080326_5, WEBTOOLS-APPS_20080326_4, WEBTOOLS-APPS_20080326_3, WEBTOOLS-APPS_20080326_2, WEBTOOLS-APPS_20080326, DBSweb_260308_1, pe20080326-for183, DBSweb_260308, pe20080325-for183, CMSSW_1_8_2, pe20080324-for182, CMSSW_2_0_0_pre6, CMSSW_1_7_7, apFor1611v0, forPHEDEX262_cmsbuild3, sw_20080319, sw20080319, DBSweb_180308_2, DBSweb_180308_1, DBSweb_180308, DBSweb_170308_8, DBSweb_170308_7, DBSweb_170308_6, DBSweb_170308_5, DBSweb_170308_4, DBSweb_170308_3, DBSweb_170308_2, DBSweb_170308, SiteDB_170308, CMSSW_2_0_0_pre5, SiteDB_1_2_1-160308_2, SiteDB_1_2_1-160308, SM_150308_DBSDisc_9, SM_150308_DBSDisc_8, SM_150308_DBSDisc_7, SM_150308_DBSDisc_6, SM_150308_DBSDisc_5, SM_150308_DBSDisc_4, SM_150308_DBSDisc_3, SM_150308_DBSDisc_2, SM_150308_DBSDisc_1, SM_150308_DBSDisc, CMSSW_1_8_1, nr080314_181onl1, pe20080314-for181, SiteDB_140308, SiteDB_130308, CMSSW_2_0_0_pre4, dl080312, CMSSW_1_8_0_ONLINE1, apFor1611p1v1, apFor1611p1v0, nr080310_180onl1, dl080308, dl080307cmsswtoolconf2cms5, dl080307, dl080307cmsswtoolconf2cms4, nr080307onl180onl1, CMSSW_1_8_0, dl080304t4, dl080304t3, dl080304t2, dl080304, pe20080304a-for180, ge20080304-comp, pe20080303a-for18X, dl080229, CMSSW_1_8_0_pre10, pe20080229-ports, dl080228t2, dl080228, CMSSW_2_0_0_pre3, dl080227for176, SiteDB_080227, dl080227, CMSSW_1_6_10, ge20080226, dl080226t2, dl080226, pe20080226-for180p10, apFor1610v0, CMSSW_1_6_10_pre2, dl080225intbld, ge20080225-nightlies, ge20080225-fixed-bootstrap, dl080224t3, dl080224t2, dl080224, dl080223, dl080222, CMSSW_1_6_10_pre1, apFor1610p2v0, dl080221, CMSSW_1_7_5_ONLINE1, pe20080221a-ports-412, pe20080221a-ports, dl080220, pe20080220a-for18X, pe20080220a-ports-412, pe20080220a-ports, CMSSW_1_8_0_pre9, sm080219, ge20080219, dl080218, nr080215g491p01dbg, COMP_NIGHTLY_INIT_V1, SiteDB_SM_Nightly_150208, ge20080215, pe20080214a-ports-for190p9-412, pe20080214a-ports-for190p9, apFor1610p1v2, CMSSW_1_6_8_FWLITE-root51800, apFor1610p1v1, CMSSW_1_6_9, pe20080211a-ports-for190p9-412, pe20080211a-ports-for190p9, COMP_NIGHTLY_20080211, CMSSW_2_0_0_pre1, pe20080207c-ports-for190p8-412, pe20080207c-ports-for190p8, pe20080207b-ports-lcg54pre2-412, pe20080207b-ports-lcg54pre2, pe20080207a-ports-lcg54pre2-412, pe20080207a-ports-lcg54pre2, pe20080206b-ports-lcg54pre2-412, pe20080206b-ports-lcg54pre2, pe20080206a-ports-lcg54pre2-412, pe20080206a-ports-lcg54pre2, pe20080205c-ports-lcg54pre2-412, pe20080205c-ports-lcg54pre2, pe20080205b-ports-lcg54pre2-412, pe20080205b-ports-lcg54pre2, pe20080205a-ports-lcg54pre2-412, pe20080205a-ports-lcg54pre2, CMSSW_1_8_0_pre8, pe20080204a-ports-lcg54pre2-412, pe20080204a-ports-lcg54pre2, dl080202, apFor169v1, pe20080127a-ports-lcg54pre2-412, pe20080127a-ports-lcg54pre2, CMSSW_1_6_9_pre2, pe20080126-for180p8, pe20080125a-ports-lcg54pre2-412, pe20080125a-ports-lcg54pre2, pe20080125a-ports-lcg54-412, pe20080125a-ports-lcg54, nr080124fwl168a, pe20080123a-ports-412, pe20080123a-ports, CMSSW_1_8_0_pre7, pe20080122a-for180p7, dl080120, pe20080120a-ports-412, pe20080120a-ports, pe20080120a-for180p7, pe20080119a-ports-412, pe20080119a-ports, apFor169p2v2, pe20080118g-ports-412, pe20080118g-ports, pe20080118f-ports-412, pe20080118f-ports, nr_pe20080118e-ports-onl, pe20080118e-ports-412, pe20080118e-ports, apFor169p2v1, pe20080118d-ports-412, pe20080118d-ports, pe20080118c-ports, apFor169p2v0, pe20080118b-ports, pe20080118a-ports, pe20080117b-for180p7, CMSSW_1_7_5, CMSSW_1_7_5_g491, pe20080117-for180p7, ap20080116d, CMSSW_1_7_5_ONLINE, ap20080116c, ap20080116b, ap20080116a, nr080115onl175, ap20080115d, dl080115, ap20080115c, ap20080115b, ap20080115a, ap20080114b, ap20080114a, CMSSW_1_6_9_pre1, apFor169p1, apFor169p1v5, dl080111, apFor169p1v4, pe20080111b-ports, apFor169p1v3, apFor169p1v2, CMSSW_1_8_0_pre6, pe20080111a-ports, pe20080110b-ports, apFor169p1v1, pe20080110a-ports, pe20080109a-ports, ge20080109-webconddb, ge20080109-sitedb, apFor169p1v0, apFor169v0, CMSSW_1_6_8, NR080108_geant491-dbg-global, pe20080108c-ports, ge20080108-wt, pe20080108b-ports, pe20080108a-ports, pe20080105a-ports, pe20080104a-ports, pe20080103a-ports-gcc422, pe20080103a-ports, pe20070103a-ports, pe20080101a-ports, sm20080101a-newscram, pe20071128b-ports, pe20071128a-ports, pe20071127b-ports, pe20071127-ports, pe20071226c-for180p6, pe20071226b-for180p6, pe20071226a-for180p6, ge20071224, ge20071223, ge20071221, pe20071220b-for180p6, ge20071220, pe20071220-for180p6, CMSSW_1_7_4, ge20071217, CMSSW_1_8_0_pre5, pe20071216-for180p5, ge20071216, CMSSW_1_7_3_g490p1, CMSSW_1_8_0_pre4-vg330, ge20071213, dl071212t2, dl071212, ge20071212-perfreport, ge20071212, ge20071211, CMSSW_1_7_3, ge20071210a, ge20071210, CMSSW_1_7_2, pe20071207-for180p4g491c3, NR071206_geant491cand3-global, ge20071207, pe20071206-for180test1, CMSSW_1_8_0_pre4-412, CMSSW_1_8_0_pre4, pe20071205b-for180p4-412, pe20071205b-for180p4, pe20071205-for180p4, ge20071205, CMSSW_1_6_8_pre2_FWLITE-root51706, apFor168, CMSSW_1_8_0_pre3a-412, ge20071203, CMSSW_1_6_8_pre2, pe20071202-for180p3a-gcc412, CMSSW_1_8_0_pre3a, pe20071201b-for180p3a, pe20071201-for180p3a, CMSSW_1_7_1, V00-06-08, ge20071128, pe20071130-for180p3, pe20071129-for180p3, ge20071127a-leopard, ge20071127-leopard, pe20071127a-ports-412, apFor168p2, CMSSW_1_6_8_pre1, ge20071126-new-bootstrap, CMSSW_1_8_0_pre2, CMSSW_1_8_0_pre0-amd64, CMSSW_1_8_0_pre0, pe20071123e-ports-412, pe20071123d-ports-412, apFor168p1, pe20071123c-ports-422, pe20071123c-ports-412, pe20071123c-ports, pe20071123b-ports-422, pe20071123b-ports-412, pe20071123b-ports, pe20071123a-ports-422, pe20071123a-ports-412, pe20071123a-ports, ge20071122-new-bootstrap, nr071121onl170_xdaq5, pe20071121a-ports-422, pe20071121a-ports-412, pe20071121a-ports, nr071120_fwlite170_1, apFor1412, CMSSW_1_7_0_ONLINE, apFor1411, CMSSW_1_4_10, CMSSW_1_7_0, nr071116onlpre13, CMSSW_1_7_0_pre13, dl071114, ap20071113, apForCMSSW1410, pe20071112c-ports-422, pe20071112c-ports-412, pe20071112c-ports, pe20071112b-ports-412, pe20071112b-ports, pe20071112a-ports, CMSSW_1_7_0_pre12, CMSSW_1_7_0_pre10_ONLINE, CMSSW_1_7_0_pre11, CMSSW_1_6_7_FWLITE, nr071105a, pe20071105c-ports, pe20071105b-ports, pe20071105a-ports, pe20071103e-ports, pe20071103d-ports, pe20071103c-ports, pe20071103b-ports, pe20071103a-ports, pe20071102b-ports, pe20071102a-ports, CMSSW_1_7_0_pre10, CMSSW_1_7_0_pre9, CMSSW_1_7_0_pre8, CMSSW_1_7_0_pre7, dl071028, nr071026_fwlite167, nr071025_fwlite167, CMSSW_1_4_9, dl071024, nr071023_fwlite170p6, pe20071023-170p6-amd64, apForCMSSW149, forTony_001, pe20071021-170p6-zlib, dl071021t2, dl071021, pe20071021a-ports, dl071020, CMSSW_1_6_7, pe20071019a-for167, CMSSW_1_6_6, nr071017_170p5onl2, apForCMSSW148, CMSSW_1_7_0_pre6, CMSSW_1_4_8-slc3ap, CMSSW_1_4_8-slc3, nr071016_170p5onl1, nr071016onl170p5bs, nr071016onl170p5, CMSSW_1_4_7-slc3, pe20071015-xrootd, pe20071014-ports, dl071014, ap-20071013, pe20071013a-for166p2, ap20071012b, ap20071012a, nr20071011-bootstrap, pe20071011a-for166, dl071010t2, dl071010, pe20071009a-for166p1, dl071009t2, dl071009, CMSSW_1_7_0_pre5, CMSSW_1_6_5, pe20071006a-for165, CMSSW_1_6_5_pre2, pe20071005a-for165p2, CMSSW_1_6_5_pre1, pe20070930b-for165p1, pe20070930a-for165p1, CMSSW_1_6_4, pe20070929a-for164, nr20070926-bootstrap, CMSSW_1_6_3, pe20070928a-for16Xdpm, dl070926t2, dl070926, pe20070926a-for163, CMSSW_1_6_2, ap-20070926, ap-20070925, pe20070925a-for162, CMSSW_1_6_2_pre1, pe20070922a-for162p1, CMSSW_1_6_1, CMSSW_1_7_0_pre4, pe20070922g-for161p2, pe20070922f-for161p2, pe20070922e-for161p2, pe20070922d-for161p2, pe20070922c-for161p2, pe20070922b-for161p2, pe20070922a-for161p2, dl070921t2, dl070921, dl070920, CMSSW_1_7_0_pre3, CMSSW_1_6_1_pre1, dl070916, dl070912, dl070812, sm070912b, sm070912a, sm070911a, dl070909p3, dl070909, CMSSW_1_7_0_pre2, dl070906, dl070905, sm030907a, CMSSW_1_6_0, CMSSW_1_6_0_pre14, pe20070831d-160p14, pe20070831c-160p14, pe20070831b-160p14, pe20070831a-160p14, pe20070830a-160p14, CMSSW_1_7_0_pre1, dl070829, CMSSW_1_6_0_DAQ3, CMSSW_1_6_0_pre13, dl070828t2, dl070828, dl070827, dl070826, pe20070826a-160p13, CMSSW_1_6_0_pre12, dl070824, pe20070824b-160p12, pe20070824-160p12, pe20070823-160p12, CMSSW_1_6_0_pre11, CMSSW_1_6_0_pre10, CMSSW_1_4_6-slc3, ge20070810-ptc, CMSSW_1_6_0_pre9, CMSSW_1_6_0_pre8, CMSSW_1_5_4, CMSSW_1_5_3, CMSSW_1_6_0_pre7, dl070730, cms160daq1_zhen2, cms160daq1_zhen1, ge20070730-cmsbuild, ge20070729-amd64, CMSSW_1_6_0_pre6, pe20070727-160p6, CMSSW_1_6_0_DAQ1, ge20070726, dl070725, ge20070724-slc3, nr20070723_fwlite160p5, ap20070723, CMSSW_1_6_0_pre5, dl070721, dl070720_160daq1_1, pe20070720-160daq1, pe20070720-160p5, dl070719, ge20070718, ge20070717, ap20070717, ge20070713-macosx, ap20070712, ge20070712-migration, ge20070712, ge20070711-prodcommon, CMSSW_1_6_0_pre4, ge20070710-formencode, ge20070709-slc3, ge20070709-macosx, ge20070709a-macosx, ge20070706-macosx, ap20070706, CMSSW_1_6_0_pre3, CMSSW_1_5_2, pe20070705a-160p3, CMSSW_1_6_0_pre2, ge20070705, CMSSW_1_5_1, ge20070704, ge20070703b, pe20070702b-160p3, pe20070702b-160p2, ge20070702-rpm-webtools, dl070629t2, dl070629, ge20070629, CMSSW_1_6_0_pre1, pe20070729b-160p2, pe20070729b-160p1, pe20070729a-160p2, pe20070729a-160p1, pe20070629a-ports, pe20070628e-ports, pe20070628d-ports, pe20070628c-ports, pe20070628b-ports, CMSSW_1_5_0-ignominy470, pe20070628a-ports, pe20070627b-ports, pe20070627a-ports, pe20070626c-ports, ge20070625, pe20070626b-ports, sm20070626a-ports, pe20070626a-ports, pe20070625b-ports, pe20070625a-ports, pe20070624a-ports, CMSSW_1_4_5-slc4, CMSSW_1_4_5-slc3, CMSSW_1_4_4-slc3, CMSSW_1_5_0, ge20070622, dl070621, CMSSW_1_5_0_pre6, CMSSW_1_4_4-slc4, dl070616, ap-144-slc3, ap-144-slc4, nrFWLITE_150pre5_noseal_newboost, dl070615, dl070614xdaq, dl070614, ap-143g483-slc3, ap-143g483-slc4, CMSSW_1_4_3-slc4, CMSSW_1_4_3-slc3, pe20070607a-ports, CMSSW_1_5_0_pre5, dl070602t2, dl070602, CMSSW_1_5_0_pre4, nrFWLITE_150pre4, CMSSW_1_4_2-slc4, CMSSW_1_4_2-slc3, dl070522_150pre4cand, CMSSW_1_4_1-slc4, CMSSW_1_4_1-slc3, pe20070522a-ports, CMSSW_1_5_0_pre3, pe20070518c, pe20070519a-ports, pe20070518b, pe20070518a, CMSSW_1_4_0_DAQ1-slc3, CMSSW_1_4_0_DAQ1-slc4, pe20070517-for150p3ext, ap-140daq1-1-slc3, ap-140daq1-1-slc4, pe20070512a-ports, ap-140-1-slc3, ap-140-1-slc4, CMSSW_1_4_0_pre7-slc3, CMSSW_1_4_0_pre7, pe20070508a-ports, pe20070507a-ports, CMSSW_1_5_0_pre2, dl070505t4, dl070505t3, dl070505t2, dl070505, ap-140p7-1-slc4, ap-140p7-1-slc3, ap-140p6-1-slc4, ap-140p5-1-slc3, pe20070501c-ports, ap-140p5-1-slc4, pe20070501b-ports, pe20070501a-ports, dl070501, CMSSW_1_5_0_pre1, dl070428_for140pre5_slc3, dl070428_for140pre5slc4t2, pe20070428a-ports, dl070428_for140pre5slc4, pe20070428b, pe20070428a, CMSSW_1_4_0_pre4, CMSSW_1_4_0_pre4-slc3, pe20070425c-for150p1, pe20070525b-slc4, pe20070525a, pe20070424b-slc3, pe20070424b-slc4, pe20070424a-slc4, pe20070424a-slc3, pe20070424-slc3, pe20070424-slc4, pe20070423b-slc3, pe20070423b-slc4, pe20070423a-slc3, pe20070423a-slc4, pe20070423b-ports, pe20070423a-ports, pe20070422b-slc4, pe20070422b-slc3, pe20070422a-slc4, pe20070422a-slc3, pe20070414b-ports, pe20070414a-ports, pe20070412b-ports, pe20070412a-ports, pe20070411a-ports, pe20070409a-ports, dl070407, pe20070407a-ports, dl070406t2, pe20070407-ports, dl070406, CMSSW_1_4_0_pre3-slc3, CMSSW_1_4_0_pre3, nrCMSSW_1_4_0_pre3_rc0, nrCMSSW_1_4_0_pre3_rc0-slc4, nr070403_cms147-slc4, nr070403_cms147, nrCMSSW_1_4_0_pre2_rc3, nrCMSSW_1_4_0_pre2_rc3-slc4, nrCMSSW_1_4_0_pre2_rc2-slc4, nrCMSSW_1_4_0_pre2_rc2, nrCMSSW_1_4_0_pre2_rc1-slc4, nrCMSSW_1_4_0_pre2_rc1, nrCMSSW_1_4_0_pre2_rc0, for120_g4821, forCMSSW120g482, pe20070208 |
Branch point for: | conddb-branch |
Changes since 1.2: | +3 -3 lines |
Log Message: | Fix (I think) location of geant4e/GNUmakefile |
# | Content |
---|---|
1 | diff -Naur --exclude CVS source/geant4e/b.log source/geant4e/b.log |
2 | --- source/geant4e/b.log 1970-01-01 01:00:00.000000000 +0100 |
3 | +++ source/geant4e/b.log 2007-01-17 12:41:58.000000000 +0100 |
4 | @@ -0,0 +1,7 @@ |
5 | +Compiling G4eManager.cc ... |
6 | +src/G4eManager.cc: In member function `bool |
7 | + G4eManager::InitFieldForBackwards()': |
8 | +src/G4eManager.cc:211: no matching function for call to `G4MagIntegratorStepper |
9 | + ::SetEquationOfMotion(G4Mag_UsualEqRhs*&)' |
10 | +gmake: *** [/afs/cern.ch/cms/external/geant4/8.1.p01.pCMS2/share/tmp/Linux-g++/G4error/G4eManager.o] Error 1 |
11 | +gmake: Target `lib' not remade because of errors. |
12 | diff -Naur --exclude CVS source/geant4e/GNUmakefile source/geant4e/GNUmakefile |
13 | --- source/geant4e/GNUmakefile 1970-01-01 01:00:00.000000000 +0100 |
14 | +++ source/geant4e/GNUmakefile 2007-01-17 12:41:58.000000000 +0100 |
15 | @@ -0,0 +1,52 @@ |
16 | +# $Id: GNUmakefile,v 1.1 1999/01/07 16:14:28 gunter Exp $ |
17 | +# ---------------------------------------------------------- |
18 | +# GNUmakefile for tracking library. Katsuya Amako, 5/9/95. |
19 | +# ---------------------------------------------------------- |
20 | + |
21 | +name := G4error |
22 | + |
23 | +ifndef G4INSTALL |
24 | + G4INSTALL = ../.. |
25 | +endif |
26 | + |
27 | +include $(G4INSTALL)/config/architecture.gmk |
28 | + |
29 | +CPPFLAGS += -I$(G4BASE)/global/management/include \ |
30 | + -I$(G4BASE)/global/HEPRandom/include \ |
31 | + -I$(G4BASE)/global/HEPGeometry/include \ |
32 | + -I$(G4BASE)/geometry/management/include \ |
33 | + -I$(G4BASE)/geometry/volumes/include \ |
34 | + -I$(G4BASE)/geometry/solids/CSG/include \ |
35 | + -I$(G4BASE)/geometry/navigation/include \ |
36 | + -I$(G4BASE)/track/include \ |
37 | + -I$(G4BASE)/materials/include \ |
38 | + -I$(G4BASE)/processes/management/include \ |
39 | + -I$(G4BASE)/processes/electromagnetic/utils/include \ |
40 | + -I$(G4BASE)/particles/management/include \ |
41 | + -I$(G4BASE)/digits_hits/detector/include \ |
42 | + -I$(G4BASE)/digits_hits/hits/include \ |
43 | + -I$(G4BASE)/graphics_reps/include \ |
44 | + -I$(G4BASE)/intercoms/include \ |
45 | + -I$(G4BASE)/geometry/magneticfield/include \ |
46 | + -I$(G4BASE)/tracking/include \ |
47 | + -I$(G4BASE)/event/include \ |
48 | + -I$(G4BASE)/run/include \ |
49 | + -I$(G4BASE)/particles/bosons/include \ |
50 | + -I$(G4BASE)/particles/leptons/include \ |
51 | + -I$(G4BASE)/particles/hadrons/mesons/include \ |
52 | + -I$(G4BASE)/particles/hadrons/barions/include \ |
53 | + -I$(G4BASE)/particles/hadrons/ions/include \ |
54 | + -I$(G4BASE)/digits_hits/digits/include \ |
55 | + -I$(G4BASE)/processes/electromagnetic/standard/include \ |
56 | + -I$(G4BASE)/processes/electromagnetic/muons/include \ |
57 | + -I$(G4BASE)/processes/cuts/include \ |
58 | + -I$(G4BASE)/processes/transportation/include \ |
59 | + -I$(G4BASE)/processes/decay/include |
60 | + |
61 | +CPPFLAGS += -DG4EVERBOSE |
62 | + |
63 | +include $(G4INSTALL)/config/common.gmk |
64 | + |
65 | +.PHONY: global |
66 | + |
67 | +global: lib |
68 | diff -Naur --exclude CVS source/geant4e/include/ExN02PhysicsList.hh source/geant4e/include/ExN02PhysicsList.hh |
69 | --- source/geant4e/include/ExN02PhysicsList.hh 1970-01-01 01:00:00.000000000 +0100 |
70 | +++ source/geant4e/include/ExN02PhysicsList.hh 2007-01-17 12:41:58.000000000 +0100 |
71 | @@ -0,0 +1,51 @@ |
72 | +// |
73 | +// class ExN02PhysicsList |
74 | +// |
75 | +// Class description: |
76 | +// |
77 | +// |
78 | +// |
79 | + |
80 | +// History: |
81 | +// |
82 | +// -------------------------------------------------------------------- |
83 | +#ifndef ExN02PhysicsList_h |
84 | +#define ExN02PhysicsList_h 1 |
85 | + |
86 | +#include "G4VUserPhysicsList.hh" |
87 | +#include "globals.hh" |
88 | + |
89 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
90 | + |
91 | +class ExN02PhysicsList: public G4VUserPhysicsList |
92 | +{ |
93 | + public: |
94 | + ExN02PhysicsList(); |
95 | + ~ExN02PhysicsList(); |
96 | + |
97 | + protected: |
98 | + // Construct particle and physics |
99 | + void ConstructParticle(); |
100 | + void ConstructProcess(); |
101 | + |
102 | + void SetCuts(); |
103 | + |
104 | + |
105 | + protected: |
106 | + // these methods Construct particles |
107 | + void ConstructBosons(); |
108 | + void ConstructLeptons(); |
109 | + void ConstructMesons(); |
110 | + void ConstructBaryons(); |
111 | + |
112 | + protected: |
113 | + // these methods Construct physics processes and register them |
114 | + void ConstructGeneral(); |
115 | + void ConstructEM(); |
116 | +}; |
117 | + |
118 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
119 | + |
120 | +#endif |
121 | + |
122 | + |
123 | diff -Naur --exclude CVS source/geant4e/include/G4eEnergyLossProcess.hh source/geant4e/include/G4eEnergyLossProcess.hh |
124 | --- source/geant4e/include/G4eEnergyLossProcess.hh 1970-01-01 01:00:00.000000000 +0100 |
125 | +++ source/geant4e/include/G4eEnergyLossProcess.hh 2007-01-17 12:41:58.000000000 +0100 |
126 | @@ -0,0 +1,67 @@ |
127 | +// |
128 | +// class G4eEnergyLossProcess |
129 | +// |
130 | +// Class description: |
131 | +// |
132 | +// Description: Continuous Process to calcualte energy loss through G4EnergyLossForExtrapolator |
133 | + |
134 | +// History: |
135 | +// |
136 | +// -------------------------------------------------------------------- |
137 | +// |
138 | + |
139 | +#ifndef G4eEnergyLossProcess_h |
140 | +#define G4eEnergyLossProcess_h 1 |
141 | + |
142 | +#include "globals.hh" |
143 | +#include "G4VContinuousProcess.hh" |
144 | +class G4EnergyLossForExtrapolator; |
145 | + |
146 | +///////////////////// |
147 | +// Class Definition |
148 | +///////////////////// |
149 | + |
150 | +class G4eEnergyLossProcess : public G4VContinuousProcess |
151 | +{ |
152 | + |
153 | +public: |
154 | + |
155 | + G4eEnergyLossProcess(const G4String& processName = "G4eEnergyLossProcess"); |
156 | + |
157 | + ~G4eEnergyLossProcess(); |
158 | + |
159 | +public: |
160 | + |
161 | + G4bool IsApplicable(const G4ParticleDefinition& aParticleType); |
162 | + // Returns true -> 'is applicable', for all charged particles. |
163 | + |
164 | + G4double GetContinuousStepLimit(const G4Track& aTrack, |
165 | + G4double , |
166 | + G4double , |
167 | + G4double& ); |
168 | + // Returns DBL_MAX as continuous step limit |
169 | + |
170 | + G4VParticleChange* AlongStepDoIt(const G4Track& aTrack, |
171 | + const G4Step& aStep); |
172 | + // This is the method implementing the energy loss process. |
173 | + |
174 | +private: |
175 | + static void InstantiateEforExtrapolator(); |
176 | + // Create the G4EnergyLossForExtrapolator |
177 | + |
178 | +private: |
179 | + static G4EnergyLossForExtrapolator* theELossForExtrapolator; |
180 | + |
181 | +}; |
182 | + |
183 | +//////////////////// |
184 | +// Inline methods |
185 | +//////////////////// |
186 | + |
187 | +inline |
188 | +G4bool G4eEnergyLossProcess::IsApplicable(const G4ParticleDefinition& aParticleType) |
189 | +{ |
190 | + return (aParticleType.GetPDGCharge() != 0); |
191 | +} |
192 | + |
193 | +#endif /* G4eEnergyLossProcess_h */ |
194 | diff -Naur --exclude CVS source/geant4e/include/G4eIonisationChange.hh source/geant4e/include/G4eIonisationChange.hh |
195 | --- source/geant4e/include/G4eIonisationChange.hh 1970-01-01 01:00:00.000000000 +0100 |
196 | +++ source/geant4e/include/G4eIonisationChange.hh 2007-01-17 12:41:58.000000000 +0100 |
197 | @@ -0,0 +1,42 @@ |
198 | +// |
199 | +// class G4eIonisationChange |
200 | +// |
201 | +// Class description: |
202 | +// |
203 | +// |
204 | +// |
205 | + |
206 | +// History: |
207 | +// |
208 | +// -------------------------------------------------------------------- |
209 | +// |
210 | +// Class description: |
211 | +// |
212 | +// Serves to reverse the sign of the energy lost if propagationis backwards |
213 | +// |
214 | +// History: |
215 | +// - Created. P. Arce |
216 | +// ------------------------------------------------------------ |
217 | + |
218 | +#ifndef G4eIonisationChange_h |
219 | +#define G4eIonisationChange_h 1 |
220 | + |
221 | +#include "globals.hh" |
222 | +class G4ParticleChangeForLoss; |
223 | +class G4Track; |
224 | + |
225 | +class G4eIonisationChange |
226 | +{ |
227 | + public: |
228 | + |
229 | + G4eIonisationChange(const G4String& processName = "GEANT4eMuIoni"); |
230 | + |
231 | + ~G4eIonisationChange(); |
232 | + |
233 | + void RecomputeParticleChange( G4ParticleChangeForLoss* fParticleChange, const G4Track& trackData); |
234 | + |
235 | +}; |
236 | + |
237 | + |
238 | +#endif |
239 | + |
240 | diff -Naur --exclude CVS source/geant4e/include/G4eMagneticFieldLimitsMessenger.hh source/geant4e/include/G4eMagneticFieldLimitsMessenger.hh |
241 | --- source/geant4e/include/G4eMagneticFieldLimitsMessenger.hh 1970-01-01 01:00:00.000000000 +0100 |
242 | +++ source/geant4e/include/G4eMagneticFieldLimitsMessenger.hh 2007-01-17 12:41:58.000000000 +0100 |
243 | @@ -0,0 +1,44 @@ |
244 | +// |
245 | +// class G4eMagneticFieldLimitsMessenger |
246 | +// |
247 | +// Class description: |
248 | +// |
249 | +// Messenger class for G4eMagneticFieldLimitsProcess |
250 | +// |
251 | + |
252 | +// History: |
253 | +// |
254 | +//----------------------------------------------------------------- |
255 | + |
256 | +#ifndef G4eMagneticFieldLimitsMessenger_h |
257 | +#define G4eMagneticFieldLimitsMessenger_h 1 |
258 | + |
259 | +#include "globals.hh" |
260 | +#include "G4UImessenger.hh" |
261 | + |
262 | +class G4UIdirectory; |
263 | +class G4UIcmdWithAString; |
264 | +class G4UIcmdWithADoubleAndUnit; |
265 | +class G4eMagneticFieldLimitsProcess; |
266 | + |
267 | +//----------------------------------------------------------------- |
268 | + |
269 | +class G4eMagneticFieldLimitsMessenger: public G4UImessenger |
270 | +{ |
271 | +public: |
272 | + G4eMagneticFieldLimitsMessenger(G4eMagneticFieldLimitsProcess*); |
273 | + ~G4eMagneticFieldLimitsMessenger(); |
274 | + |
275 | + void SetNewValue(G4UIcommand*, G4String); |
276 | + |
277 | +private: |
278 | + |
279 | + G4eMagneticFieldLimitsProcess* myAction; |
280 | + |
281 | + G4UIdirectory* myDir; |
282 | + |
283 | + G4UIcmdWithADoubleAndUnit* StepLimitCmd; |
284 | +}; |
285 | + |
286 | +#endif |
287 | + |
288 | diff -Naur --exclude CVS source/geant4e/include/G4eMagneticFieldLimitsProcess.hh source/geant4e/include/G4eMagneticFieldLimitsProcess.hh |
289 | --- source/geant4e/include/G4eMagneticFieldLimitsProcess.hh 1970-01-01 01:00:00.000000000 +0100 |
290 | +++ source/geant4e/include/G4eMagneticFieldLimitsProcess.hh 2007-01-17 12:41:58.000000000 +0100 |
291 | @@ -0,0 +1,69 @@ |
292 | +// |
293 | +// class G4eMagneticFieldLimitsProcess |
294 | +// |
295 | +// Class description: |
296 | +// |
297 | +// Limits the step length if change of magnetic field is too big (user defined limit) |
298 | + |
299 | +// History: |
300 | +// - Created. P. Arce, September 2004 |
301 | +// |
302 | +//----------------------------------------------------------------- |
303 | + |
304 | +#ifndef G4eMagneticFieldLimitsProcess_h |
305 | +#define G4eMagneticFieldLimitsProcess_h 1 |
306 | + |
307 | +#include "G4ios.hh" |
308 | +#include "globals.hh" |
309 | +#include "G4VDiscreteProcess.hh" |
310 | +#include "G4PhysicsTable.hh" |
311 | +#include "G4PhysicsLogVector.hh" |
312 | +#include "G4ElementTable.hh" |
313 | +#include "G4Gamma.hh" |
314 | +#include "G4Electron.hh" |
315 | +#include "G4Step.hh" |
316 | +class G4eMagneticFieldLimitsMessenger; |
317 | + |
318 | +//----------------------------------------------------------------- |
319 | + |
320 | +class G4eMagneticFieldLimitsProcess : public G4VDiscreteProcess |
321 | +{ |
322 | +public: // with description |
323 | + |
324 | + G4eMagneticFieldLimitsProcess(const G4String& processName ="G4eMagneticFieldLimitsProcess"); |
325 | + |
326 | + ~G4eMagneticFieldLimitsProcess(); |
327 | + |
328 | + virtual G4double PostStepGetPhysicalInteractionLength( |
329 | + const G4Track& track, |
330 | + G4double previousStepSize, |
331 | + G4ForceCondition* condition |
332 | + ); |
333 | + // returns the step limit |
334 | + |
335 | + virtual G4double GetMeanFreePath(const class G4Track &, G4double, enum G4ForceCondition *); |
336 | + // Never called, but needed as it is an abstract method |
337 | + |
338 | + virtual G4VParticleChange* PostStepDoIt( |
339 | + const G4Track& , |
340 | + const G4Step& ); |
341 | + // No action, but retrieving the G4VParticleChange extracted from the G4Track |
342 | + |
343 | + // Get and Set methods |
344 | + G4double GetStepLimit() const { return theStepLimit; } |
345 | + |
346 | + void SetStepLimit( G4double val ) { |
347 | + theStepLimit = val; |
348 | + // G4cout << " G4eMagneticFieldLimitsProcess set theStepLimit " << theStepLimit << G4endl; |
349 | + } |
350 | + |
351 | +private: |
352 | + G4double theStepLimit; |
353 | + G4eMagneticFieldLimitsMessenger* theMessenger; |
354 | +}; |
355 | + |
356 | +//----------------------------------------------------------------- |
357 | + |
358 | + |
359 | +#endif |
360 | + |
361 | diff -Naur --exclude CVS source/geant4e/include/G4eMag_UsualEqRhs.hh source/geant4e/include/G4eMag_UsualEqRhs.hh |
362 | --- source/geant4e/include/G4eMag_UsualEqRhs.hh 1970-01-01 01:00:00.000000000 +0100 |
363 | +++ source/geant4e/include/G4eMag_UsualEqRhs.hh 2007-01-17 12:41:58.000000000 +0100 |
364 | @@ -0,0 +1,33 @@ |
365 | +// |
366 | +// class G4eMag_UsualEqRhs |
367 | +// |
368 | +// Class description: |
369 | +// |
370 | +// Serves to reverse the magnetic field when propagation is backwards |
371 | +// |
372 | + |
373 | +// History: |
374 | +// |
375 | +// -------------------------------------------------------------------- |
376 | + |
377 | +#ifndef G4EMAG_USUAL_EQRHS |
378 | +#define G4EMAG_USUAL_EQRHS |
379 | + |
380 | +#include "G4Mag_UsualEqRhs.hh" |
381 | +#include "G4MagneticField.hh" |
382 | + |
383 | +class G4eMag_UsualEqRhs : public G4Mag_UsualEqRhs |
384 | +{ |
385 | + public: // with description |
386 | + |
387 | + G4eMag_UsualEqRhs( G4MagneticField* MagField ) |
388 | + : G4Mag_UsualEqRhs( MagField ) {;} |
389 | + ~G4eMag_UsualEqRhs() {;} |
390 | + |
391 | + void EvaluateRhsGivenB( const G4double y[], |
392 | + const G4double B[3], |
393 | + G4double dydx[] ) const; |
394 | + // reverses dedx if propagation is backwards |
395 | +}; |
396 | + |
397 | +#endif /* G4MAG_USUAL_EQRHS */ |
398 | diff -Naur --exclude CVS source/geant4e/include/G4eManager.hh source/geant4e/include/G4eManager.hh |
399 | --- source/geant4e/include/G4eManager.hh 1970-01-01 01:00:00.000000000 +0100 |
400 | +++ source/geant4e/include/G4eManager.hh 2007-01-17 12:41:58.000000000 +0100 |
401 | @@ -0,0 +1,163 @@ |
402 | +// |
403 | +// class G4eManager |
404 | +// |
405 | +// Class description: |
406 | +// |
407 | +// This is the class manager of the GEANT4e package |
408 | +// It is the main interface for the user to define the setup and start the propagation |
409 | +// Initializes GEANT4 for the propagation |
410 | +// |
411 | +// Keeps the G4eState, that controls when the propagation has ended |
412 | +// and the G4eMode, that controls if propagation is forwards or backwards |
413 | +// |
414 | + |
415 | +// History: |
416 | +// - Created. Pedro Arce, February 2001 |
417 | +// -------------------------------------------------------------------- |
418 | +#ifndef G4eManager_h |
419 | +#define G4eManager_h 1 |
420 | + |
421 | + |
422 | +#include "globals.hh" |
423 | +#include "G4ApplicationState.hh" |
424 | + |
425 | +enum G4eState {G4eState_PreInit = 1, G4eState_Init, G4eState_Propagating, G4eState_TargetCloserThanBoundary, G4eState_StoppedAtTarget}; |
426 | +enum G4eMode {G4eMode_PropForwards = 1, G4eMode_PropBackwards, G4eMode_PropTest}; |
427 | + |
428 | +class G4eNavigator; |
429 | +class G4ePropagator; |
430 | +class G4eRunManagerKernel; |
431 | +class G4eTarget; |
432 | +class G4eTrajState; |
433 | +class G4eTrajStateFree; |
434 | + |
435 | +class G4VUserDetectorConstruction; |
436 | +class G4VPhysicalVolume; |
437 | +class G4VUserPhysicsList; |
438 | +class G4UserRunAction; |
439 | +class G4UserEventAction; |
440 | +class G4UserStackingAction; |
441 | +class G4UserTrackingAction; |
442 | +class G4UserSteppingAction; |
443 | +class G4Mag_UsualEqRhs; |
444 | +class G4Track; |
445 | + |
446 | + |
447 | +class G4eManager |
448 | +{ |
449 | +public: |
450 | + G4eManager(); |
451 | + // Initialise data to 0. Starts the G4eRunManagerKernel and G4eNavigator. |
452 | + |
453 | +public: |
454 | + ~G4eManager(); |
455 | + |
456 | + static G4eManager* GetG4eManager(); |
457 | + // Get only instance of G4eManager. If it does not exists, creates it |
458 | + |
459 | + void EventTermination(); |
460 | + // Set state to G4eState_Init |
461 | + |
462 | + void RunTermination(); |
463 | + // Set state to G4eState_Init and invoke G4eRunManagerKernel::RunTermination() |
464 | + |
465 | + void InitGeant4e(); |
466 | + // Initializes Geant4 and Geant4e |
467 | + |
468 | + void InitTrackPropagation(); |
469 | + // Set the propagator step number to 0 and the G4eState to Propagating |
470 | + |
471 | + bool InitFieldForBackwards(); |
472 | + // Creates the G4eMag_UsualEqRhs, that will control backwards tracking |
473 | + |
474 | + int Propagate( G4eTrajState* currentTS, const G4eTarget* target, G4eMode mode = G4eMode_PropForwards ); |
475 | + //invokes G4ePropagator::Propagate |
476 | + |
477 | + int PropagateOneStep( G4eTrajState* currentTS, G4eMode mode = G4eMode_PropForwards ); |
478 | + //invokes G4ePropagator::PropagateOneStep |
479 | + |
480 | + void InvokePreUserTrackingAction( G4Track* fpTrack ); |
481 | + // Invoke the G4UserTrackingAction::PreUserTrackingAction |
482 | + void InvokePostUserTrackingAction( G4Track* fpTrack ); |
483 | + // Invoke the G4UserTrackingAction::PostUserTrackingAction |
484 | + |
485 | + bool CloseGeometry(); |
486 | + // Close Geant4 geometry |
487 | + |
488 | + void SetUserInitialization(G4VUserDetectorConstruction* userInit); |
489 | + // Invokes G4eRunManagerKernel to construct detector and set world volume |
490 | + void SetUserInitialization(G4VPhysicalVolume* userInit); |
491 | + // Invokes G4eRunManagerKernel to set world volume |
492 | + void SetUserInitialization(G4VUserPhysicsList* userInit); |
493 | + // Invokes G4eRunManagerKernel to initialize physics |
494 | + |
495 | + void SetUserAction(G4UserTrackingAction* userAction); |
496 | + // Invokes G4EventManager to set a G4UserTrackingAction |
497 | + void SetUserAction(G4UserSteppingAction* userAction); |
498 | + // Invokes G4EventManager to set a G4UserSteppingAction |
499 | + |
500 | + G4String PrintG4eState(); |
501 | + G4String PrintG4eState( G4eState state ); |
502 | + // print Geant4e state |
503 | + G4String PrintG4State(); |
504 | + G4String PrintG4State( G4ApplicationState state ); |
505 | + // print Geant4 state |
506 | + |
507 | +private: |
508 | + void StartG4eRunManagerKernel(); |
509 | + // Create a G4eRunManagerKernel if it does not exist and set to it the G4ePhysicsList |
510 | + |
511 | + void StartNavigator(); |
512 | + // Create a G4eNavigator |
513 | + |
514 | +public: |
515 | + // Set and Get methods |
516 | + G4eRunManagerKernel* GetG4eRunManagerKernel() const; |
517 | + |
518 | + void SetSteppingManagerVerboseLevel(); |
519 | + |
520 | + const G4eState GetState() const; |
521 | + void SetState( G4eState sta ); |
522 | + |
523 | + const G4eMode GetMode() const; |
524 | + void SetMode( G4eMode mode ); |
525 | + |
526 | + const G4eTarget* GetTarget( bool mustExist = 0) const; |
527 | + void SetTarget( const G4eTarget* target ); |
528 | + |
529 | + static int verbose(); |
530 | + static void SetVerbose( int ver ); |
531 | + |
532 | + G4eNavigator* GetG4eNavigator() const { return theG4eNavigator; } |
533 | + |
534 | +private: |
535 | + static G4eManager* theG4eManager; |
536 | + //--- The only instance |
537 | + |
538 | + G4eRunManagerKernel* theG4eRunManagerKernel; |
539 | + //--- The G4eRunManagerKernel |
540 | + |
541 | + static int theVerbosity; |
542 | + //--- the verbosity for all GEANT4e classes |
543 | + |
544 | + //--- State of the GEANT4e tracking to the target |
545 | + G4eState theState; |
546 | + |
547 | + G4eMode thePropagationMode; |
548 | + |
549 | + G4eTarget* theFinalTarget; |
550 | + |
551 | + G4ePropagator* thePropagator; |
552 | + |
553 | + G4Mag_UsualEqRhs* theEquationOfMotion; |
554 | + |
555 | + G4eTrajStateFree* theCurrentTS_FREE; |
556 | + |
557 | + G4eNavigator* theG4eNavigator; |
558 | + |
559 | +}; |
560 | + |
561 | +#include "G4eManager.icc" |
562 | + |
563 | +#endif |
564 | + |
565 | diff -Naur --exclude CVS source/geant4e/include/G4eManager.icc source/geant4e/include/G4eManager.icc |
566 | --- source/geant4e/include/G4eManager.icc 1970-01-01 01:00:00.000000000 +0100 |
567 | +++ source/geant4e/include/G4eManager.icc 2007-01-17 12:41:58.000000000 +0100 |
568 | @@ -0,0 +1,85 @@ |
569 | +// |
570 | +// ******************************************************************** |
571 | +// * DISCLAIMER * |
572 | +// * * |
573 | +// * The following disclaimer summarizes all the specific disclaimers * |
574 | +// * of contributors to this software. The specific disclaimers,which * |
575 | +// * govern, are listed with their locations in: * |
576 | +// * http://cern.ch/geant4/license * |
577 | +// * * |
578 | +// * Neither the authors of this software system, nor their employing * |
579 | +// * institutes,nor the agencies providing financial support for this * |
580 | +// * work make any representation or warranty, express or implied, * |
581 | +// * regarding this software system or assume any liability for its * |
582 | +// * use. * |
583 | +// * * |
584 | +// * This code implementation is the intellectual property of the * |
585 | +// * GEANT4 collaboration. * |
586 | +// * By copying, distributing or modifying the Program (or any work * |
587 | +// * based on the Program) you indicate your acceptance of this * |
588 | +// * statement, and all its terms. * |
589 | +// ******************************************************************** |
590 | +// |
591 | + |
592 | +inline |
593 | +void G4eManager::SetState( G4eState sta ) |
594 | +{ |
595 | +// G4cout << " setting G4eState " << sta << G4endl; |
596 | + theState = sta; |
597 | +} |
598 | + |
599 | +inline |
600 | +const G4eState G4eManager::GetState() const |
601 | +{ |
602 | + return theState; |
603 | +} |
604 | + |
605 | + |
606 | +inline |
607 | +void G4eManager::SetMode( G4eMode mode ) |
608 | +{ |
609 | + thePropagationMode = mode; |
610 | +} |
611 | + |
612 | + |
613 | +inline |
614 | +const G4eMode G4eManager::GetMode() const |
615 | +{ |
616 | + return thePropagationMode; |
617 | +} |
618 | + |
619 | + |
620 | +inline |
621 | +const G4eTarget* G4eManager::GetTarget( bool mustExist ) const |
622 | +{ |
623 | + if( theFinalTarget == 0 && mustExist ) { |
624 | + G4Exception(" G4ePropagator defined but without final target "); |
625 | + } |
626 | + return theFinalTarget; |
627 | +} |
628 | + |
629 | + |
630 | +inline |
631 | +void G4eManager::SetTarget( const G4eTarget* target ) |
632 | +{ |
633 | + theFinalTarget = const_cast<G4eTarget*>(target); |
634 | +} |
635 | + |
636 | + |
637 | +inline |
638 | +int G4eManager::verbose() |
639 | +{ |
640 | + return theVerbosity; |
641 | +} |
642 | + |
643 | +inline |
644 | +void G4eManager::SetVerbose( int ver ) |
645 | +{ |
646 | + theVerbosity = ver; |
647 | +} |
648 | + |
649 | +inline |
650 | +G4eRunManagerKernel* G4eManager::GetG4eRunManagerKernel() const |
651 | +{ |
652 | + return theG4eRunManagerKernel; |
653 | +} |
654 | diff -Naur --exclude CVS source/geant4e/include/G4eMuIonisation.hh source/geant4e/include/G4eMuIonisation.hh |
655 | --- source/geant4e/include/G4eMuIonisation.hh 1970-01-01 01:00:00.000000000 +0100 |
656 | +++ source/geant4e/include/G4eMuIonisation.hh 2007-01-17 12:41:58.000000000 +0100 |
657 | @@ -0,0 +1,81 @@ |
658 | +// |
659 | +// class G4eMuIonisation |
660 | +// |
661 | +// Class description: |
662 | +// |
663 | +// |
664 | +// |
665 | + |
666 | +// History: |
667 | +// |
668 | +// -------------------------------------------------------------------- |
669 | +#define private public |
670 | +#include "G4MuIonisation.hh" |
671 | +#define private private |
672 | + |
673 | +// class G4eManager |
674 | +// |
675 | +// Class description: |
676 | +// |
677 | +// Manages the energy loss processes: suppresses fluctuations and takes care that energy is gained instead of lost if propagation is backwards (by calling G4eIonisationChange methods) |
678 | +// |
679 | +// History: |
680 | +// - Created. Patricia Mendez |
681 | +// - Adapted to geant4.6.2.p01: P.Arce - Aug 04 |
682 | +// |
683 | + |
684 | +#ifndef G4eMuIonisation_h |
685 | +#define G4eMuIonisation_h 1 |
686 | +#define private public |
687 | +#include "G4VEnergyLossProcess.hh" |
688 | +#define private private |
689 | + |
690 | +#include "globals.hh" |
691 | +#include "G4eIonisationChange.hh" |
692 | +#include "G4MuIonisation.hh" |
693 | +#include "G4VParticleChange.hh" |
694 | +#include "G4VProcess.hh" |
695 | +#include "G4ParticleChange.hh" |
696 | +class G4Track; |
697 | +class G4Step; |
698 | + |
699 | + |
700 | +class G4eMuIonisation:public G4MuIonisation, public G4eIonisationChange |
701 | +{ |
702 | + |
703 | +public: |
704 | + G4eMuIonisation(const G4String& name = "G4eMuIoni"); |
705 | + |
706 | + ~G4eMuIonisation(); |
707 | + |
708 | + /* virtual std::vector<G4Track*>* SecondariesAlongStep( |
709 | + const G4Step&, |
710 | + G4double&, |
711 | + G4double&, |
712 | + G4double&); |
713 | + */ |
714 | + std::vector<G4DynamicParticle*>* SecondariesPostStep( |
715 | + G4VEmModel*, |
716 | + const G4MaterialCutsCouple*, |
717 | + const G4DynamicParticle*, |
718 | + G4double& tcut); |
719 | + |
720 | + |
721 | + G4VParticleChange* AlongStepDoIt( const G4Track& trackData, |
722 | + const G4Step& stepData); |
723 | +/* not needed becuase step is huge: this way AlongStepDoIt computes all the energy loss, if not the creation of secondaries will account for some energy loss, in a random way |
724 | + virtual G4double AlongStepGetPhysicalInteractionLength( |
725 | + const G4Track&, |
726 | + G4double , |
727 | + G4double , |
728 | + G4double& , |
729 | + G4GPILSelection*); |
730 | + G4double PostStepGetPhysicalInteractionLength( |
731 | + const G4Track& track, |
732 | + G4double previousStepSize, |
733 | + G4ForceCondition* condition ); |
734 | +*/ |
735 | + |
736 | +}; |
737 | + |
738 | +#endif |
739 | diff -Naur --exclude CVS source/geant4e/include/G4eNavigator.hh source/geant4e/include/G4eNavigator.hh |
740 | --- source/geant4e/include/G4eNavigator.hh 1970-01-01 01:00:00.000000000 +0100 |
741 | +++ source/geant4e/include/G4eNavigator.hh 2007-01-17 12:41:58.000000000 +0100 |
742 | @@ -0,0 +1,49 @@ |
743 | +// |
744 | +// class G4eNavigator |
745 | +// |
746 | +// Class description: |
747 | +// This class serves to do the double navigation, in the detector geometry and in the target surface, by overwriting the ComputeStep and ComputeSafety methods |
748 | +// |
749 | +// History: |
750 | +// - Created. P. Arce |
751 | +// |
752 | + |
753 | +#ifndef G4eNavigator_H |
754 | +#define G4eNavigator_H 1 |
755 | + |
756 | +#include "G4Navigator.hh" |
757 | + |
758 | +#include "G4eManager.hh" |
759 | +class G4eTargetSurface; |
760 | +class G4edd; |
761 | +#include "G4ThreeVector.hh" |
762 | +#include "geomdefs.hh" |
763 | +class G4eTargetSurface; |
764 | + |
765 | +#include <iostream> |
766 | + |
767 | +class G4eNavigator : public G4Navigator |
768 | +{ |
769 | + public: |
770 | + |
771 | + G4eNavigator(); |
772 | + ~G4eNavigator(); |
773 | + |
774 | + G4double ComputeStep (const G4ThreeVector &pGlobalPoint, |
775 | + const G4ThreeVector &pDirection, |
776 | + const G4double pCurrentProposedStepLength, |
777 | + G4double &pNewSafety); |
778 | + // calls the navigation in the detector geometry and then checks if the distance to surface is smaller than the proposed step |
779 | + |
780 | + G4double ComputeSafety(const G4ThreeVector &globalpoint, |
781 | + const G4double pProposedMaxLength = DBL_MAX); |
782 | + // calls the navigation in the detector geometry and then checks if the distance to surface is smaller than the proposed safety |
783 | + |
784 | + void SetTarget( const G4eTarget* target ); |
785 | + |
786 | +private: |
787 | + // G4edd* theTarget; // any data makes it crash??!! |
788 | +}; |
789 | + |
790 | +#endif |
791 | + |
792 | diff -Naur --exclude CVS source/geant4e/include/G4ePhysicsList.hh source/geant4e/include/G4ePhysicsList.hh |
793 | --- source/geant4e/include/G4ePhysicsList.hh 1970-01-01 01:00:00.000000000 +0100 |
794 | +++ source/geant4e/include/G4ePhysicsList.hh 2007-01-17 12:41:58.000000000 +0100 |
795 | @@ -0,0 +1,47 @@ |
796 | +// |
797 | +// class G4ePhysicsList |
798 | +// |
799 | +// Class description: |
800 | +// Default physics lsit for GEANT4e (should not be overridden, unless by experts) |
801 | +// No multiple scattering and no production of secondaries. |
802 | +// The energy loss process is G4EnergyLossForExtrapolator |
803 | +// It also defines the geant4e processes to limit the step: G4eMagneticFieldLimitProcess, G4eStepLimitProcess |
804 | + |
805 | +// History: |
806 | +// |
807 | +// -------------------------------------------------------------------- |
808 | +// |
809 | +#ifndef G4ePhysicsList_h |
810 | +#define G4ePhysicsList_h 1 |
811 | + |
812 | +#include "G4VUserPhysicsList.hh" |
813 | +#include "globals.hh" |
814 | + |
815 | +class G4ePhysicsList: public G4VUserPhysicsList |
816 | +{ |
817 | +public: |
818 | + G4ePhysicsList(); |
819 | + virtual ~G4ePhysicsList(); |
820 | + |
821 | +protected: |
822 | + virtual void ConstructParticle(); |
823 | + // constructs gamma, e+/- and mu+/- |
824 | + |
825 | + virtual void ConstructProcess(); |
826 | + // construct physical processes |
827 | + |
828 | + virtual void SetCuts(); |
829 | + // SetCutsWithDefault |
830 | + |
831 | +protected: |
832 | + virtual void ConstructEM(); |
833 | + |
834 | + private: |
835 | + // G4VPhysicsConstructor* emPhysicsList; |
836 | + |
837 | +}; |
838 | + |
839 | +#endif |
840 | + |
841 | + |
842 | + |
843 | diff -Naur --exclude CVS source/geant4e/include/G4ePropagatorG4.hh source/geant4e/include/G4ePropagatorG4.hh |
844 | --- source/geant4e/include/G4ePropagatorG4.hh 1970-01-01 01:00:00.000000000 +0100 |
845 | +++ source/geant4e/include/G4ePropagatorG4.hh 2007-01-17 12:41:58.000000000 +0100 |
846 | @@ -0,0 +1,72 @@ |
847 | +// |
848 | +// class G4ePropagatorG4 |
849 | +// |
850 | +// Class description: |
851 | +// |
852 | +// |
853 | +// |
854 | + |
855 | +// History: |
856 | +// |
857 | +// -------------------------------------------------------------------- |
858 | +// |
859 | +#ifndef G4ePropagatorG4_h |
860 | +#define G4ePropagatorG4_h |
861 | +// |
862 | +// class G4ePropagatorG4 |
863 | +// |
864 | +// Class description: |
865 | +// |
866 | +// Manages the propagation of tracks by GEANT4. Creates a G4Track, asks GEANT4 to propagate it and takes also care to propagate the errors. Stops the track when GEANT4 stops it or a G4eTarget is reached |
867 | +// |
868 | +// History: |
869 | +// - Created. Pedro Arce, June 2001 |
870 | + |
871 | +#include "globals.hh" |
872 | +#include "G4ePropagator.hh" |
873 | +#include "G4TrackingManager.hh" |
874 | + |
875 | +class G4eTrajState; |
876 | +class G4eErrorMatrix; |
877 | +class G4Track; |
878 | +class G4eTrajState; |
879 | +class G4eTrajStateFree; |
880 | + |
881 | +class G4ePropagatorG4 : public G4ePropagator |
882 | +{ |
883 | +public: |
884 | + G4ePropagatorG4(); |
885 | + virtual ~G4ePropagatorG4(){}; |
886 | + |
887 | + G4Track* InitG4Track( G4eTrajState& initialTS ); |
888 | + virtual int Propagate( G4eTrajState* currentTS, const G4eTarget* target, G4eMode mode = G4eMode_PropForwards); |
889 | + virtual int PropagateOneStep( G4eTrajState* currentTS ); |
890 | + int MakeOneStep( G4eTrajStateFree* currentTS_FREE ); |
891 | + // Creates theCurrentTS_FREE (transforms the user G4eTrajStateOnSurface or copies the G4eTrajStateFree) |
892 | + G4eTrajStateFree* InitFreeTrajState( G4eTrajState* currentTS ); |
893 | + //--- After steps are done, convert the G4eTrajStateFree used for error propagation to the class of origin (G4eTrajStateFree or G4eTrajStatOnSurface) |
894 | + void GetFinalTrajState( G4eTrajState* currentTS, G4eTrajStateFree* currentTS_FREE, const G4eTarget* target ); |
895 | + |
896 | +private: |
897 | + int MakeSteps( G4eTrajStateFree* currentTS_FREE ); |
898 | + |
899 | + G4bool CheckIfLastStep( G4Track* aTrack ); |
900 | + |
901 | + void SetTargetToNavigator( const G4eTarget* target ); |
902 | + // Set the target to G4eNavigator. Called at beginning of Propagate and PropagateOneStep (as user is allowed to change target to his will) |
903 | + |
904 | +private: |
905 | + G4Track* theG4Track; |
906 | + |
907 | + G4SteppingManager* fpSteppingManager; |
908 | + |
909 | + G4int verbose; |
910 | + |
911 | + //t G4VPhysicslVolume* theTrackingGeometry; |
912 | + //t static G4VPhysicslVolume* theCurrentTrackingGeometry; |
913 | + |
914 | + G4bool thePropIsInitialized; |
915 | + |
916 | +}; |
917 | + |
918 | +#endif |
919 | diff -Naur --exclude CVS source/geant4e/include/G4ePropagator.hh source/geant4e/include/G4ePropagator.hh |
920 | --- source/geant4e/include/G4ePropagator.hh 1970-01-01 01:00:00.000000000 +0100 |
921 | +++ source/geant4e/include/G4ePropagator.hh 2007-01-17 12:41:58.000000000 +0100 |
922 | @@ -0,0 +1,68 @@ |
923 | +// |
924 | +// class G4ePropagator |
925 | +// |
926 | +// Class description: |
927 | +// |
928 | +// |
929 | +// |
930 | + |
931 | +// History: |
932 | +// |
933 | +// -------------------------------------------------------------------- |
934 | +#ifndef G4ePropagator_h |
935 | +#define G4ePropagator_h |
936 | +// |
937 | +// class G4ePropagator |
938 | +// |
939 | +// Class description: |
940 | +// Base classes of propagators |
941 | +// |
942 | +// History: |
943 | +// - Created. Pedro Arce, June 2001 |
944 | + |
945 | +class G4eTrajState; |
946 | +class G4eTarget; |
947 | + |
948 | +#include "G4eManager.hh" |
949 | +#include "globals.hh" |
950 | +#include "G4ThreeVector.hh" |
951 | + |
952 | +class G4ePropagator |
953 | +{ |
954 | +public: |
955 | + G4ePropagator(){}; |
956 | + virtual ~G4ePropagator(){}; |
957 | + |
958 | + virtual int Propagate( G4eTrajState* currentTS, const G4eTarget* target, G4eMode mode ) = 0; |
959 | + virtual int PropagateOneStep( G4eTrajState* currentTS ) = 0; |
960 | + // Steers the GEANT4 propagation of a track: |
961 | + // The particle will be extrapolated until theFinalTarget is reached. The final G4Track parameters will be passed to theFinalTrajState |
962 | + |
963 | + |
964 | +private: |
965 | + // set and get methods |
966 | +public: |
967 | + inline const G4eTrajState* GetInitialTrajState() const; |
968 | + |
969 | + G4double GetStepLength() const |
970 | + { return theStepLength; } |
971 | + |
972 | + void SetStepLength( const G4double sl ) |
973 | + { theStepLength = sl; } |
974 | + |
975 | + void SetStepN( const int sn ){ |
976 | + theStepN = sn; } |
977 | + |
978 | +protected: |
979 | + G4double theStepLength; |
980 | + G4eTrajState* theInitialTrajState; |
981 | + G4eTrajState* theFinalTrajState; |
982 | + |
983 | + G4int theStepN; |
984 | + |
985 | +}; |
986 | + |
987 | +#include "G4ePropagator.icc" |
988 | + |
989 | +#endif |
990 | + |
991 | diff -Naur --exclude CVS source/geant4e/include/G4ePropagator.icc source/geant4e/include/G4ePropagator.icc |
992 | --- source/geant4e/include/G4ePropagator.icc 1970-01-01 01:00:00.000000000 +0100 |
993 | +++ source/geant4e/include/G4ePropagator.icc 2007-01-17 12:41:58.000000000 +0100 |
994 | @@ -0,0 +1,29 @@ |
995 | +// |
996 | +// ******************************************************************** |
997 | +// * DISCLAIMER * |
998 | +// * * |
999 | +// * The following disclaimer summarizes all the specific disclaimers * |
1000 | +// * of contributors to this software. The specific disclaimers,which * |
1001 | +// * govern, are listed with their locations in: * |
1002 | +// * http://cern.ch/geant4/license * |
1003 | +// * * |
1004 | +// * Neither the authors of this software system, nor their employing * |
1005 | +// * institutes,nor the agencies providing financial support for this * |
1006 | +// * work make any representation or warranty, express or implied, * |
1007 | +// * regarding this software system or assume any liability for its * |
1008 | +// * use. * |
1009 | +// * * |
1010 | +// * This code implementation is the intellectual property of the * |
1011 | +// * GEANT4 collaboration. * |
1012 | +// * By copying, distributing or modifying the Program (or any work * |
1013 | +// * based on the Program) you indicate your acceptance of this * |
1014 | +// * statement, and all its terms. * |
1015 | +// ******************************************************************** |
1016 | +// |
1017 | + |
1018 | +inline |
1019 | +const G4eTrajState* G4ePropagator::GetInitialTrajState() const |
1020 | +{ |
1021 | + return theInitialTrajState; |
1022 | +} |
1023 | + |
1024 | diff -Naur --exclude CVS source/geant4e/include/G4eRunManagerKernel.hh source/geant4e/include/G4eRunManagerKernel.hh |
1025 | --- source/geant4e/include/G4eRunManagerKernel.hh 1970-01-01 01:00:00.000000000 +0100 |
1026 | +++ source/geant4e/include/G4eRunManagerKernel.hh 2007-01-17 12:41:58.000000000 +0100 |
1027 | @@ -0,0 +1,79 @@ |
1028 | +// |
1029 | +// class G4eRunManagerKernel |
1030 | +// |
1031 | +// Class description: |
1032 | +// |
1033 | +// |
1034 | +// |
1035 | + |
1036 | +// History: |
1037 | +// |
1038 | +// -------------------------------------------------------------------- |
1039 | +// class G4eRunManagerKernel |
1040 | +// |
1041 | +// Class description: |
1042 | +// |
1043 | +// This is the G4RunManagerKernel of the GEANT4e package, it allows G4eManager to implement the run initialization and termination |
1044 | +// It does not inherit from G4RunManagerKernel but has a pointer to it. This is because G4RunManagerKernel cannot be inherited from, as G4RunManager creates one instance and then there would be two instances (what is forbidden) |
1045 | +// |
1046 | +// History: |
1047 | +// - Created. Pedro Arce, January 2005 |
1048 | + |
1049 | +#ifndef G4eRunManagerKernel_h |
1050 | +#define G4eRunManagerKernel_h 1 |
1051 | + |
1052 | +class G4RunManagerKernel; |
1053 | +class G4VUserDetectorConstruction; |
1054 | +class G4VPhysicalVolume; |
1055 | +class G4VUserPhysicsList; |
1056 | +class G4UserTrackingAction; |
1057 | +class G4UserSteppingAction; |
1058 | + |
1059 | + |
1060 | +class G4eRunManagerKernel |
1061 | +//: public G4RunManagerKernel |
1062 | +{ |
1063 | +public: // with description |
1064 | + static G4eRunManagerKernel* GetRunManagerKernel(); |
1065 | + // Static method which returns the singleton pointer of G4eRunManagerKernel or |
1066 | + // its derived class. |
1067 | + |
1068 | +private: |
1069 | + static G4eRunManagerKernel* fRunManagerKernel; |
1070 | + |
1071 | +public: |
1072 | + G4eRunManagerKernel(); |
1073 | + virtual ~G4eRunManagerKernel(); |
1074 | + // The constructor and the destructor. The user must construct this class |
1075 | + // object at the beginning of his/her main() and must delete it at the |
1076 | + // bottom of the main(). |
1077 | + |
1078 | +public: // with description |
1079 | + // file is executed. |
1080 | + |
1081 | + void SetUserInitialization(G4VUserDetectorConstruction* userInit); |
1082 | + void SetUserInitialization(G4VPhysicalVolume* userInit); |
1083 | + |
1084 | + void SetUserInitialization(G4VUserPhysicsList* userInit); |
1085 | + |
1086 | + void SetUserAction(G4UserTrackingAction* userAction); |
1087 | + void SetUserAction(G4UserSteppingAction* userAction); |
1088 | + |
1089 | + G4VUserPhysicsList* GetUserPhysicsList() const |
1090 | + { return theUserPhysicsList; } |
1091 | + |
1092 | + void RunInitialization(); |
1093 | + void InitializeGeometry(); |
1094 | + void InitializePhysics(); |
1095 | + |
1096 | + void RunTermination(); |
1097 | + |
1098 | +private: |
1099 | + G4VUserPhysicsList* theUserPhysicsList; |
1100 | + G4VPhysicalVolume* theUserWorld; |
1101 | + |
1102 | + G4RunManagerKernel* theG4RunManagerKernel; |
1103 | +}; |
1104 | + |
1105 | +#endif |
1106 | + |
1107 | diff -Naur --exclude CVS source/geant4e/include/G4eTargetCylindricalSurface.hh source/geant4e/include/G4eTargetCylindricalSurface.hh |
1108 | --- source/geant4e/include/G4eTargetCylindricalSurface.hh 1970-01-01 01:00:00.000000000 +0100 |
1109 | +++ source/geant4e/include/G4eTargetCylindricalSurface.hh 2007-01-17 12:41:58.000000000 +0100 |
1110 | @@ -0,0 +1,56 @@ |
1111 | +// |
1112 | +// class G4eTargetCylindricalSurface |
1113 | +// |
1114 | +// Class description: |
1115 | +// |
1116 | +// |
1117 | +// |
1118 | + |
1119 | +// History: |
1120 | +// |
1121 | +// -------------------------------------------------------------------- |
1122 | +// |
1123 | +// class G4eTargetSurface |
1124 | +// |
1125 | +// Class description: |
1126 | +// |
1127 | +// G4eTarget class: limits step when track reaches this cylindrical surface |
1128 | +// |
1129 | +// History: |
1130 | +// - Created. P. Arce, September 2004 |
1131 | + |
1132 | +#ifndef G4eTargetCylindricalSurface_h |
1133 | +#define G4eTargetCylindricalSurface_h |
1134 | + |
1135 | +#include "globals.hh" |
1136 | +#include "G4eTargetSurface.hh" |
1137 | +#include "G4ThreeVector.hh" |
1138 | +#include "G4RotationMatrix.hh" |
1139 | +#include "G4Transform3D.hh" |
1140 | +#include "G4Plane3D.hh" |
1141 | + |
1142 | +class G4eTargetCylindricalSurface : public G4eTargetSurface |
1143 | +{ |
1144 | +public: |
1145 | + G4eTargetCylindricalSurface( const G4float& radius, const G4ThreeVector& trans=G4ThreeVector(), const G4RotationMatrix& rotm=G4RotationMatrix()); |
1146 | + G4eTargetCylindricalSurface( const G4float& radius, const G4Transform3D& trans3D); |
1147 | + |
1148 | + ~G4eTargetCylindricalSurface(){}; |
1149 | + |
1150 | +public: |
1151 | + |
1152 | + virtual G4ThreeVector Intersect( const G4ThreeVector& point, const G4ThreeVector& direc ) const; |
1153 | + virtual G4ThreeVector IntersectLocal( const G4ThreeVector& point, const G4ThreeVector& direc ) const; |
1154 | + virtual G4double GetDistanceFromPoint( const G4ThreeVector& point, const G4ThreeVector& direc ) const; |
1155 | + virtual G4double GetDistanceFromPoint( const G4ThreeVector& point ) const; |
1156 | + virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const; |
1157 | + virtual void Dump( G4String msg ) const; |
1158 | + |
1159 | + private: |
1160 | + G4float fradius; |
1161 | + G4Transform3D ftransform3D; |
1162 | + |
1163 | +}; |
1164 | + |
1165 | +#endif |
1166 | + |
1167 | diff -Naur --exclude CVS source/geant4e/include/G4eTargetG4Volume.hh source/geant4e/include/G4eTargetG4Volume.hh |
1168 | --- source/geant4e/include/G4eTargetG4Volume.hh 1970-01-01 01:00:00.000000000 +0100 |
1169 | +++ source/geant4e/include/G4eTargetG4Volume.hh 2007-01-17 12:41:58.000000000 +0100 |
1170 | @@ -0,0 +1,51 @@ |
1171 | +// |
1172 | +// class G4eTargetG4Volume |
1173 | +// |
1174 | +// Class description: |
1175 | +// |
1176 | +// |
1177 | +// |
1178 | + |
1179 | +// History: |
1180 | +// |
1181 | +// -------------------------------------------------------------------- |
1182 | +#ifndef G4eTargetG4Volume_HH |
1183 | +#define G4eTargetG4Volume_HH |
1184 | +// |
1185 | +// Class description: |
1186 | +// |
1187 | +// G4eTarget class: limits step when volume is reached. |
1188 | +// !! NOT IMPLEMENTED YET |
1189 | +// |
1190 | +// History: |
1191 | +// - Created. P. Arce, September 2004 |
1192 | + |
1193 | +#include "globals.hh" |
1194 | +#include "G4ThreeVector.hh" |
1195 | +#include "G4eTargetWithTangentPlane.hh" |
1196 | +#include "G4Plane3D.hh" |
1197 | + |
1198 | +class G4Step; |
1199 | +class G4String; |
1200 | + |
1201 | +class G4eTargetG4Volume : public G4eTargetWithTangentPlane |
1202 | +{ |
1203 | +public: |
1204 | + G4eTargetG4Volume( const G4String& name ); |
1205 | + virtual ~G4eTargetG4Volume(){}; |
1206 | + |
1207 | +public: |
1208 | + virtual G4ThreeVector Intersect( const G4ThreeVector& point, const G4ThreeVector& direc ) const = 0; |
1209 | + virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const; |
1210 | + virtual bool TargetReached(const G4Step* aStep); |
1211 | + virtual void Dump( G4String msg ) const; |
1212 | + |
1213 | +//access methods |
1214 | + private: |
1215 | + G4String theName; |
1216 | + |
1217 | +}; |
1218 | + |
1219 | +#endif |
1220 | + |
1221 | + |
1222 | diff -Naur --exclude CVS source/geant4e/include/G4eTarget.hh source/geant4e/include/G4eTarget.hh |
1223 | --- source/geant4e/include/G4eTarget.hh 1970-01-01 01:00:00.000000000 +0100 |
1224 | +++ source/geant4e/include/G4eTarget.hh 2007-01-17 12:41:58.000000000 +0100 |
1225 | @@ -0,0 +1,45 @@ |
1226 | +// |
1227 | +// class G4eTarget |
1228 | +// |
1229 | +// Class description: |
1230 | +// |
1231 | +// Base class for all targets |
1232 | +// |
1233 | +// History: |
1234 | +// - Created. P. Arce, September 2004 |
1235 | + |
1236 | +#ifndef G4eTarget_h |
1237 | +#define G4eTarget_h |
1238 | + |
1239 | +#include "globals.hh" |
1240 | +#include "G4ThreeVector.hh" |
1241 | +class G4Step; |
1242 | + |
1243 | +enum G4eTargetType{ G4eTarget_PlaneSurface, G4eTarget_CylindricalSurface, G4eTarget_G4Volume, G4eTarget_TrkL }; |
1244 | + |
1245 | + |
1246 | +class G4eTarget |
1247 | +{ |
1248 | +public: |
1249 | + G4eTarget(){}; |
1250 | + virtual ~G4eTarget(){}; |
1251 | + |
1252 | +public: |
1253 | + virtual double GetDistanceFromPoint( const G4ThreeVector&, const G4ThreeVector& ) const { return DBL_MAX; } //for targetVolume |
1254 | + virtual double GetDistanceFromPoint( const G4ThreeVector& ) const { return DBL_MAX; } //for targetVolume |
1255 | + |
1256 | + virtual bool TargetReached(const G4Step*){ return 0; } //for TargetSurface and TargetTrackLength |
1257 | + |
1258 | + virtual void Dump( G4String msg ) const = 0; |
1259 | + |
1260 | +//access methods |
1261 | + G4eTargetType GetType() const { return theType; } |
1262 | + |
1263 | + protected: |
1264 | + |
1265 | + G4eTargetType theType; |
1266 | +}; |
1267 | + |
1268 | +#endif |
1269 | + |
1270 | + |
1271 | diff -Naur --exclude CVS source/geant4e/include/G4eTargetPlaneSurface.hh source/geant4e/include/G4eTargetPlaneSurface.hh |
1272 | --- source/geant4e/include/G4eTargetPlaneSurface.hh 1970-01-01 01:00:00.000000000 +0100 |
1273 | +++ source/geant4e/include/G4eTargetPlaneSurface.hh 2007-01-17 12:41:58.000000000 +0100 |
1274 | @@ -0,0 +1,59 @@ |
1275 | +// |
1276 | +// class G4eTargetPlaneSurface |
1277 | +// |
1278 | +// Class description: |
1279 | +// |
1280 | +// |
1281 | +// |
1282 | + |
1283 | +// History: |
1284 | +// |
1285 | +// -------------------------------------------------------------------- |
1286 | +// class G4eTargetPlaneSurface |
1287 | +// |
1288 | +// Class description: |
1289 | +// |
1290 | +// G4eTarget class: limits step when track reaches this plane surface |
1291 | +// |
1292 | +// |
1293 | +// History: |
1294 | +// - Created. P. Arce, September 2004 |
1295 | + |
1296 | +#ifndef G4eTargetPlaneSurface_h |
1297 | +#define G4eTargetPlaneSurface_h |
1298 | + |
1299 | +#include "globals.hh" |
1300 | +#include "G4eTargetSurface.hh" |
1301 | +#include "G4ThreeVector.hh" |
1302 | +#include "G4Plane3D.hh" |
1303 | + |
1304 | +class G4eTargetPlaneSurface : public G4eTargetSurface, G4Plane3D |
1305 | +{ |
1306 | +public: |
1307 | + G4eTargetPlaneSurface(G4double a=0, G4double b=0, G4double c=0, G4double d=0); |
1308 | + G4eTargetPlaneSurface(const G4Normal3D &n, const G4Point3D &p); |
1309 | + G4eTargetPlaneSurface(const G4Point3D &p1, const G4Point3D &p2, const G4Point3D &p3); |
1310 | + |
1311 | + ~G4eTargetPlaneSurface(){}; |
1312 | + |
1313 | +public: |
1314 | + virtual G4ThreeVector Intersect( const G4ThreeVector& point, const G4ThreeVector& direc ) const; |
1315 | + // Intersects the surface with the line given by point + vector |
1316 | + |
1317 | + virtual double GetDistanceFromPoint( const G4ThreeVector& point, const G4ThreeVector& direc ) const; |
1318 | + // Gets distance from point to surface in the direction of direc |
1319 | + |
1320 | + virtual double GetDistanceFromPoint( const G4ThreeVector& pt ) const; |
1321 | + // Gets closest distance from point to surface |
1322 | + |
1323 | + virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const; |
1324 | + // Returns tangent plane as itself |
1325 | + |
1326 | + virtual void Dump( G4String msg ) const; |
1327 | + |
1328 | + private: |
1329 | + |
1330 | +}; |
1331 | + |
1332 | +#endif |
1333 | + |
1334 | diff -Naur --exclude CVS source/geant4e/include/G4eTargetSurface.hh source/geant4e/include/G4eTargetSurface.hh |
1335 | --- source/geant4e/include/G4eTargetSurface.hh 1970-01-01 01:00:00.000000000 +0100 |
1336 | +++ source/geant4e/include/G4eTargetSurface.hh 2007-01-17 12:41:58.000000000 +0100 |
1337 | @@ -0,0 +1,43 @@ |
1338 | +// |
1339 | +// class G4eTargetSurface |
1340 | +// |
1341 | +// Class description: |
1342 | +// |
1343 | +// Base class for targets that are surfaces |
1344 | + |
1345 | +// |
1346 | +// History: |
1347 | +// - Created. P. Arce, September 2004 |
1348 | + |
1349 | +#ifndef G4eTargetSurface_h |
1350 | +#define G4eTargetSurface_h |
1351 | + |
1352 | +#include "globals.hh" |
1353 | +#include "G4ThreeVector.hh" |
1354 | +#include "G4eTargetWithTangentPlane.hh" |
1355 | +#include "G4Plane3D.hh" |
1356 | + |
1357 | + |
1358 | +class G4eTargetSurface : public G4eTargetWithTangentPlane |
1359 | +{ |
1360 | +public: |
1361 | + G4eTargetSurface(){ }; |
1362 | + virtual ~G4eTargetSurface(){}; |
1363 | + |
1364 | +public: |
1365 | + virtual double GetDistanceFromPoint( const G4ThreeVector& point, const G4ThreeVector& direc ) const = 0; |
1366 | + |
1367 | + virtual double GetDistanceFromPoint( const G4ThreeVector& point ) const = 0; |
1368 | + |
1369 | + virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const = 0; |
1370 | + |
1371 | + virtual void Dump( G4String msg ) const = 0; |
1372 | + |
1373 | + private: |
1374 | + virtual G4ThreeVector Intersect( const G4ThreeVector& point, const G4ThreeVector& direc ) const = 0; |
1375 | + // Intersects the surface with the line given by point + vector |
1376 | +}; |
1377 | + |
1378 | +#endif |
1379 | + |
1380 | + |
1381 | diff -Naur --exclude CVS source/geant4e/include/G4eTargetTrackLength.hh source/geant4e/include/G4eTargetTrackLength.hh |
1382 | --- source/geant4e/include/G4eTargetTrackLength.hh 1970-01-01 01:00:00.000000000 +0100 |
1383 | +++ source/geant4e/include/G4eTargetTrackLength.hh 2007-01-17 12:41:58.000000000 +0100 |
1384 | @@ -0,0 +1,63 @@ |
1385 | +// |
1386 | +// class G4eTargetTrackLength |
1387 | +// |
1388 | +// Class description: |
1389 | +// |
1390 | +// G4eTarget class: limits step when track length is bigger than theMaximumTrackLength |
1391 | +// It is a G4VDiscreteProcess: limits the step in PostStepGetPhysicalInteractionLength |
1392 | +// |
1393 | +// History: |
1394 | +// - Created. P. Arce, September 2004 |
1395 | + |
1396 | +#ifndef G4eTargetTrackLength_h |
1397 | +#define G4eTargetTrackLength_h 1 |
1398 | + |
1399 | +#include "G4ios.hh" |
1400 | +#include "globals.hh" |
1401 | +#include "G4VDiscreteProcess.hh" |
1402 | +#include "G4PhysicsTable.hh" |
1403 | +#include "G4PhysicsLogVector.hh" |
1404 | +#include "G4ElementTable.hh" |
1405 | +#include "G4Step.hh" |
1406 | +#include "G4eTarget.hh" |
1407 | + |
1408 | +//---------------------------------------------------------------------------- |
1409 | +class G4eTargetTrackLength : public G4VDiscreteProcess, public G4eTarget |
1410 | +{ |
1411 | +public: // with description |
1412 | + |
1413 | + virtual double GetDistanceFromPoint( const G4ThreeVector&, const G4ThreeVector& ) const { return DBL_MAX; } //for targetVolume |
1414 | + virtual double GetDistanceFromPoint( const G4ThreeVector& ) const { return DBL_MAX; } //for targetVolume |
1415 | + |
1416 | + G4eTargetTrackLength(const double maxTrkLength ); |
1417 | + // Constructs and add this process to G4ProcessManager |
1418 | + |
1419 | + virtual ~G4eTargetTrackLength(){ }; |
1420 | + |
1421 | + virtual G4double PostStepGetPhysicalInteractionLength( |
1422 | + const G4Track& track, |
1423 | + G4double previousStepSize, |
1424 | + G4ForceCondition* condition |
1425 | + ); |
1426 | + // Checks if the maximum track length has been reached |
1427 | + |
1428 | + /* |
1429 | + virtual G4VParticleChange* PostStepDoIt( |
1430 | + const G4Track& , |
1431 | + const G4Step& ); |
1432 | + |
1433 | + */ |
1434 | + |
1435 | + virtual G4double GetMeanFreePath(const class G4Track & track, G4double, G4ForceCondition *); |
1436 | + // Mean free path = theMaximumTrackLength - track.GetTrackLength(); |
1437 | + |
1438 | + void Dump( G4String msg ) const; |
1439 | + |
1440 | +private: |
1441 | + G4double theMaximumTrackLength; |
1442 | +}; |
1443 | + |
1444 | + |
1445 | + |
1446 | +#endif |
1447 | + |
1448 | diff -Naur --exclude CVS source/geant4e/include/G4eTargetWithTangentPlane.hh source/geant4e/include/G4eTargetWithTangentPlane.hh |
1449 | --- source/geant4e/include/G4eTargetWithTangentPlane.hh 1970-01-01 01:00:00.000000000 +0100 |
1450 | +++ source/geant4e/include/G4eTargetWithTangentPlane.hh 2007-01-17 12:41:58.000000000 +0100 |
1451 | @@ -0,0 +1,35 @@ |
1452 | +// |
1453 | +// class G4eTargetWithTangentPlane |
1454 | +// |
1455 | +// Class description: |
1456 | +// |
1457 | +// Base class for G4eTarget classes for which a tangent plane is defined |
1458 | +// |
1459 | +// History: |
1460 | +// - Created. P. Arce, September 2004 |
1461 | +#ifndef G4eTargetWithTangentPlane_HH |
1462 | +#define G4eTargetWithTangentPlane_HH |
1463 | + |
1464 | +#include "globals.hh" |
1465 | +#include "G4ThreeVector.hh" |
1466 | +#include "G4eTarget.hh" |
1467 | +#include "G4Plane3D.hh" |
1468 | + |
1469 | +class G4eTargetWithTangentPlane : public G4eTarget |
1470 | +{ |
1471 | +public: |
1472 | + G4eTargetWithTangentPlane(){}; |
1473 | + virtual ~G4eTargetWithTangentPlane(){}; |
1474 | + |
1475 | +public: |
1476 | + virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const = 0; |
1477 | + |
1478 | + virtual void Dump( G4String msg ) const = 0; |
1479 | + |
1480 | + private: |
1481 | + |
1482 | +}; |
1483 | + |
1484 | +#endif |
1485 | + |
1486 | + |
1487 | diff -Naur --exclude CVS source/geant4e/include/G4eTrajError.hh source/geant4e/include/G4eTrajError.hh |
1488 | --- source/geant4e/include/G4eTrajError.hh 1970-01-01 01:00:00.000000000 +0100 |
1489 | +++ source/geant4e/include/G4eTrajError.hh 2007-01-17 12:41:58.000000000 +0100 |
1490 | @@ -0,0 +1,18 @@ |
1491 | +// |
1492 | +// class G4eTrajError |
1493 | +// |
1494 | +// Class description: |
1495 | +// |
1496 | +// Trajectory error. Implemented for the moment as a CLHEP HepSymMatrix, until other possibly faster implementations are studied |
1497 | +// |
1498 | +// History: |
1499 | +// - Created. P. Arce |
1500 | +#ifndef G4eTrajError_h |
1501 | +#define G4eTrajError_h |
1502 | + |
1503 | +#include "CLHEP/Matrix/SymMatrix.h" |
1504 | + |
1505 | +typedef HepSymMatrix G4eTrajError; |
1506 | + |
1507 | +#endif |
1508 | + |
1509 | diff -Naur --exclude CVS source/geant4e/include/G4eTrajParamFree.hh source/geant4e/include/G4eTrajParamFree.hh |
1510 | --- source/geant4e/include/G4eTrajParamFree.hh 1970-01-01 01:00:00.000000000 +0100 |
1511 | +++ source/geant4e/include/G4eTrajParamFree.hh 2007-01-17 12:41:58.000000000 +0100 |
1512 | @@ -0,0 +1,60 @@ |
1513 | +// |
1514 | +// class G4eTrajParamFree |
1515 | +// |
1516 | +// Class description: |
1517 | +// |
1518 | +// Holds the 5 independent variables of the trajectory for a G4eTrajStateFree object. It is not used for anything but for printing, but anyhow it is updated everytime the position and momentum are updated |
1519 | +// |
1520 | +// History: |
1521 | +// - Created. Pedro Arce, September 2002 |
1522 | + |
1523 | +#ifndef G4eTrajParamFree_h |
1524 | +#define G4eTrajParamFree_h |
1525 | + |
1526 | +#include "G4Point3D.hh" |
1527 | +#include "G4Vector3D.hh" |
1528 | + |
1529 | +#include "globals.hh" |
1530 | +#include "G4Track.hh" |
1531 | + |
1532 | +class G4eTrajParamFree |
1533 | +{ |
1534 | +public: |
1535 | + G4eTrajParamFree(){}; |
1536 | + G4eTrajParamFree( const G4Point3D& pos, const G4Vector3D& mom ); |
1537 | + // Build parameters from position and momentum |
1538 | + virtual ~G4eTrajParamFree(){}; |
1539 | + |
1540 | + void Update( const G4Track* aTrack ); |
1541 | + // Update parameters from G4Track |
1542 | + |
1543 | + friend |
1544 | + std::ostream& operator<<(std::ostream&, const G4eTrajParamFree& ts); |
1545 | + |
1546 | + // Set and Get methods |
1547 | +public: |
1548 | + void SetParameters( const G4Point3D& pos, const G4Vector3D& mom ); |
1549 | + |
1550 | + G4Vector3D GetDirection() const { return fDir;} |
1551 | + |
1552 | + double GetInvP() const { return fInvP; } |
1553 | + |
1554 | + double GetLambda() const { return fLambda; } |
1555 | + |
1556 | + double GetPhi() const { return fPhi; } |
1557 | + |
1558 | + double GetYPerp() const { return fYPerp; } |
1559 | + |
1560 | + double GetZPerp() const { return fZPerp; } |
1561 | + |
1562 | +private: |
1563 | + G4Vector3D fDir; //direction to which YPerp, ZPerp refer |
1564 | + double fInvP; |
1565 | + double fLambda; // 90 - theta |
1566 | + double fPhi; |
1567 | + double fYPerp; |
1568 | + double fZPerp; |
1569 | + |
1570 | +}; |
1571 | + |
1572 | +#endif |
1573 | diff -Naur --exclude CVS source/geant4e/include/G4eTrajParamOnSurface.hh source/geant4e/include/G4eTrajParamOnSurface.hh |
1574 | --- source/geant4e/include/G4eTrajParamOnSurface.hh 1970-01-01 01:00:00.000000000 +0100 |
1575 | +++ source/geant4e/include/G4eTrajParamOnSurface.hh 2007-01-17 12:41:58.000000000 +0100 |
1576 | @@ -0,0 +1,60 @@ |
1577 | +// class G4eTrajParamOnSurface |
1578 | +// |
1579 | +// Class description: |
1580 | +// |
1581 | +// Holds the 5 independent variables of the trajectory for a G4eTrajStateOnSurface object. It is not used for anything but for printing, but anyhow it is updated everytime the position and momentum are updated |
1582 | +// |
1583 | +// History: |
1584 | +// - Created. P. Arce |
1585 | + |
1586 | +#ifndef G4eTrajParamOnSurface_h |
1587 | +#define G4eTrajParamOnSurface_h |
1588 | + |
1589 | +#include "G4Point3D.hh" |
1590 | +#include "G4Vector3D.hh" |
1591 | +#include "G4Plane3D.hh" |
1592 | +#include "G4ThreeVector.hh" |
1593 | + |
1594 | +#include "globals.hh" |
1595 | +#include "G4Track.hh" |
1596 | + |
1597 | +class G4eTrajParamOnSurface |
1598 | +{ |
1599 | +public: |
1600 | + G4eTrajParamOnSurface(){}; |
1601 | + G4eTrajParamOnSurface( const G4Point3D& pos, const G4Vector3D& mom, const G4Vector3D& vecV, const G4Vector3D& vecW ); |
1602 | + G4eTrajParamOnSurface( const G4Point3D& pos, const G4Vector3D& mom, const G4Plane3D& plane ); |
1603 | + virtual ~G4eTrajParamOnSurface(){}; |
1604 | + |
1605 | + friend |
1606 | + std::ostream& operator<<(std::ostream&, const G4eTrajParamOnSurface& ts); |
1607 | + |
1608 | + // set and get methods |
1609 | +public: |
1610 | + void SetParameters( const G4Point3D& pos, const G4Vector3D& mom, const G4Vector3D& vecV, const G4Vector3D& vecW ); |
1611 | + void SetParameters( const G4Point3D& pos, const G4Vector3D& mom, const G4Plane3D& plane ); |
1612 | + |
1613 | + G4Vector3D GetDirection() const { return fDir;} |
1614 | + G4Vector3D GetPlaneNormal() const { return fVectorV.cross(fVectorW);} |
1615 | + G4Vector3D GetVectorV() const { return fVectorV;} |
1616 | + G4Vector3D GetVectorW() const { return fVectorW;} |
1617 | + double GetPV() const{ return fPV; } |
1618 | + double GetPW() const{ return fPW; } |
1619 | + double GetV() const{ return fV; } |
1620 | + double GetW() const{ return fW; } |
1621 | + |
1622 | +private: |
1623 | + G4ThreeVector fDir; |
1624 | + G4Vector3D fVectorV; //one of the vectors defining the plane |
1625 | + G4Vector3D fVectorW; //one of the vectors defining the plane |
1626 | + double fInvP; |
1627 | + double fPV; |
1628 | + double fPW; |
1629 | + double fV; |
1630 | + double fW; |
1631 | + |
1632 | +}; |
1633 | + |
1634 | +#endif |
1635 | + |
1636 | + |
1637 | diff -Naur --exclude CVS source/geant4e/include/G4eTrajStateFree.hh source/geant4e/include/G4eTrajStateFree.hh |
1638 | --- source/geant4e/include/G4eTrajStateFree.hh 1970-01-01 01:00:00.000000000 +0100 |
1639 | +++ source/geant4e/include/G4eTrajStateFree.hh 2007-01-17 12:41:58.000000000 +0100 |
1640 | @@ -0,0 +1,94 @@ |
1641 | +// |
1642 | +// class G4eTrajStateFree |
1643 | +// |
1644 | +// Class description: |
1645 | +// |
1646 | +// Represents a free trG4eTrajState |
1647 | +// It can be represented by the 5 variables |
1648 | +// 1/p, lambda, phi, y_perp, z_perp |
1649 | +// where lambda and phi are the dip and azimuthal angles related |
1650 | +// to the momentum components in the following way: |
1651 | +// p_x = p cos(lambda) cos(phi) ! lambda = 90 - theta |
1652 | +// p_y = p cos(lambda) sin(phi) |
1653 | +// p_z = p sin(lambda) |
1654 | +// y_perp and z_perp are the coordinates of the trajectory in a |
1655 | +// local orthonormal reference frame with the x_perp axis along the |
1656 | +// particle direction, the y_perp being parallel to the x-y plane. |
1657 | +// |
1658 | +// History: |
1659 | +// |
1660 | +//------------------------------------------------------------------- |
1661 | +#ifndef G4eTrajStateFree_hh |
1662 | +#define G4eTrajStateFree_hh |
1663 | + |
1664 | +#include "globals.hh" |
1665 | + |
1666 | +#include "G4eTrajState.hh" |
1667 | +#include "G4eTrajParamFree.hh" |
1668 | + |
1669 | +#include "G4Point3D.hh" |
1670 | +#include "G4Vector3D.hh" |
1671 | +#include "CLHEP/Matrix/Matrix.h" |
1672 | +class G4eTrajStateOnSurface; |
1673 | + |
1674 | +class G4eTrajStateFree : public G4eTrajState |
1675 | +{ |
1676 | +public: |
1677 | + G4eTrajStateFree(){ }; //- ?? |
1678 | + G4eTrajStateFree( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom, const G4eTrajError& errmat = G4eTrajError(5,0) ); |
1679 | + // Construct by providing particle, position and momentum |
1680 | + G4eTrajStateFree( const G4eTrajStateOnSurface& tpOS ); |
1681 | + // Construct by providing G4eTrajStateOnSurface |
1682 | + |
1683 | + ~G4eTrajStateFree(){}; |
1684 | + |
1685 | + virtual int Update( const G4Track* aTrack ); |
1686 | + // Update parameters from G4Track |
1687 | + |
1688 | + virtual int PropagateError( const G4Track* aTrack ); |
1689 | + // Propagate the error along the step |
1690 | + |
1691 | + virtual void Dump( std::ostream& out = G4cout ) const; |
1692 | + // Dump TrajState parameters |
1693 | + friend |
1694 | + std::ostream& operator<<(std::ostream&, const G4eTrajStateFree& ts); |
1695 | + |
1696 | + // Set and Get methods |
1697 | + virtual void SetPosition( const G4Point3D pos ) { |
1698 | + SetParameters( pos, fMomentum ); } |
1699 | + |
1700 | + virtual void SetMomentum( const G4Vector3D& mom ) { |
1701 | + SetParameters( fPosition, mom ); } |
1702 | + |
1703 | + void SetParameters( const G4Point3D& pos, const G4Vector3D& mom ){ |
1704 | + fPosition = pos; |
1705 | + fMomentum = mom; |
1706 | + fTrajParam.SetParameters( pos, mom ); } |
1707 | + |
1708 | +private: |
1709 | + void Init(); |
1710 | + // Define TS type and build charge |
1711 | + |
1712 | + int PropagateErrorMSC( const G4Track* aTrack ); |
1713 | + // Add the error associated to multiple scattering |
1714 | + |
1715 | + void CalculateEffectiveZandA( const G4Material* mate, double& effZ, double& effA ); |
1716 | + // Calculate effective Z and A (needed by PropagateErrorMSC) |
1717 | + |
1718 | + int PropagateErrorIoni( const G4Track* aTrack ); |
1719 | + // Add the error associated to ionization energy loss |
1720 | + |
1721 | + // Set and Get methods |
1722 | +public: |
1723 | + G4eTrajParamFree GetParameters() const { return fTrajParam; } |
1724 | + |
1725 | +private: |
1726 | + G4eTrajParamFree fTrajParam; |
1727 | + |
1728 | + HepMatrix theTransfMat; |
1729 | + |
1730 | + bool theFirstStep; // to count if transf mat is updated or initialized |
1731 | +}; |
1732 | + |
1733 | +#endif |
1734 | + |
1735 | diff -Naur --exclude CVS source/geant4e/include/G4eTrajState.hh source/geant4e/include/G4eTrajState.hh |
1736 | --- source/geant4e/include/G4eTrajState.hh 1970-01-01 01:00:00.000000000 +0100 |
1737 | +++ source/geant4e/include/G4eTrajState.hh 2007-01-17 12:41:58.000000000 +0100 |
1738 | @@ -0,0 +1,111 @@ |
1739 | +// |
1740 | +// class G4eTrajState |
1741 | +// |
1742 | +// Class description: |
1743 | +// |
1744 | +// Base class for the trajectory state |
1745 | +// |
1746 | + |
1747 | +// History: |
1748 | +// |
1749 | +// -------------------------------------------------------------------- |
1750 | +// |
1751 | +#ifndef G4eTrajState_h |
1752 | +#define G4eTrajState_h |
1753 | + |
1754 | +#include "globals.hh" |
1755 | +#include "G4Track.hh" |
1756 | +#include "G4Point3D.hh" |
1757 | +#include "G4Vector3D.hh" |
1758 | +#include "G4eTrajError.hh" |
1759 | + |
1760 | +enum G4eTSType{ G4eTS_FREE, G4eTS_OS }; |
1761 | + |
1762 | +class G4eTrajState |
1763 | +{ |
1764 | +public: |
1765 | + G4eTrajState(){ }; |
1766 | + |
1767 | + G4eTrajState( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom, const G4eTrajError& errmat = G4eTrajError(5,0) ); |
1768 | + // Construct by providing particle, position and momentum |
1769 | + |
1770 | + virtual ~G4eTrajState(){}; |
1771 | + |
1772 | + void SetData( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom ); |
1773 | + // Set particle, position and momentum |
1774 | + |
1775 | + void BuildCharge(); |
1776 | + // Build charge based on particle type |
1777 | + |
1778 | + friend |
1779 | + std::ostream& operator<<(std::ostream&, const G4eTrajState& ts); |
1780 | + |
1781 | + virtual int PropagateError( const G4Track* ){ |
1782 | + G4cout << " THIS SHOULD NOT BE CALLED PropagateError type " << int(GetTSType()) << G4endl; |
1783 | + return -1; }; |
1784 | + // Propagate the error along the step |
1785 | + |
1786 | + virtual int Update( const G4Track* ){ return -1; }; |
1787 | + // Update parameters from G4Track |
1788 | + |
1789 | + void UpdatePosMom( const G4Point3D& pos, const G4Vector3D& mom ); |
1790 | + // Update position and momentum |
1791 | + |
1792 | + void DumpPosMomError( std::ostream& out = G4cout ) const; |
1793 | + // Dump position, momentum and error |
1794 | + |
1795 | + virtual void Dump( std::ostream& out = G4cout ) const = 0; |
1796 | + // Abstract method to dump all TrajState parameters |
1797 | + |
1798 | + // Set and Get methods |
1799 | + const G4String& GetParticleType() const{ |
1800 | + return fParticleType;} |
1801 | + |
1802 | + G4Point3D GetPosition() const { |
1803 | + return fPosition; } |
1804 | + |
1805 | + G4Vector3D GetMomentum() const { |
1806 | + return fMomentum; } |
1807 | + |
1808 | + double GetCharge() const { |
1809 | + return fCharge; } |
1810 | + |
1811 | + G4eTrajError GetError() const { |
1812 | + return fError; } |
1813 | + |
1814 | + virtual G4eTSType GetTSType() const { return theTSType; } |
1815 | + |
1816 | + G4Track* GetG4Track() const{ |
1817 | + return theG4Track; } |
1818 | + |
1819 | + void SetParticleType( const G4String& partType ){ |
1820 | + fParticleType = partType;} |
1821 | + |
1822 | + virtual void SetPosition( const G4Point3D pos ) { |
1823 | + fPosition = pos; } |
1824 | + |
1825 | + virtual void SetMomentum( const G4Vector3D& mom ) { |
1826 | + fMomentum = mom; } |
1827 | + |
1828 | + virtual void SetError( G4eTrajError em ) { |
1829 | + fError = em; } |
1830 | + |
1831 | + void SetG4Track( G4Track* trk ){ |
1832 | + theG4Track = trk; } |
1833 | + |
1834 | +protected: |
1835 | + G4String fParticleType; |
1836 | + G4Point3D fPosition; |
1837 | + G4Vector3D fMomentum; |
1838 | + double fCharge; |
1839 | + G4eTrajError fError; |
1840 | + |
1841 | + G4eTSType theTSType; |
1842 | + |
1843 | + G4Track* theG4Track; |
1844 | + |
1845 | + int iverbose; |
1846 | +}; |
1847 | + |
1848 | +#endif |
1849 | + |
1850 | diff -Naur --exclude CVS source/geant4e/include/G4eTrajStateOnSurface.hh source/geant4e/include/G4eTrajStateOnSurface.hh |
1851 | --- source/geant4e/include/G4eTrajStateOnSurface.hh 1970-01-01 01:00:00.000000000 +0100 |
1852 | +++ source/geant4e/include/G4eTrajStateOnSurface.hh 2007-01-17 12:41:58.000000000 +0100 |
1853 | @@ -0,0 +1,90 @@ |
1854 | +// |
1855 | +// class G4eTrajStateOnSurface |
1856 | +// |
1857 | +// Class description: |
1858 | +// |
1859 | +// Represents a trajectory state on a surface |
1860 | +// It can be represented by the 5 variables |
1861 | +// 1/p, v', w', v, w |
1862 | +// where v'=dv/du and w'=dw/du in an orthonormal coordinate system with |
1863 | +// axis u, v and w |
1864 | +// |
1865 | +// History: |
1866 | +// |
1867 | +// -------------------------------------------------------------------- |
1868 | +// |
1869 | +#ifndef G4eTrajStateOnSurface_hh |
1870 | +#define G4eTrajStateOnSurface_hh |
1871 | + |
1872 | +#include "globals.hh" |
1873 | + |
1874 | +#include "G4eTrajState.hh" |
1875 | +#include "G4eTrajParamOnSurface.hh" |
1876 | +#include "G4eTrajStateFree.hh" |
1877 | + |
1878 | +#include "G4Point3D.hh" |
1879 | +#include "G4Vector3D.hh" |
1880 | +#include "G4Plane3D.hh" |
1881 | + |
1882 | + |
1883 | +class G4eTrajStateOnSurface : public G4eTrajState |
1884 | +{ |
1885 | + |
1886 | +public: |
1887 | + // G4eTrajStateOnSurface(){}; //- ?? |
1888 | + |
1889 | + G4eTrajStateOnSurface( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom, const G4Plane3D& plane, const G4eTrajError& errmat = G4eTrajError(5,0) ); |
1890 | + // Construct by providing particle, position, momentum and G4Plane3D surface |
1891 | + |
1892 | + G4eTrajStateOnSurface( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom, const G4Vector3D& vecV, const G4Vector3D& vecW, const G4eTrajError& errmat = G4eTrajError(5,0) ); |
1893 | + // Construct by providing particle, position, momentum and two vectors on surface |
1894 | + |
1895 | + G4eTrajStateOnSurface( G4eTrajStateFree& tpSC, const G4Plane3D& plane ); |
1896 | + // Construct by providing G4eTrajStateFree and G4Plane3D surface |
1897 | + |
1898 | + G4eTrajStateOnSurface( G4eTrajStateFree& tpSC, const G4Vector3D& vecV, const G4Vector3D& vecW ); |
1899 | + // Construct by providing G4eTrajStateFree and two vectors on surface |
1900 | + |
1901 | + void BuildErrorMatrix( G4eTrajStateFree& tpSC, const G4Vector3D& vecV, const G4Vector3D& vecW ); |
1902 | + |
1903 | + ~G4eTrajStateOnSurface(){}; |
1904 | + |
1905 | + virtual void Dump( std::ostream& out = G4cout ) const; |
1906 | + // Dump class parameters |
1907 | + friend |
1908 | + std::ostream& operator<<(std::ostream&, const G4eTrajStateOnSurface& ts); |
1909 | + |
1910 | + //--- Set and Get methods |
1911 | + virtual void SetPosition( const G4Point3D pos ) { |
1912 | + SetParameters( pos, fMomentum, GetVectorV(), GetVectorW() ); } |
1913 | + |
1914 | + virtual void SetMomentum( const G4Vector3D& mom ) { |
1915 | + SetParameters( fPosition, mom, GetVectorV(), GetVectorW() ); } |
1916 | + |
1917 | + void SetParameters( const G4Point3D& pos, const G4Vector3D& mom, const G4Vector3D& vecV, const G4Vector3D& vecW ){ |
1918 | + fPosition = pos; |
1919 | + fMomentum = mom; |
1920 | + fTrajParam.SetParameters( pos, mom, vecV, vecW ); } |
1921 | + |
1922 | + void SetParameters( const G4Point3D& pos, const G4Vector3D& mom, const G4Plane3D& plane ){ |
1923 | + fPosition = pos; |
1924 | + fMomentum = mom; |
1925 | + fTrajParam.SetParameters( pos, mom, plane ); } |
1926 | + |
1927 | + G4eTrajParamOnSurface GetParameters() const { return fTrajParam; } |
1928 | + |
1929 | + G4Vector3D GetVectorV() const { return fTrajParam.GetVectorV();} |
1930 | + |
1931 | + G4Vector3D GetVectorW() const { return fTrajParam.GetVectorW();} |
1932 | + |
1933 | +private: |
1934 | + void Init(); |
1935 | + // Define TS type and build charge |
1936 | + |
1937 | +private: |
1938 | + G4eTrajParamOnSurface fTrajParam; |
1939 | + |
1940 | +}; |
1941 | + |
1942 | +#endif |
1943 | + |
1944 | diff -Naur --exclude CVS source/geant4e/include/lista.txt source/geant4e/include/lista.txt |
1945 | --- source/geant4e/include/lista.txt 1970-01-01 01:00:00.000000000 +0100 |
1946 | +++ source/geant4e/include/lista.txt 2007-01-17 12:41:58.000000000 +0100 |
1947 | @@ -0,0 +1,28 @@ |
1948 | +ExN02PhysicsList.hh |
1949 | +G4eEnergyLossProcess.hh |
1950 | +G4eIonisationChange.hh |
1951 | +G4eMagneticFieldLimitsMessenger.hh |
1952 | +G4eMagneticFieldLimitsProcess.hh |
1953 | +G4eMag_UsualEqRhs.hh |
1954 | +G4eManager.hh |
1955 | +G4eMuIonisation.hh |
1956 | +G4eNavigator.hh |
1957 | +G4ePhysicsList.hh |
1958 | +G4ePropagatorG4.hh |
1959 | +G4ePropagator.hh |
1960 | +G4eRunManagerKernel.hh |
1961 | +G4eSteppingManager.hh |
1962 | +G4eSteppingMessenger.hh |
1963 | +G4eTargetCylindricalSurface.hh |
1964 | +G4eTargetG4Volume.hh |
1965 | +G4eTarget.hh |
1966 | +G4eTargetPlaneSurface.hh |
1967 | +G4eTargetSurface.hh |
1968 | +G4eTargetTrackLength.hh |
1969 | +G4eTargetWithTangentPlane.hh |
1970 | +G4eTrajError.hh |
1971 | +G4eTrajParamFree.hh |
1972 | +G4eTrajParamOnSurface.hh |
1973 | +G4eTrajStateFree.hh |
1974 | +G4eTrajState.hh |
1975 | +G4eTrajStateOnSurface.hh |
1976 | diff -Naur --exclude CVS source/geant4e/src/ExN02PhysicsList.cc source/geant4e/src/ExN02PhysicsList.cc |
1977 | --- source/geant4e/src/ExN02PhysicsList.cc 1970-01-01 01:00:00.000000000 +0100 |
1978 | +++ source/geant4e/src/ExN02PhysicsList.cc 2007-01-17 12:41:58.000000000 +0100 |
1979 | @@ -0,0 +1,222 @@ |
1980 | +#include "globals.hh" |
1981 | +#include "ExN02PhysicsList.hh" |
1982 | + |
1983 | +#include "G4ProcessManager.hh" |
1984 | +#include "G4ParticleTypes.hh" |
1985 | +#include "G4eMagneticFieldLimitsProcess.hh" |
1986 | + |
1987 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
1988 | + |
1989 | +ExN02PhysicsList::ExN02PhysicsList(): G4VUserPhysicsList() |
1990 | +{ |
1991 | + |
1992 | + defaultCutValue = 1.0*cm; |
1993 | + SetVerboseLevel(1); |
1994 | + // G4cout << " ExN02PhysicsList::ExN02PhysicsList() " << G4endl; |
1995 | +} |
1996 | + |
1997 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
1998 | + |
1999 | +ExN02PhysicsList::~ExN02PhysicsList() |
2000 | +{} |
2001 | + |
2002 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2003 | + |
2004 | +void ExN02PhysicsList::ConstructParticle() |
2005 | +{ |
2006 | + // In this method, static member functions should be called |
2007 | + // for all particles which you want to use. |
2008 | + // This ensures that objects of these particle types will be |
2009 | + // created in the program. |
2010 | + |
2011 | + ConstructBosons(); |
2012 | + ConstructLeptons(); |
2013 | + ConstructMesons(); |
2014 | + ConstructBaryons(); |
2015 | +} |
2016 | + |
2017 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2018 | + |
2019 | +void ExN02PhysicsList::ConstructBosons() |
2020 | +{ |
2021 | + // pseudo-particles |
2022 | + G4Geantino::GeantinoDefinition(); |
2023 | + G4ChargedGeantino::ChargedGeantinoDefinition(); |
2024 | + |
2025 | + // gamma |
2026 | + G4Gamma::GammaDefinition(); |
2027 | +} |
2028 | + |
2029 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2030 | + |
2031 | +void ExN02PhysicsList::ConstructLeptons() |
2032 | +{ |
2033 | + // leptons |
2034 | + // e+/- |
2035 | + G4Electron::ElectronDefinition(); |
2036 | + G4Positron::PositronDefinition(); |
2037 | + // mu+/- |
2038 | + G4MuonPlus::MuonPlusDefinition(); |
2039 | + G4MuonMinus::MuonMinusDefinition(); |
2040 | + // nu_e |
2041 | + G4NeutrinoE::NeutrinoEDefinition(); |
2042 | + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); |
2043 | + // nu_mu |
2044 | + G4NeutrinoMu::NeutrinoMuDefinition(); |
2045 | + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); |
2046 | +} |
2047 | + |
2048 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2049 | + |
2050 | +void ExN02PhysicsList::ConstructMesons() |
2051 | +{ |
2052 | + // mesons |
2053 | + // light mesons |
2054 | + G4PionPlus::PionPlusDefinition(); |
2055 | + G4PionMinus::PionMinusDefinition(); |
2056 | + G4PionZero::PionZeroDefinition(); |
2057 | + G4Eta::EtaDefinition(); |
2058 | + G4EtaPrime::EtaPrimeDefinition(); |
2059 | + G4KaonPlus::KaonPlusDefinition(); |
2060 | + G4KaonMinus::KaonMinusDefinition(); |
2061 | + G4KaonZero::KaonZeroDefinition(); |
2062 | + G4AntiKaonZero::AntiKaonZeroDefinition(); |
2063 | + G4KaonZeroLong::KaonZeroLongDefinition(); |
2064 | + G4KaonZeroShort::KaonZeroShortDefinition(); |
2065 | +} |
2066 | + |
2067 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2068 | + |
2069 | +void ExN02PhysicsList::ConstructBaryons() |
2070 | +{ |
2071 | + // barions |
2072 | + G4Proton::ProtonDefinition(); |
2073 | + G4AntiProton::AntiProtonDefinition(); |
2074 | + |
2075 | + G4Neutron::NeutronDefinition(); |
2076 | + G4AntiNeutron::AntiNeutronDefinition(); |
2077 | +} |
2078 | + |
2079 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2080 | + |
2081 | +void ExN02PhysicsList::ConstructProcess() |
2082 | +{ |
2083 | + AddTransportation(); |
2084 | + ConstructEM(); |
2085 | + ConstructGeneral(); |
2086 | +} |
2087 | + |
2088 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2089 | + |
2090 | +#include "G4ComptonScattering.hh" |
2091 | +#include "G4GammaConversion.hh" |
2092 | +#include "G4PhotoElectricEffect.hh" |
2093 | + |
2094 | +#include "G4MultipleScattering.hh" |
2095 | + |
2096 | +#include "G4eIonisation.hh" |
2097 | +#include "G4eBremsstrahlung.hh" |
2098 | +#include "G4eplusAnnihilation.hh" |
2099 | + |
2100 | +#include "G4MuIonisation.hh" |
2101 | +#include "G4MuBremsstrahlung.hh" |
2102 | +#include "G4MuPairProduction.hh" |
2103 | + |
2104 | +#include "G4hIonisation.hh" |
2105 | + |
2106 | +#include "G4StepLimiter.hh" |
2107 | +#include "G4UserSpecialCuts.hh" |
2108 | + |
2109 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2110 | + |
2111 | +void ExN02PhysicsList::ConstructEM() |
2112 | +{ |
2113 | + theParticleIterator->reset(); |
2114 | + while( (*theParticleIterator)() ){ |
2115 | + G4ParticleDefinition* particle = theParticleIterator->value(); |
2116 | + G4ProcessManager* pmanager = particle->GetProcessManager(); |
2117 | + G4String particleName = particle->GetParticleName(); |
2118 | + |
2119 | + if (particleName == "gamma") { |
2120 | + // gamma |
2121 | + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); |
2122 | + pmanager->AddDiscreteProcess(new G4ComptonScattering); |
2123 | + pmanager->AddDiscreteProcess(new G4GammaConversion); |
2124 | + |
2125 | + } else if (particleName == "e-") { |
2126 | + //electron |
2127 | + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); |
2128 | + pmanager->AddProcess(new G4eIonisation, -1, 2,2); |
2129 | + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); |
2130 | + |
2131 | + } else if (particleName == "e+") { |
2132 | + //positron |
2133 | + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); |
2134 | + pmanager->AddProcess(new G4eIonisation, -1, 2,2); |
2135 | + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); |
2136 | + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); |
2137 | + |
2138 | + } else if( particleName == "mu+" || |
2139 | + particleName == "mu-" ) { |
2140 | + //muon |
2141 | + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); |
2142 | + G4VProcess* anIonisation = new G4MuIonisation(); |
2143 | + G4eMagneticFieldLimitsProcess* theG4eMagneticFieldLimitsProcess = new G4eMagneticFieldLimitsProcess; |
2144 | + pmanager->AddDiscreteProcess( theG4eMagneticFieldLimitsProcess ); |
2145 | + G4VEnergyLossProcess* io = (G4VEnergyLossProcess*)anIonisation; |
2146 | + io->SetLossFluctuations( FALSE ); |
2147 | + |
2148 | + pmanager->AddProcess(anIonisation, -1, 2,2); |
2149 | + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); |
2150 | + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); |
2151 | + // pmanager->AddProcess(anIonisation, -1); |
2152 | + // pmanager->AddProcess(new G4MuBremsstrahlung, -1); |
2153 | + // pmanager->AddProcess(new G4MuPairProduction, -1); |
2154 | + |
2155 | + } else if ((!particle->IsShortLived()) && |
2156 | + (particle->GetPDGCharge() != 0.0) && |
2157 | + (particle->GetParticleName() != "chargedgeantino")) { |
2158 | + //all others charged particles except geantino |
2159 | + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); |
2160 | + pmanager->AddProcess(new G4hIonisation, -1, 2,2); |
2161 | + //step limit |
2162 | + pmanager->AddProcess(new G4StepLimiter, -1,-1,3); |
2163 | + ///pmanager->AddProcess(new G4UserSpecialCuts, -1,-1,4); |
2164 | + } |
2165 | + } |
2166 | +} |
2167 | + |
2168 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2169 | + |
2170 | +#include "G4Decay.hh" |
2171 | +void ExN02PhysicsList::ConstructGeneral() |
2172 | +{ |
2173 | + // Add Decay Process |
2174 | + G4Decay* theDecayProcess = new G4Decay(); |
2175 | + theParticleIterator->reset(); |
2176 | + while( (*theParticleIterator)() ){ |
2177 | + G4ParticleDefinition* particle = theParticleIterator->value(); |
2178 | + G4ProcessManager* pmanager = particle->GetProcessManager(); |
2179 | + if (theDecayProcess->IsApplicable(*particle)) { |
2180 | + pmanager ->AddProcess(theDecayProcess); |
2181 | + // set ordering for PostStepDoIt and AtRestDoIt |
2182 | + pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); |
2183 | + pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); |
2184 | + } |
2185 | + } |
2186 | +} |
2187 | + |
2188 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2189 | + |
2190 | +void ExN02PhysicsList::SetCuts() |
2191 | +{ |
2192 | + //G4VUserPhysicsList::SetCutsWithDefault method sets |
2193 | + //the default cut value for all particle types |
2194 | + // |
2195 | + SetCutsWithDefault(); |
2196 | + |
2197 | + if (verboseLevel>0) DumpCutValuesTable(); |
2198 | +} |
2199 | + |
2200 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2201 | + |
2202 | diff -Naur --exclude CVS source/geant4e/src/G4eEnergyLossProcess.cc source/geant4e/src/G4eEnergyLossProcess.cc |
2203 | --- source/geant4e/src/G4eEnergyLossProcess.cc 1970-01-01 01:00:00.000000000 +0100 |
2204 | +++ source/geant4e/src/G4eEnergyLossProcess.cc 2007-01-17 12:41:58.000000000 +0100 |
2205 | @@ -0,0 +1,114 @@ |
2206 | +//////////////////////////////////////////////////////////////////////// |
2207 | +// Energy Loss for extrapolator Implementation |
2208 | +//////////////////////////////////////////////////////////////////////// |
2209 | +// |
2210 | +// File: G4eEnergyLossProcess.cc |
2211 | +// Description: Continuous Process -- energy loss for extrapolator |
2212 | +// Version: 2.1 |
2213 | +// Created: 2005-12-22 |
2214 | +// Author: Pedro Arce |
2215 | +// Updated: |
2216 | +// |
2217 | +// mail: pedro.arce@cern.ch |
2218 | +// |
2219 | +//////////////////////////////////////////////////////////////////////// |
2220 | + |
2221 | +#include "G4eEnergyLossProcess.hh" |
2222 | +#include "G4eManager.hh" |
2223 | +#include "G4EnergyLossForExtrapolator.hh" |
2224 | + |
2225 | +//-------------------------------------------------------------------------- |
2226 | + |
2227 | +G4EnergyLossForExtrapolator* G4eEnergyLossProcess::theELossForExtrapolator = 0; |
2228 | + |
2229 | +//-------------------------------------------------------------------------- |
2230 | +G4eEnergyLossProcess::G4eEnergyLossProcess(const G4String& processName) |
2231 | + : G4VContinuousProcess(processName) |
2232 | +{ |
2233 | + if (verboseLevel>0) { |
2234 | + G4cout << GetProcessName() << " is created " << G4endl; |
2235 | + } |
2236 | + |
2237 | + G4eEnergyLossProcess::InstantiateEforExtrapolator(); |
2238 | + |
2239 | +} |
2240 | + |
2241 | + |
2242 | +//-------------------------------------------------------------------------- |
2243 | +void G4eEnergyLossProcess::InstantiateEforExtrapolator() |
2244 | +{ |
2245 | + |
2246 | + if( theELossForExtrapolator == 0 ) { |
2247 | + theELossForExtrapolator = new G4EnergyLossForExtrapolator; |
2248 | + } |
2249 | +} |
2250 | + |
2251 | + |
2252 | +//-------------------------------------------------------------------------- |
2253 | +G4eEnergyLossProcess::~G4eEnergyLossProcess() |
2254 | +{ |
2255 | +} |
2256 | + |
2257 | + |
2258 | +//-------------------------------------------------------------------------- |
2259 | +G4VParticleChange* |
2260 | +G4eEnergyLossProcess::AlongStepDoIt(const G4Track& aTrack, const G4Step& aStep) |
2261 | +{ |
2262 | + aParticleChange.Initialize(aTrack); |
2263 | + |
2264 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
2265 | + |
2266 | + G4double kinEnergyStart = aTrack.GetKineticEnergy(); |
2267 | + G4double step_length = aStep.GetStepLength(); |
2268 | + // step_length = 10*mm; |
2269 | + const G4Material* aMaterial = aTrack.GetMaterial(); |
2270 | + const G4ParticleDefinition* aParticleDef = aTrack.GetDynamicParticle()->GetDefinition(); |
2271 | + G4double kinEnergyEnd; |
2272 | + |
2273 | + // G4cout << " mode " << g4emgr->GetMode()<< " " << G4eMode_PropForwards << std::endl; |
2274 | + |
2275 | + if( g4emgr->GetMode() == G4eMode(G4eMode_PropBackwards) ) { |
2276 | + kinEnergyEnd = G4eEnergyLossProcess::theELossForExtrapolator->EnergyBeforeStep( kinEnergyStart, step_length, aMaterial, aParticleDef ); |
2277 | + G4double kinEnergyHalfStep = kinEnergyStart - (kinEnergyStart-kinEnergyEnd)/2.; |
2278 | + //- G4cout << " G4eEnergyLossProcess FWD end " << kinEnergyEnd << " halfstep " << kinEnergyHalfStep << G4endl; |
2279 | + //--- rescale to energy lost at 1/2 step |
2280 | + kinEnergyEnd = G4eEnergyLossProcess::theELossForExtrapolator->EnergyBeforeStep( kinEnergyHalfStep, step_length, aMaterial, aParticleDef ); |
2281 | + kinEnergyEnd = kinEnergyStart - (kinEnergyHalfStep - kinEnergyEnd ); |
2282 | + }else if( g4emgr->GetMode() == G4eMode(G4eMode_PropForwards) ) { |
2283 | + kinEnergyEnd = G4eEnergyLossProcess::theELossForExtrapolator->EnergyAfterStep( kinEnergyStart, step_length, aMaterial, aParticleDef ); |
2284 | + G4double kinEnergyHalfStep = kinEnergyStart - (kinEnergyStart-kinEnergyEnd)/2.; |
2285 | + //- G4cout << " G4eEnergyLossProcess BCKD end " << kinEnergyEnd << " halfstep " << kinEnergyHalfStep << G4endl; |
2286 | + //--- rescale to energy lost at 1/2 step |
2287 | + kinEnergyEnd = G4eEnergyLossProcess::theELossForExtrapolator->EnergyAfterStep( kinEnergyHalfStep, step_length, aMaterial, aParticleDef ); |
2288 | + kinEnergyEnd = kinEnergyStart - (kinEnergyHalfStep - kinEnergyEnd ); |
2289 | + } |
2290 | + |
2291 | + G4double edepo = kinEnergyEnd - kinEnergyStart; |
2292 | + |
2293 | + if( G4eManager::verbose() >= 2 ) G4cout << "G4eEnergyLossProcess::AlongStepDoIt Estart= " << kinEnergyStart << " Eend " << kinEnergyEnd << " Ediff " << kinEnergyStart-kinEnergyEnd << " step= " << step_length << " mate= " << aMaterial->GetName() << " particle= " << aParticleDef->GetParticleName() << G4endl; |
2294 | + |
2295 | + aParticleChange.ClearDebugFlag(); |
2296 | + aParticleChange.ProposeLocalEnergyDeposit( edepo ); |
2297 | + aParticleChange.SetNumberOfSecondaries(0); |
2298 | + |
2299 | + aParticleChange.ProposeEnergy( kinEnergyEnd ); |
2300 | + |
2301 | + /*????? |
2302 | + //---- If it has lost all its energy, it is in status StopAndAlive: change it! |
2303 | + if(fParticleChange->GetTrackStatus() == fStopButAlive ) { |
2304 | + fParticleChange->ProposeTrackStatus( fAlive ); |
2305 | + } |
2306 | + */ |
2307 | + |
2308 | + return &aParticleChange; |
2309 | +} |
2310 | + |
2311 | + |
2312 | +//-------------------------------------------------------------------- |
2313 | +G4double G4eEnergyLossProcess::GetContinuousStepLimit(const G4Track&, |
2314 | + G4double, |
2315 | + G4double, |
2316 | + G4double& ) |
2317 | +{ |
2318 | + return DBL_MAX; |
2319 | +} |
2320 | diff -Naur --exclude CVS source/geant4e/src/G4eIonisationChange.cc source/geant4e/src/G4eIonisationChange.cc |
2321 | --- source/geant4e/src/G4eIonisationChange.cc 1970-01-01 01:00:00.000000000 +0100 |
2322 | +++ source/geant4e/src/G4eIonisationChange.cc 2007-01-17 12:41:58.000000000 +0100 |
2323 | @@ -0,0 +1,64 @@ |
2324 | +// |
2325 | +// -------------------------------------------------------------- |
2326 | +// GEANT 4 class implementation file |
2327 | +// |
2328 | +// History: September 2001, P. Arce |
2329 | +// -------------------------------------------------------------- |
2330 | + |
2331 | +#include "G4eIonisationChange.hh" |
2332 | + |
2333 | +#include "G4Track.hh" |
2334 | +#include "G4ParticleChangeForLoss.hh" |
2335 | + |
2336 | +#include "G4eManager.hh" |
2337 | + |
2338 | +// constructor and destructor |
2339 | + G4eIonisationChange::G4eIonisationChange(const G4String& ) |
2340 | +{ } |
2341 | + |
2342 | +G4eIonisationChange::~G4eIonisationChange() |
2343 | +{ } |
2344 | + |
2345 | + |
2346 | +void G4eIonisationChange::RecomputeParticleChange( G4ParticleChangeForLoss* fParticleChange, const G4Track& trackData ) |
2347 | +{ |
2348 | + |
2349 | + //----- Reset number of secondaries to 0 |
2350 | + // fParticleChange->Clear(); |
2351 | + |
2352 | + //----- If propagation is backwards: |
2353 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
2354 | + if( g4emgr->GetMode() == G4eMode(G4eMode_PropBackwards) ) { |
2355 | +#ifdef G4EVERBOSE |
2356 | + if( g4emgr->verbose() >= 1) { |
2357 | + G4cout << "G4eIonisationChange::RecomputeParticleChange: backwards. fParticleChange->GetProposedKineticEnergy() " << fParticleChange->GetProposedKineticEnergy() << G4endl; |
2358 | + } |
2359 | +#endif |
2360 | + //---- Reset energy deposited to negative value (gaining energy) |
2361 | + // double eDepoOld = trackData.GetStep()->GetTotalEnergyDeposit(); |
2362 | + double eDepo = fParticleChange->GetLocalEnergyDeposit(); |
2363 | + fParticleChange->ProposeLocalEnergyDeposit( -eDepo ); |
2364 | + //---- Reset energy change to negative value (gaining energy) |
2365 | + double energyNew = fParticleChange->GetProposedKineticEnergy(); |
2366 | + double mass = trackData.GetDynamicParticle()->GetDefinition()->GetPDGMass(); |
2367 | + double energyOld = trackData.GetDynamicParticle()->GetTotalEnergy()-mass; |
2368 | + //energyChange is =0 |
2369 | + fParticleChange->SetProposedKineticEnergy( energyNew - 2*(energyNew-energyOld) ); |
2370 | + |
2371 | + //---- If it has lost all its energy, it is in status StopAndAlive: change it! |
2372 | + if(fParticleChange->GetTrackStatus() == fStopButAlive ) { |
2373 | + fParticleChange->ProposeTrackStatus( fAlive ); |
2374 | + } |
2375 | + |
2376 | +#ifdef G4EVERBOSE |
2377 | + if( g4emgr->verbose() >= 4) { |
2378 | + if( trackData.GetStep() != 0 ) G4cout << "G4eIonisationChange::RecomputeParticleChange energyDeposited new " << eDepo << " old " << trackData.GetStep()->GetTotalEnergyDeposit() << G4endl; |
2379 | + G4cout << " G4eIonisationChange::RecomputeParticleChangeForIoniPost energyChange new " << energyNew << " old " << energyOld << G4endl; |
2380 | + } |
2381 | +#endif |
2382 | + } |
2383 | + |
2384 | + return; |
2385 | + |
2386 | +} |
2387 | + |
2388 | diff -Naur --exclude CVS source/geant4e/src/G4eMagneticFieldLimitsMessenger.cc source/geant4e/src/G4eMagneticFieldLimitsMessenger.cc |
2389 | --- source/geant4e/src/G4eMagneticFieldLimitsMessenger.cc 1970-01-01 01:00:00.000000000 +0100 |
2390 | +++ source/geant4e/src/G4eMagneticFieldLimitsMessenger.cc 2007-01-17 12:41:58.000000000 +0100 |
2391 | @@ -0,0 +1,43 @@ |
2392 | + |
2393 | +#include "G4eMagneticFieldLimitsMessenger.hh" |
2394 | +#include "G4eMagneticFieldLimitsProcess.hh" |
2395 | + |
2396 | +#include "G4UIdirectory.hh" |
2397 | +#include "G4UIcmdWithADoubleAndUnit.hh" |
2398 | +#include "globals.hh" |
2399 | + |
2400 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2401 | + |
2402 | +G4eMagneticFieldLimitsMessenger::G4eMagneticFieldLimitsMessenger(G4eMagneticFieldLimitsProcess* myAct) |
2403 | +:myAction(myAct) |
2404 | +{ |
2405 | + |
2406 | + myDir = new G4UIdirectory("/geant4e/"); |
2407 | + myDir->SetGuidance("GEANT4e control commands"); |
2408 | + |
2409 | + StepLimitCmd = new G4UIcmdWithADoubleAndUnit("/geant4e/stepLimit",this); |
2410 | + StepLimitCmd->SetGuidance("Limit the length of an step"); |
2411 | + StepLimitCmd->SetDefaultUnit("mm"); |
2412 | + //- StepLimitCmd->AvailableForStates(G4State_PreInit,G4State_Idle); |
2413 | + // G4cout << " G4eMagneticFieldLimitsMessenger::G4eMagneticFieldLimitsMessenger " << G4endl; |
2414 | +} |
2415 | + |
2416 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2417 | + |
2418 | +G4eMagneticFieldLimitsMessenger::~G4eMagneticFieldLimitsMessenger() |
2419 | +{ |
2420 | + delete StepLimitCmd; |
2421 | + delete myDir; |
2422 | +} |
2423 | + |
2424 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2425 | + |
2426 | +void G4eMagneticFieldLimitsMessenger::SetNewValue(G4UIcommand* command,G4String newValue) |
2427 | +{ |
2428 | + if( command == StepLimitCmd ) { |
2429 | + // G4cout << " G4eMagneticFieldLimitsMessenger::SetNewValue " << newValue << G4endl; |
2430 | + myAction->SetStepLimit(StepLimitCmd->GetNewDoubleValue(newValue));} |
2431 | + |
2432 | +} |
2433 | + |
2434 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2435 | diff -Naur --exclude CVS source/geant4e/src/G4eMagneticFieldLimitsProcess.cc source/geant4e/src/G4eMagneticFieldLimitsProcess.cc |
2436 | --- source/geant4e/src/G4eMagneticFieldLimitsProcess.cc 1970-01-01 01:00:00.000000000 +0100 |
2437 | +++ source/geant4e/src/G4eMagneticFieldLimitsProcess.cc 2007-01-17 12:41:58.000000000 +0100 |
2438 | @@ -0,0 +1,48 @@ |
2439 | +#include "G4eMagneticFieldLimitsProcess.hh" |
2440 | +#include "G4UnitsTable.hh" |
2441 | +#include "G4eMagneticFieldLimitsMessenger.hh" |
2442 | + |
2443 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2444 | +G4eMagneticFieldLimitsProcess::G4eMagneticFieldLimitsProcess(const G4String& processName) |
2445 | + : G4VDiscreteProcess (processName) |
2446 | +{ |
2447 | + theMessenger = new G4eMagneticFieldLimitsMessenger(this); |
2448 | + theStepLimit = 1000.*mm;// kInfinity; |
2449 | +} |
2450 | + |
2451 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2452 | +G4eMagneticFieldLimitsProcess::~G4eMagneticFieldLimitsProcess() |
2453 | +{ } |
2454 | + |
2455 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... |
2456 | + |
2457 | + |
2458 | +G4double G4eMagneticFieldLimitsProcess::PostStepGetPhysicalInteractionLength( |
2459 | + //G4double G4eMagneticFieldLimitsProcess::PostStepGPIL( |
2460 | + const G4Track& , |
2461 | + G4double , |
2462 | + G4ForceCondition* condition ) |
2463 | +{ |
2464 | + *condition = NotForced; |
2465 | + //- G4cout << "G4eMagneticFieldLimitsProcess::PostStepGetPhysicalInteractionLength " << theStepLimit << G4endl; |
2466 | + return theStepLimit; |
2467 | + //return kInfinity; |
2468 | +} |
2469 | + |
2470 | +G4double G4eMagneticFieldLimitsProcess::GetMeanFreePath(const class G4Track &, G4double, enum G4ForceCondition *) |
2471 | +{ |
2472 | + //- G4cout << "G4eMagneticFieldLimitsProcess GetMeanFreePath " << theStepLimit << G4endl; |
2473 | + return theStepLimit; |
2474 | +} |
2475 | + |
2476 | +G4VParticleChange* G4eMagneticFieldLimitsProcess::PostStepDoIt( |
2477 | + const G4Track& aTrack , |
2478 | + const G4Step& ) |
2479 | +{ |
2480 | + G4ParticleChange* aParticleChange = new G4ParticleChange; |
2481 | + aParticleChange->Initialize(aTrack); |
2482 | + return aParticleChange; |
2483 | + |
2484 | +} |
2485 | + |
2486 | + |
2487 | diff -Naur --exclude CVS source/geant4e/src/G4eMag_UsualEqRhs.cc source/geant4e/src/G4eMag_UsualEqRhs.cc |
2488 | --- source/geant4e/src/G4eMag_UsualEqRhs.cc 1970-01-01 01:00:00.000000000 +0100 |
2489 | +++ source/geant4e/src/G4eMag_UsualEqRhs.cc 2007-01-17 12:41:58.000000000 +0100 |
2490 | @@ -0,0 +1,32 @@ |
2491 | +// |
2492 | +#include "G4eMag_UsualEqRhs.hh" |
2493 | +#include "G4eManager.hh" |
2494 | + |
2495 | + |
2496 | +void |
2497 | +G4eMag_UsualEqRhs::EvaluateRhsGivenB( const G4double y[], |
2498 | + const G4double B[3], |
2499 | + G4double dydx[] ) const |
2500 | +{ |
2501 | + |
2502 | + G4Mag_UsualEqRhs::EvaluateRhsGivenB(y, B, dydx ); |
2503 | + |
2504 | + if(G4eManager::GetG4eManager()->GetMode() == G4eMode_PropBackwards){ |
2505 | + G4double momentum_mag_square = sqr(y[3]) + sqr(y[4]) + sqr(y[5]); |
2506 | + G4double inv_momentum_magnitude = 1.0 / sqrt( momentum_mag_square ); |
2507 | + |
2508 | + G4double cof = FCof()*inv_momentum_magnitude; |
2509 | + |
2510 | + dydx[3] = cof*(y[4]*(-B[2]) - y[5]*(-B[1])) ; |
2511 | + dydx[4] = cof*(y[5]*(-B[0]) - y[3]*(-B[2])) ; |
2512 | + dydx[5] = cof*(y[3]*(-B[1]) - y[4]*(-B[0])) ; |
2513 | + |
2514 | + } |
2515 | + |
2516 | + return ; |
2517 | +} |
2518 | + |
2519 | + |
2520 | + |
2521 | + |
2522 | + |
2523 | diff -Naur --exclude CVS source/geant4e/src/G4eManager.cc source/geant4e/src/G4eManager.cc |
2524 | --- source/geant4e/src/G4eManager.cc 1970-01-01 01:00:00.000000000 +0100 |
2525 | +++ source/geant4e/src/G4eManager.cc 2007-01-17 12:41:58.000000000 +0100 |
2526 | @@ -0,0 +1,416 @@ |
2527 | + |
2528 | +#define private public |
2529 | +#include "G4MagIntegratorStepper.hh" |
2530 | +#define private private |
2531 | +#include "G4Mag_UsualEqRhs.hh" |
2532 | +#include "G4Mag_EqRhs.hh" |
2533 | +#include "G4MagIntegratorDriver.hh" |
2534 | + |
2535 | +#include "G4ClassicalRK4.hh" |
2536 | +#include "G4ExactHelixStepper.hh" |
2537 | +#include "G4HelixExplicitEuler.hh" |
2538 | + |
2539 | +#include "G4eManager.hh" |
2540 | + |
2541 | +#include "G4EventManager.hh" |
2542 | +#include "G4eRunManagerKernel.hh" |
2543 | +#include "G4ePropagatorG4.hh" |
2544 | +#include "G4eTrajStateFree.hh" |
2545 | +#include "G4eTrajStateOnSurface.hh" |
2546 | +#include "G4eMag_UsualEqRhs.hh" |
2547 | + |
2548 | +#include "G4VParticleChange.hh" |
2549 | +#include "G4ParticleChangeForMSC.hh" |
2550 | +#include "G4ParticleChange.hh" |
2551 | +#include "G4Track.hh" |
2552 | +#include "G4TransportationManager.hh" |
2553 | +#include "G4eNavigator.hh" |
2554 | +#include "G4GeometryManager.hh" |
2555 | +#include "G4StateManager.hh" |
2556 | +#include "G4ChordFinder.hh" |
2557 | +#include "G4EquationOfMotion.hh" |
2558 | +#include "G4FieldManager.hh" |
2559 | +#include "G4VParticleChange.hh" |
2560 | + |
2561 | +G4eManager* G4eManager::theG4eManager = 0; |
2562 | + |
2563 | +int G4eManager::theVerbosity; |
2564 | + |
2565 | +//----------------------------------------------------------------------- |
2566 | +G4eManager* G4eManager::GetG4eManager() |
2567 | +{ |
2568 | + if( theG4eManager == NULL ) { |
2569 | + theG4eManager = new G4eManager; |
2570 | + } |
2571 | + |
2572 | + return theG4eManager; |
2573 | +} |
2574 | + |
2575 | + |
2576 | +//----------------------------------------------------------------------- |
2577 | +G4eManager::G4eManager() |
2578 | +{ |
2579 | + //----- Initialize a few things |
2580 | + //o theG4eManager = this; |
2581 | + |
2582 | + char* g4emverb = getenv("G4EVERBOSE"); |
2583 | + if( !g4emverb ) { |
2584 | + theVerbosity = 0; |
2585 | + } else { |
2586 | + theVerbosity = atoi( g4emverb ); |
2587 | + } |
2588 | + |
2589 | + thePropagator = 0; |
2590 | + |
2591 | + theEquationOfMotion = 0; |
2592 | + |
2593 | + theCurrentTS_FREE = 0; |
2594 | + |
2595 | + StartG4eRunManagerKernel(); |
2596 | + |
2597 | + theState = G4eState_PreInit; |
2598 | + |
2599 | + theG4eNavigator = 0; |
2600 | + |
2601 | + StartNavigator(); //navigator has to be initialized at the beggining !?!?! |
2602 | + |
2603 | + |
2604 | +} |
2605 | + |
2606 | +//----------------------------------------------------------------------- |
2607 | +G4eManager::~G4eManager() |
2608 | +{ |
2609 | +} |
2610 | + |
2611 | + |
2612 | +//----------------------------------------------------------------------- |
2613 | +void G4eManager::StartG4eRunManagerKernel() |
2614 | +{ |
2615 | + //----- Initialize G4eRunManagerKernel |
2616 | + theG4eRunManagerKernel = G4eRunManagerKernel::GetRunManagerKernel(); |
2617 | + |
2618 | + if( theG4eRunManagerKernel == 0 ) { |
2619 | + theG4eRunManagerKernel = new G4eRunManagerKernel(); |
2620 | + } |
2621 | + |
2622 | + //----- User Initialization classes |
2623 | + //--- GEANT4e PhysicsList |
2624 | + if( theVerbosity >= 4 ) G4cout << " G4eManager::StartG4eRunManager() done " << theG4eRunManagerKernel << G4endl; |
2625 | + //- theG4eRunManager->SetUserInitialization(new G4ePhysicsList); |
2626 | + |
2627 | +} |
2628 | + |
2629 | + |
2630 | +//----------------------------------------------------------------------- |
2631 | +void G4eManager::StartNavigator() |
2632 | +{ |
2633 | + if( theG4eNavigator == 0 ) { |
2634 | + G4TransportationManager*transportationManager = G4TransportationManager::GetTransportationManager(); |
2635 | + |
2636 | + G4Navigator* g4navi = transportationManager->GetNavigatorForTracking(); |
2637 | + |
2638 | + G4VPhysicalVolume* world = g4navi->GetWorldVolume(); |
2639 | + int verb = g4navi->GetVerboseLevel(); |
2640 | + delete g4navi; |
2641 | + |
2642 | + theG4eNavigator = new G4eNavigator(); |
2643 | + |
2644 | + if( world != 0 ) { |
2645 | + theG4eNavigator->SetWorldVolume( world ); |
2646 | + } |
2647 | + theG4eNavigator->SetVerboseLevel( verb ); |
2648 | + |
2649 | + transportationManager->SetNavigatorForTracking(theG4eNavigator); |
2650 | + // G4ThreeVector center(0,0,0); |
2651 | + // theG4eNavigator->LocateGlobalPointAndSetup(center,0,false); |
2652 | + |
2653 | + } |
2654 | + |
2655 | + if( theVerbosity >= 2 ) G4cout << " theState at StartNavigator " << PrintG4eState() << G4endl; |
2656 | + |
2657 | +} |
2658 | + |
2659 | + |
2660 | +//----------------------------------------------------------------------- |
2661 | +void G4eManager::InitGeant4e() |
2662 | +{ |
2663 | + if( theVerbosity >= 1 ) G4cout << "InitGeant4e GEANT4e State= " << PrintG4eState() << " GEANT4 State= " << PrintG4State() << G4endl; |
2664 | + G4ApplicationState currentState = G4StateManager::GetStateManager()->GetCurrentState(); |
2665 | + //----- Initialize run |
2666 | + // if( G4StateManager::GetStateManager()->GetCurrentState() == G4State_PreInit) { |
2667 | + if( theState == G4eState_PreInit && (currentState == G4State_PreInit || currentState == G4State_Idle)) { |
2668 | + // G4eRunManager::GetRunManager()->Initialize(); |
2669 | + theG4eRunManagerKernel->InitializeGeometry(); |
2670 | + theG4eRunManagerKernel->InitializePhysics(); |
2671 | + |
2672 | + InitFieldForBackwards(); |
2673 | + |
2674 | + //- G4StateManager::GetStateManager()->SetNewState(G4State_Idle); |
2675 | + |
2676 | + if( theVerbosity >= 4 ) G4cout << " bef theG4eManager->RunInitialization() " << G4StateManager::GetStateManager()->GetCurrentState() << G4endl; |
2677 | + theG4eRunManagerKernel->RunInitialization(); |
2678 | + if( theVerbosity >= 4 ) G4cout << " aft theG4eManager->RunInitialization() " << G4StateManager::GetStateManager()->GetCurrentState() << G4endl; |
2679 | + |
2680 | + if( !thePropagator ) thePropagator = new G4ePropagatorG4(); // currently the only propagator possible |
2681 | + |
2682 | + InitTrackPropagation(); |
2683 | + } else { |
2684 | + G4cerr << "G4eManager::InitGeant4e: Illegal application state - " |
2685 | + << "G4eManager::InitGeant4e() ignored." << G4endl; |
2686 | + G4cerr << " GEANT4e State= " << PrintG4eState() << " GEANT4 State= " << PrintG4State() << G4endl; |
2687 | + } |
2688 | + |
2689 | + //----- Set the tracking geometry for this propagation |
2690 | + //t SetTrackingGeometry(); |
2691 | + //----- Set the physics list for this propagation |
2692 | + //t SetPhysicsList(); |
2693 | + //----- Set the field propagation parameters for this propagation |
2694 | + //t SetFieldPropagationParameters(); |
2695 | + if( theVerbosity >= 2 ) G4cout << "End InitGeant4e GEANT4e State= " << PrintG4eState() << " GEANT4 State= " << PrintG4State() << G4endl; |
2696 | + |
2697 | +} |
2698 | + |
2699 | + |
2700 | +//----------------------------------------------------------------------- |
2701 | +void G4eManager::InitTrackPropagation() |
2702 | +{ |
2703 | + thePropagator->SetStepN( 0 ); |
2704 | + |
2705 | + SetState( G4eState_Propagating ); |
2706 | + |
2707 | +} |
2708 | + |
2709 | +//----------------------------------------------------------------------- |
2710 | +bool G4eManager::InitFieldForBackwards() |
2711 | +{ |
2712 | + |
2713 | + if( theVerbosity >= 4 ) G4cout << " G4eManager::InitFieldForBackwards() " << G4endl; |
2714 | + //----- Gets the current equation of motion |
2715 | + G4FieldManager* fieldMgr= G4TransportationManager::GetTransportationManager()->GetFieldManager(); |
2716 | + // G4cout << " fieldMgr " << fieldMgr << G4endl; |
2717 | + if( !fieldMgr ) return 0; |
2718 | + |
2719 | + // G4Field* myfield = fieldMgr->GetDetectorField(); |
2720 | + G4ChordFinder* cf = fieldMgr ->GetChordFinder(); |
2721 | + if( !cf ) return 0; |
2722 | + G4MagInt_Driver* mid = cf->GetIntegrationDriver(); |
2723 | + if( !mid ) return 0; |
2724 | + G4MagIntegratorStepper* stepper = const_cast<G4MagIntegratorStepper*>(mid->GetStepper()); |
2725 | + if( !stepper ) return 0; |
2726 | + G4EquationOfMotion* equation = stepper->GetEquationOfMotion(); |
2727 | + |
2728 | + //----- Replaces the equation by a G4eMag_UsualEqRhs to handle backwards tracking |
2729 | + if ( !dynamic_cast<G4eMag_UsualEqRhs*>(equation) ) { |
2730 | + |
2731 | + G4MagneticField* myfield = (G4MagneticField*)fieldMgr->GetDetectorField(); |
2732 | + |
2733 | + // G4Mag_UsualEqRhs* fEquation_usual = dynamic_cast<G4Mag_UsualEqRhs*>(equation); |
2734 | + if( theEquationOfMotion == 0 ) theEquationOfMotion = new G4eMag_UsualEqRhs(myfield); |
2735 | + |
2736 | + //---- Pass the equation of motion to the G4MagIntegratorStepper |
2737 | +// stepper->SetEquationOfMotion( theEquationOfMotion ); |
2738 | + stepper->fEquation_Rhs = theEquationOfMotion; |
2739 | + |
2740 | + |
2741 | + //--- change stepper for speed tests |
2742 | + /* |
2743 | + G4MagIntegratorStepper* g4eStepper = new G4ClassicalRK4(theEquationOfMotion); |
2744 | + //G4MagIntegratorStepper* g4eStepper = new G4ExactHelixStepper(theEquationOfMotion); |
2745 | + |
2746 | + //---- |
2747 | + G4MagneticField* field = static_cast<G4MagneticField*>(const_cast<G4Field*>(fieldMgr->GetDetectorField())); |
2748 | + G4ChordFinder* pChordFinder = new G4ChordFinder(field, 1.0e-2*mm, g4eStepper); |
2749 | + |
2750 | + fieldMgr->SetChordFinder(pChordFinder); |
2751 | + */ |
2752 | + |
2753 | + } |
2754 | + |
2755 | + return 1; |
2756 | +} |
2757 | + |
2758 | + |
2759 | +//----------------------------------------------------------------------- |
2760 | +int G4eManager::Propagate( G4eTrajState* currentTS, const G4eTarget* target, G4eMode mode ) |
2761 | +{ |
2762 | + thePropagationMode = mode; |
2763 | + if( !thePropagator ) thePropagator = new G4ePropagatorG4(); // currently the only propagator possible |
2764 | + |
2765 | + return thePropagator->Propagate( currentTS, target, mode ); |
2766 | +} |
2767 | + |
2768 | + |
2769 | +//----------------------------------------------------------------------- |
2770 | +int G4eManager::PropagateOneStep( G4eTrajState* currentTS, G4eMode mode ) |
2771 | +{ |
2772 | + thePropagationMode = mode; |
2773 | + |
2774 | + if( !thePropagator ) thePropagator = new G4ePropagatorG4(); // currently the only propagator possible |
2775 | + |
2776 | + return thePropagator->PropagateOneStep( currentTS ); |
2777 | +} |
2778 | + |
2779 | +//--------------------------------------------------------------------------- |
2780 | +void G4eManager::InvokePreUserTrackingAction( G4Track* fpTrack ) |
2781 | +{ |
2782 | + const G4UserTrackingAction* fpUserTrackingAction = G4EventManager::GetEventManager()->GetUserTrackingAction(); |
2783 | + if( fpUserTrackingAction != NULL ) { |
2784 | + const_cast<G4UserTrackingAction*>(fpUserTrackingAction)->PreUserTrackingAction((fpTrack) ); |
2785 | + } |
2786 | + |
2787 | +} |
2788 | + |
2789 | + |
2790 | +//--------------------------------------------------------------------------- |
2791 | +void G4eManager::InvokePostUserTrackingAction( G4Track* fpTrack ) |
2792 | +{ |
2793 | + const G4UserTrackingAction* fpUserTrackingAction = G4EventManager::GetEventManager()->GetUserTrackingAction(); |
2794 | + if( fpUserTrackingAction != NULL ) { |
2795 | + const_cast<G4UserTrackingAction*>(fpUserTrackingAction)->PostUserTrackingAction((fpTrack) ); |
2796 | + } |
2797 | + |
2798 | +} |
2799 | + |
2800 | + |
2801 | +//----------------------------------------------------------------------- |
2802 | +bool G4eManager::CloseGeometry() |
2803 | +{ |
2804 | + G4GeometryManager* geomManager = G4GeometryManager::GetInstance(); |
2805 | + geomManager->OpenGeometry(); |
2806 | + if( G4StateManager::GetStateManager()->GetCurrentState() != G4State_GeomClosed) { |
2807 | + G4StateManager::GetStateManager()->SetNewState(G4State_Quit); |
2808 | + } |
2809 | + |
2810 | + return TRUE; |
2811 | +} |
2812 | + |
2813 | + |
2814 | +//--------------------------------------------------------------------------- |
2815 | +void G4eManager::SetUserInitialization(G4VUserDetectorConstruction* userInit) |
2816 | +{ |
2817 | + theG4eRunManagerKernel->SetUserInitialization( userInit); |
2818 | +} |
2819 | + |
2820 | + |
2821 | +//--------------------------------------------------------------------------- |
2822 | +void G4eManager::SetUserInitialization(G4VPhysicalVolume* userInit) |
2823 | +{ |
2824 | + theG4eRunManagerKernel->SetUserInitialization( userInit); |
2825 | +} |
2826 | + |
2827 | + |
2828 | +//--------------------------------------------------------------------------- |
2829 | +void G4eManager::SetUserInitialization(G4VUserPhysicsList* userInit) |
2830 | +{ |
2831 | + theG4eRunManagerKernel->SetUserInitialization( userInit); |
2832 | +} |
2833 | + |
2834 | + |
2835 | +//--------------------------------------------------------------------------- |
2836 | +void G4eManager::SetUserAction(G4UserTrackingAction* userAction) |
2837 | +{ |
2838 | + G4EventManager::GetEventManager()->SetUserAction( userAction ); |
2839 | +} |
2840 | + |
2841 | + |
2842 | +//--------------------------------------------------------------------------- |
2843 | +void G4eManager::SetUserAction(G4UserSteppingAction* userAction) |
2844 | +{ |
2845 | + G4EventManager::GetEventManager()->SetUserAction( userAction ); |
2846 | +} |
2847 | + |
2848 | + |
2849 | +//--------------------------------------------------------------------------- |
2850 | +void G4eManager::SetSteppingManagerVerboseLevel() |
2851 | +{ |
2852 | + G4TrackingManager* trkmgr = G4EventManager::GetEventManager()->GetTrackingManager(); |
2853 | + trkmgr->GetSteppingManager()->SetVerboseLevel( trkmgr->GetVerboseLevel() ); |
2854 | +} |
2855 | + |
2856 | + |
2857 | +//--------------------------------------------------------------------------- |
2858 | +void G4eManager::EventTermination() |
2859 | +{ |
2860 | + SetState( G4eState_Init ); |
2861 | +} |
2862 | + |
2863 | + |
2864 | +//--------------------------------------------------------------------------- |
2865 | +void G4eManager::RunTermination() |
2866 | +{ |
2867 | + SetState( G4eState_PreInit ); |
2868 | + theG4eRunManagerKernel->RunTermination(); |
2869 | +} |
2870 | + |
2871 | + |
2872 | +//--------------------------------------------------------------------------- |
2873 | +G4String G4eManager::PrintG4eState() |
2874 | +{ |
2875 | + return PrintG4eState( theState ); |
2876 | +} |
2877 | + |
2878 | + |
2879 | +//--------------------------------------------------------------------------- |
2880 | +G4String G4eManager::PrintG4eState( G4eState state ) |
2881 | +{ |
2882 | + G4String nam = ""; |
2883 | + switch (state){ |
2884 | + case G4eState_PreInit: |
2885 | + nam = "G4eState_PreInit"; |
2886 | + break; |
2887 | + case G4eState_Init: |
2888 | + nam = "G4eState_Init"; |
2889 | + break; |
2890 | + case G4eState_Propagating: |
2891 | + nam = "G4eState_Propagating"; |
2892 | + break; |
2893 | + case G4eState_TargetCloserThanBoundary: |
2894 | + nam = "G4eState_TargetCloserThanBoundary"; |
2895 | + break; |
2896 | + case G4eState_StoppedAtTarget: |
2897 | + nam = "G4eState_StoppedAtTarget"; |
2898 | + break; |
2899 | + } |
2900 | + |
2901 | + return nam; |
2902 | +} |
2903 | + |
2904 | + |
2905 | +//--------------------------------------------------------------------------- |
2906 | +G4String G4eManager::PrintG4State() |
2907 | +{ |
2908 | + return PrintG4State(G4StateManager::GetStateManager()->GetCurrentState()); |
2909 | +} |
2910 | + |
2911 | + |
2912 | +//--------------------------------------------------------------------------- |
2913 | +G4String G4eManager::PrintG4State( G4ApplicationState state ) |
2914 | +{ |
2915 | + G4String nam = ""; |
2916 | + switch ( state ){ |
2917 | + case G4State_PreInit: |
2918 | + nam = "G4State_PreInit"; |
2919 | + break; |
2920 | + case G4State_Init: |
2921 | + nam = "G4State_Init"; |
2922 | + break; |
2923 | + case G4State_Idle: |
2924 | + nam = "G4State_Idle"; |
2925 | + break; |
2926 | + case G4State_GeomClosed: |
2927 | + nam = "G4State_GeomClosed"; |
2928 | + break; |
2929 | + case G4State_EventProc: |
2930 | + nam = "G4State_EventProc"; |
2931 | + break; |
2932 | + case G4State_Quit: |
2933 | + nam = "G4State_Quit"; |
2934 | + break; |
2935 | + case G4State_Abort: |
2936 | + nam = "G4State_Abort"; |
2937 | + break; |
2938 | + } |
2939 | + |
2940 | + return nam; |
2941 | + |
2942 | +} |
2943 | diff -Naur --exclude CVS source/geant4e/src/G4eMuIonisation.cc source/geant4e/src/G4eMuIonisation.cc |
2944 | --- source/geant4e/src/G4eMuIonisation.cc 1970-01-01 01:00:00.000000000 +0100 |
2945 | +++ source/geant4e/src/G4eMuIonisation.cc 2007-01-17 12:41:58.000000000 +0100 |
2946 | @@ -0,0 +1,170 @@ |
2947 | + |
2948 | +#define private public |
2949 | +#include "G4VEnergyLossProcess.hh" |
2950 | +#define private private |
2951 | +#include "G4eMuIonisation.hh" |
2952 | +#include "G4VMuEnergyLoss.hh" |
2953 | +#include "G4eIonisationChange.hh" |
2954 | +#include "G4ios.hh" |
2955 | +#include "G4Track.hh" |
2956 | +#include "G4Step.hh" |
2957 | +#include "G4VParticleChange.hh" |
2958 | +#include "G4ParticleChange.hh" |
2959 | + |
2960 | +#include "G4eManager.hh" |
2961 | + |
2962 | +G4eMuIonisation::G4eMuIonisation(const G4String& name) |
2963 | + : G4MuIonisation(name) |
2964 | +{ |
2965 | +} |
2966 | + |
2967 | +G4eMuIonisation::~G4eMuIonisation(){} |
2968 | + |
2969 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... |
2970 | +/*inline std::vector<G4Track*>* G4eMuIonisation::SecondariesAlongStep( |
2971 | + const G4Step& , |
2972 | + G4double& , |
2973 | + G4double& , |
2974 | + G4double& ) |
2975 | +{ |
2976 | + std::vector<G4Track*>* neqwp = 0; |
2977 | + |
2978 | + return newp; |
2979 | +}*/ |
2980 | + |
2981 | + |
2982 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... |
2983 | +G4VParticleChange* G4eMuIonisation::AlongStepDoIt( const G4Track& trackData, |
2984 | + const G4Step& stepData) |
2985 | +{ |
2986 | + |
2987 | + G4double energyStart = trackData.GetKineticEnergy(); |
2988 | + |
2989 | + // G4VParticleChange* fParticleChange = G4VEnergyLossProcessAlongStepDoIt( trackData, stepData ); |
2990 | + G4VParticleChange* fParticleChange = G4MuIonisation::AlongStepDoIt( trackData, stepData ); |
2991 | + G4ParticleChangeForLoss* fParticleChangen = static_cast<G4ParticleChangeForLoss*>(fParticleChange); |
2992 | + |
2993 | + RecomputeParticleChange( fParticleChangen, trackData ); |
2994 | + |
2995 | + // return fParticleChangen; |
2996 | + |
2997 | + //------------------------------------- |
2998 | + //--- rescale to energy lost at 1/2 step |
2999 | + |
3000 | + G4double energyEnd = fParticleChangen->GetProposedKineticEnergy(); |
3001 | + // G4cout << " G4eMuIonisation::AlongStepDoIt( energyStart " << energyStart << " energyEnd " << energyEnd << " diff " << energyEnd-energyStart << G4endl; |
3002 | + |
3003 | + G4double energyHalfStep = energyStart - (energyStart-energyEnd)/2.; |
3004 | + G4Track trknew = trackData; |
3005 | + trknew.SetKineticEnergy(energyHalfStep); |
3006 | + |
3007 | + preStepKinEnergy = energyHalfStep; |
3008 | + preStepScaledEnergy = preStepKinEnergy*massRatio; |
3009 | + |
3010 | + // G4cout << " G4eMuIonisation::AlongStepDoIt( preStepKinEnergy set " << preStepKinEnergy << " -trknew.GetKineticEnergy() " << preStepKinEnergy-trknew.GetKineticEnergy() << G4endl; |
3011 | + |
3012 | + fParticleChange = G4MuIonisation::AlongStepDoIt( trknew, stepData ); |
3013 | + |
3014 | + fParticleChangen = static_cast<G4ParticleChangeForLoss*>(fParticleChange); |
3015 | + RecomputeParticleChange( fParticleChangen, trknew ); |
3016 | + |
3017 | + // G4cout << " G4eMuIonisation::AlongStepDoIt( energyEnd new " << fParticleChangen->GetProposedKineticEnergy() << " diff " << trknew.GetKineticEnergy() - fParticleChangen->GetProposedKineticEnergy() << G4endl; |
3018 | + |
3019 | + //recover the 1/2 energy substracted above |
3020 | + fParticleChangen->SetProposedKineticEnergy( fParticleChangen->GetProposedKineticEnergy() + (energyStart-energyEnd)/2. ); |
3021 | + |
3022 | + //t preStepKinEnergy = oldPreStepKinEnergy; |
3023 | + |
3024 | + //- delete condition; |
3025 | + |
3026 | + return fParticleChangen; |
3027 | + |
3028 | +} |
3029 | + |
3030 | + |
3031 | +/* |
3032 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... |
3033 | +G4double G4eMuIonisation::AlongStepGetPhysicalInteractionLength( |
3034 | + const G4Track& track, |
3035 | + G4double previousStepSize, |
3036 | + G4double currentMinimumStep, |
3037 | + G4double& currentSafety, |
3038 | + G4GPILSelection* selection) |
3039 | +{ |
3040 | + |
3041 | + // G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength( |
3042 | + |
3043 | + G4MuIonisation::AlongStepGetPhysicalInteractionLength( |
3044 | + track, previousStepSize, currentMinimumStep, currentSafety, selection ); |
3045 | + |
3046 | + return DBL_MAX; |
3047 | +} |
3048 | + |
3049 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... |
3050 | +G4double G4eMuIonisation::PostStepGetPhysicalInteractionLength( |
3051 | + const G4Track& track, |
3052 | + G4double previousStepSize, |
3053 | + G4ForceCondition* condition ) |
3054 | +{ |
3055 | + |
3056 | + G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength( |
3057 | + track, previousStepSize, condition ); |
3058 | + |
3059 | + *condition = Forced; |
3060 | + return DBL_MAX; |
3061 | +} |
3062 | +*/ |
3063 | + |
3064 | +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... |
3065 | +inline std::vector<G4DynamicParticle*>* G4eMuIonisation::SecondariesPostStep( |
3066 | + G4VEmModel*, |
3067 | + const G4MaterialCutsCouple*, |
3068 | + const G4DynamicParticle*, |
3069 | + G4double&) |
3070 | +{ |
3071 | + std::vector<G4DynamicParticle*>* empty = 0; |
3072 | + return empty; |
3073 | +} |
3074 | + |
3075 | +/* |
3076 | + G4double stepLengthCm = aTrack->GetStep()->GetStepLength()/cm; |
3077 | + G4double DEDX2; |
3078 | + if( stepLengthCm < 1.E-7 ) { |
3079 | + DEDX2=0.; |
3080 | + } |
3081 | + // * Calculate xi factor (KeV). |
3082 | + G4Material* mate = aTrack->GetVolume()->GetLogicalVolume()->GetMaterial(); |
3083 | + G4double effZ, effA; |
3084 | + CalculateEffectiveZandA( mate, effZ, effA ); |
3085 | + |
3086 | + G4double Etot = aTrack->GetTotalEnergy()/GeV; |
3087 | + G4double beta = aTrack->GetMomentum().mag()/GeV / Etot; |
3088 | + G4double mass = aTrack->GetDynamicParticle()->GetMass() / GeV; |
3089 | + G4double gamma = Etot / mass; |
3090 | + |
3091 | + // * Calculate xi factor (KeV). |
3092 | + G4double XI = 153.5*effZ*stepLengthCm*(mate->GetDensity()/mg*mole) / |
3093 | + (effA*beta*beta); |
3094 | + |
3095 | +#ifdef G4EVERBOSE |
3096 | + if( iverbose >= 2 ){ |
3097 | + std::cout << "G4EP:IONI: XI " << XI << " beta " << beta << " gamma " << gamma << std::endl; |
3098 | + std::cout << " density " << (mate->GetDensity()/mg*mole) << " effA " << effA << " step " << stepLengthCm << std::endl; |
3099 | + } |
3100 | +#endif |
3101 | + // * Maximum energy transfer to atomic electron (KeV). |
3102 | + G4double eta = beta*gamma; |
3103 | + G4double etasq = eta*eta; |
3104 | + G4double eMass = 0.51099906/GeV; |
3105 | + G4double massRatio = eMass / mass; |
3106 | + G4double F1 = 2*eMass*etasq; |
3107 | + G4double F2 = 1. + 2. * massRatio * gamma + massRatio * massRatio; |
3108 | + G4double Emax = 1.E+6*F1/F2; |
3109 | + |
3110 | + // * *** and now sigma**2 in GeV |
3111 | + G4double dedxSq = XI*Emax*(1.-(beta*beta/2.))*1.E-12; |
3112 | + |
3113 | +} |
3114 | + |
3115 | + |
3116 | +*/ |
3117 | diff -Naur --exclude CVS source/geant4e/src/G4eNavigator.cc source/geant4e/src/G4eNavigator.cc |
3118 | --- source/geant4e/src/G4eNavigator.cc 1970-01-01 01:00:00.000000000 +0100 |
3119 | +++ source/geant4e/src/G4eNavigator.cc 2007-01-17 12:41:58.000000000 +0100 |
3120 | @@ -0,0 +1,113 @@ |
3121 | +// |
3122 | +#include "G4eNavigator.hh" |
3123 | +#include "G4Navigator.hh" |
3124 | +#include "globals.hh" |
3125 | + |
3126 | +#include "G4eManager.hh" |
3127 | +#include "G4eTargetSurface.hh" |
3128 | + |
3129 | +#include "G4ThreeVector.hh" |
3130 | + |
3131 | +#define geant4e |
3132 | + |
3133 | +G4eNavigator::G4eNavigator():G4Navigator() |
3134 | +{ |
3135 | + G4cout << "creating G4eNavigator" << G4endl;} |
3136 | + |
3137 | +G4eNavigator::~G4eNavigator() |
3138 | +{ |
3139 | +} |
3140 | + |
3141 | + |
3142 | +void G4eNavigator::SetTarget( const G4eTarget* target ) |
3143 | +{ |
3144 | + /* |
3145 | + G4cout << " set target " << G4endl; |
3146 | + if( static_cast<const G4eTargetSurface*>(target) ) { |
3147 | + const G4eTargetSurface* targetc = static_cast<const G4eTargetSurface*>(target); |
3148 | + theTarget = const_cast<G4eTargetSurface*>(targetc); |
3149 | + G4cout << " set target " << theTarget << G4endl; |
3150 | + } else { |
3151 | + theTarget = 0; |
3152 | + } |
3153 | +*/ |
3154 | +} |
3155 | + |
3156 | + |
3157 | +G4double G4eNavigator::ComputeStep (const G4ThreeVector &pGlobalPoint, |
3158 | + const G4ThreeVector &pDirection, |
3159 | + const G4double pCurrentProposedStepLength, |
3160 | + G4double &pNewSafety) |
3161 | +{ |
3162 | + double Step = G4Navigator::ComputeStep(pGlobalPoint,pDirection,pCurrentProposedStepLength,pNewSafety); |
3163 | + |
3164 | +#ifdef geant4e |
3165 | + G4eManager *g4emgr = G4eManager::GetG4eManager(); |
3166 | + if (g4emgr !=0){ |
3167 | + |
3168 | + const G4eTarget* target = g4emgr->GetTarget(); |
3169 | + // G4cout << " G4eNavigator::ComputeStep target = " << target << G4endl; |
3170 | + if( target != 0 ) { |
3171 | + G4double StepPlane = target->GetDistanceFromPoint(pGlobalPoint,pDirection); |
3172 | + if( StepPlane < 0. ) StepPlane = 1.E9; //negative means target is crossed, will not be found |
3173 | + //t if( StepPlane < 0. ) StepPlane = DBL_MAX; //negative means target is crossed, will not be found |
3174 | + if( G4eManager::verbose() >= 5 ) G4cout << " G4eNavigator::ComputeStep target step " << StepPlane << " transp step " << Step << G4endl; |
3175 | + |
3176 | +#ifdef G4EVERBOSE |
3177 | + if( G4eManager::verbose() >= 5 ) target->Dump( "G4eNavigator::ComputeStep Target " ); |
3178 | +#endif |
3179 | + |
3180 | + if(StepPlane<Step){ |
3181 | +#ifdef G4EVERBOSE |
3182 | + if( G4eManager::verbose() >= 2 ) std::cout << "G4eNavigator::ComputeStep TargetCloserThanBoundary " << StepPlane << " < " << Step << std::endl; |
3183 | +#endif |
3184 | + Step = StepPlane; |
3185 | + g4emgr->SetState(G4eState_TargetCloserThanBoundary); |
3186 | + } else { |
3187 | + g4emgr->SetState(G4eState_Propagating); |
3188 | + } |
3189 | + } |
3190 | + |
3191 | + } |
3192 | + |
3193 | +#endif |
3194 | + |
3195 | + pNewSafety = ComputeSafety(pGlobalPoint, pCurrentProposedStepLength); |
3196 | + |
3197 | +#ifdef G4EVERBOSE |
3198 | + if( G4eManager::verbose() >= 3 ) std::cout << "G4eNavigator::ComputeStep " << Step << " ComputeSafety " << pNewSafety << std::endl; |
3199 | +#endif |
3200 | + |
3201 | + |
3202 | + return Step; |
3203 | + |
3204 | +} |
3205 | + |
3206 | +G4double G4eNavigator::ComputeSafety( const G4ThreeVector &pGlobalpoint, |
3207 | + const G4double pMaxLength) |
3208 | +{ |
3209 | + double newSafety = G4Navigator::ComputeSafety(pGlobalpoint,pMaxLength); |
3210 | + |
3211 | +#ifdef geant4e |
3212 | + |
3213 | + G4eManager *g4emgr = G4eManager::GetG4eManager(); |
3214 | + if (g4emgr !=0){ |
3215 | + |
3216 | + const G4eTarget* target = g4emgr->GetTarget(); |
3217 | + if( target != 0 ) { |
3218 | + G4double distance = target->GetDistanceFromPoint(pGlobalpoint); |
3219 | + |
3220 | + if(distance<newSafety){ |
3221 | + newSafety = distance; |
3222 | + // g4emgr->SetState(G4eState(G4eState_TargetCloserThanBoundary) ); |
3223 | + } else{ |
3224 | + // g4emgr->SetState(G4eState(G4eState_Init) ); |
3225 | + } |
3226 | + } |
3227 | + } |
3228 | + |
3229 | +#endif |
3230 | + |
3231 | + return newSafety; |
3232 | + |
3233 | +} |
3234 | diff -Naur --exclude CVS source/geant4e/src/G4ePhysicsList.cc source/geant4e/src/G4ePhysicsList.cc |
3235 | --- source/geant4e/src/G4ePhysicsList.cc 1970-01-01 01:00:00.000000000 +0100 |
3236 | +++ source/geant4e/src/G4ePhysicsList.cc 2007-01-17 12:41:58.000000000 +0100 |
3237 | @@ -0,0 +1,256 @@ |
3238 | +// no decay |
3239 | +// no annihilation |
3240 | + |
3241 | +#include "globals.hh" |
3242 | +#include "G4eMuIonisation.hh" |
3243 | +#include "G4ePhysicsList.hh" |
3244 | +#include "G4ComptonScattering.hh" |
3245 | +#include "G4GammaConversion.hh" |
3246 | +#include "G4PhotoElectricEffect.hh" |
3247 | + |
3248 | +#include "G4eIonisation.hh" |
3249 | +#include "G4eBremsstrahlung.hh" |
3250 | +#include "G4eplusAnnihilation.hh" |
3251 | + |
3252 | +#include "G4MuIonisation.hh" |
3253 | +#include "G4MuBremsstrahlung.hh" |
3254 | +#include "G4MuPairProduction.hh" |
3255 | + |
3256 | +#include "G4hIonisation.hh" |
3257 | + |
3258 | +#include "G4MuIonisation.hh" |
3259 | +#include "G4MuBremsstrahlung.hh" |
3260 | +#include "G4MuPairProduction.hh" |
3261 | + |
3262 | +#include "G4hIonisation.hh" |
3263 | + |
3264 | +#include "G4ParticleDefinition.hh" |
3265 | +#include "G4ParticleWithCuts.hh" |
3266 | +#include "G4ProcessManager.hh" |
3267 | +#include "G4ProcessVector.hh" |
3268 | +#include "G4ParticleTypes.hh" |
3269 | +#include "G4ParticleTable.hh" |
3270 | +#include "G4Material.hh" |
3271 | +#include "G4MaterialTable.hh" |
3272 | +#include "G4ios.hh" |
3273 | +#include <iomanip.h> |
3274 | +#include "G4PhysicsTable.hh" |
3275 | +#include "G4Transportation.hh" |
3276 | + |
3277 | +//#include "G4ePhysListEmModel.hh" |
3278 | +#include "G4eEnergyLossProcess.hh" |
3279 | + |
3280 | +G4ePhysicsList::G4ePhysicsList(): G4VUserPhysicsList() |
3281 | +{ |
3282 | + defaultCutValue = 1.0E+9*cm; // set big step so that AlongStep computes all the energy |
3283 | +} |
3284 | + |
3285 | +G4ePhysicsList::~G4ePhysicsList() |
3286 | +{ |
3287 | +} |
3288 | + |
3289 | +void G4ePhysicsList::ConstructParticle() |
3290 | +{ |
3291 | +// In this method, static member functions should be called |
3292 | + // for all particles which you want to use. |
3293 | + // This ensures that objects of these particle types will be |
3294 | + // created in the program. |
3295 | + // gamma |
3296 | + G4Gamma::GammaDefinition(); |
3297 | + // e+/- |
3298 | + G4Electron::ElectronDefinition(); |
3299 | + G4Positron::PositronDefinition(); |
3300 | + // mu+/- |
3301 | + G4MuonPlus::MuonPlusDefinition(); |
3302 | + G4MuonMinus::MuonMinusDefinition(); |
3303 | + |
3304 | +} |
3305 | + |
3306 | +void G4ePhysicsList::ConstructProcess() |
3307 | +{ |
3308 | + G4Transportation* theTransportationProcess= new G4Transportation(); |
3309 | + |
3310 | +#ifdef G4VERBOSE |
3311 | + if (verboseLevel >= 4){ |
3312 | + G4cout << "G4VUserPhysicsList::ConstructProcess() "<< G4endl; |
3313 | + } |
3314 | +#endif |
3315 | + |
3316 | + // loop over all particles in G4ParticleTable |
3317 | + theParticleIterator->reset(); |
3318 | + while( (*theParticleIterator)() ){ |
3319 | + G4ParticleDefinition* particle = theParticleIterator->value(); |
3320 | + G4ProcessManager* pmanager = particle->GetProcessManager(); |
3321 | + if (!particle->IsShortLived()) { |
3322 | + G4cout << particle << "G4ePhysicsList:: particle process manager " << particle->GetParticleName() << " = " << particle->GetProcessManager() << G4endl; |
3323 | + // Add transportation process for all particles other than "shortlived" |
3324 | + if ( pmanager == 0) { |
3325 | + // Error !! no process manager |
3326 | + G4String particleName = particle->GetParticleName(); |
3327 | + G4Exception("G4VUserPhysicsList::AddTransportation","No process manager", |
3328 | + RunMustBeAborted, particleName ); |
3329 | + } else { |
3330 | + // add transportation with ordering = ( -1, "first", "first" ) |
3331 | + pmanager ->AddProcess(theTransportationProcess); |
3332 | + pmanager ->SetProcessOrderingToFirst(theTransportationProcess, idxAlongStep); |
3333 | + pmanager ->SetProcessOrderingToFirst(theTransportationProcess, idxPostStep); |
3334 | + } |
3335 | + } else { |
3336 | + // shortlived particle case |
3337 | + } |
3338 | + } |
3339 | + |
3340 | + ConstructEM(); |
3341 | +} |
3342 | + |
3343 | +#include "G4eBremsstrahlung.hh" |
3344 | +#include "G4eIonisation.hh" |
3345 | + |
3346 | +#include "G4eIonisation.hh" |
3347 | + |
3348 | +#include "G4MuBremsstrahlung.hh" |
3349 | +#include "G4MuIonisation.hh" |
3350 | +#include "G4MuPairProduction.hh" |
3351 | + |
3352 | +//#include "G4eMuIonisation" |
3353 | + |
3354 | +#include "G4PhysicsTable.hh" |
3355 | + |
3356 | +#include "G4VeEnergyLoss.hh" |
3357 | +#include "G4VEnergyLoss.hh" |
3358 | +#include "G4VMuEnergyLoss.hh" |
3359 | + |
3360 | +#include "G4MuIonisation.hh" |
3361 | + |
3362 | +#include "G4eMagneticFieldLimitsProcess.hh" |
3363 | + |
3364 | +void G4ePhysicsList::ConstructEM() |
3365 | +{ |
3366 | + |
3367 | + G4eMagneticFieldLimitsProcess* theG4eMagneticFieldLimitsProcess = new G4eMagneticFieldLimitsProcess; |
3368 | + |
3369 | + theParticleIterator->reset(); |
3370 | + while( (*theParticleIterator)() ){ |
3371 | + G4ParticleDefinition* particle = theParticleIterator->value(); |
3372 | + G4ProcessManager* pmanager = particle->GetProcessManager(); |
3373 | + G4String particleName = particle->GetParticleName(); |
3374 | + |
3375 | + if (particleName == "gamma") { |
3376 | + // gamma |
3377 | + pmanager->AddDiscreteProcess(new G4GammaConversion()); |
3378 | + pmanager->AddDiscreteProcess(new G4ComptonScattering()); |
3379 | + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); |
3380 | + |
3381 | + } else if (particleName == "e-" || particleName == "e+") { |
3382 | + pmanager->AddProcess(new G4eIonisation, -1, 2,2); |
3383 | + pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); |
3384 | + |
3385 | + //electron or positron |
3386 | + // G4VProcess* theeIonisation = new G4eMuIonisation(); //!!! |
3387 | + // |
3388 | + // add processes |
3389 | + //t pmanager->AddProcess(theeIonisation); |
3390 | + pmanager->AddDiscreteProcess( theG4eMagneticFieldLimitsProcess ); |
3391 | + // |
3392 | + // set ordering for AtRestDoIt |
3393 | + // |
3394 | + // set ordering for AlongStepDoIt |
3395 | + //t pmanager->SetProcessOrdering(theeIonisation, idxAlongStep,1); |
3396 | + // pmanager->SetProcessOrdering(theG4eMagneticFieldLimitsProcess, idxAlongStep,2); |
3397 | + // |
3398 | + // set ordering for PostStepDoIt |
3399 | + //t pmanager->SetProcessOrdering(theeIonisation, idxPostStep,1); |
3400 | + // pmanager->SetProcessOrdering(theG4eMagneticFieldLimitsProcess, idxPostStep,2); |
3401 | + |
3402 | + } else if( particleName == "mu+" || |
3403 | + particleName == "mu-" ) { |
3404 | + |
3405 | + G4bool bElossExtrap; |
3406 | + char* elext = getenv("G4EELOSSEXTRAP"); |
3407 | + if( !elext ) { |
3408 | + bElossExtrap = 0; |
3409 | + } else { |
3410 | + bElossExtrap = atoi( elext ); |
3411 | + } |
3412 | + |
3413 | + if( ! bElossExtrap ) { |
3414 | + G4cout << "!! G4ePhysicsList setting old G4e physics " << G4endl; |
3415 | + //muon |
3416 | + // G4VProcess* aMultipleScattering = new G4MultipleScattering(); |
3417 | + G4VProcess* aBremsstrahlung = new G4MuBremsstrahlung(); |
3418 | + G4VProcess* aPairProduction = new G4MuPairProduction(); |
3419 | + //G4VProcess* anIonisation = new G4MuIonisation(); |
3420 | + |
3421 | + G4VProcess* anIonisation = new G4eMuIonisation(); |
3422 | + |
3423 | + G4VEnergyLossProcess* io = (G4VEnergyLossProcess*)anIonisation; |
3424 | + io->SetLossFluctuations( FALSE ); |
3425 | + // add processes |
3426 | + pmanager->AddProcess(anIonisation,-1,1,1); |
3427 | + // pmanager->AddProcess(aMultipleScattering); |
3428 | + pmanager->AddProcess(aBremsstrahlung,-1,2,2); |
3429 | + pmanager->AddProcess(aPairProduction,-1,3,3); |
3430 | + pmanager->AddDiscreteProcess( theG4eMagneticFieldLimitsProcess ); |
3431 | + // |
3432 | + // set ordering for AlongStepDoIt |
3433 | + // pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1); |
3434 | + pmanager->SetProcessOrdering(anIonisation, idxAlongStep,1); |
3435 | + // pmanager->SetProcessOrdering(theG4eMagneticFieldLimitsProcess, idxAlongStep,2); |
3436 | + |
3437 | + // |
3438 | + // set ordering for PostStepDoIt |
3439 | + pmanager->SetProcessOrdering(anIonisation, idxPostStep,1); |
3440 | + // pmanager->SetProcessOrdering(theG4eMagneticFieldLimitsProcess, idxPostStep,2); |
3441 | + }else { |
3442 | + G4cout << "!! G4ePhysicsList setting new G4e physics (G4eEnergyLossProcess) " << G4endl; |
3443 | + |
3444 | + G4VProcess* anEloss = new G4eEnergyLossProcess(); |
3445 | + |
3446 | + // add processes |
3447 | + pmanager->AddContinuousProcess(anEloss); |
3448 | + pmanager->AddDiscreteProcess( theG4eMagneticFieldLimitsProcess ); |
3449 | + // |
3450 | + // set ordering for AlongStepDoIt |
3451 | + // pmanager->SetProcessOrdering(anEloss, idxAlongStep,1); |
3452 | + |
3453 | + // set ordering for PostStepDoIt |
3454 | + // pmanager->SetProcessOrdering(theG4eMagneticFieldLimitsProcess, idxPostStep,1); |
3455 | + } |
3456 | + } else if ((!particle->IsShortLived()) && |
3457 | + (particle->GetPDGCharge() != 0.0) && |
3458 | + (particle->GetParticleName() != "chargedgeantino")) { |
3459 | + // all others charged particles except geantino |
3460 | + // G4VProcess* aMultipleScattering = new G4MultipleScattering(); |
3461 | + G4VProcess* anIonisation = new G4hIonisation(); |
3462 | + ////G4VProcess* theUserCuts = new G4UserSpecialCuts(); |
3463 | + |
3464 | + // |
3465 | + // add processes |
3466 | + pmanager->AddProcess(anIonisation); |
3467 | + // pmanager->AddProcess(aMultipleScattering); |
3468 | + ////pmanager->AddProcess(theUserCuts); |
3469 | + |
3470 | + // |
3471 | + // set ordering for AlongStepDoIt |
3472 | + // pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1); |
3473 | + pmanager->SetProcessOrdering(anIonisation, idxAlongStep,1); |
3474 | + |
3475 | + // |
3476 | + // set ordering for PostStepDoIt |
3477 | + // pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1); |
3478 | + pmanager->SetProcessOrdering(anIonisation, idxPostStep,1); |
3479 | + ////pmanager->SetProcessOrdering(theUserCuts, idxPostStep,2); |
3480 | + } |
3481 | + } |
3482 | +} |
3483 | + |
3484 | + |
3485 | +void G4ePhysicsList::SetCuts() |
3486 | +{ |
3487 | + // " G4VUserPhysicsList::SetCutsWithDefault" method sets |
3488 | + // the default cut value or all particle types |
3489 | + SetCutsWithDefault(); |
3490 | + // if (verboseLevel>0) |
3491 | + // DumpCutValuesTable(); |
3492 | +} |
3493 | + |
3494 | diff -Naur --exclude CVS source/geant4e/src/G4ePropagatorG4.cc source/geant4e/src/G4ePropagatorG4.cc |
3495 | --- source/geant4e/src/G4ePropagatorG4.cc 1970-01-01 01:00:00.000000000 +0100 |
3496 | +++ source/geant4e/src/G4ePropagatorG4.cc 2007-01-17 12:41:58.000000000 +0100 |
3497 | @@ -0,0 +1,436 @@ |
3498 | +#include "G4ePropagatorG4.hh" |
3499 | +#include "G4eManager.hh" |
3500 | +#include "G4eTrajStateFree.hh" |
3501 | +#include "G4eTrajStateOnSurface.hh" |
3502 | +#include "G4eTargetG4Volume.hh" |
3503 | +#include "G4eNavigator.hh" |
3504 | + |
3505 | +#include "G4DynamicParticle.hh" |
3506 | +#include "G4Track.hh" |
3507 | +#include "G4UserTrackingAction.hh" |
3508 | +#include "G4SteppingManager.hh" |
3509 | +#include "G4EventManager.hh" |
3510 | +#include "G4TrackingManager.hh" |
3511 | +#include "G4StepStatus.hh" |
3512 | +#include "G4GeometryManager.hh" |
3513 | +#include "G4ParticleTable.hh" |
3514 | +#include "G4UnitsTable.hh" |
3515 | +#include "G4StateManager.hh" |
3516 | + |
3517 | +#include "G4VPhysicalVolume.hh" |
3518 | +#include "G4PhysicalVolumeStore.hh" |
3519 | +#include <vector> |
3520 | + |
3521 | + |
3522 | +//--------------------------------------------------------------------------- |
3523 | +G4ePropagatorG4::G4ePropagatorG4(): G4ePropagator() |
3524 | +{ |
3525 | + verbose = G4eManager::verbose(); |
3526 | +#ifdef G4EVERBOSE |
3527 | + if(verbose >= 5) G4cout << "G4ePropagatorG4 " << this << G4endl; |
3528 | +#endif |
3529 | + //t theTrackingGeometry = 0; //by default set it to 0, and when propagation it will be set to the world |
3530 | + |
3531 | + theG4Track = 0; |
3532 | + |
3533 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
3534 | + if( g4emgr->GetState() == G4eState_PreInit ) { |
3535 | + G4cout << " calling InitGeant4e " << G4endl; |
3536 | + g4emgr->InitGeant4e(); |
3537 | + } |
3538 | + |
3539 | + fpSteppingManager = G4EventManager::GetEventManager()->GetTrackingManager()->GetSteppingManager(); |
3540 | + |
3541 | + thePropIsInitialized = false; |
3542 | + |
3543 | +} |
3544 | + |
3545 | + |
3546 | +//----------------------------------------------------------------------- |
3547 | +int G4ePropagatorG4::Propagate( G4eTrajState* currentTS, const G4eTarget* target, G4eMode mode ) |
3548 | +{ |
3549 | + |
3550 | + // to start ierror is set to 1 (= OK) |
3551 | + int ierr = 1; |
3552 | + |
3553 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
3554 | + g4emgr->SetSteppingManagerVerboseLevel(); |
3555 | + |
3556 | + //t if( !thePropIsInitialized ) InitPropagation( target ); // allows several propagation with same field, geometry and target !!! IT CRASHES |
3557 | + |
3558 | + g4emgr->InitTrackPropagation(); |
3559 | + |
3560 | + //--- Do not propagate zero or too low energy particles |
3561 | + if( currentTS->GetMomentum().mag() < 1.E-9*MeV ) { |
3562 | + G4cerr << " !! G4ePropagatorG4::Propagate: energy too low to be propagated " << G4BestUnit(currentTS->GetMomentum().mag(),"Energy") << G4endl; |
3563 | + return -3; |
3564 | + } |
3565 | + |
3566 | + g4emgr->SetMode( mode ); |
3567 | + |
3568 | +#ifdef G4EVERBOSE |
3569 | + if( verbose >= 1 ) G4cout << " =====> starting GEANT4E tracking for " << currentTS->GetParticleType() << " Forwards= " << g4emgr->GetMode() << G4endl; |
3570 | + if(verbose >= 1 ) G4cout << G4endl << "@@@@@@@@@@@@@@@@@@@@@@@@@ NEW STEP " << G4endl; |
3571 | + |
3572 | + if( verbose >= 3 ){ |
3573 | + G4cout << " G4ePropagatorG4::Propagate initialTS "; |
3574 | + // initialTS.Dump(); |
3575 | + G4cout << *currentTS << G4endl; |
3576 | + target->Dump(G4String(" to target ")); |
3577 | + } |
3578 | +#endif |
3579 | + |
3580 | + g4emgr->SetTarget( target ); |
3581 | + // SetTargetToNavigator( target ); |
3582 | + |
3583 | + //----- Create a track |
3584 | + if( theG4Track != 0 ) delete theG4Track; |
3585 | + theG4Track = InitG4Track( *currentTS ); |
3586 | + |
3587 | + //----- Create a G4eTrajStateFree |
3588 | + G4eTrajStateFree* currentTS_FREE = InitFreeTrajState( currentTS ); |
3589 | + |
3590 | + //----- Track the particle |
3591 | + ierr = MakeSteps( currentTS_FREE ); |
3592 | + |
3593 | + //------ Tracking ended, check if target has been reached |
3594 | + // if target not found |
3595 | + if( g4emgr->GetState() != G4eState_StoppedAtTarget ){ |
3596 | + if( theG4Track->GetKineticEnergy() > 0. ) { |
3597 | + ierr = -ierr - 10; |
3598 | + } else { |
3599 | + ierr = -ierr - 20; |
3600 | + } |
3601 | + *currentTS = *currentTS_FREE; |
3602 | + if(verbose >= 0 ) G4cerr << " !!ERROR G4ePropagatorG4: particle does not reach target " << *currentTS << G4endl; |
3603 | + } else { |
3604 | + GetFinalTrajState( currentTS, currentTS_FREE, target ); |
3605 | + } |
3606 | + |
3607 | +#ifdef G4EVERBOSE |
3608 | + if( verbose >= 1 ) G4cout << " G4ePropagator: propagation ended " << G4endl; |
3609 | + if( verbose >= 2 ) G4cout << " Current TrajState " << currentTS << G4endl; |
3610 | +#endif |
3611 | + |
3612 | + g4emgr->InvokePostUserTrackingAction( theG4Track ); |
3613 | + |
3614 | + // Inform end of tracking to physics processes |
3615 | + theG4Track->GetDefinition()->GetProcessManager()->EndTracking(); |
3616 | + |
3617 | + g4emgr->EventTermination(); |
3618 | + |
3619 | + return ierr; |
3620 | +} |
3621 | + |
3622 | + |
3623 | +//----------------------------------------------------------------------- |
3624 | +int G4ePropagatorG4::PropagateOneStep( G4eTrajState* currentTS ) |
3625 | +{ |
3626 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
3627 | + g4emgr->SetSteppingManagerVerboseLevel(); |
3628 | + |
3629 | + if( g4emgr->GetState() == G4eState_PreInit || G4StateManager::GetStateManager()->GetCurrentState() != G4State_GeomClosed) { |
3630 | + //G4cout << g4emgr << " G4eState " << g4emgr->GetState() << " <> " << G4eState_Propagating |
3631 | + // << " G4State " << G4StateManager::GetStateManager()->GetCurrentState()<< " <> " << G4State_GeomClosed << G4endl; |
3632 | + G4Exception("!!! G4ePropagatorG4::PropagateOneStep called before initialization is done for this track, please call G4eManager::InitGeant4e() " ); |
3633 | + } |
3634 | + |
3635 | + // to start ierror is set to 0 (= OK) |
3636 | + int ierr = 0; |
3637 | + |
3638 | + //--- Do not propagate zero or too low energy particles |
3639 | + if( currentTS->GetMomentum().mag() < 1.E-9*MeV ) { |
3640 | + G4cerr << " !! G4ePropagatorG4::PropagateOneStep: energy too low to be propagated " << G4BestUnit(currentTS->GetMomentum().mag(),"Energy") << G4endl; |
3641 | + return -3; |
3642 | + } |
3643 | + |
3644 | +#ifdef G4EVERBOSE |
3645 | + if( verbose >= 1 ) G4cout << " =====> starting GEANT4E tracking for " << currentTS->GetParticleType() << " Forwards= " << g4emgr->GetMode() << G4endl; |
3646 | + |
3647 | + if( verbose >= 3 ){ |
3648 | + G4cout << " G4ePropagatorG4::Propagate initialTS "; |
3649 | + G4cout << *currentTS << G4endl; |
3650 | + } |
3651 | +#endif |
3652 | + |
3653 | + // SetTargetToNavigator( (G4eTarget*)0 ); |
3654 | + |
3655 | + //----- If it is the first step, create a track |
3656 | + if( theStepN == 0 ) theG4Track = InitG4Track( *currentTS ); // set to 0 by the initialization in G4eManager |
3657 | + theStepN++; |
3658 | + |
3659 | + //----- Create a G4eTrajStateFree |
3660 | + G4eTrajStateFree* currentTS_FREE = InitFreeTrajState( currentTS ); |
3661 | + |
3662 | + //----- Track the particle one step |
3663 | + ierr = MakeOneStep( currentTS_FREE ); |
3664 | + |
3665 | + //----- Get the state on target |
3666 | + GetFinalTrajState( currentTS, currentTS_FREE, g4emgr->GetTarget() ); |
3667 | + |
3668 | + return ierr; |
3669 | +} |
3670 | + |
3671 | + |
3672 | +//--------------------------------------------------------------------------- |
3673 | +G4Track* G4ePropagatorG4::InitG4Track( G4eTrajState& initialTS ) |
3674 | +{ |
3675 | + if( verbose >= 5 ) G4cout << "InitG4Track " << G4endl; |
3676 | + |
3677 | + //----- Close geometry |
3678 | + //- bool geometryToBeOptimized = true; |
3679 | + // if(verboseLevel>1) |
3680 | + //- G4GeometryManager* geomManager = G4GeometryManager::GetInstance(); |
3681 | + //- geomManager->OpenGeometry(); |
3682 | + //- geomManager->CloseGeometry(geometryToBeOptimized); |
3683 | + |
3684 | + //----- Create Particle |
3685 | + const G4String partType = initialTS.GetParticleType(); |
3686 | + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); |
3687 | + G4ParticleDefinition* particle = particleTable->FindParticle(partType); |
3688 | + if( particle == 0) { |
3689 | + G4Exception( "!!! G4eManager::InitializeTrack: particle type not defined " + partType ); |
3690 | + } else { |
3691 | + |
3692 | + } |
3693 | + |
3694 | + G4DynamicParticle* DP = |
3695 | + new G4DynamicParticle(particle,initialTS.GetMomentum()); |
3696 | + DP->SetPolarization(0.,0.,0.); |
3697 | + // Set Charge |
3698 | + // if (abs(primaryParticle->GetCharge()-DP->GetPDGCharge())>eplus) { |
3699 | + // DP->SetCharge(primaryParticle->GetCharge()); |
3700 | + if( particle->GetPDGCharge() < 0 ) { |
3701 | + DP->SetCharge(-eplus); |
3702 | + } else { |
3703 | + DP->SetCharge(eplus); |
3704 | + } |
3705 | + // Set decay products to the DynamicParticle |
3706 | + //?? SetDecayProducts( primaryParticle, DP ); |
3707 | + |
3708 | + //----- Create Track |
3709 | + theG4Track = new G4Track(DP, 0., initialTS.GetPosition() ); |
3710 | + theG4Track->SetParentID(0); |
3711 | +#ifdef G4EVERBOSE |
3712 | + if(verbose >= 3) G4cout << " G4eManager new track of energy: " << theG4Track->GetKineticEnergy() << G4endl; |
3713 | +#endif |
3714 | + |
3715 | + //---- Reproduce G4TrackingManager::ProcessOneTrack initialization |
3716 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
3717 | + g4emgr->InvokePreUserTrackingAction( theG4Track ); |
3718 | + |
3719 | + if( fpSteppingManager == 0 ) { |
3720 | + // G4cerr << " event manager " << G4EventManager::GetEventManager() << G4endl; |
3721 | + G4Exception( "G4ePropagator::InitG4Track. GEANT4e error: G4SteppingManager not initialized yet " ); |
3722 | + } else { |
3723 | + fpSteppingManager->SetInitialStep(theG4Track); |
3724 | + } |
3725 | + |
3726 | + // Give SteppingManger the maximum number of processes |
3727 | + fpSteppingManager->GetProcessNumber(); |
3728 | + |
3729 | + // Give track the pointer to the Step |
3730 | + theG4Track->SetStep(fpSteppingManager->GetStep()); |
3731 | + |
3732 | + // Inform beginning of tracking to physics processes |
3733 | + theG4Track->GetDefinition()->GetProcessManager()->StartTracking(theG4Track); |
3734 | + |
3735 | + initialTS.SetG4Track( theG4Track ); |
3736 | + |
3737 | + return theG4Track; |
3738 | +} |
3739 | + |
3740 | + |
3741 | +//----------------------------------------------------------------------- |
3742 | +int G4ePropagatorG4::MakeSteps( G4eTrajStateFree* currentTS_FREE ) |
3743 | +{ |
3744 | + int ierr = 0; |
3745 | + //----- Track the particle Step-by-Step while it is alive |
3746 | + theStepLength = 0.; |
3747 | + |
3748 | + while( (theG4Track->GetTrackStatus() == fAlive) || |
3749 | + (theG4Track->GetTrackStatus() == fStopButAlive) ){ |
3750 | + ierr = MakeOneStep( currentTS_FREE ); |
3751 | + if( ierr != 0 ) break; |
3752 | + //----- Check if last step for GEANT4e |
3753 | + if( CheckIfLastStep( theG4Track ) ) { |
3754 | + if( verbose >= 5 ) G4cout << "!!!! Last Step reached " << G4endl; |
3755 | + break; |
3756 | + } |
3757 | + } |
3758 | + |
3759 | + return ierr; |
3760 | + |
3761 | +} |
3762 | + |
3763 | +//----------------------------------------------------------------------- |
3764 | +int G4ePropagatorG4::MakeOneStep( G4eTrajStateFree* currentTS_FREE ) |
3765 | +{ |
3766 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
3767 | + int ierr = 0; |
3768 | + |
3769 | + //---------- Track one step |
3770 | +#ifdef G4EVERBOSE |
3771 | + if(verbose >= 2 ) G4cout << G4endl << "@@@@@@@@@@@@@@@@@@@@@@@@@ NEW STEP " << G4endl; |
3772 | +#endif |
3773 | + |
3774 | + theG4Track->IncrementCurrentStepNumber(); |
3775 | + //- G4StepStatus stepStatus = |
3776 | + fpSteppingManager->Stepping(); //t |
3777 | + |
3778 | + //---------- Check if Target has been reached (and then set G4eState) |
3779 | +#ifdef G4EVERBOSE |
3780 | + if(verbose >= 5 ) G4cout << " process = " << theG4Track->GetStep()->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName() << " g4estate " << g4emgr->PrintG4eState() << G4endl; |
3781 | +#endif |
3782 | + |
3783 | + // G4eNavigator limits the step if target is closer than boundary (but the winner process is always "Transportation": then geant4e will stop the track |
3784 | + if( theG4Track->GetStep()->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName() == "Transportation" ){ |
3785 | + if( g4emgr->GetState() == G4eState(G4eState_TargetCloserThanBoundary) ){ // target or step length reached |
3786 | + |
3787 | +#ifdef G4EVERBOSE |
3788 | + if(verbose >= 5 ) G4cout << " transportation determined by geant4e " << G4endl; |
3789 | +#endif |
3790 | + |
3791 | + g4emgr->SetState( G4eState_StoppedAtTarget ); |
3792 | + /*t } else if( theFinalTarget->GetType() == G4eTarget_Volume ) { |
3793 | + if( static_cast<G4eTargetG4Volume*>( theFinalTarget )->TargetReached( theG4Track->GetStep() ) ) { |
3794 | + g4emgr->SetState( G4eState_StoppedAtTarget ); |
3795 | + } */ |
3796 | + } |
3797 | + }else if( theG4Track->GetStep()->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName() == "G4eTargetTrackLength" ){ |
3798 | + g4emgr->SetState( G4eState_StoppedAtTarget ); |
3799 | + } |
3800 | + |
3801 | + /*if( g4emgr->GetState() == G4eState_StoppedAtTarget ) { |
3802 | + G4cout << " Run termination " << g4emgr->GetState() << G4endl; |
3803 | + g4emgr->RunTermination(); |
3804 | + }*/ |
3805 | + |
3806 | + |
3807 | + //---------- Propagate error |
3808 | +#ifdef G4EVERBOSE |
3809 | + if(verbose >= 2 ) G4cout << " propagating error " << *currentTS_FREE << G4endl; |
3810 | +#endif |
3811 | + const G4Track* cTrack = const_cast<G4Track*>(theG4Track); |
3812 | + ierr = currentTS_FREE->PropagateError( cTrack ); |
3813 | + |
3814 | +#ifdef G4EVERBOSE |
3815 | + if(verbose >= 3 ) G4cout << " PropagateError returns " << ierr << G4endl; |
3816 | +#endif |
3817 | + |
3818 | + currentTS_FREE->Update( cTrack ); |
3819 | + |
3820 | + theStepLength += theG4Track->GetStepLength(); |
3821 | + |
3822 | + if(ierr != 0 ) { |
3823 | + G4cerr << "!!! G4ePropagatorG4:MakeOneStep returns an error " << ierr << G4endl; |
3824 | + G4cerr << "!!! GEANT4 tracking will be stopped " << G4endl; |
3825 | + } |
3826 | + |
3827 | + return ierr; |
3828 | +} |
3829 | + |
3830 | + |
3831 | +//----------------------------------------------------------------------- |
3832 | +G4eTrajStateFree* G4ePropagatorG4::InitFreeTrajState( G4eTrajState* currentTS ) |
3833 | +{ |
3834 | + G4eTrajStateFree* currentTS_FREE; |
3835 | + //----- Transform the TrajState to Free coordinates if it is OnSurface |
3836 | + if( currentTS->GetTSType() == G4eTS_OS ){ |
3837 | + G4eTrajStateOnSurface* tssd = static_cast<G4eTrajStateOnSurface*>(currentTS); |
3838 | + //t if( theCurrentTS_FREE != 0 ) delete theCurrentTS_FREE; |
3839 | + currentTS_FREE = new G4eTrajStateFree( *tssd ); |
3840 | + }else if( currentTS->GetTSType() == G4eTS_FREE ){ |
3841 | + currentTS_FREE = static_cast<G4eTrajStateFree*>(currentTS); |
3842 | + } else { |
3843 | + G4Exception("G4ePropagatorG4::InitFreeTrajState WRONG TrajState " + currentTS->GetTSType()); |
3844 | + } |
3845 | + |
3846 | + return currentTS_FREE; |
3847 | +} |
3848 | + |
3849 | + |
3850 | + |
3851 | +//----------------------------------------------------------------------- |
3852 | +void G4ePropagatorG4::GetFinalTrajState( G4eTrajState* currentTS, G4eTrajStateFree* currentTS_FREE, const G4eTarget* target ) |
3853 | +{ |
3854 | + |
3855 | +#ifdef G4EVERBOSE |
3856 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
3857 | + if(verbose >= 1 ) G4cout << " G4ePropagatorG4::Propagate: final state " << int(g4emgr->GetState()) << " TSType " << currentTS->GetTSType() << G4endl; |
3858 | +#endif |
3859 | + |
3860 | + if( currentTS->GetTSType() == G4eTS_FREE || |
3861 | + ! g4emgr->GetState() == G4eState_StoppedAtTarget ){ |
3862 | + currentTS = currentTS_FREE; |
3863 | + } else if( currentTS->GetTSType() == G4eTS_OS ){ |
3864 | + if( target->GetType() == G4eTarget_TrkL ){ |
3865 | + G4Exception("G4ePropagatorG4:GetFinalTrajState !! Using a G4eTrajStateOnSurface with a target of type G4eTargetTrackLength "); |
3866 | + } |
3867 | + //- G4eTrajStateOnSurface* tssd = static_cast<G4eTrajStateOnSurface*>(currentTS); |
3868 | + // delete currentTS; |
3869 | + const G4eTargetWithTangentPlane* targetWTP = static_cast<const G4eTargetWithTangentPlane*>(target); |
3870 | + *currentTS = G4eTrajStateOnSurface( *(static_cast<G4eTrajStateFree*>(currentTS_FREE)), targetWTP->GetTangentPlane( currentTS_FREE->GetPosition() ) ); |
3871 | +#ifdef G4EVERBOSE |
3872 | + if(verbose >= 1 ) G4cout << currentTS << " returning tssd " << *currentTS << G4endl; |
3873 | +#endif |
3874 | + delete currentTS_FREE; |
3875 | + } |
3876 | +} |
3877 | + |
3878 | + |
3879 | +//------------------------------------------------------------------------- |
3880 | +G4bool G4ePropagatorG4::CheckIfLastStep( G4Track* aTrack ) |
3881 | +{ |
3882 | + G4bool exception = 0; |
3883 | + G4bool lastG4eStep = false; |
3884 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
3885 | + |
3886 | + if( verbose >= 4 ) G4cout << " G4ePropagatorG4::CheckIfLastStep G4eState= " << int(g4emgr->GetState()) << G4endl; |
3887 | + |
3888 | + //----- Check if this is the last step: track has reached the target or the end of world |
3889 | + if(g4emgr->GetState() == G4eState(G4eState_StoppedAtTarget) ) { |
3890 | + lastG4eStep = true; |
3891 | +#ifdef G4EVERBOSE |
3892 | + if(verbose >= 5 ) G4cout << " G4ePropagatorG4::CheckIfLastStep " << lastG4eStep << " " << int(g4emgr->GetState()) << G4endl; |
3893 | +#endif |
3894 | + } else if( aTrack->GetNextVolume() == 0 ) { |
3895 | + //----- If particle is out of world, without finding the G4eTarget, give a n error/warning |
3896 | + lastG4eStep = true; |
3897 | + if( exception ){ |
3898 | + G4cerr << " !!!EXITING: G4ePropagatorG4::CheckIfLastSte: track extrapolated until end of World without finding the defined target " << G4endl; |
3899 | + exit(1); |
3900 | + } else { |
3901 | + if( verbose >= 1 ) G4cerr << " !!!WARNING: G4ePropagatorG4::CheckIfLastSte: track extrapolated until end of World without finding the defined target " << G4endl; |
3902 | + } |
3903 | + //----- not last step from G4e, but track is stopped (energy exhausted) |
3904 | + } else if( aTrack->GetTrackStatus() == fStopAndKill ) { |
3905 | + if( exception ){ |
3906 | + G4cerr << " !!!EXITING: G4ePropagatorG4::CheckIfLastSte: track extrapolated until energy is exhausted without finding the defined target " << G4endl; |
3907 | + exit(1); |
3908 | + } else { |
3909 | + if( verbose >= 1 ) G4cerr << " !!!WARNING: G4ePropagatorG4::CheckIfLastSte track extrapolated until energy is exhausted without finding the defined target " << G4endl; |
3910 | + lastG4eStep = 1; |
3911 | + } |
3912 | + } |
3913 | + |
3914 | + if( verbose >= 5 ) G4cout << " return CheckIfLastStep " << lastG4eStep << G4endl; |
3915 | + return lastG4eStep; |
3916 | +} |
3917 | + |
3918 | + |
3919 | +//------------------------------------------------------------------------- |
3920 | +void G4ePropagatorG4::SetTargetToNavigator( const G4eTarget* target ) |
3921 | +{ |
3922 | + G4eManager* g4emgr = G4eManager::GetG4eManager(); |
3923 | + |
3924 | + if( target == 0 ){ |
3925 | + target = g4emgr->GetTarget(); |
3926 | + } |
3927 | + |
3928 | + // g4emgr->GetG4eNavigator()->SetTarget( target ); |
3929 | + |
3930 | +} |
3931 | + |
3932 | + |
3933 | + |
3934 | diff -Naur --exclude CVS source/geant4e/src/G4eRunManagerKernel.cc source/geant4e/src/G4eRunManagerKernel.cc |
3935 | --- source/geant4e/src/G4eRunManagerKernel.cc 1970-01-01 01:00:00.000000000 +0100 |
3936 | +++ source/geant4e/src/G4eRunManagerKernel.cc 2007-01-17 12:41:58.000000000 +0100 |
3937 | @@ -0,0 +1,126 @@ |
3938 | + |
3939 | +#include "G4Navigator.hh" |
3940 | +// On Sun, to prevent conflict with ObjectSpace, G4Timer.hh has to be |
3941 | +// loaded *before* globals.hh... |
3942 | +#include "G4Timer.hh" |
3943 | + |
3944 | +#include "G4eRunManagerKernel.hh" |
3945 | + |
3946 | +#include "G4RunManagerKernel.hh" |
3947 | +#include "G4VUserDetectorConstruction.hh" |
3948 | +#include "G4ePhysicsList.hh" |
3949 | +#include "ExN02PhysicsList.hh" |
3950 | +#include "G4TransportationManager.hh" |
3951 | + |
3952 | +//----------------------------------------------------------------------- |
3953 | + |
3954 | +G4eRunManagerKernel* G4eRunManagerKernel::fRunManagerKernel = 0; |
3955 | + |
3956 | +//----------------------------------------------------------------------- |
3957 | +G4eRunManagerKernel* G4eRunManagerKernel::GetRunManagerKernel() |
3958 | +{ return fRunManagerKernel; } |
3959 | + |
3960 | +//----------------------------------------------------------------------- |
3961 | +G4eRunManagerKernel::G4eRunManagerKernel() |
3962 | +{ |
3963 | + if(fRunManagerKernel) |
3964 | + { G4Exception("G4eRunManageKernel constructed twice."); } |
3965 | + fRunManagerKernel = this; |
3966 | + |
3967 | + //----- Look if somebody has created a G4RunManagerKernel |
3968 | + theG4RunManagerKernel = G4RunManagerKernel::GetRunManagerKernel(); |
3969 | + if( theG4RunManagerKernel == 0 ) { |
3970 | + //--- if not create it |
3971 | + theG4RunManagerKernel = new G4RunManagerKernel(); |
3972 | + G4cout << " creating G4RunManagerKernel " << theG4RunManagerKernel << G4endl; |
3973 | + } |
3974 | + |
3975 | + theG4RunManagerKernel->SetVerboseLevel(2); |
3976 | + theUserPhysicsList = 0; |
3977 | + theUserWorld = 0; |
3978 | + |
3979 | +} |
3980 | + |
3981 | +//----------------------------------------------------------------------- |
3982 | +G4eRunManagerKernel::~G4eRunManagerKernel() |
3983 | +{ |
3984 | +} |
3985 | + |
3986 | +//----------------------------------------------------------------------- |
3987 | +void G4eRunManagerKernel::SetUserInitialization(G4VUserDetectorConstruction* userInit) |
3988 | +{ |
3989 | + theUserWorld = userInit->Construct(); |
3990 | +} |
3991 | + |
3992 | +//----------------------------------------------------------------------- |
3993 | +void G4eRunManagerKernel::SetUserInitialization(G4VPhysicalVolume* userInit) |
3994 | +{ |
3995 | + theUserWorld = userInit; |
3996 | +} |
3997 | + |
3998 | +//----------------------------------------------------------------------- |
3999 | +void G4eRunManagerKernel::SetUserInitialization(G4VUserPhysicsList* userInit) |
4000 | +{ |
4001 | + theUserPhysicsList = userInit; |
4002 | +} |
4003 | + |
4004 | +//----------------------------------------------------------------------- |
4005 | + void G4eRunManagerKernel::InitializeGeometry() |
4006 | +{ |
4007 | + //check if user world has been directly called or someone initialized theworld volume already |
4008 | + if( theUserWorld != 0 ) { |
4009 | + theG4RunManagerKernel->DefineWorldVolume( theUserWorld ); |
4010 | + } else { |
4011 | + |
4012 | + G4cerr << "G4 TM " << G4TransportationManager::GetTransportationManager() |
4013 | + << " NAV " << G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking() |
4014 | + << " WORLD " << G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking()->GetWorldVolume() << std::endl; |
4015 | + if ( G4TransportationManager::GetTransportationManager() |
4016 | + ->GetNavigatorForTracking()->GetWorldVolume() == 0 ) { |
4017 | + G4Exception("G4eRunManagerKernel::InitializeGeometry no world defined in your geometry!" ); |
4018 | + } |
4019 | + } |
4020 | + |
4021 | +} |
4022 | + |
4023 | +//----------------------------------------------------------------------- |
4024 | +void G4eRunManagerKernel::InitializePhysics() |
4025 | +{ |
4026 | + |
4027 | + if( theUserPhysicsList == 0 ) { |
4028 | + theG4RunManagerKernel->SetPhysics(new G4ePhysicsList); |
4029 | + // theG4RunManagerKernel->SetPhysics(new ExN02PhysicsList); |
4030 | + }else { |
4031 | + theG4RunManagerKernel->SetPhysics(theUserPhysicsList); |
4032 | + } |
4033 | + G4cout << " G4eRunManagerKernel::InitializePhysics " << G4endl; |
4034 | + theG4RunManagerKernel->InitializePhysics(); |
4035 | + |
4036 | +} |
4037 | + |
4038 | +//----------------------------------------------------------------------- |
4039 | +void G4eRunManagerKernel::RunInitialization() |
4040 | +{ |
4041 | + theG4RunManagerKernel->RunInitialization(); |
4042 | +} |
4043 | + |
4044 | + |
4045 | +//----------------------------------------------------------------------- |
4046 | +void G4eRunManagerKernel::SetUserAction(G4UserTrackingAction* userAction) |
4047 | +{ |
4048 | + |
4049 | + G4EventManager::GetEventManager()->SetUserAction( userAction ); |
4050 | +} |
4051 | + |
4052 | +//----------------------------------------------------------------------- |
4053 | +void G4eRunManagerKernel::SetUserAction(G4UserSteppingAction* userAction) |
4054 | +{ |
4055 | + G4EventManager::GetEventManager()->SetUserAction( userAction ); |
4056 | +} |
4057 | + |
4058 | +//----------------------------------------------------------------------- |
4059 | +void G4eRunManagerKernel::RunTermination() |
4060 | +{ |
4061 | + theG4RunManagerKernel->RunTermination(); |
4062 | +} |
4063 | + |
4064 | diff -Naur --exclude CVS source/geant4e/src/G4eTargetCylindricalSurface.cc source/geant4e/src/G4eTargetCylindricalSurface.cc |
4065 | --- source/geant4e/src/G4eTargetCylindricalSurface.cc 1970-01-01 01:00:00.000000000 +0100 |
4066 | +++ source/geant4e/src/G4eTargetCylindricalSurface.cc 2007-01-17 12:41:58.000000000 +0100 |
4067 | @@ -0,0 +1,149 @@ |
4068 | +// |
4069 | +#include "G4eTargetCylindricalSurface.hh" |
4070 | +#include "G4eManager.hh" //for verbosity checking |
4071 | +#include "geomdefs.hh" |
4072 | + |
4073 | +#include "G4Plane3D.hh" |
4074 | + |
4075 | + // Initialise a single volume, positioned in a frame which is rotated by |
4076 | + // *pRot and traslated by tlate, relative to the coordinate system of the |
4077 | + // mother volume pMotherLogical. |
4078 | + // If pRot=0 the volume is unrotated with respect to its mother. |
4079 | + // The physical volume is added to the mother's logical volume. |
4080 | + // Arguments particular to G4PVPlacement: |
4081 | + // pMany Currently NOT used. For future use to identify if the volume |
4082 | + // is meant to be considered an overlapping structure, or not. |
4083 | + // pCopyNo should be set to 0 for the first volume of a given type. |
4084 | + // This is a very natural way of defining a physical volume, and is |
4085 | + // especially useful when creating subdetectors: the mother volumes are |
4086 | + // not placed until a later stage of the assembly program. |
4087 | + |
4088 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4089 | +G4eTargetCylindricalSurface::G4eTargetCylindricalSurface( const G4float& radius, const G4ThreeVector& trans, const G4RotationMatrix& rotm ): fradius(radius) |
4090 | +{ |
4091 | + theType = G4eTarget_CylindricalSurface; |
4092 | + |
4093 | + ftransform3D = G4Transform3D( rotm.inverse(), -trans ); |
4094 | + Dump( " $$$ creating G4eTargetCylindricalSurface "); |
4095 | +} |
4096 | + |
4097 | + // Additional constructor, which expects a G4Transform3D that represents |
4098 | + // the direct rotation and translation of the solid (NOT of the frame). |
4099 | + // The G4Transform3D argument should be constructed by: |
4100 | + // i) First rotating it to align the solid to the system of |
4101 | + // reference of its mother volume *pMotherLogical, and |
4102 | + // ii) Then placing the solid at the location Transform3D.getTranslation(), |
4103 | + // with respect to the origin of the system of coordinates of the |
4104 | + // mother volume. |
4105 | + // [ This is useful for the people who prefer to think in terms |
4106 | + // of moving objects in a given reference frame. ] |
4107 | + // All other arguments are the same as for the previous constructor. |
4108 | + |
4109 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4110 | +G4eTargetCylindricalSurface::G4eTargetCylindricalSurface( const G4float& radius, const G4Transform3D& trans3D): fradius(radius), ftransform3D(trans3D.inverse()) |
4111 | +{ |
4112 | + theType = G4eTarget_CylindricalSurface; |
4113 | +} |
4114 | + |
4115 | + |
4116 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4117 | +G4ThreeVector G4eTargetCylindricalSurface::Intersect( const G4ThreeVector& pt, const G4ThreeVector& dir ) const |
4118 | +{ |
4119 | + G4ThreeVector localPoint = ftransform3D * G4Point3D(pt); |
4120 | + G4ThreeVector localDir = ftransform3D * G4Normal3D(dir); |
4121 | + return IntersectLocal( localPoint, localDir ); |
4122 | + |
4123 | +} |
4124 | + |
4125 | + |
4126 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4127 | +G4ThreeVector G4eTargetCylindricalSurface::IntersectLocal( const G4ThreeVector& localPoint, const G4ThreeVector& localDir ) const |
4128 | +{ |
4129 | + G4double pointPerp = localPoint.perp(); |
4130 | + G4double dirPerp = localDir.perp(); |
4131 | + |
4132 | + if( dirPerp == 0. ) { |
4133 | + G4Exception("G4eTargetCylindricalSurface::Intersect. Direction is perpendicular to cylinder axis "); |
4134 | + } |
4135 | + |
4136 | + G4double lam = (fradius - pointPerp ) / dirPerp; |
4137 | + G4ThreeVector inters = localPoint + lam * localDir; |
4138 | + |
4139 | +#ifdef G4EVERBOSE |
4140 | + if(G4eManager::verbose() >= 4 ) { |
4141 | + G4cout << " G4eTargetCylindricalSurface::getIntersection " << inters << " " << inters.perp() << G4endl; |
4142 | + } |
4143 | +#endif |
4144 | + |
4145 | + return inters; |
4146 | +} |
4147 | + |
4148 | + |
4149 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4150 | +G4double G4eTargetCylindricalSurface::GetDistanceFromPoint( const G4ThreeVector& pt, const G4ThreeVector& dir ) const |
4151 | +{ |
4152 | + |
4153 | + if( dir.mag() == 0. ) { |
4154 | + G4Exception("G4eTargetCylindricalSurface::GetDistanceFromPoint: direction is zero "); |
4155 | + } |
4156 | + |
4157 | + //transform to local coordinates |
4158 | + G4ThreeVector localPoint = ftransform3D * G4Point3D(pt) ; |
4159 | + G4ThreeVector localDir = ftransform3D * G4Normal3D(dir/dir.mag()); |
4160 | + |
4161 | +#ifdef G4EVERBOSE |
4162 | + if(G4eManager::verbose() >= 4 ) { |
4163 | + G4cout << " global pt " << pt << " dir " << dir << G4endl; |
4164 | + G4cout << " transformed to local coordinates pt " << localPoint << " dir " << localDir << G4endl; |
4165 | + Dump( " cylsurf " ); |
4166 | + } |
4167 | +#endif |
4168 | + |
4169 | + // If parallel to cylinder axis there is no intersection |
4170 | + if( localDir.perp() == 0 ) { |
4171 | + return kInfinity; |
4172 | + } |
4173 | + |
4174 | + |
4175 | + G4ThreeVector inters = IntersectLocal( localPoint, localDir ); |
4176 | + G4double lam = (inters - localPoint).mag(); |
4177 | +#ifdef G4EVERBOSE |
4178 | + if(G4eManager::verbose() >= 3 ) { |
4179 | + G4cout << this << " G4eTargetCylindricalSurface::getDistanceFromPoint " << lam << " point " << pt << " direc " << dir << G4endl; |
4180 | + } |
4181 | +#endif |
4182 | + |
4183 | + return lam; |
4184 | + |
4185 | +} |
4186 | + |
4187 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4188 | +G4double G4eTargetCylindricalSurface::GetDistanceFromPoint( const G4ThreeVector& pt ) const |
4189 | +{ |
4190 | + G4ThreeVector localPoint = ftransform3D * G4Point3D(pt); |
4191 | + |
4192 | + return fradius - localPoint.perp(); |
4193 | +} |
4194 | + |
4195 | + |
4196 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4197 | +G4Plane3D G4eTargetCylindricalSurface::GetTangentPlane( const G4ThreeVector& pt ) const |
4198 | +{ |
4199 | + G4ThreeVector localPoint = ftransform3D * G4Point3D(pt); |
4200 | + |
4201 | + //check that point is at cylinder surface |
4202 | + if( fabs( localPoint.perp() - fradius ) > 1000.*kCarTolerance ) { |
4203 | + G4cerr << " !!WARNING G4eTargetCylindricalSurface::GetTangentPlane: point " << pt << " is not at surface, but it is distant " << localPoint.perp() - fradius << G4endl; |
4204 | + } |
4205 | + |
4206 | + G4Normal3D normal = localPoint - ftransform3D.getTranslation(); |
4207 | + return G4Plane3D( normal ,pt ); |
4208 | + |
4209 | +} |
4210 | + |
4211 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4212 | +void G4eTargetCylindricalSurface::Dump( G4String msg ) const |
4213 | +{ |
4214 | + G4cout << msg << " radius " << fradius << " centre " << ftransform3D.getTranslation() << " rotation " << ftransform3D.getRotation() << G4endl; |
4215 | + |
4216 | +} |
4217 | diff -Naur --exclude CVS source/geant4e/src/G4eTargetG4Volume.cc source/geant4e/src/G4eTargetG4Volume.cc |
4218 | --- source/geant4e/src/G4eTargetG4Volume.cc 1970-01-01 01:00:00.000000000 +0100 |
4219 | +++ source/geant4e/src/G4eTargetG4Volume.cc 2007-01-17 12:41:58.000000000 +0100 |
4220 | @@ -0,0 +1,40 @@ |
4221 | +#include "G4eTargetG4Volume.hh" |
4222 | +#include "G4eManager.hh" //for verbosity checking |
4223 | +#include "G4Point3D.hh" |
4224 | +#include "G4ThreeVector.hh" |
4225 | +#include "G4Step.hh" |
4226 | + |
4227 | + |
4228 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4229 | +G4eTargetG4Volume::G4eTargetG4Volume( const G4String& name ) |
4230 | +{ |
4231 | + theType = G4eTarget_G4Volume; |
4232 | + theName = name; |
4233 | +} |
4234 | + |
4235 | + |
4236 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4237 | +bool G4eTargetG4Volume::TargetReached( const G4Step* aStep ) |
4238 | +{ |
4239 | + if( aStep->GetTrack()->GetNextVolume()->GetName() == theName ){ |
4240 | + return 1; |
4241 | + }else { |
4242 | + return 0; |
4243 | + } |
4244 | +} |
4245 | + |
4246 | + |
4247 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4248 | +G4Plane3D G4eTargetG4Volume::GetTangentPlane( const G4ThreeVector& point ) const |
4249 | +{ |
4250 | + return G4Plane3D( G4Normal3D(1,0.,0), G4Point3D(0,0,0) ); |
4251 | + // return SurfaceNormal*this; |
4252 | +} |
4253 | + |
4254 | + |
4255 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4256 | +void G4eTargetG4Volume::Dump( G4String msg ) const |
4257 | +{ |
4258 | + // G4cout << msg << " point = " << point() << " normal = " << normal() << G4endl; |
4259 | + |
4260 | +} |
4261 | diff -Naur --exclude CVS source/geant4e/src/G4eTargetPlaneSurface.cc source/geant4e/src/G4eTargetPlaneSurface.cc |
4262 | --- source/geant4e/src/G4eTargetPlaneSurface.cc 1970-01-01 01:00:00.000000000 +0100 |
4263 | +++ source/geant4e/src/G4eTargetPlaneSurface.cc 2007-01-17 12:41:58.000000000 +0100 |
4264 | @@ -0,0 +1,83 @@ |
4265 | +#include "G4eTargetPlaneSurface.hh" |
4266 | +#include "G4eManager.hh" //for verbosity checking |
4267 | +#include "G4Point3D.hh" |
4268 | +#include "G4ThreeVector.hh" |
4269 | + |
4270 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4271 | +G4eTargetPlaneSurface::G4eTargetPlaneSurface(G4double a, G4double b, G4double c, G4double d) |
4272 | + : G4Plane3D( a, b, c, d ) |
4273 | +{ |
4274 | + theType = G4eTarget_PlaneSurface; |
4275 | +} |
4276 | + |
4277 | + |
4278 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4279 | +G4eTargetPlaneSurface::G4eTargetPlaneSurface(const G4Normal3D &n, const G4Point3D &p) |
4280 | + : G4Plane3D( n, p ) |
4281 | +{ |
4282 | + theType = G4eTarget_PlaneSurface; |
4283 | +} |
4284 | + |
4285 | + |
4286 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4287 | +G4eTargetPlaneSurface::G4eTargetPlaneSurface(const G4Point3D &p1, const G4Point3D &p2, const G4Point3D &p3) : G4Plane3D( p1, p2, p3 ) |
4288 | +{ |
4289 | + theType = G4eTarget_PlaneSurface; |
4290 | +} |
4291 | + |
4292 | + |
4293 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4294 | +//G4Point3D G4eTargetPlaneSurface::Intersect( const G4Point3D& pt, const G4ThreeVector& dir ) const |
4295 | +G4ThreeVector G4eTargetPlaneSurface::Intersect( const G4ThreeVector& pt, const G4ThreeVector& dir ) const |
4296 | +{ |
4297 | + double lam = GetDistanceFromPoint( pt, dir); |
4298 | + G4Point3D inters = pt + lam * dir; |
4299 | + return inters; |
4300 | + |
4301 | +} |
4302 | + |
4303 | + |
4304 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4305 | +//double G4eTargetPlaneSurface::GetDistanceFromPoint( const G4Point3D& pt, const G4ThreeVector& dir ) const |
4306 | +G4double G4eTargetPlaneSurface::GetDistanceFromPoint( const G4ThreeVector& pt, const G4ThreeVector& dir ) const |
4307 | +{ |
4308 | + if( fabs( dir.mag() -1. ) > 1.E-6 ) G4cerr << "!!!WARNING G4eTargetPlaneSurface::GetDistanceFromPoint: direction is not a unit vector " << dir << G4endl; |
4309 | + double lam = -(a_ * pt.x() + b_ * pt.y() + c_ * pt.z() + d_) / |
4310 | +(a_ * dir.x() + b_ * dir.y() + c_ * dir.z() ); |
4311 | + |
4312 | +#ifdef G4EVERBOSE |
4313 | + if(G4eManager::verbose() >= 5 ) { |
4314 | + G4cout << " G4eTargetPlaneSurface::getDistanceFromPoint " << lam << " point " << pt << " direc " << dir << G4endl; |
4315 | + G4cout << " a_ " << a_ << " b_ " << b_ << " c_ " << c_ << " d_ " << d_ << G4endl; |
4316 | + } |
4317 | +#endif |
4318 | + |
4319 | + return lam; |
4320 | + |
4321 | +} |
4322 | + |
4323 | + |
4324 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4325 | +G4double G4eTargetPlaneSurface::GetDistanceFromPoint( const G4ThreeVector& pt ) const |
4326 | +{ |
4327 | + G4ThreeVector vec = point() - pt; |
4328 | + double alpha = acos( vec * normal() / vec.mag() / normal().mag() ); |
4329 | + double dist = fabs(vec.mag() * cos( alpha )); |
4330 | + |
4331 | + return dist; |
4332 | + |
4333 | +} |
4334 | + |
4335 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4336 | +G4Plane3D G4eTargetPlaneSurface::GetTangentPlane( const G4ThreeVector& ) const |
4337 | +{ |
4338 | + return *this; |
4339 | +} |
4340 | + |
4341 | + |
4342 | +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
4343 | +void G4eTargetPlaneSurface::Dump( G4String msg ) const |
4344 | +{ |
4345 | + G4cout << msg << " point = " << point() << " normal = " << normal() << G4endl; |
4346 | + |
4347 | +} |
4348 | diff -Naur --exclude CVS source/geant4e/src/G4eTargetTrackLength.cc source/geant4e/src/G4eTargetTrackLength.cc |
4349 | --- source/geant4e/src/G4eTargetTrackLength.cc 1970-01-01 01:00:00.000000000 +0100 |
4350 | +++ source/geant4e/src/G4eTargetTrackLength.cc 2007-01-17 12:41:58.000000000 +0100 |
4351 | @@ -0,0 +1,90 @@ |
4352 | + |
4353 | +#include "G4eTargetTrackLength.hh" |
4354 | +#include "G4UnitsTable.hh" |
4355 | +#include "G4eMagneticFieldLimitsMessenger.hh" |
4356 | + |
4357 | +#include "G4ParticleTable.hh" |
4358 | +#include "G4ParticleDefinition.hh" |
4359 | +#include "G4VProcess.hh" |
4360 | +#include "G4ProcessVector.hh" |
4361 | +#include "G4ProcessManager.hh" |
4362 | + |
4363 | +//---------------------------------------------------------------------------- |
4364 | +G4eTargetTrackLength::G4eTargetTrackLength(const double maxTrkLength ) |
4365 | + : G4VDiscreteProcess ("G4eTargetTrackLength"), theMaximumTrackLength( maxTrkLength ) |
4366 | +{ |
4367 | + theType = G4eTarget_TrkL; |
4368 | + |
4369 | + G4ParticleTable::G4PTblDicIterator* theParticleIterator = G4ParticleTable::GetParticleTable()->GetIterator(); |
4370 | + // loop over all particles in G4ParticleTable |
4371 | + theParticleIterator->reset(); |
4372 | + while( (*theParticleIterator)() ){ |
4373 | + G4ParticleDefinition* particle = theParticleIterator->value(); |
4374 | + G4ProcessManager* pmanager = particle->GetProcessManager(); |
4375 | + if (!particle->IsShortLived()) { |
4376 | + // Add transportation process for all particles other than "shortlived" |
4377 | + if ( pmanager == 0) { |
4378 | + // Error !! no process manager |
4379 | + G4String particleName = particle->GetParticleName(); |
4380 | + G4Exception("G4VUserPhysicsList::AddTransportation","No process manager", |
4381 | + RunMustBeAborted, particleName ); |
4382 | + } else { |
4383 | + G4ProcessVector* procvec = pmanager->GetProcessList(); |
4384 | + uint isiz = procvec->size(); |
4385 | + G4bool processAlreadyDefined = false; |
4386 | + //- G4eTargetTrackLength* tlproc = 0; |
4387 | + for( uint ii=0; ii < isiz; ii++ ){ |
4388 | + if( ((*procvec)[ii])->GetProcessName() == "G4eTargetTrackLength") { |
4389 | + pmanager->RemoveProcess( (*procvec)[ii] ); |
4390 | + processAlreadyDefined = true; |
4391 | + } |
4392 | + } |
4393 | + pmanager ->AddDiscreteProcess(this); |
4394 | + isiz = procvec->size(); |
4395 | + } |
4396 | + } else { |
4397 | + // shortlived particle case |
4398 | + } |
4399 | + } |
4400 | + |
4401 | +} |
4402 | + |
4403 | +//----------------------------------------------------------------------- |
4404 | +G4double G4eTargetTrackLength::PostStepGetPhysicalInteractionLength( |
4405 | + const G4Track& track, |
4406 | + G4double, |
4407 | + G4ForceCondition* condition ) |
4408 | +{ |
4409 | + *condition = NotForced; |
4410 | + return GetMeanFreePath( track, 0., condition ); |
4411 | + |
4412 | +} |
4413 | + |
4414 | + |
4415 | +//----------------------------------------------------------------------- |
4416 | +G4double G4eTargetTrackLength::GetMeanFreePath(const class G4Track & track, G4double, enum G4ForceCondition *) |
4417 | +{ |
4418 | + return theMaximumTrackLength - track.GetTrackLength(); |
4419 | +} |
4420 | + |
4421 | + |
4422 | +/* |
4423 | +//----------------------------------------------------------------------- |
4424 | +G4VParticleChange* G4eTargetTrackLength::PostStepDoIt( |
4425 | + const G4Track& aTrack , |
4426 | + const G4Step& ) |
4427 | +{ |
4428 | + G4ParticleChange* aParticleChange = new G4ParticleChange; |
4429 | + aParticleChange->Initialize(aTrack); |
4430 | + return aParticleChange; |
4431 | + |
4432 | +} |
4433 | +*/ |
4434 | + |
4435 | + |
4436 | +//----------------------------------------------------------------------- |
4437 | +void G4eTargetTrackLength::Dump( G4String msg ) const |
4438 | +{ |
4439 | + G4cout << msg << "G4eTargetTrackLength: max track length = " << theMaximumTrackLength << G4endl; |
4440 | + |
4441 | +} |
4442 | diff -Naur --exclude CVS source/geant4e/src/G4eTrajParamFree.cc source/geant4e/src/G4eTrajParamFree.cc |
4443 | --- source/geant4e/src/G4eTrajParamFree.cc 1970-01-01 01:00:00.000000000 +0100 |
4444 | +++ source/geant4e/src/G4eTrajParamFree.cc 2007-01-17 12:41:58.000000000 +0100 |
4445 | @@ -0,0 +1,57 @@ |
4446 | + |
4447 | +#include "G4eTrajParamFree.hh" |
4448 | +#include "G4ThreeVector.hh" |
4449 | +#include <iomanip> |
4450 | + |
4451 | +//------------------------------------------------------------------------ |
4452 | +G4eTrajParamFree::G4eTrajParamFree( const G4Point3D& pos, const G4Vector3D& mom ) |
4453 | +{ |
4454 | + SetParameters( pos, mom ); |
4455 | +} |
4456 | + |
4457 | + |
4458 | +//------------------------------------------------------------------------ |
4459 | +void G4eTrajParamFree::SetParameters( const G4Point3D& pos, const G4Vector3D& mom ) |
4460 | +{ |
4461 | + fDir = mom; |
4462 | + fInvP = 1./mom.mag(); |
4463 | + fLambda = 90.*deg - mom.theta(); |
4464 | + fPhi = mom.phi(); |
4465 | + G4Vector3D vxPerp(0.,0.,0.); |
4466 | + if( mom.mag() > 0.) { |
4467 | + vxPerp = mom/mom.mag(); |
4468 | + } |
4469 | + G4Vector3D vyPerp = G4Vector3D( -vxPerp.y(), vxPerp.x(), 0.); |
4470 | + G4Vector3D vzPerp = vxPerp.cross( vyPerp ); |
4471 | + // check if right handed |
4472 | + // fXPerp = pos.proj( mom ); |
4473 | + G4ThreeVector posv(pos); |
4474 | + if( vyPerp.mag() != 0. ) { |
4475 | + fYPerp = posv.project( vyPerp ).mag(); |
4476 | + fZPerp = posv.project( vzPerp ).mag(); |
4477 | + } else { |
4478 | + fYPerp = 0.; |
4479 | + fZPerp = 0.; |
4480 | + } |
4481 | +} |
4482 | + |
4483 | +//------------------------------------------------------------------------ |
4484 | +void G4eTrajParamFree::Update( const G4Track* aTrack ) |
4485 | +{ |
4486 | + SetParameters( aTrack->GetPosition(), aTrack->GetMomentum() ); |
4487 | + |
4488 | +} |
4489 | + |
4490 | + |
4491 | +//------------------------------------------------------------------------ |
4492 | +std::ostream& operator<<(std::ostream& out, const G4eTrajParamFree& tp) |
4493 | +{ |
4494 | + // long mode = out.setf(std::ios::fixed,std::ios::floatfield); |
4495 | + |
4496 | + // out << tp.theType; |
4497 | + // out << std::setprecision(5) << std::setw(10); |
4498 | + out << std::setprecision(8) << " InvP= " << tp.fInvP << " Theta= " << tp.fLambda << " Phi= " << tp.fPhi << " YPerp= " << tp.fYPerp << " ZPerp= " << tp.fZPerp << G4endl; |
4499 | + out << " momentum direction= " << tp.fDir << G4endl; |
4500 | + |
4501 | + return out; |
4502 | +} |
4503 | diff -Naur --exclude CVS source/geant4e/src/G4eTrajParamOnSurface.cc source/geant4e/src/G4eTrajParamOnSurface.cc |
4504 | --- source/geant4e/src/G4eTrajParamOnSurface.cc 1970-01-01 01:00:00.000000000 +0100 |
4505 | +++ source/geant4e/src/G4eTrajParamOnSurface.cc 2007-01-17 12:41:58.000000000 +0100 |
4506 | @@ -0,0 +1,71 @@ |
4507 | + |
4508 | +#include "G4eTrajParamOnSurface.hh" |
4509 | +#include "G4ThreeVector.hh" |
4510 | +#include <iomanip> |
4511 | + |
4512 | +//------------------------------------------------------------------------ |
4513 | +G4eTrajParamOnSurface::G4eTrajParamOnSurface( const G4Point3D& pos, const G4Vector3D& mom, const G4Vector3D& vecV, const G4Vector3D& vecW ) |
4514 | +{ |
4515 | + SetParameters( pos, mom, vecV, vecW ); |
4516 | +} |
4517 | + |
4518 | +//------------------------------------------------------------------------ |
4519 | +G4eTrajParamOnSurface::G4eTrajParamOnSurface( const G4Point3D& pos, const G4Vector3D& mom, const G4Plane3D& plane ) |
4520 | +{ |
4521 | + SetParameters( pos, mom, plane ); |
4522 | +} |
4523 | + |
4524 | + |
4525 | +//------------------------------------------------------------------------ |
4526 | +void G4eTrajParamOnSurface::SetParameters( const G4Point3D& pos, const G4Vector3D& mom, const G4Plane3D& plane ) |
4527 | +{ |
4528 | + //--- Get two perpendicular vectors: first parallel X (unless normal is parallel to X, then take Y) |
4529 | + G4ThreeVector Xvec(1.,0.,0.); |
4530 | + G4Vector3D vecV = -Xvec.cross(plane.normal()); |
4531 | + if( vecV.mag() < kCarTolerance ) { |
4532 | + G4ThreeVector Zvec(0.,0.,1.); |
4533 | + vecV = Zvec.cross(plane.normal()); |
4534 | + } |
4535 | + |
4536 | + G4Vector3D vecW = plane.normal().cross( vecV ); |
4537 | + |
4538 | + SetParameters( pos, mom, vecV, vecW ); |
4539 | +} |
4540 | + |
4541 | + |
4542 | +//------------------------------------------------------------------------ |
4543 | +void G4eTrajParamOnSurface::SetParameters( const G4Point3D& pos, const G4Vector3D& mom, const G4Vector3D& vecV, const G4Vector3D& vecW ) |
4544 | +{ |
4545 | + if( mom.mag() > 0. ) { |
4546 | + fDir = mom; |
4547 | + fDir /= mom.mag(); |
4548 | + } else { |
4549 | + fDir = G4Vector3D(0.,0.,0.); |
4550 | + } |
4551 | + fVectorV = vecV / vecV.mag(); |
4552 | + fVectorW = vecW / vecW.mag(); |
4553 | + fInvP = 1./mom.mag(); |
4554 | + G4ThreeVector posv(pos); |
4555 | + //check 3 vectors are ortogonal and right handed |
4556 | + |
4557 | + fPV = mom*vecV; |
4558 | + fPW = mom*vecW; |
4559 | + |
4560 | + fV = pos*vecV; |
4561 | + fW = pos*vecW; |
4562 | + |
4563 | +} |
4564 | + |
4565 | + |
4566 | +//------------------------------------------------------------------------ |
4567 | +std::ostream& operator<<(std::ostream& out, const G4eTrajParamOnSurface& tp) |
4568 | +{ |
4569 | + // long mode = out.setf(std::ios::fixed,std::ios::floatfield); |
4570 | + |
4571 | + // out << tp.theType; |
4572 | + // out << std::setprecision(5) << std::setw(10); |
4573 | + out << " InvP= " << tp.fInvP << " PV= " << tp.fPV << " PW= " << tp.fPW << " V= " << tp.fV << " W= " << tp.fW << G4endl; |
4574 | + out << " vectorV direction= " << tp.fVectorV << " vectorW direction= " << tp.fVectorW << G4endl; |
4575 | + |
4576 | + return out; |
4577 | +} |
4578 | diff -Naur --exclude CVS source/geant4e/src/G4eTrajState.cc source/geant4e/src/G4eTrajState.cc |
4579 | --- source/geant4e/src/G4eTrajState.cc 1970-01-01 01:00:00.000000000 +0100 |
4580 | +++ source/geant4e/src/G4eTrajState.cc 2007-01-17 12:41:58.000000000 +0100 |
4581 | @@ -0,0 +1,63 @@ |
4582 | +#include "G4eTrajState.hh" |
4583 | +#include "G4ParticleTable.hh" |
4584 | +#include "G4ParticleDefinition.hh" |
4585 | +#include "G4eManager.hh" |
4586 | + |
4587 | +#include <iomanip> |
4588 | + |
4589 | + |
4590 | +//-------------------------------------------------------------------------- |
4591 | +G4eTrajState::G4eTrajState( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom, const G4eTrajError& errmat): fParticleType(partType), fPosition(pos), fMomentum(mom), fError(errmat) |
4592 | +{ |
4593 | + iverbose = G4eManager::verbose(); |
4594 | + |
4595 | +} |
4596 | + |
4597 | + |
4598 | +//-------------------------------------------------------------------------- |
4599 | +void G4eTrajState::UpdatePosMom( const G4Point3D& pos, const G4Vector3D& mom ) |
4600 | +{ |
4601 | + fPosition = pos; |
4602 | + fMomentum = mom; |
4603 | +} |
4604 | + |
4605 | +//-------------------------------------------------------------------------- |
4606 | +void G4eTrajState::SetData( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom ) |
4607 | +{ |
4608 | + fParticleType = partType; |
4609 | + BuildCharge(); |
4610 | + fPosition = pos; |
4611 | + fMomentum = mom; |
4612 | +} |
4613 | + |
4614 | +//-------------------------------------------------------------------------- |
4615 | +void G4eTrajState::BuildCharge() |
4616 | +{ |
4617 | + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); |
4618 | + G4ParticleDefinition* particle = particleTable->FindParticle(fParticleType); |
4619 | + if( particle == 0) { |
4620 | + G4Exception( "!!!EXITING: G4eTrajState::BuildCharge: particle type not defined: " + fParticleType ); |
4621 | + }else { |
4622 | + fCharge = particle->GetPDGCharge(); |
4623 | + } |
4624 | +} |
4625 | + |
4626 | +//------------------------------------------------------------------------ |
4627 | +void G4eTrajState::DumpPosMomError( std::ostream& out ) const |
4628 | +{ |
4629 | + out << *this; |
4630 | +} |
4631 | + |
4632 | +//-------------------------------------------------------------------------- |
4633 | +std::ostream& operator<<(std::ostream& out, const G4eTrajState& ts) |
4634 | +{ |
4635 | + // long mode = out.setf(std::ios::fixed,std::ios::floatfield); |
4636 | + out |
4637 | + << " G4eTrajState of type " << ts.theTSType << " : partycle: " << ts.fParticleType << " position: " << std::setw(6) << ts.fPosition |
4638 | + << " momentum: " << ts.fMomentum |
4639 | + << " error matrix "; |
4640 | + G4cout << ts.fError << G4endl; |
4641 | + |
4642 | + return out; |
4643 | +} |
4644 | + |
4645 | diff -Naur --exclude CVS source/geant4e/src/G4eTrajStateFree.cc source/geant4e/src/G4eTrajStateFree.cc |
4646 | --- source/geant4e/src/G4eTrajStateFree.cc 1970-01-01 01:00:00.000000000 +0100 |
4647 | +++ source/geant4e/src/G4eTrajStateFree.cc 2007-01-17 12:41:58.000000000 +0100 |
4648 | @@ -0,0 +1,669 @@ |
4649 | +// |
4650 | +#include "G4eTrajStateFree.hh" |
4651 | +#include "G4eTrajParamFree.hh" |
4652 | +#include "G4eTrajStateOnSurface.hh" |
4653 | + |
4654 | +#include "G4Field.hh" |
4655 | +#include "G4FieldManager.hh" |
4656 | +#include "G4TransportationManager.hh" |
4657 | +#include "CLHEP/Matrix/Matrix.h" |
4658 | +#include "G4Material.hh" |
4659 | +#include "G4eManager.hh" |
4660 | +#include <iomanip> |
4661 | + |
4662 | +//------------------------------------------------------------------------ |
4663 | +G4eTrajStateFree::G4eTrajStateFree( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom, const G4eTrajError& errmat) : G4eTrajState( partType, pos, mom, errmat ) |
4664 | +{ |
4665 | + // G4cout << " G4eTrajStateFree::G4eTrajStateFree: pos " << GetPosition() << std::endl; |
4666 | + fTrajParam = G4eTrajParamFree( pos, mom ); |
4667 | + Init(); |
4668 | +} |
4669 | + |
4670 | + |
4671 | +//------------------------------------------------------------------------ |
4672 | +G4eTrajStateFree::G4eTrajStateFree( const G4eTrajStateOnSurface& tpSD ) : G4eTrajState( tpSD.GetParticleType(), tpSD.GetPosition(), tpSD.GetMomentum() ) |
4673 | +{ |
4674 | + // G4ThreeVector planeNormal = tpSD.GetPlaneNormal(); |
4675 | + // double fPt = tpSD.GetMomentum()*planeNormal;//mom projected on normal to plane |
4676 | + // G4eTrajParamOnSurface tpSDparam = tpSD.GetParameters(); |
4677 | + // G4ThreeVector Psc = fPt * planeNormal + tpSDparam.GetPU()*tpSDparam.GetVectorU() + tpSD.GetPV()*tpSD.GetVectorW(); |
4678 | + |
4679 | + fTrajParam = G4eTrajParamFree( fPosition, fMomentum ); |
4680 | + Init(); |
4681 | + |
4682 | + //----- Get the error matrix in SC coordinates |
4683 | + G4eTrajParamOnSurface tpSDparam = tpSD.GetParameters(); |
4684 | + double mom = fMomentum.mag(); |
4685 | + double mom2 = fMomentum.mag2(); |
4686 | + double TVW1 = sqrt( mom2 / ( mom2 + tpSDparam.GetPV()*tpSDparam.GetPV() + tpSDparam.GetPV()*tpSDparam.GetPV()) ); |
4687 | + G4ThreeVector vTVW( TVW1, tpSDparam.GetPV()/mom * TVW1, tpSDparam.GetPW()/mom * TVW1 ); |
4688 | + G4Vector3D vectorU = tpSDparam.GetVectorV().cross( tpSDparam.GetVectorW() ); |
4689 | + G4Vector3D vTN = vTVW.x()*vectorU + vTVW.y()*tpSDparam.GetVectorV() + vTVW.z()*tpSDparam.GetVectorW(); |
4690 | + |
4691 | + double pc2 = asin( vTN.z() ); |
4692 | + double pc3 = atan (vTN.y()/vTN.x()); |
4693 | + |
4694 | +#ifdef G4EVERBOSE |
4695 | + if( iverbose >= 5){ |
4696 | + std::cout << " CHECK: pc2 " << pc2 << " = " << GetParameters().GetLambda() << " diff " << pc2-GetParameters().GetLambda() << std::endl; |
4697 | + std::cout << " CHECK: pc3 " << pc3 << " = " << GetParameters().GetPhi() << " diff " << pc3-GetParameters().GetPhi() << std::endl; |
4698 | + } |
4699 | +#endif |
4700 | + |
4701 | + //--- Get the unit vectors perp to P |
4702 | + double cosl = cos( GetParameters().GetLambda() ); |
4703 | + if (cosl < 1.E-30) cosl = 1.E-30; |
4704 | + double cosl1 = 1./cosl; |
4705 | + G4Vector3D vUN(-vTN.y()*cosl1, vTN.x()*cosl1, 0. ); |
4706 | + G4Vector3D vVN(-vTN.z()*vUN.y(), vTN.z()*vUN.x(), cosl ); |
4707 | + |
4708 | + G4Vector3D vUperp = G4Vector3D( -fMomentum.y(), fMomentum.x(), 0.); |
4709 | + G4Vector3D vVperp = vUperp.cross( fMomentum ); |
4710 | + vUperp *= 1./vUperp.mag(); |
4711 | + vVperp *= 1./vVperp.mag(); |
4712 | + |
4713 | +#ifdef G4EVERBOSE |
4714 | + if( iverbose >= 5){ |
4715 | + std::cout << " CHECK: vUN " << vUN << " = " << vUperp << " diff " << (vUN-vUperp).mag() << std::endl; |
4716 | + std::cout << " CHECK: vVN " << vVN << " = " << vVperp << " diff " << (vVN-vVperp).mag() << std::endl; |
4717 | + } |
4718 | +#endif |
4719 | + |
4720 | + //get the dot products of vectors perpendicular to direction and vector defining SD plane |
4721 | + double dUU = vUperp * tpSD.GetVectorV(); |
4722 | + double dUV = vUperp * tpSD.GetVectorW(); |
4723 | + double dVU = vVperp * tpSD.GetVectorV(); |
4724 | + double dVV = vVperp * tpSD.GetVectorW(); |
4725 | + |
4726 | + |
4727 | + //--- Get transformation first |
4728 | + HepMatrix transfM(5, 5, 1 ); |
4729 | + //--- Get magnetic field |
4730 | + const G4Field* field = G4TransportationManager::GetTransportationManager()->GetFieldManager()->GetDetectorField(); |
4731 | + G4ThreeVector dir = fTrajParam.GetDirection(); |
4732 | + G4double invCosTheta = 1./cos( dir.theta() ); |
4733 | + |
4734 | + if( fCharge != 0 |
4735 | +&& field ) { |
4736 | + G4double pos1[3]; pos1[0] = fPosition.x()*cm; pos1[1] = fPosition.y()*cm; pos1[2] = fPosition.z()*cm; |
4737 | + G4double h1[3]; |
4738 | + field->GetFieldValue( pos1, h1 ); |
4739 | + G4ThreeVector HPre = G4ThreeVector( h1[0], h1[1], h1[2] ) / tesla *10.; |
4740 | + G4double magHPre = HPre.mag(); |
4741 | + G4double invP = 1./fMomentum.mag(); |
4742 | + G4double magHPreM = magHPre * invP; |
4743 | + if( magHPre != 0. ) { |
4744 | + G4double magHPreM2 = fCharge / magHPre; |
4745 | + |
4746 | + G4double Q = -magHPreM * c_light; |
4747 | + G4double sinz = -HPre*vUperp * magHPreM2; |
4748 | + G4double cosz = HPre*vVperp * magHPreM2; |
4749 | + |
4750 | + transfM[1][3] = -Q*dir.y()*sinz; |
4751 | + transfM[1][4] = -Q*dir.z()*sinz; |
4752 | + transfM[2][3] = -Q*dir.y()*cosz*invCosTheta; |
4753 | + transfM[2][4] = -Q*dir.z()*cosz*invCosTheta; |
4754 | + } |
4755 | + } |
4756 | + |
4757 | + transfM[0][0] = 1.; |
4758 | + transfM[1][1] = dir.x()*dVU; |
4759 | + transfM[1][2] = dir.x()*dVV; |
4760 | + transfM[2][1] = dir.x()*dUU*invCosTheta; |
4761 | + transfM[2][2] = dir.x()*dUV*invCosTheta; |
4762 | + transfM[3][3] = dUU; |
4763 | + transfM[3][4] = dUV; |
4764 | + transfM[4][3] = dVU; |
4765 | + transfM[4][4] = dVV; |
4766 | + |
4767 | + fError = G4eTrajError( tpSD.GetError().similarity( transfM ) ); |
4768 | + |
4769 | +#ifdef G4EVERBOSE |
4770 | + if( iverbose >= 1) std::cout << "error matrix SD2SC " << fError << std::endl; |
4771 | + if( iverbose >= 4) std::cout << "G4eTrajStateFree from SD " << *this << std::endl; |
4772 | +#endif |
4773 | +} |
4774 | + |
4775 | + |
4776 | +//------------------------------------------------------------------------ |
4777 | +void G4eTrajStateFree::Init() |
4778 | +{ |
4779 | + theTSType = G4eTS_FREE; |
4780 | + BuildCharge(); |
4781 | + theTransfMat = HepMatrix(5,5,0); |
4782 | + //- theFirstStep = true; |
4783 | +} |
4784 | + |
4785 | +//------------------------------------------------------------------------ |
4786 | +void G4eTrajStateFree::Dump( std::ostream& out ) const |
4787 | +{ |
4788 | + out << *this; |
4789 | +} |
4790 | + |
4791 | +//------------------------------------------------------------------------ |
4792 | +G4int G4eTrajStateFree::Update( const G4Track* aTrack ) |
4793 | +{ |
4794 | + G4int ierr = 0; |
4795 | + fTrajParam.Update( aTrack ); |
4796 | + UpdatePosMom( aTrack->GetPosition(), aTrack->GetMomentum() ); |
4797 | + return ierr; |
4798 | + |
4799 | +} |
4800 | + |
4801 | + |
4802 | +//------------------------------------------------------------------------ |
4803 | +std::ostream& operator<<(std::ostream& out, const G4eTrajStateFree& ts) |
4804 | +{ |
4805 | + out.setf(std::ios::fixed,std::ios::floatfield); |
4806 | + |
4807 | + |
4808 | + ts.DumpPosMomError( out ); |
4809 | + |
4810 | + out << " G4eTrajStateFree: Params: " << ts.fTrajParam << std::endl; |
4811 | + |
4812 | + return out; |
4813 | + |
4814 | +} |
4815 | + |
4816 | + |
4817 | +//------------------------------------------------------------------------ |
4818 | +int G4eTrajStateFree::PropagateError( const G4Track* aTrack ) |
4819 | +{ |
4820 | + G4double stepLengthCm = aTrack->GetStep()->GetStepLength()/cm; |
4821 | + //- if( G4eManager::GetG4eManager()->GetMode() == G4eMode_PropBackwards ) stepLengthCm*= -1; |
4822 | + if( fabs(stepLengthCm) <= kCarTolerance/cm ) return 0; |
4823 | + |
4824 | +#ifdef G4EVERBOSE |
4825 | + if( iverbose >= 2 )std::cout << " G4eTrajStateFree::PropagateError " << std::endl; |
4826 | +#endif |
4827 | + |
4828 | + // * *** ERROR PROPAGATION ON A HELIX ASSUMING SC VARIABLES |
4829 | + G4Point3D vposPost = aTrack->GetPosition()/cm; |
4830 | + G4Vector3D vpPost = aTrack->GetMomentum()/GeV; |
4831 | + // G4Point3D vposPre = fPosition/cm; |
4832 | + // G4Vector3D vpPre = fMomentum/GeV; |
4833 | + G4Point3D vposPre = aTrack->GetStep()->GetPreStepPoint()->GetPosition()/cm; |
4834 | + G4Vector3D vpPre = aTrack->GetStep()->GetPreStepPoint()->GetMomentum()/GeV; |
4835 | + //correct to avoid propagation along Z |
4836 | + if( vpPre.mag() == vpPre.z() ) vpPre.setX( 1.E-6*MeV ); |
4837 | + if( vpPost.mag() == vpPost.z() ) vpPost.setX( 1.E-6*MeV ); |
4838 | + |
4839 | + G4double pPre = vpPre.mag(); |
4840 | + G4double pPost = vpPost.mag(); |
4841 | +#ifdef G4EVERBOSE |
4842 | + if( iverbose >= 2 ) { |
4843 | + std::cout << "G4EP: vposPre " << vposPre << std::endl |
4844 | + << "G4EP: vposPost " << vposPost << std::endl; |
4845 | + std::cout << "G4EP: vpPre " << vpPre << std::endl |
4846 | + << "G4EP: vpPost " << vpPost << std::endl; |
4847 | + std::cout << " err start step " << fError << std::endl; |
4848 | + std::cout << "G4EP: stepLengthCm " << stepLengthCm << std::endl; |
4849 | + } |
4850 | +#endif |
4851 | + |
4852 | + if( pPre == 0. || pPost == 0 ) return 2; |
4853 | + G4double pInvPre = 1./pPre; |
4854 | + G4double pInvPost = 1./pPost; |
4855 | + G4double deltaPInv = pInvPost - pInvPre; |
4856 | + |
4857 | + G4Vector3D vpPreNorm = vpPre * pInvPre; |
4858 | + G4Vector3D vpPostNorm = vpPost * pInvPost; |
4859 | + // if( iverbose >= 2 ) std::cout << "G4EP: vpPreNorm " << vpPreNorm << " vpPostNorm " << vpPostNorm << std::endl; |
4860 | + //return if propagation along Z?? |
4861 | + if( 1. - fabs(vpPostNorm.z()) < kCarTolerance ) return 4; |
4862 | + G4double sinpPre = sin( vpPreNorm.theta() ); //cosine perpendicular to pPre = sine pPre |
4863 | + G4double sinpPost = sin( vpPostNorm.theta() ); //cosine perpendicular to pPost = sine pPost |
4864 | + G4double sinpPostInv = 1./sin( vpPreNorm.theta() ); |
4865 | + |
4866 | +#ifdef G4EVERBOSE |
4867 | + if( iverbose >= 2 ) std::cout << "G4EP: cosl " << sinpPre << " cosl0 " << sinpPost << std::endl; |
4868 | +#endif |
4869 | + //* *** DEFINE TRANSFORMATION MATRIX BETWEEN X1 AND X2 FOR |
4870 | + //* *** NEUTRAL PARTICLE OR FIELDFREE REGION |
4871 | + HepMatrix transf(5, 5, 0 ); |
4872 | + |
4873 | + transf[3][2] = stepLengthCm * sinpPost; |
4874 | + transf[4][1] = stepLengthCm; |
4875 | + for( uint ii=0;ii < 5; ii++ ){ |
4876 | + transf[ii][ii] = 1.; |
4877 | + } |
4878 | +#ifdef G4EVERBOSE |
4879 | + if( iverbose >= 2 ) { |
4880 | + std::cout << "G4EP: transf matrix neutral " << transf; |
4881 | + } |
4882 | +#endif |
4883 | + |
4884 | + // charge X propagation direction |
4885 | + G4double charge = aTrack->GetDynamicParticle()->GetCharge(); |
4886 | + if( G4eManager::GetG4eManager()->GetMode() == G4eMode_PropBackwards ) { |
4887 | + charge *= -1.; |
4888 | + } |
4889 | + // std::cout << " charge " << charge << std::endl; |
4890 | + //t check if particle has charge |
4891 | + //t if( charge == 0 ) goto 45; |
4892 | + // check if the magnetic field is = 0. |
4893 | + |
4894 | + //position is from geant4, it is assumed to be in mm (for debugging, eventually it will not be transformed) |
4895 | + G4double pos1[3]; pos1[0] = vposPre.x()*cm; pos1[1] = vposPre.y()*cm; pos1[2] = vposPre.z()*cm; |
4896 | + G4double pos2[3]; pos2[0] = vposPost.x()*cm; pos2[1] = vposPost.y()*cm; pos2[2] = vposPost.z()*cm; |
4897 | + G4double h1[3], h2[3]; |
4898 | + |
4899 | + const G4Field* field = G4TransportationManager::GetTransportationManager()->GetFieldManager()->GetDetectorField(); |
4900 | + if( !field ) return 0; //goto 45 |
4901 | + |
4902 | + // calculate transformation except it NEUTRAL PARTICLE OR FIELDFREE REGION |
4903 | + if( charge != 0. && field ) { |
4904 | + |
4905 | + field->GetFieldValue( pos1, h1 ); |
4906 | + field->GetFieldValue( pos2, h2 ); |
4907 | + G4ThreeVector HPre = G4ThreeVector( h1[0], h1[1], h1[2] ) / tesla *10.; //10. is to get same dimensions as GEANT3 (kilogauss) |
4908 | + G4ThreeVector HPost= G4ThreeVector( h2[0], h2[1], h2[2] ) / tesla *10.; |
4909 | + G4double magHPre = HPre.mag(); |
4910 | + G4double magHPost = HPost.mag(); |
4911 | +#ifdef G4EVERBOSE |
4912 | + if( iverbose >= 2 ) std::cout << "G4EP: HPre " << HPre << std::endl |
4913 | + << "G4EP: HPost " << HPost << std::endl; |
4914 | +#endif |
4915 | + |
4916 | + if( magHPre + magHPost != 0. ) { |
4917 | + |
4918 | + //* *** CHECK WHETHER H*ALFA/P IS TOO DIFFERENT AT X1 AND X2 |
4919 | + G4double gam; |
4920 | + if( magHPost != 0. ){ |
4921 | + gam = HPost * vpPostNorm / magHPost; |
4922 | + }else { |
4923 | + gam = HPre * vpPreNorm / magHPre; |
4924 | + } |
4925 | + |
4926 | + // G4eMagneticLimitsProcess will limit the step, but based on an straight line trajectory |
4927 | + G4double alphaSqr = 1. - gam * gam; |
4928 | + G4double diffHSqr = ( HPre * pInvPre - HPost * pInvPost ).mag2(); |
4929 | + G4double delhp6Sqr = 300.*300.; |
4930 | +#ifdef G4EVERBOSE |
4931 | + if( iverbose >= 2 ) std::cout << " G4EP: gam " << gam << " alphaSqr " << alphaSqr << " diffHSqr " << diffHSqr << std::endl; |
4932 | +#endif |
4933 | + if( diffHSqr * alphaSqr > delhp6Sqr ) return 3; |
4934 | + |
4935 | + |
4936 | + //* *** DEFINE AVERAGE MAGNETIC FIELD AND GRADIENT |
4937 | + G4double pInvAver = 1./(pInvPre + pInvPost ); |
4938 | + G4double CFACT8 = 2.997925E-4; |
4939 | + //G4double HAver |
4940 | + G4ThreeVector vHAverNorm( (HPre*pInvPre + HPost*pInvPost ) * pInvAver * charge * CFACT8 ); |
4941 | + G4double HAver = vHAverNorm.mag(); |
4942 | + G4double invHAver = 1./HAver; |
4943 | + vHAverNorm *= invHAver; |
4944 | +#ifdef G4EVERBOSE |
4945 | + if( iverbose >= 2 ) std::cout << " G4EP: HaverNorm " << vHAverNorm << " magHAver " << HAver << " charge " << charge<< std::endl; |
4946 | +#endif |
4947 | + |
4948 | + G4double pAver = (pPre+pPost)*0.5; |
4949 | + G4double QAver = -HAver/pAver; |
4950 | + G4double thetaAver = QAver * stepLengthCm; |
4951 | + G4double sinThetaAver = sin(thetaAver); |
4952 | + G4double cosThetaAver = cos(thetaAver); |
4953 | + G4double gamma = vHAverNorm * vpPostNorm; |
4954 | + G4ThreeVector AN2 = vHAverNorm.cross( vpPostNorm ); |
4955 | + |
4956 | +#ifdef G4EVERBOSE |
4957 | + if( iverbose >= 2 ) std::cout << " G4EP: AN2 " << AN2 << std::endl; |
4958 | +#endif |
4959 | + G4double AU = 1./vpPreNorm.perp(); |
4960 | + //t G4ThreeVector vU( vpPreNorm.cross( G4ThreeVector(0.,0.,1.) ) * AU ); |
4961 | + G4ThreeVector vUPre( -AU*vpPreNorm.y(), |
4962 | + AU*vpPreNorm.x(), |
4963 | + 0. ); |
4964 | + G4ThreeVector vVPre( -vpPreNorm.z()*vUPre.y(), |
4965 | + vpPreNorm.z()*vUPre.x(), |
4966 | + vpPreNorm.x()*vUPre.y() - vpPreNorm.y()*vUPre.x() ); |
4967 | + |
4968 | + // |
4969 | + AU = 1./vpPostNorm.perp(); |
4970 | + //t G4ThreeVector vU( vpPostNorm.cross( G4ThreeVector(0.,0.,1.) ) * AU ); |
4971 | + G4ThreeVector vUPost( -AU*vpPostNorm.y(), |
4972 | + AU*vpPostNorm.x(), |
4973 | + 0. ); |
4974 | + G4ThreeVector vVPost( -vpPostNorm.z()*vUPost.y(), |
4975 | + vpPostNorm.z()*vUPost.x(), |
4976 | + vpPostNorm.x()*vUPost.y() - vpPostNorm.y()*vUPost.x() ); |
4977 | +#ifdef G4EVERBOSE |
4978 | + //- std::cout << " vpPostNorm " << vpPostNorm << std::endl; |
4979 | + if( iverbose >= 2 ) std::cout << " G4EP: AU " << AU << " vUPre " << vUPre << " vVPre " << vVPre << " vUPost " << vUPost << " vVPost " << vVPost << std::endl; |
4980 | +#endif |
4981 | + G4Point3D deltaPos( vposPre - vposPost ); |
4982 | + |
4983 | + // * *** COMPLETE TRANSFORMATION MATRIX BETWEEN ERRORS AT X1 AND X2 |
4984 | + // * *** FIELD GRADIENT PERPENDICULAR TO TRACK IS PRESENTLY NOT |
4985 | + // * *** TAKEN INTO ACCOUNT |
4986 | + |
4987 | + G4double QP = QAver * pAver; // = -HAver |
4988 | +#ifdef G4EVERBOSE |
4989 | + if( iverbose >= 2) std::cout << " G4EP: QP " << QP << " QAver " << QAver << " pAver " << pAver << std::endl; |
4990 | +#endif |
4991 | + G4double ANV = -( vHAverNorm.x()*vUPost.x() + vHAverNorm.y()*vUPost.y() ); |
4992 | + G4double ANU = ( vHAverNorm.x()*vVPost.x() + vHAverNorm.y()*vVPost.y() + vHAverNorm.z()*vVPost.z() ); |
4993 | + G4double OMcosThetaAver = 1. - cosThetaAver; |
4994 | +#ifdef G4EVERBOSE |
4995 | + if( iverbose >= 2) std::cout << "G4EP: OMcosThetaAver " << OMcosThetaAver << " cosThetaAver " << cosThetaAver << " thetaAver " << thetaAver << " QAver " << QAver << " stepLengthCm " << stepLengthCm << std::endl; |
4996 | +#endif |
4997 | + G4double TMSINT = thetaAver - sinThetaAver; |
4998 | +#ifdef G4EVERBOSE |
4999 | + if( iverbose >= 2 ) std::cout << " G4EP: ANV " << ANV << " ANU " << ANU << std::endl; |
5000 | +#endif |
5001 | + |
5002 | + G4ThreeVector vHUPre( -vHAverNorm.z() * vUPre.y(), |
5003 | + vHAverNorm.z() * vUPre.x(), |
5004 | + vHAverNorm.x() * vUPre.y() - vHAverNorm.y() * vUPre.x() ); |
5005 | +#ifdef G4EVERBOSE |
5006 | + // if( iverbose >= 2 ) std::cout << "G4EP: HUPre(1) " << vHUPre.x() << " " << vHAverNorm.z() << " " << vUPre.y() << std::endl; |
5007 | +#endif |
5008 | + G4ThreeVector vHVPre( vHAverNorm.y() * vVPre.z() - vHAverNorm.z() * vVPre.y(), |
5009 | + vHAverNorm.z() * vVPre.x() - vHAverNorm.x() * vVPre.z(), |
5010 | + vHAverNorm.x() * vVPre.y() - vHAverNorm.y() * vVPre.x() ); |
5011 | +#ifdef G4EVERBOSE |
5012 | + if( iverbose >= 2 ) std::cout << " G4EP: HUPre " << vHUPre << " HVPre " << vHVPre << std::endl; |
5013 | +#endif |
5014 | + |
5015 | + //------------------- COMPUTE MATRIX |
5016 | + //---------- 1/P |
5017 | + |
5018 | + transf[0][0] = 1.-deltaPInv*pAver*(1.+(vpPostNorm.x()*deltaPos.x()+vpPostNorm.y()*deltaPos.y()+vpPostNorm.z()*deltaPos.z())/stepLengthCm) |
5019 | + +2.*deltaPInv*pAver; |
5020 | + |
5021 | + transf[0][1] = -deltaPInv/thetaAver* |
5022 | + ( TMSINT*gamma*(vHAverNorm.x()*vVPre.x()+vHAverNorm.y()*vVPre.y()+vHAverNorm.z()*vVPre.z()) + |
5023 | + sinThetaAver*(vVPre.x()*vpPostNorm.x()+vVPre.y()*vpPostNorm.y()+vVPre.z()*vpPostNorm.z()) + |
5024 | + OMcosThetaAver*(vHVPre.x()*vpPostNorm.x()+vHVPre.y()*vpPostNorm.y()+vHVPre.z()*vpPostNorm.z()) ); |
5025 | + |
5026 | + transf[0][2] = -sinpPre*deltaPInv/thetaAver* |
5027 | + ( TMSINT*gamma*(vHAverNorm.x()*vUPre.x()+vHAverNorm.y()*vUPre.y() ) + |
5028 | + sinThetaAver*(vUPre.x()*vpPostNorm.x()+vUPre.y()*vpPostNorm.y() ) + |
5029 | + OMcosThetaAver*(vHUPre.x()*vpPostNorm.x()+vHUPre.y()*vpPostNorm.y()+vHUPre.z()*vpPostNorm.z()) ); |
5030 | + |
5031 | + transf[0][3] = -deltaPInv/stepLengthCm*(vUPre.x()*vpPostNorm.x()+vUPre.y()*vpPostNorm.y() ); |
5032 | + |
5033 | + transf[0][4] = -deltaPInv/stepLengthCm*(vVPre.x()*vpPostNorm.x()+vVPre.y()*vpPostNorm.y()+vVPre.z()*vpPostNorm.z()); |
5034 | + |
5035 | + // *** Lambda |
5036 | + transf[1][0] = -QP*ANV*(vpPostNorm.x()*deltaPos.x()+vpPostNorm.y()*deltaPos.y()+vpPostNorm.z()*deltaPos.z()) |
5037 | + *(1.+deltaPInv*pAver); |
5038 | +#ifdef G4EVERBOSE |
5039 | + if(iverbose >= 3) std::cout << "ctransf10= " << transf[1][0] << " " << -QP<< " " << ANV<< " " << vpPostNorm.x()<< " " << deltaPos.x()<< " " << vpPostNorm.y()<< " " << deltaPos.y()<< " " << vpPostNorm.z()<< " " << deltaPos.z() |
5040 | + << " " << deltaPInv<< " " << pAver << std::endl; |
5041 | +#endif |
5042 | + |
5043 | + transf[1][1] = cosThetaAver*(vVPre.x()*vVPost.x()+vVPre.y()*vVPost.y()+vVPre.z()*vVPost.z()) + |
5044 | + sinThetaAver*(vHVPre.x()*vVPost.x()+vHVPre.y()*vVPost.y()+vHVPre.z()*vVPost.z()) + |
5045 | + OMcosThetaAver*(vHAverNorm.x()*vVPre.x()+vHAverNorm.y()*vVPre.y()+vHAverNorm.z()*vVPre.z())* |
5046 | + (vHAverNorm.x()*vVPost.x()+vHAverNorm.y()*vVPost.y()+vHAverNorm.z()*vVPost.z()) + |
5047 | + ANV*( -sinThetaAver*(vVPre.x()*vpPostNorm.x()+vVPre.y()*vpPostNorm.y()+vVPre.z()*vpPostNorm.z()) + |
5048 | + OMcosThetaAver*(vVPre.x()*AN2.x()+vVPre.y()*AN2.y()+vVPre.z()*AN2.z()) - |
5049 | + TMSINT*gamma*(vHAverNorm.x()*vVPre.x()+vHAverNorm.y()*vVPre.y()+vHAverNorm.z()*vVPre.z()) ); |
5050 | + |
5051 | + transf[1][2] = cosThetaAver*(vUPre.x()*vVPost.x()+vUPre.y()*vVPost.y() ) + |
5052 | + sinThetaAver*(vHUPre.x()*vVPost.x()+vHUPre.y()*vVPost.y()+vHUPre.z()*vVPost.z()) + |
5053 | + OMcosThetaAver*(vHAverNorm.x()*vUPre.x()+vHAverNorm.y()*vUPre.y() )* |
5054 | + (vHAverNorm.x()*vVPost.x()+vHAverNorm.y()*vVPost.y()+vHAverNorm.z()*vVPost.z()) + |
5055 | + ANV*( -sinThetaAver*(vUPre.x()*vpPostNorm.x()+vUPre.y()*vpPostNorm.y() ) + |
5056 | + OMcosThetaAver*(vUPre.x()*AN2.x()+vUPre.y()*AN2.y() ) - |
5057 | + TMSINT*gamma*(vHAverNorm.x()*vUPre.x()+vHAverNorm.y()*vUPre.y() ) ); |
5058 | + transf[1][2] = sinpPre*transf[1][3]; |
5059 | + |
5060 | + transf[1][3] = -QAver*ANV*(vUPre.x()*vpPostNorm.x()+vUPre.y()*vpPostNorm.y() ); |
5061 | + |
5062 | + transf[1][4] = -QAver*ANV*(vVPre.x()*vpPostNorm.x()+vVPre.y()*vpPostNorm.y()+vVPre.z()*vpPostNorm.z()); |
5063 | + |
5064 | + // *** Phi |
5065 | + |
5066 | + transf[2][0] = -QP*ANU*(vpPostNorm.x()*deltaPos.x()+vpPostNorm.y()*deltaPos.y()+vpPostNorm.z()*deltaPos.z())*sinpPostInv |
5067 | + *(1.+deltaPInv*pAver); |
5068 | +#ifdef G4EVERBOSE |
5069 | + if(iverbose >= 3)std::cout <<"ctransf20= " << transf[2][0] <<" "<< -QP<<" "<<ANU<<" "<<vpPostNorm.x()<<" "<<deltaPos.x()<<" "<<vpPostNorm.y()<<" "<<deltaPos.y()<<" "<<vpPostNorm.z()<<" "<<deltaPos.z()<<" "<<sinpPostInv |
5070 | + <<" "<<deltaPInv<<" "<<pAver<< std::endl; |
5071 | +#endif |
5072 | + transf[2][1] = cosThetaAver*(vVPre.x()*vUPost.x()+vVPre.y()*vUPost.y() ) + |
5073 | + sinThetaAver*(vHVPre.x()*vUPost.x()+vHVPre.y()*vUPost.y() ) + |
5074 | + OMcosThetaAver*(vHAverNorm.x()*vVPre.x()+vHAverNorm.y()*vVPre.y()+vHAverNorm.z()*vVPre.z())* |
5075 | + (vHAverNorm.x()*vUPost.x()+vHAverNorm.y()*vUPost.y() ) + |
5076 | + ANU*( -sinThetaAver*(vVPre.x()*vpPostNorm.x()+vVPre.y()*vpPostNorm.y()+vVPre.z()*vpPostNorm.z()) + |
5077 | + OMcosThetaAver*(vVPre.x()*AN2.x()+vVPre.y()*AN2.y()+vVPre.z()*AN2.z()) - |
5078 | + TMSINT*gamma*(vHAverNorm.x()*vVPre.x()+vHAverNorm.y()*vVPre.y()+vHAverNorm.z()*vVPre.z()) ); |
5079 | + transf[2][1] = sinpPostInv*transf[2][1]; |
5080 | + |
5081 | + transf[2][2] = cosThetaAver*(vUPre.x()*vUPost.x()+vUPre.y()*vUPost.y() ) + |
5082 | + sinThetaAver*(vHUPre.x()*vUPost.x()+vHUPre.y()*vUPost.y() ) + |
5083 | + OMcosThetaAver*(vHAverNorm.x()*vUPre.x()+vHAverNorm.y()*vUPre.y() )* |
5084 | + (vHAverNorm.x()*vUPost.x()+vHAverNorm.y()*vUPost.y() ) + |
5085 | + ANU*( -sinThetaAver*(vUPre.x()*vpPostNorm.x()+vUPre.y()*vpPostNorm.y() ) + |
5086 | + OMcosThetaAver*(vUPre.x()*AN2.x()+vUPre.y()*AN2.y() ) - |
5087 | + TMSINT*gamma*(vHAverNorm.x()*vUPre.x()+vHAverNorm.y()*vUPre.y() ) ); |
5088 | + transf[2][2] = sinpPostInv*sinpPre*transf[2][2]; |
5089 | + |
5090 | + transf[2][3] = -QAver*ANU*(vUPre.x()*vpPostNorm.x()+vUPre.y()*vpPostNorm.y() )*sinpPostInv; |
5091 | +#ifdef G4EVERBOSE |
5092 | + if(iverbose >= 3)std::cout <<"ctransf23= " << transf[2][3] <<" "<< -QAver<<" "<<ANU<<" "<<vUPre.x()<<" "<<vpPostNorm.x()<<" "<< vUPre.y()<<" "<<vpPostNorm.y()<<" "<<sinpPostInv<<std::endl; |
5093 | +#endif |
5094 | + |
5095 | + transf[2][4] = -QAver*ANU*(vVPre.x()*vpPostNorm.x()+vVPre.y()*vpPostNorm.y()+vVPre.z()*vpPostNorm.z())*sinpPostInv; |
5096 | + |
5097 | + // *** Yt |
5098 | + |
5099 | + transf[3][0] = pAver*(vUPost.x()*deltaPos.x()+vUPost.y()*deltaPos.y() ) |
5100 | + *(1.+deltaPInv*pAver); |
5101 | +#ifdef G4EVERBOSE |
5102 | + if(iverbose >= 3) std::cout <<"ctransf30= " << transf[3][0] <<" "<< pAver<<" "<<vUPost.x()<<" "<<deltaPos.x()<<" "<<vUPost.y()<<" "<<deltaPos.y() |
5103 | + <<" "<<deltaPInv<<" "<<pAver<<std::endl; |
5104 | +#endif |
5105 | + |
5106 | + transf[3][1] = ( sinThetaAver*(vVPre.x()*vUPost.x()+vVPre.y()*vUPost.y() ) + |
5107 | + OMcosThetaAver*(vHVPre.x()*vUPost.x()+vHVPre.y()*vUPost.y() ) + |
5108 | + TMSINT*(vHAverNorm.x()*vUPost.x()+vHAverNorm.y()*vUPost.y() )* |
5109 | + (vHAverNorm.x()*vVPre.x()+vHAverNorm.y()*vVPre.y()+vHAverNorm.z()*vVPre.z()) )/QAver; |
5110 | + |
5111 | + transf[3][2] = ( sinThetaAver*(vUPre.x()*vUPost.x()+vUPre.y()*vUPost.y() ) + |
5112 | + OMcosThetaAver*(vHUPre.x()*vUPost.x()+vHUPre.y()*vUPost.y() ) + |
5113 | + TMSINT*(vHAverNorm.x()*vUPost.x()+vHAverNorm.y()*vUPost.y() )* |
5114 | + (vHAverNorm.x()*vUPre.x()+vHAverNorm.y()*vUPre.y() ) )*sinpPre/QAver; |
5115 | +#ifdef G4EVERBOSE |
5116 | + if(iverbose >= 3) std::cout <<"ctransf32= " << transf[3][2] <<" "<< sinThetaAver<<" "<<vUPre.x()<<" "<<vUPost.x()<<" "<<vUPre.y()<<" "<<vUPost.y() <<" "<< |
5117 | + OMcosThetaAver<<" "<<vHUPre.x()<<" "<<vUPost.x()<<" "<<vHUPre.y()<<" "<<vUPost.y() <<" "<< |
5118 | + TMSINT<<" "<<vHAverNorm.x()<<" "<<vUPost.x()<<" "<<vHAverNorm.y()<<" "<<vUPost.y() <<" "<< |
5119 | + vHAverNorm.x()<<" "<<vUPre.x()<<" "<<vHAverNorm.y()<<" "<<vUPre.y() <<" "<<sinpPre<<" "<<QAver<<std::endl; |
5120 | +#endif |
5121 | + |
5122 | + transf[3][3] = (vUPre.x()*vUPost.x()+vUPre.y()*vUPost.y() ); |
5123 | + |
5124 | + transf[3][4] = (vVPre.x()*vUPost.x()+vVPre.y()*vUPost.y() ); |
5125 | + |
5126 | + // *** Zt |
5127 | + transf[4][0] = pAver*(vVPost.x()*deltaPos.x()+vVPost.y()*deltaPos.y()+vVPost.z()*deltaPos.z()) |
5128 | + *(1.+deltaPInv*pAver); |
5129 | + |
5130 | + transf[4][1] = ( sinThetaAver*(vVPre.x()*vVPost.x()+vVPre.y()*vVPost.y()+vVPre.z()*vVPost.z()) + |
5131 | + OMcosThetaAver*(vHVPre.x()*vVPost.x()+vHVPre.y()*vVPost.y()+vHVPre.z()*vVPost.z()) + |
5132 | + TMSINT*(vHAverNorm.x()*vVPost.x()+vHAverNorm.y()*vVPost.y()+vHAverNorm.z()*vVPost.z())* |
5133 | + (vHAverNorm.x()*vVPre.x()+vHAverNorm.y()*vVPre.y()+vHAverNorm.z()*vVPre.z()) )/QAver; |
5134 | +#ifdef G4EVERBOSE |
5135 | + if(iverbose >= 3)std::cout <<"ctransf41= " << transf[4][1] <<" "<< sinThetaAver<<" "<< OMcosThetaAver <<" "<<TMSINT<<" "<< vVPre <<" "<<vVPost <<" "<<vHVPre<<" "<<vHAverNorm <<" "<< QAver<<std::endl; |
5136 | +#endif |
5137 | + |
5138 | + transf[4][2] = ( sinThetaAver*(vUPre.x()*vVPost.x()+vUPre.y()*vVPost.y() ) + |
5139 | + OMcosThetaAver*(vHUPre.x()*vVPost.x()+vHUPre.y()*vVPost.y()+vHUPre.z()*vVPost.z()) + |
5140 | + TMSINT*(vHAverNorm.x()*vVPost.x()+vHAverNorm.y()*vVPost.y()+vHAverNorm.z()*vVPost.z())* |
5141 | + (vHAverNorm.x()*vUPre.x()+vHAverNorm.y()*vUPre.y() ) )*sinpPre/QAver; |
5142 | + |
5143 | + transf[4][3] = (vUPre.x()*vVPost.x()+vUPre.y()*vVPost.y() ); |
5144 | + |
5145 | + transf[4][4] = (vVPre.x()*vVPost.x()+vVPre.y()*vVPost.y()+vVPre.z()*vVPost.z()); |
5146 | + // if(iverbose >= 3) std::cout <<"ctransf44= " << transf[4][4] <<" "<< vVPre.x() <<" "<<vVPost.x() <<" "<< vVPre.y() <<" "<< vVPost.y() <<" "<< vVPre.z() <<" "<< vVPost.z() << std::endl; |
5147 | + |
5148 | + |
5149 | +#ifdef G4EVERBOSE |
5150 | + if( iverbose >= 1 ) std::cout << "G4EP: transf matrix computed " << transf << std::endl; |
5151 | +#endif |
5152 | + /* for( int ii=0;ii<5;ii++){ |
5153 | + for( int jj=0;jj<5;jj++){ |
5154 | + std::cout << transf[ii][jj] << " "; |
5155 | + } |
5156 | + std::cout << std::endl; |
5157 | + } */ |
5158 | + } |
5159 | + } |
5160 | + // end of calculate transformation except it NEUTRAL PARTICLE OR FIELDFREE REGION |
5161 | + /* if( iverbose >= 1 ) std::cout << "G4EP: transf not updated but initialized " << theFirstStep << std::endl; |
5162 | + if( theFirstStep ) { |
5163 | + theTransfMat = transf; |
5164 | + theFirstStep = false; |
5165 | + }else{ |
5166 | + theTransfMat = theTransfMat * transf; |
5167 | + if( iverbose >= 1 ) std::cout << "G4EP: transf matrix accumulated" << theTransfMat << std::endl; |
5168 | + } |
5169 | + */ |
5170 | + theTransfMat = transf; |
5171 | +#ifdef G4EVERBOSE |
5172 | + if( iverbose >= 1 ) std::cout << "G4EP: error matrix before transformation " << fError << std::endl; |
5173 | + if( iverbose >= 2 ) std::cout << " tf * err " << theTransfMat * fError << std::endl |
5174 | + << " transf matrix " << theTransfMat.T() << std::endl; |
5175 | +#endif |
5176 | + |
5177 | + fError = fError.similarity(theTransfMat).T(); |
5178 | + //- fError = transf * fError * transf.T(); |
5179 | +#ifdef G4EVERBOSE |
5180 | + if( iverbose >= 1 ) std::cout << "G4EP: error matrix propagated " << fError << std::endl; |
5181 | +#endif |
5182 | + |
5183 | + //? S = B*S*BT S.similarity(B) |
5184 | + //? R = S |
5185 | + // not needed * *** TRANSFORM ERROR MATRIX FROM INTERNAL TO EXTERNAL VARIABLES; |
5186 | + |
5187 | + PropagateErrorMSC( aTrack ); |
5188 | + |
5189 | + PropagateErrorIoni( aTrack ); |
5190 | + |
5191 | + return 0; |
5192 | +} |
5193 | + |
5194 | + |
5195 | +//------------------------------------------------------------------------ |
5196 | +int G4eTrajStateFree::PropagateErrorMSC( const G4Track* aTrack ) |
5197 | +{ |
5198 | + G4ThreeVector vpPre = aTrack->GetMomentum()/GeV; |
5199 | + G4double pPre = vpPre.mag(); |
5200 | + G4double pBeta = pPre*pPre / (aTrack->GetTotalEnergy()/GeV); |
5201 | + G4double stepLengthCm = aTrack->GetStep()->GetStepLength()/cm; |
5202 | + |
5203 | + G4Material* mate = aTrack->GetVolume()->GetLogicalVolume()->GetMaterial(); |
5204 | + G4double effZ, effA; |
5205 | + CalculateEffectiveZandA( mate, effZ, effA ); |
5206 | + |
5207 | +#ifdef G4EVERBOSE |
5208 | + if( iverbose >= 4 ) std::cout << "material " << mate->GetName() |
5209 | + //<< " " << mate->GetZ() << " " << mate->GetA() |
5210 | + << " " << effZ << " " << effA |
5211 | + << " " << mate->GetDensity()/g*mole << " " << mate->GetRadlen()/cm << " " << mate->GetNuclearInterLength()/cm << std::endl; |
5212 | +#endif |
5213 | + |
5214 | + G4double RI = stepLengthCm / (aTrack->GetVolume()->GetLogicalVolume()->GetMaterial()->GetRadlen()/cm); |
5215 | +#ifdef G4EVERBOSE |
5216 | + if( iverbose >= 4 ) std::cout << std::setprecision(6) << std::setw(6) << "G4EP:MSC: RI " << RI << " stepLengthCm " << stepLengthCm << " radlen " << (aTrack->GetVolume()->GetLogicalVolume()->GetMaterial()->GetRadlen()/cm) << " " << RI*1.e10 << std::endl; |
5217 | +#endif |
5218 | + G4double charge = aTrack->GetDynamicParticle()->GetCharge(); |
5219 | + G4double DD = 1.8496E-4*RI*(charge/pBeta * charge/pBeta ); |
5220 | +#ifdef G4EVERBOSE |
5221 | + if( iverbose >= 3 ) std::cout << "G4EP:MSC: D*1E6= " << DD*1.E6 <<" pBeta " << pBeta << std::endl; |
5222 | +#endif |
5223 | + G4double S1 = DD*stepLengthCm*stepLengthCm/3.; |
5224 | + G4double S2 = DD; |
5225 | + G4double S3 = DD*stepLengthCm/2.; |
5226 | + |
5227 | + G4double CLA = sqrt( vpPre.x() * vpPre.x() + vpPre.y() * vpPre.y() )/pPre; |
5228 | +#ifdef G4EVERBOSE |
5229 | + if( iverbose >= 2 ) std::cout << std::setw(6) << "G4EP:MSC: RI " << RI << " S1 " << S1 << " S2 " << S2 << " S3 " << S3 << " CLA " << CLA << std::endl; |
5230 | +#endif |
5231 | + fError[1][1] += S2; |
5232 | + fError[1][4] -= S3; |
5233 | + fError[2][2] += S2/CLA/CLA; |
5234 | + fError[2][3] += S3/CLA; |
5235 | + fError[3][3] += S1; |
5236 | + fError[4][4] += S1; |
5237 | + |
5238 | +#ifdef G4EVERBOSE |
5239 | + if( iverbose >= 2 ) std::cout << "G4EP:MSC: error matrix propagated msc " << fError << std::endl; |
5240 | +#endif |
5241 | + |
5242 | + return 0; |
5243 | +} |
5244 | + |
5245 | + |
5246 | +//------------------------------------------------------------------------ |
5247 | +void G4eTrajStateFree::CalculateEffectiveZandA( const G4Material* mate, double& effZ, double& effA ) |
5248 | +{ |
5249 | + effZ = 0.; |
5250 | + effA = 0.; |
5251 | + G4int ii, nelem = mate->GetNumberOfElements(); |
5252 | + const G4double* fracVec = mate->GetFractionVector(); |
5253 | + for(ii=0; ii < nelem; ii++ ) { |
5254 | + effZ += mate->GetElement( ii )->GetZ() * fracVec[ii]; |
5255 | + effA += mate->GetElement( ii )->GetA() * fracVec[ii] /g*mole; |
5256 | + } |
5257 | + |
5258 | +} |
5259 | + |
5260 | + |
5261 | +//------------------------------------------------------------------------ |
5262 | +int G4eTrajStateFree::PropagateErrorIoni( const G4Track* aTrack ) |
5263 | +{ |
5264 | + G4double stepLengthCm = aTrack->GetStep()->GetStepLength()/cm; |
5265 | + G4double DEDX2; |
5266 | + if( stepLengthCm < 1.E-7 ) { |
5267 | + DEDX2=0.; |
5268 | + } |
5269 | + // * Calculate xi factor (KeV). |
5270 | + G4Material* mate = aTrack->GetVolume()->GetLogicalVolume()->GetMaterial(); |
5271 | + G4double effZ, effA; |
5272 | + CalculateEffectiveZandA( mate, effZ, effA ); |
5273 | + |
5274 | + G4double Etot = aTrack->GetTotalEnergy()/GeV; |
5275 | + G4double beta = aTrack->GetMomentum().mag()/GeV / Etot; |
5276 | + G4double mass = aTrack->GetDynamicParticle()->GetMass() / GeV; |
5277 | + G4double gamma = Etot / mass; |
5278 | + |
5279 | + // * Calculate xi factor (KeV). |
5280 | + G4double XI = 153.5*effZ*stepLengthCm*(mate->GetDensity()/mg*mole) / |
5281 | + (effA*beta*beta); |
5282 | + |
5283 | +#ifdef G4EVERBOSE |
5284 | + if( iverbose >= 2 ){ |
5285 | + std::cout << "G4EP:IONI: XI " << XI << " beta " << beta << " gamma " << gamma << std::endl; |
5286 | + std::cout << " density " << (mate->GetDensity()/mg*mole) << " effA " << effA << " step " << stepLengthCm << std::endl; |
5287 | + } |
5288 | +#endif |
5289 | + // * Maximum energy transfer to atomic electron (KeV). |
5290 | + G4double eta = beta*gamma; |
5291 | + G4double etasq = eta*eta; |
5292 | + G4double eMass = 0.51099906/GeV; |
5293 | + G4double massRatio = eMass / mass; |
5294 | + G4double F1 = 2*eMass*etasq; |
5295 | + G4double F2 = 1. + 2. * massRatio * gamma + massRatio * massRatio; |
5296 | + G4double Emax = 1.E+6*F1/F2; |
5297 | + |
5298 | + // * *** and now sigma**2 in GeV |
5299 | + G4double dedxSq = XI*Emax*(1.-(beta*beta/2.))*1.E-12; |
5300 | +#ifdef G4EVERBOSE |
5301 | + if( iverbose >= 2 ) std::cout << "G4EP:IONI: DEDX2 " << dedxSq << " emass " << eMass << " Emax " << Emax << std::endl; |
5302 | +#endif |
5303 | + |
5304 | + // if( iverbose >= 2 ) std::cout << "G4EP:IONI: Etot " << Etot << " DEDX2 " << dedxSq << " emass " << eMass << std::endl; |
5305 | + |
5306 | + G4double pPre6 = (aTrack->GetStep()->GetPreStepPoint()->GetMomentum()/GeV).mag(); |
5307 | + pPre6 = pow(pPre6, 6 ); |
5308 | + //Apply it to error |
5309 | + fError[0][0] += Etot*Etot*dedxSq / pPre6; |
5310 | +#ifdef G4EVERBOSE |
5311 | + if( iverbose >= 2 ) std::cout << "G4:IONI getot " << Etot << " dedx2 " << dedxSq << " p " << pPre6 << std::endl; |
5312 | + if( iverbose >= 2 ) std::cout << "G4EP:IONI: error_from_ionisation " << (Etot*Etot*dedxSq) / pPre6 << std::endl; |
5313 | +#endif |
5314 | + |
5315 | + return 0; |
5316 | +} |
5317 | + |
5318 | diff -Naur --exclude CVS source/geant4e/src/G4eTrajStateOnSurface.cc source/geant4e/src/G4eTrajStateOnSurface.cc |
5319 | --- source/geant4e/src/G4eTrajStateOnSurface.cc 1970-01-01 01:00:00.000000000 +0100 |
5320 | +++ source/geant4e/src/G4eTrajStateOnSurface.cc 2007-01-17 12:41:58.000000000 +0100 |
5321 | @@ -0,0 +1,178 @@ |
5322 | +#include "G4eTrajStateOnSurface.hh" |
5323 | +#include "G4eManager.hh" |
5324 | + |
5325 | +#include "G4Field.hh" |
5326 | +#include "G4FieldManager.hh" |
5327 | +#include "G4TransportationManager.hh" |
5328 | + |
5329 | +#include "CLHEP/Matrix/Matrix.h" |
5330 | +#include <iomanip> |
5331 | + |
5332 | + |
5333 | +//------------------------------------------------------------------------ |
5334 | +G4eTrajStateOnSurface::G4eTrajStateOnSurface( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom, const G4Vector3D& vecU, const G4Vector3D& vecV, const G4eTrajError& errmat) : G4eTrajState( partType, pos, mom, errmat ) |
5335 | +{ |
5336 | + Init(); |
5337 | + fTrajParam = G4eTrajParamOnSurface( pos, mom, vecU, vecV ); |
5338 | +} |
5339 | + |
5340 | +//------------------------------------------------------------------------ |
5341 | +G4eTrajStateOnSurface::G4eTrajStateOnSurface( const G4String& partType, const G4Point3D& pos, const G4Vector3D& mom, const G4Plane3D& plane, const G4eTrajError& errmat ): G4eTrajState( partType, pos, mom, errmat ) |
5342 | +{ |
5343 | + Init(); |
5344 | + fTrajParam = G4eTrajParamOnSurface( pos, mom, plane ); |
5345 | + |
5346 | +} |
5347 | + |
5348 | + |
5349 | +//------------------------------------------------------------------------ |
5350 | +G4eTrajStateOnSurface::G4eTrajStateOnSurface( G4eTrajStateFree& tpSC, const G4Plane3D& plane ): G4eTrajState( tpSC.GetParticleType(), tpSC.GetPosition(), tpSC.GetMomentum() ) |
5351 | +{ |
5352 | + // fParticleType = tpSC.GetParticleType(); |
5353 | + // fPosition = tpSC.GetPosition(); |
5354 | + // fMomentum = tpSC.GetMomentum(); |
5355 | + fTrajParam = G4eTrajParamOnSurface( fPosition, fMomentum, plane ); |
5356 | + Init(); |
5357 | + |
5358 | + //----- Get the error matrix in SC coordinates |
5359 | + BuildErrorMatrix( tpSC, GetVectorV(), GetVectorW() ); |
5360 | +} |
5361 | + |
5362 | +//------------------------------------------------------------------------ |
5363 | +G4eTrajStateOnSurface::G4eTrajStateOnSurface( G4eTrajStateFree& tpSC, const G4Vector3D& vecU, const G4Vector3D& vecV ) : G4eTrajState( tpSC.GetParticleType(), tpSC.GetPosition(), tpSC.GetMomentum() ) |
5364 | +{ |
5365 | + fTrajParam = G4eTrajParamOnSurface( fPosition, fMomentum, vecU, vecV ); |
5366 | + theTSType = G4eTS_OS; |
5367 | + //----- Get the error matrix in SC coordinates |
5368 | + BuildErrorMatrix( tpSC, vecU, vecV ); |
5369 | +} |
5370 | + |
5371 | + |
5372 | +//------------------------------------------------------------------------ |
5373 | +void G4eTrajStateOnSurface::BuildErrorMatrix( G4eTrajStateFree& tpSC, const G4Vector3D&, const G4Vector3D& ) |
5374 | +{ |
5375 | + double sclambda = tpSC.GetParameters().GetLambda(); |
5376 | + double scphi = tpSC.GetParameters().GetPhi(); |
5377 | + if( G4eManager::GetG4eManager()->GetMode() == G4eMode_PropBackwards ){ |
5378 | + sclambda *= -1; |
5379 | + scphi += M_PI; |
5380 | + } |
5381 | + double cosLambda = cos( sclambda ); |
5382 | + double sinLambda = sin( sclambda ); |
5383 | + double sinPhi = sin( scphi ); |
5384 | + double cosPhi = cos( scphi ); |
5385 | + |
5386 | +#ifdef G4EVERBOSE |
5387 | + if( iverbose >= 4) G4cout << " PM " << fMomentum.mag() << " pLambda " << sclambda << " pPhi " << scphi << G4endl; |
5388 | +#endif |
5389 | + |
5390 | + G4ThreeVector vTN( cosLambda*cosPhi, cosLambda*sinPhi,sinLambda ); |
5391 | + G4ThreeVector vUN( -sinPhi, cosPhi, 0. ); |
5392 | + G4ThreeVector vVN( -vTN.z()*vUN.y(),vTN.z()*vUN.x(), cosLambda ); |
5393 | + |
5394 | +#ifdef G4EVERBOSE |
5395 | + if( iverbose >= 4) std::cout << " SC2SD: vTN " << vTN << " vUN " << vUN << " vVN " << vVN << std::endl; |
5396 | +#endif |
5397 | + double UJ = vUN*GetVectorV(); |
5398 | + double UK = vUN*GetVectorW(); |
5399 | + double VJ = vVN*GetVectorV(); |
5400 | + double VK = vVN*GetVectorW(); |
5401 | + |
5402 | + |
5403 | + //--- Get transformation first |
5404 | + HepMatrix transfM(5, 5, 0 ); |
5405 | + //--- Get magnetic field |
5406 | + const G4Field* field = G4TransportationManager::GetTransportationManager()->GetFieldManager()->GetDetectorField(); |
5407 | + |
5408 | + G4Vector3D vectorU = GetVectorV().cross( GetVectorW() ); |
5409 | + |
5410 | +#ifdef G4EVERBOSE |
5411 | + if( iverbose >= 4) std::cout << "vectors " << vectorU << " " << GetVectorV() << " " << GetVectorW() << std::endl; |
5412 | +#endif |
5413 | + double T1R = 1. / ( vTN * vectorU ); |
5414 | + |
5415 | + if( fCharge != 0 && field ) { |
5416 | + G4double pos[3]; pos[0] = fPosition.x()*cm; pos[1] = fPosition.y()*cm; pos[2] = fPosition.z()*cm; |
5417 | + G4double Hd[3]; |
5418 | + field->GetFieldValue( pos, Hd ); |
5419 | + G4ThreeVector H = G4ThreeVector( Hd[0], Hd[1], Hd[2] ) / tesla *10.; //in kilogauus |
5420 | + G4double magH = H.mag(); |
5421 | + G4double invP = 1./(fMomentum.mag()/GeV); |
5422 | + G4double magHM = magH * invP; |
5423 | + if( magH != 0. ) { |
5424 | + G4double magHM2 = fCharge / magH; |
5425 | + G4double Q = -magHM * c_light/ (km/ns); |
5426 | +#ifdef G4EVERBOSE |
5427 | + if( iverbose >= 4) std::cout << GeV << " Q " << Q << " magHM " << magHM << " c_light/(km/ns) " << c_light/(km/ns) << std::endl; |
5428 | +#endif |
5429 | + |
5430 | + G4double sinz = -H*vUN * magHM2; |
5431 | + G4double cosz = H*vVN * magHM2; |
5432 | + double T3R = Q * pow(T1R,3); |
5433 | + double UI = vUN * vectorU; |
5434 | + double VI = vVN * vectorU; |
5435 | +#ifdef G4EVERBOSE |
5436 | + if( iverbose >= 4) { |
5437 | + G4cout << " T1R " << T1R << " T3R " << T3R << G4endl; |
5438 | + G4cout << " UI " << UI << " VI " << VI << " vectorU " << vectorU << G4endl; |
5439 | + G4cout << " UJ " << UJ << " VJ " << VJ << G4endl; |
5440 | + G4cout << " UK " << UK << " VK " << VK << G4endl; |
5441 | + } |
5442 | +#endif |
5443 | + |
5444 | + transfM[1][3] = -UI*( VK*cosz-UK*sinz)*T3R; |
5445 | + transfM[1][4] = -VI*( VK*cosz-UK*sinz)*T3R; |
5446 | + transfM[2][3] = UI*( VJ*cosz-UJ*sinz)*T3R; |
5447 | + transfM[2][4] = VI*( VJ*cosz-UJ*sinz)*T3R; |
5448 | + } |
5449 | + } |
5450 | + |
5451 | + double T2R = T1R * T1R; |
5452 | + transfM[0][0] = 1.; |
5453 | + transfM[1][1] = -UK*T2R; |
5454 | + transfM[1][2] = VK*cosLambda*T2R; |
5455 | + transfM[2][1] = UJ*T2R; |
5456 | + transfM[2][2] = -VJ*cosLambda*T2R; |
5457 | + transfM[3][3] = VK*T1R; |
5458 | + transfM[3][4] = -UK*T1R; |
5459 | + transfM[4][3] = -VJ*T1R; |
5460 | + transfM[4][4] = UJ*T1R; |
5461 | + |
5462 | +#ifdef G4EVERBOSE |
5463 | + if( iverbose >= 4) G4cout << " SC2SD transf matrix A= " << transfM << G4endl; |
5464 | +#endif |
5465 | + fError = G4eTrajError( tpSC.GetError().similarity( transfM ) ); |
5466 | + |
5467 | +#ifdef G4EVERBOSE |
5468 | + if( iverbose >= 1) std::cout << "G4EP: error matrix SC2SD " << fError << std::endl; |
5469 | + if( iverbose >= 4) G4cout << "G4eTrajStateOnSurface from SC " << *this << G4endl; |
5470 | +#endif |
5471 | + |
5472 | +} |
5473 | + |
5474 | +//------------------------------------------------------------------------ |
5475 | +void G4eTrajStateOnSurface::Init() |
5476 | +{ |
5477 | + theTSType = G4eTS_OS; |
5478 | + BuildCharge(); |
5479 | +} |
5480 | + |
5481 | + |
5482 | +//------------------------------------------------------------------------ |
5483 | +void G4eTrajStateOnSurface::Dump( std::ostream& out ) const |
5484 | +{ |
5485 | + out << *this; |
5486 | +} |
5487 | + |
5488 | + |
5489 | +//------------------------------------------------------------------------ |
5490 | +std::ostream& operator<<(std::ostream& out, const G4eTrajStateOnSurface& ts) |
5491 | +{ |
5492 | + out.setf(std::ios::fixed,std::ios::floatfield); |
5493 | + |
5494 | + ts.DumpPosMomError( out ); |
5495 | + |
5496 | + out << " G4eTrajStateOnSurface: Params: " << ts.fTrajParam << G4endl; |
5497 | + return out; |
5498 | +} |
5499 | + |
5500 | diff -Naur --exclude CVS source/track/include/G4VParticleChange.hh source/track/include/G4VParticleChange.hh |
5501 | --- source/track/include/G4VParticleChange.hh 2006-10-30 10:50:13.000000000 +0100 |
5502 | +++ source/track/include/G4VParticleChange.hh 2007-01-17 15:35:14.000000000 +0100 |
5503 | @@ -264,6 +264,15 @@ |
5504 | void SetDebugFlag(); |
5505 | G4bool GetDebugFlag() const; |
5506 | |
5507 | + //>>GEANT4E |
5508 | + static void SetAccuracyForWarning( double accu ){ |
5509 | + accuracyForWarning = accu; } |
5510 | + |
5511 | + static void SetAccuracyForException(double accu ){ |
5512 | + accuracyForException = accu; }; |
5513 | + //<<GEANT4E |
5514 | + |
5515 | + |
5516 | protected: |
5517 | // CheckSecondary method is provided for debug |
5518 | G4bool CheckSecondary(G4Track&); |
5519 | @@ -275,8 +284,12 @@ |
5520 | G4bool debugFlag; |
5521 | |
5522 | // accuracy levels |
5523 | - static const G4double accuracyForWarning; |
5524 | - static const G4double accuracyForException; |
5525 | + //>>GEANT4E |
5526 | + // static const G4double accuracyForWarning; |
5527 | + // static const G4double accuracyForException; |
5528 | + static G4double accuracyForWarning; |
5529 | + static G4double accuracyForException; |
5530 | + //<< GEANT4E |
5531 | |
5532 | |
5533 | protected: |
5534 | diff -Naur --exclude CVS source/track/src/G4VParticleChange.cc source/track/src/G4VParticleChange.cc |
5535 | --- source/track/src/G4VParticleChange.cc 2006-10-30 10:50:13.000000000 +0100 |
5536 | +++ source/track/src/G4VParticleChange.cc 2007-01-17 15:36:53.000000000 +0100 |
5537 | @@ -42,8 +42,12 @@ |
5538 | #include "G4TrackFastVector.hh" |
5539 | #include "G4ExceptionSeverity.hh" |
5540 | |
5541 | -const G4double G4VParticleChange::accuracyForWarning = 1.0e-9; |
5542 | -const G4double G4VParticleChange::accuracyForException = 0.001; |
5543 | +//>>GEANT4E |
5544 | +//const G4double G4VParticleChange::accuracyForWarning = 1.0e-9; |
5545 | +//const G4double G4VParticleChange::accuracyForException = 0.001; |
5546 | +G4double G4VParticleChange::accuracyForWarning = 1.0e-9; |
5547 | +G4double G4VParticleChange::accuracyForException = 0.001; |
5548 | +//<<GEANT4E |
5549 | |
5550 | G4VParticleChange::G4VParticleChange(): |
5551 | theNumberOfSecondaries(0), |
5552 | --- source/GNUmakefile 2006-12-14 11:39:45.000000000 +0100 |
5553 | +++ source/GNUmakefile 2007-01-23 10:57:51.000000000 +0100 |
5554 | @@ -19,7 +19,7 @@ |
5555 | |
5556 | include $(G4INSTALL)/config/architecture.gmk |
5557 | |
5558 | -SUBDIR1 = global intercoms graphics_reps materials |
5559 | +SUBDIR1 = geant4e global intercoms graphics_reps materials |
5560 | SUBDIR2 = geometry particles track digits_hits processes |
5561 | SUBDIR2 += parameterisations tracking event run readout |
5562 | SUBDIR3 = persistency interfaces visualization |