CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes | Static Public Attributes
config.Analyzer Class Reference
Inheritance diagram for config.Analyzer:
config.CFG

Public Member Functions

def __init__ (self, class_object, instance_label=None, verbose=False, **kwargs)
 
def __setattr__ (self, name, value)
 
def build_name (self)
 
def clone (self, **kwargs)
 
- Public Member Functions inherited from config.CFG
def __init__ (self, **kwargs)
 
def __str__ (self)
 

Public Attributes

 class_object
 
 instance_label
 
 name
 
 verbose
 

Static Public Attributes

 num_instance
 

Detailed Description

Base analyzer configuration, see constructor

Definition at line 80 of file config.py.

Constructor & Destructor Documentation

◆ __init__()

def config.Analyzer.__init__ (   self,
  class_object,
  instance_label = None,
  verbose = False,
**  kwargs 
)
One could for example define the analyzer configuration for a
di-muon framework.Analyzer.Analyzer in the following way:

ZMuMuAna = cfg.Analyzer(
"ZMuMuAnalyzer",
pt1 = 20,
pt2 = 20,
iso1 = 0.1,
iso2 = 0.1,
eta1 = 2,
eta2 = 2,
m_min = 0,
m_max = 200
)

Any kinds of keyword arguments can be added.
The name must be present, and must be well chosen, as it will be used
by the Looper to find the module containing the Analyzer class.
This module should be in your PYTHONPATH. If not, modify your python path
accordingly in your script.

Definition at line 85 of file config.py.

85  def __init__(self, class_object, instance_label=None,
86  verbose=False, **kwargs):
87  '''
88  One could for example define the analyzer configuration for a
89  di-muon framework.Analyzer.Analyzer in the following way:
90 
91  ZMuMuAna = cfg.Analyzer(
92  "ZMuMuAnalyzer",
93  pt1 = 20,
94  pt2 = 20,
95  iso1 = 0.1,
96  iso2 = 0.1,
97  eta1 = 2,
98  eta2 = 2,
99  m_min = 0,
100  m_max = 200
101  )
102 
103  Any kinds of keyword arguments can be added.
104  The name must be present, and must be well chosen, as it will be used
105  by the Looper to find the module containing the Analyzer class.
106  This module should be in your PYTHONPATH. If not, modify your python path
107  accordingly in your script.
108  '''
109 
110  self.class_object = class_object
111  self.__class__.num_instance += 1
112  if instance_label is None:
113  instance_label = str(self.__class__.num_instance)
114  self.instance_label = instance_label
115  self.verbose = verbose
116  super(Analyzer, self).__init__(**kwargs)
117 

Member Function Documentation

◆ __setattr__()

def config.Analyzer.__setattr__ (   self,
  name,
  value 
)
You may decide to copy an existing analyzer and change
its instance_label. In that case, one must stay consistent.

Definition at line 118 of file config.py.

118  def __setattr__(self, name, value):
119  '''You may decide to copy an existing analyzer and change
120  its instance_label. In that case, one must stay consistent.'''
121  self.__dict__[name] = value
122  if name == 'instance_label':
123  self.name = self.build_name()
124 

Referenced by GenObject.GenObject.setValue().

◆ build_name()

def config.Analyzer.build_name (   self)

◆ clone()

def config.Analyzer.clone (   self,
**  kwargs 
)
Make a copy of this object, redefining (or adding) some parameters, just
   like in the CMSSW python configuration files. 

   For example, you can do
      module1 = cfg.Analyzer(SomeClass, 
          param1 = value1, 
          param2 = value2, 
          param3 = value3, 
          ...)
      module2 = module1.clone(
         param2 = othervalue,
         newparam = newvalue)
   and module2 will inherit the configuration of module2 except for
   the value of param2, and for having an extra newparam of value newvalue
   (the latter may be useful if e.g. newparam were optional, and needed
   only when param2 == othervalue)

   Note that, just like in CMSSW, this is a shallow copy and not a deep copy,
   i.e. if in the example above value1 were to be an object, them module1 and
   module2 will share the same instance of value1, and not have two copies.

Reimplemented from config.CFG.

Definition at line 131 of file config.py.

131  def clone(self, **kwargs):
132  other = super(Analyzer, self).clone(**kwargs)
133  if 'class_object' in kwargs and 'name' not in kwargs:
134  other.name = other.build_name()
135  return other
136 

Member Data Documentation

◆ class_object

config.Analyzer.class_object

Definition at line 109 of file config.py.

Referenced by config.Analyzer.build_name(), and config.Service.build_name().

◆ instance_label

config.Analyzer.instance_label

◆ name

config.Analyzer.name

◆ num_instance

config.Analyzer.num_instance
static

Definition at line 83 of file config.py.

◆ verbose

config.Analyzer.verbose
join
static std::string join(char **cmd)
Definition: RemoteFile.cc:17
clone
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135
str
#define str(s)
Definition: TestProcessor.cc:48
parallelization.build_name
build_name
Definition: parallelization.py:159