CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions
customiseTrackingNtuple Namespace Reference

Functions

def customiseTrackingNtuple
 

Function Documentation

def customiseTrackingNtuple.customiseTrackingNtuple (   process)

Definition at line 3 of file customiseTrackingNtuple.py.

3 
4 def customiseTrackingNtuple(process):
5  process.load("Validation.RecoTrack.trackingNtuple_cff")
6  process.TFileService = cms.Service("TFileService",
7  fileName = cms.string('trackingNtuple.root')
8  )
9 
10  if process.trackingNtuple.includeSeeds.value() and not hasattr(process, "reconstruction_step"):
11  raise Exception("TrackingNtuple includeSeeds=True needs reconstruction which is missing")
12 
13  # Replace validation_step with ntuplePath
14  if not hasattr(process, "validation_step"):
15  raise Exception("TrackingNtuple customise assumes process.validation_step exists")
16 
17 
18  # Should replay mixing for pileup simhits?
19  usePileupSimHits = hasattr(process, "mix") and hasattr(process.mix, "input") and len(process.mix.input.fileNames) > 0
20 # process.eda = cms.EDAnalyzer("EventContentAnalyzer")
21 
22  ntuplePath = cms.EndPath(process.trackingNtupleSequence)
23  if process.trackingNtuple.includeAllHits and usePileupSimHits:
24  ntuplePath.insert(0, cms.SequencePlaceholder("mix"))
25 
26  process.load("Validation.RecoTrack.crossingFramePSimHitToPSimHits_cfi")
27  instanceLabels = [tag.getModuleLabel()+tag.getProductInstanceLabel() for tag in process.simHitTPAssocProducer.simHitSrc]
28  process.crossingFramePSimHitToPSimHits.src = ["mix:"+l for l in instanceLabels]
29  process.simHitTPAssocProducer.simHitSrc = ["crossingFramePSimHitToPSimHits:"+l for l in instanceLabels]
30  process.trackingNtupleSequence.insert(0, process.crossingFramePSimHitToPSimHits)
31 
32  # Bit of a hack but works
33  modifier = cms.Modifier()
34  modifier._setChosen()
35  modifier.toReplaceWith(process.validation_step, ntuplePath)
36 
37  if hasattr(process, "prevalidation_step"):
38  modifier.toReplaceWith(process.prevalidation_step, cms.Path())
39 
40  # Remove all output modules
41  for outputModule in process.outputModules_().itervalues():
42  for path in process.paths_().itervalues():
43  path.remove(outputModule)
44  for path in process.endpaths_().itervalues():
45  path.remove(outputModule)
46 
47 
48  return process