The user should be aware that CMSSW evolving rapidly, and all examples will change quickly. This page is for training people who will help in the rapid development and testing cycle. What you learn is not garanteed to work for very long . . .
This procedure is supposed to work for vanila CMSSW_0_6_0. It has been tested with CMSSW_0_6_0_pre6 with some patches (see below)
The full chain includes following steps:scramv1 project CMSSW CMSSW_0_6_0 cd CMSSW_0_6_0/src eval `scramv1 runtime -csh`Need extra patches for CMSSW_0_6_0_pre6:
scramv1 project CMSSW CMSSW_0_6_0_pre6 cd CMSSW_0_6_0_pre6/src cmscvsroot CMSSW cvs co -r V01-03-00 DataFormats/JetReco cvs co -r V00-01-07 RecoJets/JetAlgorithms cvs co -r V00-01-06 RecoJets/JetProducers cvs co -r V00-04-02 RecoLocalCalo/CaloTowersCreator eval `scramv1 runtime -csh` scramv1 bGet configuration files:
cmsRun -p Example_Gen+DetSim+Digi.cfgTo run Pythia Z'(700)->dijets, first include pythia_Z700_dijets.cfi instead of pt_gun.cfi in the Example_Gen+DetSim+Digi.cfg file. It generates 5 events and produces file evtgen_detsim_digi.root containing generator level information, SimHits including CaloSimHits, and digis.
cmsRun -p Example_Calorimetry+Jets.cfgThe produced file evtgen_jets.root contains generator level information, reconstructed intermediate objects, like CaloTowers, and also jets reconstracted using generator level information as well as true CaloTower information.
Some comments to the configuration file are below...
module out = PoolOutputModule { untracked string fileName = 'evtgen_jets.root' untracked vstring outputCommands = { "keep *", "drop *_muoncscdigi_*_*", "drop *_muondtdigi_*_*", "drop *_stripdigi_*_*", "drop *_pixdigi_*_*", "drop *_hcaldigi_*_*", "drop *_ecaldigi_*_*", "drop *_SimG4Object_*_*" } }Drop all digis and all simulation objects from output.
module genCandidates = HepMCCandidateProducer { # pick right source - different for different generators # string src = "PythiaSource" string src = "FlatRandomPtGunSource" untracked bool verbose = false bool stableOnly = true vstring excludeList = { "nu(e)0", "nu(mu)0", "nu(tau)0", "mu-", "K(L)0", "n0" } }This converts generator level particles into generic CandidateCollectin to be used as a unified input by jet algorithms. Note, that generator module name needs to be explicitly specified here.
# module caloTowers = CaloTowerCandidateCreator { # string src = "towermaker" # } module caloTowers = CaloTowerCandidateProducer { string src = "towermaker" }This converts CaloTowers collection into generic CandidateCollectin to be used as a unified input by jet algorithms. In pre3 we still use CaloTowerCandidateProducer, however in later releases supported by the Calorimetry group CaloTowerCandidateCreator should be used.
block mcone_jet_parameters = { untracked int32 debugLevel = 1 double seedThreshold = 3.0 double towerThreshold = 1.0 double coneAreaFraction = 1.0 int32 maxPairSize = 2 int32 maxIterations = 100 double overlapThreshold = .75 } block kt_jet_parameters = { int32 ktAngle = 2 int32 ktRecom = 1 double ktECut = 1.0 double ktRParam = 1.0 }Common MidConeJets and KtJets reconstruction parameters.
module mcone5gen = MidpointJetProducer { using mcone_jet_parameters double coneRadius = 0.5 string src = "genCandidates" untracked string jetType = "GenJet" } module mcone7gen = MidpointJetProducer { using mcone_jet_parameters double coneRadius = 0.7 string src = "genCandidates" untracked string jetType = "GenJet" } module ktjetgen = KtJetProducer { using kt_jet_parameters string src = "genCandidates" untracked string jetType = "GenJet" }Specific parameters for MidCone 0.5, MidCone 0.7, and Kt jets reconstructed from Generator particles and producing specific CaloJets
module mcone5 = MidpointJetProducer { using mcone_jet_parameters double coneRadius = 0.5 string src = "caloTowers" untracked string jetType = "CaloJet" } module mcone7 = MidpointJetProducer { using mcone_jet_parameters double coneRadius = 0.7 string src = "caloTowers" untracked string jetType = "CaloJet" } module ktjet = KtJetProducer { using kt_jet_parameters string src = "caloTowers" untracked string jetType = "CaloJet" }Specific parameters for MidCone 0.5, MidCone 0.7, and Kt jets reconstructed from CaloTowers and producing specific CaloJets
root.exe evtgen_jets.root root [1] Events->Draw("CaloJets_mcone5.obj.m_data.e:GenJets_mcone5gen.obj.m_data.e");This plots energy of reconstructed CaloJet vs energy of corresponding reconstructed GenJet.