float findNcoll(int hiBin) { const int nbins = 200; const float Ncoll[nbins] = {1976.95, 1944.02, 1927.29, 1891.9, 1845.3, 1807.2, 1760.45, 1729.18, 1674.8, 1630.3, 1590.52, 1561.72, 1516.1, 1486.5, 1444.68, 1410.88, 1376.4, 1347.32, 1309.71, 1279.98, 1255.31, 1219.89, 1195.13, 1165.96, 1138.92, 1113.37, 1082.26, 1062.42, 1030.6, 1009.96, 980.229, 955.443, 936.501, 915.97, 892.063, 871.289, 847.364, 825.127, 806.584, 789.163, 765.42, 751.187, 733.001, 708.31, 690.972, 677.711, 660.682, 640.431, 623.839, 607.456, 593.307, 576.364, 560.967, 548.909, 530.475, 519.575, 505.105, 490.027, 478.133, 462.372, 451.115, 442.642, 425.76, 416.364, 405.154, 392.688, 380.565, 371.167, 360.28, 348.239, 340.587, 328.746, 320.268, 311.752, 300.742, 292.172, 281.361, 274.249, 267.025, 258.625, 249.931, 240.497, 235.423, 228.63, 219.854, 214.004, 205.425, 199.114, 193.618, 185.644, 180.923, 174.289, 169.641, 161.016, 157.398, 152.151, 147.425, 140.933, 135.924, 132.365, 127.017, 122.127, 117.817, 113.076, 109.055, 105.16, 101.323, 98.098, 95.0548, 90.729, 87.6495, 84.0899, 80.2237, 77.2201, 74.8848, 71.3554, 68.7745, 65.9911, 63.4136, 61.3859, 58.1903, 56.4155, 53.8486, 52.0196, 49.2921, 47.0735, 45.4345, 43.8434, 41.7181, 39.8988, 38.2262, 36.4435, 34.8984, 33.4664, 31.8056, 30.351, 29.2074, 27.6924, 26.7754, 25.4965, 24.2802, 22.9651, 22.0059, 21.0915, 19.9129, 19.1041, 18.1487, 17.3218, 16.5957, 15.5323, 14.8035, 14.2514, 13.3782, 12.8667, 12.2891, 11.61, 11.0026, 10.3747, 9.90294, 9.42648, 8.85324, 8.50121, 7.89834, 7.65197, 7.22768, 6.7755, 6.34855, 5.98336, 5.76555, 5.38056, 5.11024, 4.7748, 4.59117, 4.23247, 4.00814, 3.79607, 3.68702, 3.3767, 3.16309, 2.98282, 2.8095, 2.65875, 2.50561, 2.32516, 2.16357, 2.03235, 1.84061, 1.72628, 1.62305, 1.48916, 1.38784, 1.28366, 1.24693, 1.18552, 1.16085, 1.12596, 1.09298, 1.07402, 1.06105, 1.02954}; return Ncoll[hiBin]; }
float findNpart(int hiBin) { const int nbins = 200; const float Npart[nbins] = {401.99, 398.783, 396.936, 392.71, 387.901, 383.593, 377.914, 374.546, 367.507, 361.252, 356.05, 352.43, 345.701, 341.584, 335.148, 330.581, 325.135, 320.777, 315.074, 310.679, 306.687, 301.189, 296.769, 291.795, 287.516, 283.163, 277.818, 274.293, 269.29, 265.911, 260.574, 256.586, 252.732, 249.194, 245.011, 241.292, 236.715, 232.55, 229.322, 225.328, 221.263, 218.604, 214.728, 210.554, 206.878, 203.924, 200.84, 196.572, 193.288, 189.969, 186.894, 183.232, 180.24, 177.36, 174.008, 171.222, 168.296, 165.319, 162.013, 158.495, 156.05, 154.218, 150.559, 148.455, 145.471, 142.496, 139.715, 137.395, 134.469, 131.926, 129.817, 127.045, 124.467, 122.427, 119.698, 117.607, 114.543, 112.662, 110.696, 108.294, 105.777, 103.544, 101.736, 99.943, 97.4951, 95.4291, 93.2148, 91.2133, 89.5108, 87.2103, 85.7498, 83.5134, 81.9687, 79.7456, 78.1684, 76.4873, 74.7635, 72.761, 71.0948, 69.6102, 67.7806, 66.2215, 64.5813, 63.0269, 61.4325, 59.8065, 58.2423, 57.2432, 55.8296, 54.2171, 52.8809, 51.3254, 49.9902, 48.6927, 47.5565, 46.136, 44.8382, 43.6345, 42.3964, 41.4211, 39.9681, 39.178, 37.9341, 36.9268, 35.5626, 34.5382, 33.6912, 32.8156, 31.6695, 30.6552, 29.7015, 28.8655, 27.9609, 27.0857, 26.105, 25.3163, 24.4872, 23.6394, 23.0484, 22.2774, 21.4877, 20.5556, 19.9736, 19.3296, 18.5628, 17.916, 17.2928, 16.6546, 16.1131, 15.4013, 14.8264, 14.3973, 13.7262, 13.2853, 12.8253, 12.2874, 11.7558, 11.2723, 10.8829, 10.4652, 9.96477, 9.6368, 9.09316, 8.84175, 8.48084, 8.05694, 7.64559, 7.29709, 7.07981, 6.70294, 6.45736, 6.10284, 5.91788, 5.5441, 5.33311, 5.06641, 4.96415, 4.6286, 4.38214, 4.2076, 4.01099, 3.81054, 3.63854, 3.43403, 3.23244, 3.08666, 2.86953, 2.74334, 2.62787, 2.48354, 2.38115, 2.26822, 2.23137, 2.1665, 2.14264, 2.10636, 2.07358, 2.05422, 2.04126, 2.00954}; return Npart[hiBin]; }
float findNcollAverage(int hiBinLow, int hiBinHigh) { float w=0; const int nbins = 200; const float Ncoll[nbins] = {1976.95, 1944.02, 1927.29, 1891.9, 1845.3, 1807.2, 1760.45, 1729.18, 1674.8, 1630.3, 1590.52, 1561.72, 1516.1, 1486.5, 1444.68, 1410.88, 1376.4, 1347.32, 1309.71, 1279.98, 1255.31, 1219.89, 1195.13, 1165.96, 1138.92, 1113.37, 1082.26, 1062.42, 1030.6, 1009.96, 980.229, 955.443, 936.501, 915.97, 892.063, 871.289, 847.364, 825.127, 806.584, 789.163, 765.42, 751.187, 733.001, 708.31, 690.972, 677.711, 660.682, 640.431, 623.839, 607.456, 593.307, 576.364, 560.967, 548.909, 530.475, 519.575, 505.105, 490.027, 478.133, 462.372, 451.115, 442.642, 425.76, 416.364, 405.154, 392.688, 380.565, 371.167, 360.28, 348.239, 340.587, 328.746, 320.268, 311.752, 300.742, 292.172, 281.361, 274.249, 267.025, 258.625, 249.931, 240.497, 235.423, 228.63, 219.854, 214.004, 205.425, 199.114, 193.618, 185.644, 180.923, 174.289, 169.641, 161.016, 157.398, 152.151, 147.425, 140.933, 135.924, 132.365, 127.017, 122.127, 117.817, 113.076, 109.055, 105.16, 101.323, 98.098, 95.0548, 90.729, 87.6495, 84.0899, 80.2237, 77.2201, 74.8848, 71.3554, 68.7745, 65.9911, 63.4136, 61.3859, 58.1903, 56.4155, 53.8486, 52.0196, 49.2921, 47.0735, 45.4345, 43.8434, 41.7181, 39.8988, 38.2262, 36.4435, 34.8984, 33.4664, 31.8056, 30.351, 29.2074, 27.6924, 26.7754, 25.4965, 24.2802, 22.9651, 22.0059, 21.0915, 19.9129, 19.1041, 18.1487, 17.3218, 16.5957, 15.5323, 14.8035, 14.2514, 13.3782, 12.8667, 12.2891, 11.61, 11.0026, 10.3747, 9.90294, 9.42648, 8.85324, 8.50121, 7.89834, 7.65197, 7.22768, 6.7755, 6.34855, 5.98336, 5.76555, 5.38056, 5.11024, 4.7748, 4.59117, 4.23247, 4.00814, 3.79607, 3.68702, 3.3767, 3.16309, 2.98282, 2.8095, 2.65875, 2.50561, 2.32516, 2.16357, 2.03235, 1.84061, 1.72628, 1.62305, 1.48916, 1.38784, 1.28366, 1.24693, 1.18552, 1.16085, 1.12596, 1.09298, 1.07402, 1.06105, 1.02954}; for(int i=hiBinLow; i<hiBinHigh; i++) w+=Ncoll[i]/(hiBinHigh-hiBinLow); return w; }
float findNpartAverage(int hiBinLow, int hiBinHigh) { float w=0; const int nbins = 200; const float Npart[nbins] = {401.99, 398.783, 396.936, 392.71, 387.901, 383.593, 377.914, 374.546, 367.507, 361.252, 356.05, 352.43, 345.701, 341.584, 335.148, 330.581, 325.135, 320.777, 315.074, 310.679, 306.687, 301.189, 296.769, 291.795, 287.516, 283.163, 277.818, 274.293, 269.29, 265.911, 260.574, 256.586, 252.732, 249.194, 245.011, 241.292, 236.715, 232.55, 229.322, 225.328, 221.263, 218.604, 214.728, 210.554, 206.878, 203.924, 200.84, 196.572, 193.288, 189.969, 186.894, 183.232, 180.24, 177.36, 174.008, 171.222, 168.296, 165.319, 162.013, 158.495, 156.05, 154.218, 150.559, 148.455, 145.471, 142.496, 139.715, 137.395, 134.469, 131.926, 129.817, 127.045, 124.467, 122.427, 119.698, 117.607, 114.543, 112.662, 110.696, 108.294, 105.777, 103.544, 101.736, 99.943, 97.4951, 95.4291, 93.2148, 91.2133, 89.5108, 87.2103, 85.7498, 83.5134, 81.9687, 79.7456, 78.1684, 76.4873, 74.7635, 72.761, 71.0948, 69.6102, 67.7806, 66.2215, 64.5813, 63.0269, 61.4325, 59.8065, 58.2423, 57.2432, 55.8296, 54.2171, 52.8809, 51.3254, 49.9902, 48.6927, 47.5565, 46.136, 44.8382, 43.6345, 42.3964, 41.4211, 39.9681, 39.178, 37.9341, 36.9268, 35.5626, 34.5382, 33.6912, 32.8156, 31.6695, 30.6552, 29.7015, 28.8655, 27.9609, 27.0857, 26.105, 25.3163, 24.4872, 23.6394, 23.0484, 22.2774, 21.4877, 20.5556, 19.9736, 19.3296, 18.5628, 17.916, 17.2928, 16.6546, 16.1131, 15.4013, 14.8264, 14.3973, 13.7262, 13.2853, 12.8253, 12.2874, 11.7558, 11.2723, 10.8829, 10.4652, 9.96477, 9.6368, 9.09316, 8.84175, 8.48084, 8.05694, 7.64559, 7.29709, 7.07981, 6.70294, 6.45736, 6.10284, 5.91788, 5.5441, 5.33311, 5.06641, 4.96415, 4.6286, 4.38214, 4.2076, 4.01099, 3.81054, 3.63854, 3.43403, 3.23244, 3.08666, 2.86953, 2.74334, 2.62787, 2.48354, 2.38115, 2.26822, 2.23137, 2.1665, 2.14264, 2.10636, 2.07358, 2.05422, 2.04126, 2.00954}; for(int i=hiBinLow; i<hiBinHigh; i++) w+=Npart[i]/(hiBinHigh-hiBinLow); return w; }
Nominal | Unc. from EM contamination | Unc. from centrality calibration | Total Unc. | |
Golden JSON | 11775759052 | 1.103% | 0.611% | 1.261% |
Nominal | Unc. from EM contamination | Unc. from centrality calibration | Total Unc. | |
Muon JSON | 11968044281 | 1.103% | 0.611% | 1.261% |
70-80% | 80-90% | |
EM contribution | 3.898% | 6.033% |
Setup
cmsrel CMSSW_10_3_1_patch2
cd CMSSW_10_3_1_patch2/src
cmsenv
git cms-merge-topic -u CmsHI:forest_CMSSW_10_3_1
scram b -j4
In config file
process.load("RecoVertex.PrimaryVertexProducer.OfflinePrimaryVerticesRecovery_cfi")
process.ana_step = cms.Path(
process.offlinePrimaryVerticesRecovery +
process.HiForest + ...
process.load('HeavyIonsAnalysis.EventAnalysis.skimanalysis_cfi') process.load('HeavyIonsAnalysis.Configuration.collisionEventSelection_cff') process.pclusterCompatibilityFilter = cms.Path(process.clusterCompatibilityFilter) process.pprimaryVertexFilter = cms.Path(process.primaryVertexFilter) process.collisionEventSelectionAOD = cms.Path(process.collisionEventSelectionAOD) process.collisionEventSelectionAODv2 = cms.Path(process.collisionEventSelectionAODv2) process.load('HeavyIonsAnalysis.Configuration.hfCoincFilter_cff') process.phfCoincFilter3Th3 = cms.Path(process.hfCoincFilter3Th3) process.phfCoincFilter2Th4 = cms.Path(process.hfCoincFilter2Th4) process.pAna = cms.EndPath(process.skimanalysis)and put the below three lines at the very last of the config.
from HLTrigger.Configuration.CustomConfigs import MassReplaceInputTag
process = MassReplaceInputTag(process,"offlinePrimaryVertices","offlinePrimaryVerticesRecovery")
process.offlinePrimaryVerticesRecovery.oldVertexLabel = "offlinePrimaryVertices"
* PAprimaryVertexFilter * NoScraping
from Configuration.AlCa.GlobalTag import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '103X_dataRun2_Prompt_v2', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag print('\n\033[31m~*~ USING CENTRALITY TABLE FOR PbPb 2018 DATA ~*~\033[0m\n') process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_DataPbPb_periHYDJETshape_run2v1033p1x01_offline"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowers") ), ]) from HeavyIonsAnalysis.Configuration.CommonFunctions_cff import overrideJEC_PbPb5020 process = overrideJEC_PbPb5020(process) process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers")
const Int_t nBins = 200; // table of bin edges const Double_t binTable[nBins+1] = {0, 10.5072, 11.2099, 11.8364, 12.478, 13.1194, 13.7623, 14.4081, 15.0709, 15.7532, 16.4673, 17.1881, 17.923, 18.673, 19.4865, 20.3033, 21.1536, 22.0086, 22.9046, 23.8196, 24.7924, 25.8082, 26.8714, 27.9481, 29.0828, 30.2757, 31.5043, 32.8044, 34.1572, 35.6142, 37.1211, 38.6798, 40.3116, 42.0398, 43.8572, 45.6977, 47.6312, 49.6899, 51.815, 54.028, 56.3037, 58.7091, 61.2024, 63.8353, 66.5926, 69.3617, 72.2068, 75.2459, 78.3873, 81.5916, 84.9419, 88.498, 92.1789, 95.9582, 99.8431, 103.739, 107.78, 111.97, 116.312, 120.806, 125.46, 130.269, 135.247, 140.389, 145.713, 151.212, 156.871, 162.729, 168.762, 174.998, 181.424, 188.063, 194.907, 201.942, 209.19, 216.683, 224.37, 232.291, 240.43, 248.807, 257.416, 266.256, 275.348, 284.668, 294.216, 304.053, 314.142, 324.488, 335.101, 345.974, 357.116, 368.547, 380.283, 392.29, 404.564, 417.122, 429.968, 443.116, 456.577, 470.357, 484.422, 498.78, 513.473, 528.479, 543.813, 559.445, 575.411, 591.724, 608.352, 625.344, 642.686, 660.361, 678.371, 696.749, 715.485, 734.608, 754.068, 773.846, 794.046, 814.649, 835.608, 856.972, 878.719, 900.887, 923.409, 946.374, 969.674, 993.435, 1017.62, 1042.21, 1067.28, 1092.72, 1118.64, 1144.96, 1171.71, 1198.98, 1226.67, 1254.82, 1283.46, 1312.65, 1342.21, 1372.27, 1402.85, 1433.93, 1465.49, 1497.62, 1530.29, 1563.49, 1597.22, 1631.49, 1666.37, 1701.8, 1737.75, 1774.35, 1811.51, 1849.29, 1887.75, 1926.79, 1966.6, 2006.97, 2047.99, 2089.71, 2132.1, 2175.23, 2219.17, 2263.72, 2309.2, 2355.43, 2402.47, 2450.33, 2499.05, 2548.66, 2599.16, 2650.59, 2703.03, 2756.32, 2810.75, 2866.27, 2922.91, 2980.54, 3039.47, 3099.53, 3160.98, 3223.66, 3287.71, 3353.18, 3420.34, 3489.13, 3559.72, 3632.06, 3706.18, 3782.42, 3860.78, 3941.42, 4024.52, 4110.27, 4199.4, 4292.8, 4394.49, 4519.52, 5199.95}; Int_t getHiBinFromhiHF(const Double_t hiHF) { Int_t binPos = -1; for(int i = 0; i < nBins; ++i){ if(hiHF >= binTable[i] && hiHF < binTable[i+1]){ binPos = i; break; } } binPos = nBins - 1 - binPos; return (Int_t)(200*((Double_t)binPos)/((Double_t)nBins)); } ..... ..... centBin = getHiBinFromhiHF(hiHF)
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2018_realistic_hi', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetDrum5F_v1032x02_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowers") ), ])
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2018_realistic', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetTuneCP5MTD_v1040mtd4x1_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowers") ), ])
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2018_realistic', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetCymbal5Ev8_v1020x01_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowers") ), ])
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2018_realistic', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetDrum5Ev8_v1030pre5x02_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowers") ), ])
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2018_realistic', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetCymbal5F_v1020x01_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowers") ), ])
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2018_realistic', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetDrum5F_v1020x01_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowers") ), ])
In config file
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '94X_dataRun2_ReReco_EOY17_v2', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_DataXeXe_eff95_run2v941x02_offline"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowersEPOSLHC") ), ]) ... process.load('RecoHI.HiCentralityAlgos.HiCentrality_cfi') process.hiCentrality.produceHFhits = False process.hiCentrality.produceHFtowers = False process.hiCentrality.produceEcalhits = False process.hiCentrality.produceZDChits = False process.hiCentrality.produceETmidRapidity = False process.hiCentrality.producePixelhits = False process.hiCentrality.produceTracks = False process.hiCentrality.producePixelTracks = False process.hiCentrality.reUseCentrality = True process.hiCentrality.srcReUse = cms.InputTag("hiCentrality","","RECO") process.hiCentrality.srcTracks = cms.InputTag("generalTracks") process.hiCentrality.srcVertex = cms.InputTag("offlinePrimaryVertices") process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.centralityBin.nonDefaultGlauberModel = cms.string("EPOSLHC") ... process.hiEvtAnalyzer.doCentrality = cms.bool(True) ... process.ana_step = cms.Path( ... process.hiCentrality * process.centralityBin * process.hiEvtAnalyzer * ...)
In config file
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '92X_dataRun2_Prompt_Candidate_forXeXe_v1', '') process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_DataXeXe_eff942_run2v9313x02_offline"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowersCymbal5Ev8") ), ]) ... process.load('RecoHI.HiCentralityAlgos.HiCentrality_cfi') process.hiCentrality.produceHFhits = False process.hiCentrality.produceHFtowers = True process.hiCentrality.produceEcalhits = False process.hiCentrality.produceZDChits = False process.hiCentrality.produceETmidRapidity = True process.hiCentrality.producePixelhits = False process.hiCentrality.produceTracks = True process.hiCentrality.producePixelTracks = False process.hiCentrality.reUseCentrality = False process.hiCentrality.srcTracks = cms.InputTag("generalTracks") process.hiCentrality.srcVertex = cms.InputTag("offlinePrimaryVertices") process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.centralityBin.nonDefaultGlauberModel = cms.string("Cymbal5Ev8") ... process.hiEvtAnalyzer.doCentrality = cms.bool(True) ... process.ana_step = cms.Path( ... process.hiCentrality * process.centralityBin * process.hiEvtAnalyzer * ...)
In config file
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '91X_mcRun2_HeavyIon_v3', '') #for now track GT manually, since centrality tables updated ex post facto process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_XeXeHydjetCymbalEv8_v9213x01_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowersCymbal5Ev8") ), ]) ... process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.centralityBin.nonDefaultGlauberModel = cms.string("Cymbal5Ev8") ... process.load('HeavyIonsAnalysis.EventAnalysis.hievtanalyzer_mc_cfi') process.hiEvtAnalyzer.doCentrality = cms.bool(True) process.hiEvtAnalyzer.CentralitySrc = cms.InputTag("hiCentrality") process.hiEvtAnalyzer.CentralityBinSrc = cms.InputTag("centralityBin","HFtowers") ... process.ana_step = cms.Path( ... process.hiCentrality * process.centralityBin * process.hiEvtAnalyzer* ...)
In config file
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '94X_mc2017_realistic_ForXeXe_v7', '') #for now track GT manually, since centrality tables updated ex post facto process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_XeXe5p44TeVHYDJET_v941x01_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowersHYDJET") ), ]) ... process.load('RecoHI.HiCentralityAlgos.HiCentrality_cfi') process.hiCentrality.produceHFhits = False process.hiCentrality.produceHFtowers = False process.hiCentrality.produceEcalhits = False process.hiCentrality.produceZDChits = False process.hiCentrality.produceETmidRapidity = False process.hiCentrality.producePixelhits = False process.hiCentrality.produceTracks = False process.hiCentrality.producePixelTracks = False process.hiCentrality.reUseCentrality = True process.hiCentrality.srcReUse = cms.InputTag("hiCentrality","","RECO") ... process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.centralityBin.nonDefaultGlauberModel = cms.string("HYDJET") ... process.load('HeavyIonsAnalysis.EventAnalysis.hievtanalyzer_mc_cfi') process.hiEvtAnalyzer.doCentrality = cms.bool(True) process.hiEvtAnalyzer.CentralitySrc = cms.InputTag("hiCentrality") process.hiEvtAnalyzer.CentralityBinSrc = cms.InputTag("centralityBin","HFtowers") ... process.ana_step = cms.Path( ... process.hiCentrality * process.centralityBin * process.hiEvtAnalyzer* ...)
In config file
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '94X_mc2017_realistic_ForXeXe_v7', '') #for now track GT manually, since centrality tables updated ex post facto process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_XeXe5p44TeVEPOSLHC_v941x01_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowersEPOSLHC") ), ]) ... process.load('RecoHI.HiCentralityAlgos.HiCentrality_cfi') process.hiCentrality.produceHFhits = False process.hiCentrality.produceHFtowers = False process.hiCentrality.produceEcalhits = False process.hiCentrality.produceZDChits = False process.hiCentrality.produceETmidRapidity = False process.hiCentrality.producePixelhits = False process.hiCentrality.produceTracks = False process.hiCentrality.producePixelTracks = False process.hiCentrality.reUseCentrality = True process.hiCentrality.srcReUse = cms.InputTag("hiCentrality","","RECO") ... process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.centralityBin.nonDefaultGlauberModel = cms.string("EPOSLHC") ... process.load('HeavyIonsAnalysis.EventAnalysis.hievtanalyzer_mc_cfi') process.hiEvtAnalyzer.doCentrality = cms.bool(True) process.hiEvtAnalyzer.CentralitySrc = cms.InputTag("hiCentrality") process.hiEvtAnalyzer.CentralityBinSrc = cms.InputTag("centralityBin","HFtowers") ... process.ana_step = cms.Path( ... process.hiCentrality * process.centralityBin * process.hiEvtAnalyzer* ...)
In config file
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '75X_mcRun2_HeavyIon_v14', '') #for now track GT manually, since centrality tables updated ex post facto process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_EPOSLHC_v758x01_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowersEPOSLHC") ), ]) ... process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.centralityBin.nonDefaultGlauberModel = cms.string("EPOSLHC") ... process.load('HeavyIonsAnalysis.EventAnalysis.hievtanalyzer_mc_cfi') process.hiEvtAnalyzer.doCentrality = cms.bool(True) process.hiEvtAnalyzer.CentralitySrc = cms.InputTag("hiCentrality") process.hiEvtAnalyzer.CentralityBinSrc = cms.InputTag("centralityBin","HFtowers") ... process.ana_step = cms.Path( ... process.centralityBin * process.hiEvtAnalyzer* ...)
In config file
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_condDBv2_cff') from Configuration.AlCa.GlobalTag_condDBv2 import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '75X_mcRun2_HeavyIon_v14', '') #for now track GT manually, since centrality tables updated ex post facto process.HiForest.GlobalTagLabel = process.GlobalTag.globaltag process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000") process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetCymbal5Ev8_v758x03_mc"), connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS"), label = cms.untracked.string("HFtowersCymbal5Ev8") ), ]) ... process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.centralityBin.nonDefaultGlauberModel = cms.string("Cymbal5Ev8") ... process.load('HeavyIonsAnalysis.EventAnalysis.hievtanalyzer_mc_cfi') process.hiEvtAnalyzer.doCentrality = cms.bool(True) process.hiEvtAnalyzer.CentralitySrc = cms.InputTag("hiCentrality") process.hiEvtAnalyzer.CentralityBinSrc = cms.InputTag("centralityBin","HFtowers") ... process.ana_step = cms.Path( ... process.centralityBin * process.hiEvtAnalyzer* ...)
7_5_X global tags with centrality calibration for HFtowers with 200 bins
In config file
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag process.GlobalTag = GlobalTag(process.GlobalTag, '75X_mcRun2_HeavyIon_v10', '') # or 75X_dataRun2_v6 for data ... process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") ... centralitySrc = cms.InputTag("hiCentrality"), centralityBinSrc = cms.InputTag("centralityBin","HFtowers"), ... process.p= cms.Path(process.centralityBin * ...)In analyzer to access the centrality object, the following lines are needed
#include "DataFormats/HeavyIonEvent/interface/Centrality.h" ... edm::EDGetTokenT<reco::Centrality> centralityToken_; edm::EDGetTokenT<int> centralityBinToken_; ... centralityToken_ = consumes<reco::Centrality>(iConfig.getParameter<edm::InputTag>("centralitySrc")); centralityBinToken_ = consumes<int>(iConfig.getParameter<edm::InputTag>("centralityBinSrc")); ... edm::Handle<reco::Centrality> centrality; iEvent.getByToken(centralityToken_, centrality); edm::Handle<int> cbin; iEvent.getByToken(centralityBinToken_, cbin); hiBin_ = *cbin; hiNtracks_ = centrality->Ntracks(); hiHF_ = centrality->EtHFtowerSum(); ...Example analyzer https://github.com/CmsHI/cmssw/blob/forest_CMSSW_7_5_8/HeavyIonsAnalysis/EventAnalysis/src/HiEvtAnalyzer.cc
No need to checkout any RecoHI package for your analysis, tested for CMSSW_7_4_0_pre6. Example analyzer here
process.centralityBin.Centrality = cms.InputTag("hiCentrality") process.centralityBin.centralityVariable = cms.string("HFtowers") process.centralityBin.nonDefaultGlauberModel = cms.string("HydjetDrum5")The centrality table for testing can be accessed by
process.GlobalTag.toGet.extend([ cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFtowers200_HydjetDrum5_v740x01_mc"), connect = cms.untracked.string("frontier://FrontierProd/CMS_COND_31X_PHYSICSTOOLS"), label = cms.untracked.string("HFtowersHydjetDrum5") ), ])In the path you have to produce the bin integer process.p = cms.Path(process.centralityBin * ...) For the analyzer you have to provide the centrality bin label in the config centralityBinLabel = cms.InputTag("centralityBin","HFtowers") In the analyzer you read this label and then with getByToken you get the integer value for the bin In the class member data you declare
edm::Handle<int> cbin_; edm::EDGetTokenT<int> tag_;In the constructor you read the config file
tag_ = consumes<int>(iConfig.getParameter<edm::InputTag>("centralityBinLabel"));In the analyze part you read the bin
iEvent.getByToken(tag_,cbin_); int bin = *cbin_;
cmsrel CMSSW_5_3_20 cd CMSSW_5_3_20/src cmsenv git cms-merge-topic -u CmsHI:forest_CMSSW_5_3_20 scram bNo extra code is needed from the reconstruction packages because everything is in the release. With this the HeavyIonsAnalysis/EventAnalyzer package is also checked out with an example config to test. More details needed to use the centrality object are given below. (*) In the analyzer you need
#include "RecoHI/HiCentralityAlgos/interface/CentralityProvider.h" ... CentralityProvider * centProvider = 0; ... if (!centProvider) centProvider = new CentralityProvider(iSetup); centProvider->newEvent(iEvent,iSetup); const reco::Centrality* centrality = centProvider->raw(); hiBin = centProvider->getBin();In the config file you need
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') process.GlobalTag.globaltag = 'GR_R_53_LV6::All' process.load('HeavyIonsAnalysis.Configuration.collisionEventSelection_cff') from HeavyIonsAnalysis.Configuration.CommonFunctions_cff import * overrideCentrality(process) process.HeavyIonGlobalParameters = cms.PSet( centralityVariable = cms.string("HFtowers"), nonDefaultGlauberModel = cms.string(""), centralitySrc = cms.InputTag("hiCentrality") ) process.p = cms.Path(process.hltMinBiasHFOrBSC * process.collisionEventSelection * ...)For MC config file the only difference is in the following parameters
process.GlobalTag.globaltag = '???::All' nonDefaultGlauberModel = cms.string("Hydjet_Drum"),
cmsrel CMSSW_5_3_20 cd CMSSW_5_3_20/src cmsenv git cms-addpkg RecoHI/HiCentralityAlgos git cms-merge-topic -u CmsHI:forest_CMSSW_5_3_20 scram bWith this the HeavyIonsAnalysis/EventAnalyzer package is also checked out with an example config to test. More details needed to use the centrality object are given below. In the analyzer you need
#include "RecoHI/HiCentralityAlgos/interface/CentralityProvider.h" ... CentralityProvider * centProvider = 0; ... if (!centProvider) centProvider = new CentralityProvider(iSetup); centProvider->newEvent(iEvent,iSetup); const reco::Centrality* centrality = centProvider->raw(); hiBin = centProvider->getBin();In the config file you need
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') process.GlobalTag.globaltag = 'GR_P_V43D::All' process.load('HeavyIonsAnalysis.Configuration.collisionEventSelection_cff') process.load('HeavyIonsAnalysis.VertexAnalysis.PAPileUpVertexFilter_cff') from HeavyIonsAnalysis.Configuration.CommonFunctions_cff import * overrideCentrality(process) process.HeavyIonGlobalParameters = cms.PSet( centralityVariable = cms.string("HFtowersTrunc"), #or HFtowersPlusTrunc nonDefaultGlauberModel = cms.string(""), centralitySrc = cms.InputTag("pACentrality"), pPbRunFlip = cms.untracked.uint32(211313) ) process.p = cms.Path(process.hltZeroBiasSingleTrack * process.PAcollisionEventSelection * process.pileupVertexFilterCutGplus * process.siPixelRecHits * process.pACentrality * ...)For MC config file the only difference is in the following parameters
process.GlobalTag.globaltag = 'STARTHI53_V27::All' process.HeavyIonGlobalParameters = cms.PSet( centralityVariable = cms.string("HFtowersTrunc"), # or HFtowersPlusTrunc nonDefaultGlauberModel = cms.string("Hijing"), centralitySrc = cms.InputTag("pACentrality"), pPbRunFlip = cms.untracked.uint32(99999999) # change to pPbRunFlip = cms.untracked.uint32(1) for Pbp MC sample )
cvs co -r pPbProd_v05 DataFormats/HeavyIonEvent cvs co -r pPbProd_v10 RecoHI/HiCentralityAlgos cvs co -r pPbProd_v09 HeavyIonsAnalysis/Configuration cvs co -r HiForest_V02_03 -d Appeltel/RpPbAnalysis UserCode/Appeltel/RpPbAnalysis
from HeavyIonsAnalysis.Configuration.CommonFunctions_cff import * overrideCentrality(process) process.HeavyIonGlobalParameters = cms.PSet( centralityVariable = cms.string("HFtowersTrunc"), #or HFtowersPlusTrunc nonDefaultGlauberModel = cms.string(""), centralitySrc = cms.InputTag("pACentrality"), pPbRunFlip = cms.untracked.uint32(211313) ) process.load('RecoHI.HiCentralityAlgos.HiCentrality_cfi') process.load('HeavyIonsAnalysis.Configuration.collisionEventSelection_cff') process.load('Appeltel.RpPbAnalysis.PAPileUpVertexFilter_cff') process.p = cms.Path( * process.PAcollisionEventSelection * process.pileupVertexFilterCutGplus * process.pACentrality_step * ...)
process.HeavyIonGlobalParameters = cms.PSet( centralityVariable = cms.string("HFtowersTrunc"), # or HFtowersPlusTrunc nonDefaultGlauberModel = cms.string("Hijing"), centralitySrc = cms.InputTag("pACentrality"), pPbRunFlip = cms.untracked.uint32(99999999) # change to pPbRunFlip = cms.untracked.uint32(1) for Pbp MC sample )
from CmsHi.Analysis2010.CommonFunctions_cff import * overrideCentrality(process)When you see the title [Centrality UP] in the hn, please go to your Analysis2010 directory and do "cvs up".
from CmsHi.Analysis2010.CommonFunctions_cff import * overrideCentrality(process)The HeavyIonGlobalParameters settings are
process.HeavyIonGlobalParameters = cms.PSet( centralityVariable = cms.string("HFtowers"), nonDefaultGlauberModel = cms.string(""), centralitySrc = cms.InputTag("hiCentrality") )together with the global tag GR_R_44_V12::All (or GR_P_V27A::All?)
from CmsHi.Analysis2010.CommonFunctions_cff import * overrideCentrality(process) process.HeavyIonGlobalParameters = cms.PSet( centralitySrc = cms.InputTag("hiCentrality"), centralityVariable = cms.string("HFtowers"), nonDefaultGlauberModel = cms.string("Hydjet_Bass") )If you are using the global tag STARTHI44_V12::All
process.HeavyIonGlobalParameters = cms.PSet( centralitySrc = cms.InputTag("hiCentrality"), centralityVariable = cms.string("HFtowers"), nonDefaultGlauberModel = cms.string("Hydjet_Bass") )
from CmsHi.Analysis2010.CommonFunctions_cff import * overrideCentrality(process) process.HeavyIonGlobalParameters = cms.PSet( centralitySrc = cms.InputTag("hiCentrality"), centralityVariable = cms.string("HFtowers"), nonDefaultGlauberModel = cms.string("Hydjet_Drum") )
cvs co CondFormats/HIObjects cvs co DataFormats/HeavyIonEvent cvs co RecoHI/HiCentralityAlgos cvs co -d CmsHi/Analysis2010 UserCode/CmsHi/Analysis2010 scram b
1) add
#include "DataFormats/HeavyIonEvent/interface/CentralityProvider.h"2) declare
CentralityProvider * centrality_;3) in the analyze() function
if(!centrality_) centrality_ = new CentralityProvider(iSetup); centrality_->newEvent(iEvent,iSetup); // make sure you do this first in every event double c = centrality_->centralityValue(); int bin = centrality_->getBin();4) set the pointer centrality_ = 0 explicitly in the constructor
process.load('Configuration.StandardSequences.FrontierConditions_CMS.GlobalTag_cff') process.GlobalTag.globaltag = 'MC_38Y_V13::All' # Make sure you have the right global tag (*) process.HeavyIonGlobalParameters = cms.PSet( centralityVariable = cms.string("HFhits"), nonDefaultGlauberModel = cms.string("Hydjet_2760GeV"), centralitySrc = cms.InputTag("hiCentrality") )(*) To see which table you are supposed to use with a specific release, please consult the page: https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideFrontierConditions
process.load("RecoHI.HiCentralityAlgos.CentralityBin_cfi") ... process.p = cms.Path(process.centralityBin)
The output is an integer, corresponding to the bin number.
int_centralityBin__SKIMWhat it means in percentage depends on how many bins were used. For example, if you use 40 bins:
Bin ID | Bin |
---|---|
0 | 0-2.5% |
1 | 2.5-5% |
... | ... |
38 | 95-97.5% |
39 | 97.5-100% |
process.load("RecoHI.HiCentralityAlgos.CentralityFilter_cfi") process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') process.GlobalTag.globaltag = 'MC_38Y_V8::All' process.GlobalTag.toGet = cms.VPSet( cms.PSet(record = cms.string("HeavyIonRcd"), tag = cms.string("CentralityTable_HFhits40_Hydjet2760GeV_v1_mc"), connect = cms.untracked.string("frontier://FrontierPrep/CMS_COND_PHYSICSTOOLS") ) )and add the filter in your path:
process.mypath = cms.Path(process.centralityFilter * .....)By default the filter selects only the most central events of whatever tag (binning you've used). One can change which bins to be selected by doing:
process.centralityFilter.selectedBins = [2,3,4]If you're using 20 centrality bins, this would select top 10-25%.
process.makeCentralityTableTFile = cms.EDAnalyzer('CentralityTableProducer', isMC = cms.untracked.bool(True), makeDBFromTFile = cms.untracked.bool(False), makeTFileFromDB = cms.untracked.bool(True) )to any cfg, like the one you're running your other analyzers. This will put the tables for all the runs into the output of the TFileService. Please note that, if there is a new global tag, for which you have to re-run your reconstruction and analysis, you will have to re-run to import the table as well. 2-In your root macro (whether it's FWLite of just root) add:
#include "DataFormats/HeavyIonEvent/interface/CentralityBins.h" TFile* inf = new TFile("centralityfile.root"); CentralityBins::RunMap cmap = getCentralityFromFile(inf, "makeCentralityTableTFile", "HFhitsAMPT_2760GeV", 149500, 155000); // FWLite int run = ev.id().run(); // or, if you're using any other tree: int run = myTreeVariableForRunNumber; int bin = cmap[run]->getBin(hf); double npartMean = cmap[run]->NpartMean(hf); double npartSigma = cmap[run]->NpartSigma(hf);However, even if you want to run in bare root, you need the following in your rootlogon:
{ gSystem->Load("libDataFormatsHeavyIonEvent"); gSystem->AddIncludePath("-I$CMSSW_BASE/src/"); gSystem->AddIncludePath("-I$CMSSW_RELEASE_BASE/src/"); }You can find example macros in ./macros/: http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/RecoHI/HiCentralityAlgos/macros/testCentralityFWLite.C?hideattic=0&view=markup