forked from cms-sw/cmssw
/
ECALHCAL.py
89 lines (64 loc) · 4.21 KB
/
ECALHCAL.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import six
import FWCore.ParameterSet.Config as cms
def customise(process):
# extend the particle gun acceptance
process.generator.AddAntiParticle = cms.bool(False)
# no magnetic field
process.g4SimHits.UseMagneticField = cms.bool(False)
process.UniformMagneticFieldESProducer = cms.ESProducer("UniformMagneticFieldESProducer",
ZFieldInTesla = cms.double(0.0)
)
process.prefer("UniformMagneticFieldESProducer")
# add ECAL and HCAL specific Geant4 hits objects
process.g4SimHits.Watchers = cms.VPSet(cms.PSet(
instanceLabel = cms.untracked.string('EcalValidInfo'),
type = cms.string('EcalSimHitsValidProducer'),
verbose = cms.untracked.bool(False)
))
# use directly the generator output, no Hector
process.g4SimHits.Generator.HepMCProductLabel = cms.string('generatorSmeared')
# modify the content
#process.output.outputCommands.append("keep *_simHcalUnsuppressedDigis_*_*")
six.next(six.iteritems(process.outputModules_()))[1].outputCommands.append("keep *_simHcalUnsuppressedDigis_*_*")
# user schedule: use only calorimeters digitization and local reconstruction
del process.schedule[:]
process.schedule.append(process.generation_step)
process.schedule.append(process.simulation_step)
process.ecalMultiFitUncalibRecHit.EBdigiCollection = cms.InputTag("simEcalDigis","ebDigis")
process.ecalMultiFitUncalibRecHit.EEdigiCollection = cms.InputTag("simEcalDigis","eeDigis")
process.ecalPreshowerRecHit.ESdigiCollection = cms.InputTag("simEcalPreshowerDigis")
delattr(process,"hbhereco")
process.hbhereco = process.hbheprereco.clone()
process.hcalLocalRecoSequence.replace(process.hbheprereco,process.hbhereco)
process.hbhereco.digiLabelQIE8 = cms.InputTag("simHcalUnsuppressedDigis")
process.hbhereco.digiLabelQIE11 = cms.InputTag("simHcalUnsuppressedDigis","HBHEQIE11DigiCollection")
process.horeco.digiLabel = cms.InputTag("simHcalUnsuppressedDigis")
process.hfreco.digiLabel = cms.InputTag("simHcalUnsuppressedDigis")
process.ecalRecHit.recoverEBIsolatedChannels = cms.bool(False)
process.ecalRecHit.recoverEEIsolatedChannels = cms.bool(False)
process.ecalRecHit.recoverEBFE = cms.bool(False)
process.ecalRecHit.recoverEEFE = cms.bool(False)
# process.local_digireco = cms.Path(process.mix * process.calDigi * process.ecalLocalRecoSequence * process.hbhereco * process.hfreco * process.horeco * (process.ecalClusters+process.caloTowersRec) * process.reducedEcalRecHitsSequence )
process.reducedEcalRecHitsEB.interestingDetIdCollections = cms.VInputTag(
# ecal
cms.InputTag("interestingEcalDetIdEB"),
cms.InputTag("interestingEcalDetIdEBU"),
)
process.reducedEcalRecHitsEE.interestingDetIdCollections = cms.VInputTag(
# ecal
cms.InputTag("interestingEcalDetIdEE"),
)
process.local_digireco = cms.Path(process.mix * process.addPileupInfo * process.bunchSpacingProducer * process.calDigi * process.ecalPacker * process.esDigiToRaw * process.hcalRawData * process.rawDataCollector * process.ecalDigis * process.ecalPreshowerDigis * process.hcalDigis * process.calolocalreco *(process.ecalClustersNoPFBox+process.caloTowersRec) * process.reducedEcalRecHitsSequenceEcalOnly )
process.schedule.append(process.local_digireco)
# add HcalNoiseRBXCollection product for Validation/CaloTowers Validation/HcalRecHits
process.load( "RecoMET.METProducers.hcalnoiseinfoproducer_cfi" )
process.hcalnoise_path = cms.Path( process.hcalnoise )
process.schedule.append( process.hcalnoise_path )
process.load("Validation/Configuration/ecalSimValid_cff")
process.load("Validation/Configuration/hcalSimValid_cff")
process.local_validation = cms.Path(process.ecalSimValid+process.hcalSimValid)
process.schedule.append(process.local_validation)
process.schedule.append(process.endjob_step)
#process.schedule.append(process.out_step)
process.schedule.append(getattr(process,six.next(six.iteritems(process.outputModules_()))[0]+"_step"))
return(process)