test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Eras.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 class Eras (object):
4  """
5  Dummy container for all the cms.Modifier instances that config fragments
6  can use to selectively configure depending on what scenario is active.
7  """
8  def __init__(self):
9  # These eras should not be set directly by the user.
10  self.run2_common = cms.Modifier()
11  self.run2_25ns_specific = cms.Modifier()
12  self.run2_50ns_specific = cms.Modifier()
13  self.run2_HI_specific = cms.Modifier()
14  self.run2_HF_2016 = cms.Modifier()
15  self.ctpps_2016 = cms.Modifier()
16  self.stage1L1Trigger = cms.Modifier()
17  self.stage2L1Trigger = cms.Modifier()
18  self.phase1Pixel = cms.Modifier()
19  # Implementation note: When this was first started, stage1L1Trigger wasn't in all
20  # of the eras. Now that it is, it could in theory be dropped if all changes are
21  # converted to run2_common (i.e. a search and replace of "stage1L1Trigger" to
22  # "run2_common" over the whole python tree). In practice, I don't think it's worth
23  # it, and this also gives the flexibilty to take it out easily.
24 
25  # Phase 2 sub-eras for stable features
26  self.phase2_common = cms.Modifier()
27  self.phase2_tracker = cms.Modifier()
28  self.phase2_hgc = cms.Modifier()
29  self.phase2_muon = cms.Modifier()
30  # Phase 2 sub-eras for in-development features
31  self.phase2dev_common = cms.Modifier()
32  self.phase2dev_tracker = cms.Modifier()
33  self.phase2dev_hgc = cms.Modifier()
34  self.phase2dev_muon = cms.Modifier()
35 
36 
37  # These eras are used to specify the tracking configuration
38  # when it should differ from the default (which is Run2). This
39  # way the tracking configuration is decoupled from the
40  # detector geometry to allow e.g. running Run2 tracking on
41  # phase1Pixel detector.
42  self.trackingLowPU = cms.Modifier()
43 
44  # This era should not be set by the user with the "--era" command, it's
45  # activated automatically if the "--fast" command is used.
46  self.fastSim = cms.Modifier()
47 
48  #
49  # These are the eras that the user should specify
50  #
51  # Run1 currently does nothing. It's useful to use as a no-operation era commands when scripting,
52  # but also retains the flexibility to add Run1 specific commands at a later date.
53  self.Run1 = cms.Modifier()
54  # The various Run2 scenarios for 2015 startup.
55  self.Run2_25ns = cms.ModifierChain( self.run2_common, self.run2_25ns_specific, self.stage1L1Trigger )
56  self.Run2_50ns = cms.ModifierChain( self.run2_common, self.run2_50ns_specific )
57  self.Run2_HI = cms.ModifierChain( self.run2_common, self.run2_HI_specific, self.stage1L1Trigger )
58  # Future Run 2 scenarios.
59  self.Run2_2016 = cms.ModifierChain( self.run2_common, self.run2_25ns_specific, self.stage2L1Trigger, self.run2_HF_2016, self.ctpps_2016 )
60  self.Run2_2017 = cms.ModifierChain( self.Run2_2016, self.phase1Pixel )
61  # Scenarios further afield.
62  # Phase2 is everything for the 2023 (2026?) detector that works so far in this release.
63  self.Phase2 = cms.ModifierChain( self.phase2_common, self.phase2_tracker, self.phase2_hgc, self.phase2_muon )
64  # Phase2dev is everything for the 2023 (2026?) detector that is still in development.
65  self.Phase2dev = cms.ModifierChain( self.Phase2, self.phase2dev_common, self.phase2dev_tracker, self.phase2dev_hgc, self.phase2dev_muon )
66 
67  # Scenarios with low-PU tracking (for B=0T reconstruction)
68  self.Run2_2016_trackingLowPU = cms.ModifierChain(self.Run2_2016, self.trackingLowPU)
69 
70  # The only thing this collection is used for is for cmsDriver to
71  # warn the user if they specify an era that is discouraged from being
72  # set directly. It also stops these eras being printed in the error
73  # message of available values when an invalid era is specified.
76  self.stage1L1Trigger, self.fastSim,
77  self.run2_HF_2016, self.stage2L1Trigger,
78  self.phase1Pixel,
79  self.phase2_common, self.phase2_tracker,
80  self.phase2_hgc, self.phase2_muon,
82  self.phase2dev_hgc, self.phase2dev_muon,
83  self.trackingLowPU
84  ]
85 
86 eras=Eras()
phase2_common
Definition: Eras.py:26
Run2_50ns
Definition: Eras.py:56
phase2_muon
Definition: Eras.py:29
run2_25ns_specific
Definition: Eras.py:11
phase1Pixel
Definition: Eras.py:18
phase2dev_common
Definition: Eras.py:31
run2_50ns_specific
Definition: Eras.py:12
run2_HI_specific
Definition: Eras.py:13
Run2_HI
Definition: Eras.py:57
phase2dev_muon
Definition: Eras.py:34
stage1L1Trigger
Definition: Eras.py:16
Run2_2016_trackingLowPU
Definition: Eras.py:68
stage2L1Trigger
Definition: Eras.py:17
run2_HF_2016
Definition: Eras.py:14
internalUseEras
Definition: Eras.py:74
Definition: Eras.py:3
run2_common
Definition: Eras.py:10
phase2dev_tracker
Definition: Eras.py:32
Run2_2017
Definition: Eras.py:60
phase2_hgc
Definition: Eras.py:28
phase2dev_hgc
Definition: Eras.py:33
Run1
Definition: Eras.py:53
fastSim
Definition: Eras.py:46
trackingLowPU
Definition: Eras.py:42
def __init__
Definition: Eras.py:8
Phase2
Definition: Eras.py:63
Run2_2016
Definition: Eras.py:59
phase2_tracker
Definition: Eras.py:27
Run2_25ns
Definition: Eras.py:55
ctpps_2016
Definition: Eras.py:15
Phase2dev
Definition: Eras.py:65