CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes
geometry.Alignables Class Reference

Public Member Functions

def __init__ (self, config)
 
def create_children_list (self)
 
def create_list (self, MillePedeUser)
 
def get_detids (self, subdetid, pattern={})
 
def get_discriminator (self, objid)
 
def get_name_by_objid (self, objid)
 
def get_ndiscriminator (self, objid)
 
def get_subdetid (self, objid)
 

Public Attributes

 config
 
 structures
 

Detailed Description

Creates a list of the aligned strucutres. Get the fields out of the
TrackerTree.root file.

Definition at line 15 of file geometry.py.

Constructor & Destructor Documentation

def geometry.Alignables.__init__ (   self,
  config 
)

Definition at line 20 of file geometry.py.

20  def __init__(self, config):
21  # list of Structure objects, contains structures which were aligned
22  self.structures = []
23  self.config = config
24 
def __init__(self, config)
Definition: geometry.py:20

Member Function Documentation

def geometry.Alignables.create_children_list (   self)

Definition at line 55 of file geometry.py.

References cmsPerfStripChart.dict, geometry.Alignables.get_detids(), join(), geometry.Alignables.structures, and ComparisonHelper.zip().

56  for struct in self.structures:
57  # loop over discriminators -> create patterns
58  # pattern {"half": 2, "side": 2, "layer": 6, ...}
59  ranges = struct.ndiscriminator
60  pranges = [range(1, x+1) for x in ranges]
61  # loop over all possible combinations of the values of the
62  # discriminators
63  for number in itertools.product(*pranges):
64  # create pattern dict
65  pattern = dict(zip(struct.discriminator, number))
66  # name out of patten
67  name = " ".join("{0} {1}".format(key, value)
68  for (key, value) in pattern.items())
69  # get detids of child
70  detids = self.get_detids(struct.subdetid, pattern)
71  # create child and add it to parent
72  child = Structure(name, struct.subdetid, detids=detids)
73  struct.children.append(child)
74 
def get_detids(self, subdetid, pattern={})
Definition: geometry.py:75
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
def create_children_list(self)
Definition: geometry.py:55
def geometry.Alignables.create_list (   self,
  MillePedeUser 
)

Definition at line 37 of file geometry.py.

References any(), geometry.Alignables.get_detids(), geometry.Alignables.get_discriminator(), geometry.Alignables.get_name_by_objid(), geometry.Alignables.get_ndiscriminator(), geometry.Alignables.get_subdetid(), genParticles_cff.map, and geometry.Alignables.structures.

37  def create_list(self, MillePedeUser):
38  # loop over output TTree
39  for line in MillePedeUser:
40  # check which structures were aligned
41  if (line.ObjId != 1 and 999999 not in map(abs, line.Par)):
42  # check if structure is not yet in the list
43  if not any(x.name == self.get_name_by_objid(line.ObjId) for x in self.structures):
44  # create new structure object
45  name = self.get_name_by_objid(line.ObjId)
46  subdetid = self.get_subdetid(line.ObjId)
47  discriminator = self.get_discriminator(line.ObjId)
48  ndiscriminator = self.get_ndiscriminator(line.ObjId)
49  # create structure
50  self.structures.append(
51  Structure(name, subdetid, discriminator, ndiscriminator))
52  # add detids which belong to this structure
53  self.structures[-1].detids = self.get_detids(subdetid)
54 
def get_name_by_objid(self, objid)
Definition: geometry.py:25
bool any(const std::vector< T > &v, const T &what)
Definition: ECalSD.cc:34
def get_detids(self, subdetid, pattern={})
Definition: geometry.py:75
def get_subdetid(self, objid)
Definition: geometry.py:28
def get_discriminator(self, objid)
Definition: geometry.py:31
def create_list(self, MillePedeUser)
Definition: geometry.py:37
def get_ndiscriminator(self, objid)
Definition: geometry.py:34
def geometry.Alignables.get_detids (   self,
  subdetid,
  pattern = {} 
)

Definition at line 75 of file geometry.py.

Referenced by geometry.Alignables.create_children_list(), and geometry.Alignables.create_list().

75  def get_detids(self, subdetid, pattern={}):
76  # list of all detids in the structure
77  detids = []
78  # open TrackerTree.root file
79  treeFile = TFile(os.path.join(self.config.mpspath, "TrackerTree.root"))
80  tree = treeFile.Get("TrackerTreeGenerator/TrackerTree/TrackerTree")
81 
82  for line in tree:
83  # check if line is part of the structure
84  if (line.SubdetId == subdetid):
85 
86  # to create a child also check the pattern
87  if ("half" in pattern):
88  if (line.Half != pattern["half"]):
89  continue
90 
91  if ("side" in pattern):
92  if (line.Side != pattern["side"]):
93  continue
94 
95  if ("layer" in pattern):
96  if (line.Layer != pattern["layer"]):
97  continue
98 
99  if ("rod" in pattern):
100  if (line.Rod != pattern["rod"]):
101  continue
102 
103  if ("ring" in pattern):
104  if (line.Ring != pattern["ring"]):
105  continue
106 
107  if ("petal" in pattern):
108  if (line.Petal != pattern["petal"]):
109  continue
110 
111  if ("blade" in pattern):
112  if (line.Blade != pattern["blade"]):
113  continue
114 
115  if ("panel" in pattern):
116  if (line.Panel != pattern["panel"]):
117  continue
118 
119  if ("outerinner" in pattern):
120  if (line.OuterInner != pattern["outerinner"]):
121  continue
122 
123  if ("module" in pattern):
124  if (line.Module != pattern["module"]):
125  continue
126 
127  detids.append(line.RawId)
128  return detids
129 
130 
def get_detids(self, subdetid, pattern={})
Definition: geometry.py:75
def geometry.Alignables.get_discriminator (   self,
  objid 
)

Definition at line 31 of file geometry.py.

Referenced by geometry.Alignables.create_list().

31  def get_discriminator(self, objid):
32  return geometrydata.data[objid].discriminator
33 
def get_discriminator(self, objid)
Definition: geometry.py:31
def geometry.Alignables.get_name_by_objid (   self,
  objid 
)

Definition at line 25 of file geometry.py.

Referenced by geometry.Alignables.create_list().

25  def get_name_by_objid(self, objid):
26  return geometrydata.data[objid].name
27 
def get_name_by_objid(self, objid)
Definition: geometry.py:25
def geometry.Alignables.get_ndiscriminator (   self,
  objid 
)

Definition at line 34 of file geometry.py.

Referenced by geometry.Alignables.create_list().

34  def get_ndiscriminator(self, objid):
35  return geometrydata.data[objid].ndiscriminator
36 
def get_ndiscriminator(self, objid)
Definition: geometry.py:34
def geometry.Alignables.get_subdetid (   self,
  objid 
)

Definition at line 28 of file geometry.py.

Referenced by geometry.Alignables.create_list().

28  def get_subdetid(self, objid):
29  return geometrydata.data[objid].subdetid
30 
def get_subdetid(self, objid)
Definition: geometry.py:28

Member Data Documentation

geometry.Alignables.config
geometry.Alignables.structures