CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTExpandMap.cc
Go to the documentation of this file.
1 
11 //----------------------
12 // This Class' Header --
13 //----------------------
15 
16 //-------------------------------
17 // Collaborating Class Headers --
18 //-------------------------------
19 
20 
21 //---------------
22 // C++ Headers --
23 //---------------
24 #include <iostream>
25 #include <fstream>
26 #include <vector>
27 
28 class DTMapEntry {
29 
30  public:
31 
32  DTMapEntry();
33  DTMapEntry( int xk1, int xk2, int xk3, int xk4, int xk5,
34  int xv1, int xv2, int xv3, int xv4, int xv5, int xv6 );
35  ~DTMapEntry();
36  int k1;
37  int k2;
38  int k3;
39  int k4;
40  int k5;
41  int v1;
42  int v2;
43  int v3;
44  int v4;
45  int v5;
46  int v6;
47 
48 };
49 
51  k1( 0 ),
52  k2( 0 ),
53  k3( 0 ),
54  k4( 0 ),
55  k5( 0 ),
56  v1( 0 ),
57  v2( 0 ),
58  v3( 0 ),
59  v4( 0 ),
60  v5( 0 ),
61  v6( 0 ) {
62 }
63 
64 DTMapEntry::DTMapEntry( int xk1, int xk2, int xk3, int xk4, int xk5,
65  int xv1, int xv2, int xv3, int xv4, int xv5,
66  int xv6 ):
67  k1( xk1 ),
68  k2( xk2 ),
69  k3( xk3 ),
70  k4( xk4 ),
71  k5( xk5 ),
72  v1( xv1 ),
73  v2( xv2 ),
74  v3( xv3 ),
75  v4( xv4 ),
76  v5( xv5 ),
77  v6( xv6 ) {
78 }
79 
81 }
82 
83 void DTExpandMap::expandSteering( std::ifstream& file ) {
84 
85  std::vector<int> key;
86  int k1;
87  int k2;
88  int k3;
89  int k4;
90  int k5;
91  int v1;
92  int v2;
93  int v3;
94  int v4;
95  int v5;
96  int v6;
97 
98  std::vector<DTMapEntry> entryList;
99  while ( file >> k1 >> k2 >> k3 >> k4 >> k5
100  >> v1 >> v2 >> v3 >> v4 >> v5 >> v6 ) {
101  std::vector<int> key;
102  key.push_back( k1 );
103  key.push_back( k2 );
104  key.push_back( k3 );
105  key.push_back( k4 );
106  key.push_back( k5 );
107  DTMapEntry currentEntry( k1, k2, k3, k4, k5,
108  v1, v2, v3, v4, v5, v6 );
109  entryList.push_back( currentEntry );
110  }
111 
112  int ddu;
113  int ros;
114  int rch;
115  int tdc;
116  int tch;
117  int whe;
118  int sta;
119  int sec;
120  int rob;
121  int qua;
122  int lay;
123  int cel;
124  int mt1;
125  int mi1;
126  int mt2;
127  int mi2;
128  int def;
129  int wha;
130  int sea;
131  std::vector<DTMapEntry>::const_iterator iter = entryList.begin();
132  std::vector<DTMapEntry>::const_iterator iend = entryList.end();
133  std::vector<DTMapEntry>::const_iterator iros = entryList.end();
134  std::vector<DTMapEntry>::const_iterator irob = entryList.end();
135  std::vector<DTMapEntry>::const_iterator itdc = entryList.end();
136  while ( iter != iend ) {
137  const DTMapEntry& rosEntry( *iter++ );
138  if ( rosEntry.k1 > 0x3fffffff ) continue;
139  ddu = rosEntry.k1;
140  ros = rosEntry.k2;
141  whe = rosEntry.v1;
142  def = rosEntry.v2;
143  sec = rosEntry.v3;
144  rob = rosEntry.v4;
145  mt1 = rosEntry.v5;
146  mi1 = rosEntry.v6;
147  iros = entryList.begin();
148  while ( iros != iend ) {
149  wha = whe;
150  sea = sec;
151  const DTMapEntry& rchEntry( *iros++ );
152  if ( ( rchEntry.k1 != mt1 ) ||
153  ( rchEntry.k2 != mi1 ) ) continue;
154  rch = rchEntry.k3;
155  if ( rchEntry.v1 != def ) wha = rchEntry.v1;
156  sta = rchEntry.v2;
157  if ( rchEntry.v3 != def ) sea = rchEntry.v3;
158  rob = rchEntry.v4;
159  mt2 = rchEntry.v5;
160  mi2 = rchEntry.v6;
161  irob = entryList.begin();
162  while ( irob != iend ) {
163  const DTMapEntry& robEntry( *irob++ );
164  if ( ( robEntry.k1 != mt2 ) ||
165  ( robEntry.k2 != mi2 ) ) continue;
166  if ( robEntry.k3 != rob ) {
167  std::cout << "ROB mismatch " << rob << " "
168  << robEntry.k3 << std::endl;
169  }
170  tdc = robEntry.k4;
171  tch = robEntry.k5;
172  qua = robEntry.v4;
173  lay = robEntry.v5;
174  cel = robEntry.v6;
175  std::cout << ddu << " "
176  << ros << " "
177  << rch << " "
178  << tdc << " "
179  << tch << " "
180  << wha << " "
181  << sta << " "
182  << sea << " "
183  << qua << " "
184  << lay << " "
185  << cel << std::endl;
186  }
187  }
188  }
189 
190  return;
191 
192 }
193 
194 
static void expandSteering(std::ifstream &file)
Definition: DTExpandMap.cc:83
list key
Definition: combine.py:13
tuple cout
Definition: gather_cfg.py:41
JetCorrectorParameters::Definitions def
Definition: classes.h:10