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