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