]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/data/station345/makePadPos.C
Update master to aliroot
[u/mrichter/AliRoot.git] / MUON / mapping / data / station345 / makePadPos.C
1 #include <vector>
2 #include <utility>
3 #include <fstream>
4 #include <string>
5
6 void add(std::vector<std::pair<int,int> >& v, int i1, int i2)
7 {
8   v.push_back(std::make_pair<int,int>(i1,i2));
9 }
10
11 std::vector<std::pair<int,int> > make_pattern(const std::string& what)
12 {
13   std::vector<std::pair<int,int> > cols;
14
15   if ( what == "L5" || what == "L23" )
16     {
17       cols.push_back(std::make_pair<int,int>(0,40)); // starting at zero, length = 40
18       cols.push_back(std::make_pair<int,int>(0,24));
19     }
20   else if ( what == "Z1" || what == "Z5" || what == "Z8" )
21     {
22       cols.push_back(std::make_pair<int,int>(24,16));
23       cols.push_back(std::make_pair<int,int>(0,40));
24       cols.push_back(std::make_pair<int,int>(0,8));
25     }
26   else if ( what == "O9" || what == "O10" || what == "O11" || what == "O12" 
27             || what == "O18" || what == "O19" || what == "O20" || 
28            what == "O23" || what == "O24" )
29     {
30       add(cols,0,32);
31       add(cols,0,32);
32     }
33   else if ( what == "Z2" || what == "Z7" )
34     {
35       cols.push_back(std::make_pair<int,int>(0,8));
36       cols.push_back(std::make_pair<int,int>(0,40));
37       cols.push_back(std::make_pair<int,int>(24,16));
38     }
39   else if ( what == "L6" )
40     {
41       cols.push_back(std::make_pair<int,int>(0,24));
42       cols.push_back(std::make_pair<int,int>(0,40));
43     }
44   else if ( what == "L7" || what == "L21" )
45     {
46       cols.push_back(std::make_pair<int,int>(0,40));
47       cols.push_back(std::make_pair<int,int>(16,24));
48     }
49   else if ( what == "Z3" || what == "Z6" )
50     {
51       cols.push_back(std::make_pair<int,int>(0,16));
52       cols.push_back(std::make_pair<int,int>(0,40));
53       cols.push_back(std::make_pair<int,int>(32,8));
54     }
55   else if ( what == "Z4" )
56     {
57       cols.push_back(std::make_pair<int,int>(32,8));
58       cols.push_back(std::make_pair<int,int>(0,40));
59       cols.push_back(std::make_pair<int,int>(0,16));
60     }
61   else if ( what == "L8" )
62     {
63       cols.push_back(std::make_pair<int,int>(16,24));
64       cols.push_back(std::make_pair<int,int>(0,40));
65     }
66   else if ( what == "L3" )
67     {
68       for ( int i = 0; i < 4; ++i )  add(cols,0,4);
69       for ( int i = 0; i < 16; ++i ) add(cols,1,3);
70     }
71   else if ( what == "O4" )
72     {
73       for ( int i = 0; i < 16; ++i ) add(cols,0,4);
74     }
75   else if ( what == "L4" )
76     {
77       for ( int i = 0; i < 16; ++i ) add(cols,1,3);
78       for ( int i = 0; i <  4; ++i ) add(cols,0,4);
79     }
80   else if ( what == "P3" )
81     {
82       for ( int i = 0; i <  4; ++i ) add(cols,0,4);
83       for ( int i = 0; i <  8; ++i ) add(cols,0,5);
84       for ( int i = 0; i <  2; ++i ) add(cols,0,4);
85     }
86   else if ( what == "Q3" )
87     {
88       for ( int i = 0; i <  2; ++i ) add(cols,4,1);
89       for ( int i = 0; i <  6; ++i ) add(cols,0,5);
90       for ( int i = 0; i <  8; ++i ) add(cols,0,4);
91     }
92   else if ( what == "Q4" )
93     {
94       for ( int i = 0; i <  8; ++i ) add(cols,0,4);
95       for ( int i = 0; i <  6; ++i ) add(cols,0,5);
96       for ( int i = 0; i <  2; ++i ) add(cols,4,1);
97
98     }
99   else if ( what == "P4" )
100     {
101       for ( int i = 0; i <  2; ++i ) add(cols,0,4);
102       for ( int i = 0; i <  8; ++i ) add(cols,0,5);
103       for ( int i = 0; i <  4; ++i ) add(cols,0,4);
104     }
105   else if ( what == "O1" || what == "O2" || what == "O13" ||
106             what == "O15" || what == "O16" || what == "O21" || what == "O22" )
107     {
108       for ( int i = 0; i < 8; ++i ) add(cols,0,8);
109     }
110   else if ( what == "O5" || what == "O6" || what == "O7" || what == "O8" )
111     {
112       for ( int i = 0; i < 28; ++i ) add(cols,0,2);
113     }
114   else if ( what == "L9" )
115     {
116       add(cols,0,48);
117       add(cols,0,16);
118     }
119   else if ( what == "L10" )
120     {
121       add(cols,0,16);
122       add(cols,0,48);
123     }
124   else if ( what == "O14" )
125     {
126       for ( int i = 0; i < 4; ++i )
127         {
128           add(cols,0,16);
129         }
130     }
131   else if ( what == "R1" )
132     {
133  //      add(cols,0,27);
134 //       add(cols,3,25);
135 //       add(cols,6,12);
136       add(cols,1,27);
137       add(cols,0,25);
138       add(cols,10,12);
139     }
140   else if ( what == "R2" )
141     {
142 //       add(cols,0,11);
143 //       add(cols,0,14);
144 //       add(cols,13,4);
145 //       add(cols,-29,11);
146 //       add(cols,16,24);
147       add(cols,29,11);
148       add(cols,26,14);
149       add(cols,0,11);
150       add(cols,-23,4);
151       add(cols,0,24);
152     }
153   else if ( what == "R3" )
154     {
155 //       add(cols,0,13);
156 //       add(cols,10,6);
157 //       add(cols,-40,1);
158 //       add(cols,13,30);
159 //       add(cols,16,14);
160       add(cols,30,13);
161       add(cols,2,1);
162       add(cols,-27,6);
163       add(cols,0,30);
164       add(cols,13,14);
165
166     }
167   else if ( what == "R4" )
168     {
169  //      add(cols,0,10);
170 //       add(cols,0,13);
171 //       add(cols,11,5);
172 //       add(cols,-30,15);
173 //       add(cols,14,21);
174       add(cols,35,10);
175       add(cols,32,13);
176       add(cols,0,15);
177       add(cols,-29,5);
178       add(cols,10,21);
179     }
180   else if ( what == "R5" )
181     {
182 //       add(cols,0,11);
183 //       add(cols,8,6);
184 //       add(cols,-35,12);
185 //       add(cols,12,35);
186       add(cols,36,11);
187       add(cols,0,12);
188       add(cols,-33,6);
189       add(cols,0,35);
190     }
191   else if ( what == "R6" )
192     {
193  //      add(cols,0,8);
194 //       add(cols,4,8);
195 //       add(cols,-47,3);
196 //       add(cols,10,43);
197 //       add(cols,50,2);
198       add(cols,45,8);
199       add(cols,3,3);
200       add(cols,-41,8);
201       add(cols,0,43);
202       add(cols,1,2);
203     }
204   else if ( what == "R7" )
205     {
206  //      add(cols,0,4);
207 //       add(cols,0,10);
208 //       add(cols,7,43);
209 //       add(cols,-52,5);
210 //       add(cols,57,2);
211       add(cols,55,4);
212       add(cols,49,10);
213       add(cols,2,5);
214       add(cols,-9,43);
215       add(cols,0,2);
216     }
217   else if ( what == "R8" )
218     {
219 //       add(cols,0,6);
220 //       add(cols,2,54);
221 //       add(cols,-58,3);
222 //       add(cols,59,1);
223       add(cols,55,6);
224       add(cols,0,3);
225       add(cols,-5,54);
226       add(cols,1,1);
227     }
228   else if ( what == "R9" )
229     {
230  //      add(cols,0,1);
231 //       add(cols,0,3);
232 //       add(cols,0,60);
233       add(cols,59,1);
234       add(cols,57,3);
235       add(cols,0,60);
236     }
237   else if ( what == "R10" )
238     {
239  //      add(cols,61,3);
240 //       add(cols,0,61);
241       add(cols,0,3);
242       add(cols,3,61);
243     }
244   else if ( what == "R11" )
245     {
246 //       add(cols,61,2);
247 //       add(cols,0,62);
248       add(cols,0,2);
249       add(cols,1,63);
250     }
251   else if ( what == "R12" )
252     {
253 //       add(cols,62,1);
254 //       add(cols,0,63);
255       add(cols,0,1);
256       add(cols,0,63);
257     }
258   else if ( what == "R13" )
259     {
260 //       add(cols,1,3);
261 //       add(cols,1,10);
262 //       add(cols,0,17);
263 //       add(cols,0,17);
264 //       add(cols,0,17);
265       add(cols,13,3);
266       add(cols,6,10);
267       add(cols,0,17);
268       add(cols,0,17);
269       add(cols,0,17);
270     }
271   else if ( what == "R14" )
272     {
273       for ( int i = 0; i < 5; ++i ) add(cols,1,8);
274       for ( int i = 0; i < 3; ++i ) add(cols,0,8);
275     }
276   else if ( what == "R15" )
277     {
278       for ( int i = 0; i < 3; ++i ) add(cols,9,1);
279       for ( int i = 0; i < 4; ++i ) add(cols,1,9);
280       for ( int i = 0; i < 2; ++i ) add(cols,1,8);
281       for ( int i = 0; i < 1; ++i ) add(cols,0,9);
282     }
283   else if ( what == "R16" )
284     {
285       for ( int i = 0; i < 3; ++i ) add(cols,10,1);
286       for ( int i = 0; i < 3; ++i ) add(cols,1,10);
287       for ( int i = 0; i < 2; ++i ) add(cols,1,9);
288       for ( int i = 0; i < 1; ++i ) add(cols,0,10);
289       for ( int i = 0; i < 1; ++i ) add(cols,0,3);
290     }
291   else if ( what == "R17" )
292     {
293       for ( int i = 0; i < 3; ++i ) add(cols,11,1);
294       add(cols,4,8);
295       for ( int i = 0; i < 2; ++i ) add(cols,1,11);
296       for ( int i = 0; i < 2; ++i ) add(cols,0,11);
297       for ( int i = 0; i < 1; ++i ) add(cols,0,9);        
298     }
299   else if ( what == "R18" )
300     {
301       for ( int i = 0; i < 2; ++i ) add(cols,13,1);
302       add(cols,11,3);
303       add(cols,2,12);
304       for ( int i = 0; i < 3; ++i ) add(cols,1,13);
305       add(cols,0,8);
306     }
307   else if ( what == "R19" )
308     {
309       add(cols,9,6);
310       for ( int i = 0; i < 2; ++i ) add(cols,1,14);
311       for ( int i = 0; i < 2; ++i ) add(cols,0,15);
312     }
313   else if ( what == "R20" )
314     {
315       for ( int i = 0; i < 5; ++i ) add(cols,0,11);
316       add(cols,2,9);
317     }
318   else if ( what == "R21" )
319     {
320       add(cols,0,2);
321       for ( int i = 0; i < 5; ++i ) add(cols,0,11);
322       add(cols,4,7);
323     }
324   else if ( what == "R22" )
325     {
326       add(cols,1,4);
327       for ( int i = 0; i < 2; ++i ) add(cols,1,11);
328       for ( int i = 0; i < 3; ++i ) add(cols,0,12);
329       add(cols,10,2);
330     }
331   else if ( what == "R23" )
332     {
333       add(cols,0,10);
334       for ( int i = 0; i < 4; ++i ) add(cols,0,12);
335       add(cols,6,6);      
336     }
337   else if ( what == "R24" )
338     {
339       add(cols,0,7);
340       for ( int i = 0; i < 4; ++i ) add(cols,0,13);
341       add(cols,8,5);
342     }
343   else if ( what == "R25" )
344     {
345       add(cols,0,9);
346       for ( int i = 0; i < 3; ++i ) add(cols,0,14);
347       add(cols,1,13);
348     }
349   else if ( what == "R26" )
350     {
351       add(cols,1,2);
352       for ( int i = 0; i < 2; ++i ) add(cols,1,7);
353       for ( int i = 0; i < 6; ++i ) add(cols,0,8);
354     }
355   else if ( what == "R27" ) 
356     {
357       add(cols,1,53);
358       add(cols,0,11);
359     }
360   else if ( what == "R28" ) 
361     {
362       add(cols,12,43);
363       add(cols,0,21);
364     }
365   else if ( what == "R29" ) 
366     {
367       add(cols,22,34);
368       add(cols,0,30);
369     }
370   else if ( what == "L11" ) 
371     {
372       add(cols,12,26);
373       add(cols,0,38);
374     }
375   else if ( what == "R31" ) 
376     {
377       add(cols,0,19);
378       add(cols,12,45);
379     }
380   else if ( what == "R32" ) 
381     {
382       add(cols,0,15);
383       add(cols,11,49);
384     }
385   else if ( what == "R33" ) 
386     {
387       add(cols,0,13);
388       add(cols,11,51);
389     }
390   else if ( what == "L12" || what == "L14" || what == "L16" ) 
391     {
392       add(cols,0,48);
393       add(cols,32,16);
394     }
395   else if ( what == "R34" ) 
396     {
397       add(cols,0,32);
398       add(cols,16,32);
399     }
400   else if ( what == "L13" || what == "L15" || what == "L17" ) 
401     {
402       add(cols,0,16);
403       add(cols,0,48);
404     }
405   else if ( what == "R30" ) 
406     {
407       add(cols,9,15);
408       add(cols,5,22);
409       add(cols,0,27);
410     }
411   else if ( what == "R35" )
412     {
413       for ( int i = 0; i < 3; ++i ) add(cols,9,1);
414       for ( int i = 0; i < 2; ++i ) add(cols,8,2);
415       add(cols,7,3);
416       for ( int i = 0; i < 2; ++i ) add(cols,6,4);
417       add(cols,4,6);
418       for ( int i = 0; i < 4; ++i ) add(cols,0,10);      
419     }
420   else if ( what == "R36" )
421     {
422       for ( int i = 0; i < 6; ++i ) add(cols,0,10);      
423       add(cols,6,4);
424     }
425   else if ( what == "R37" )
426     {
427       add(cols,0,6);
428       for ( int i = 0; i < 4; ++i ) add(cols,0,10);      
429       for ( int i = 0; i < 2; ++i ) add(cols,1,9);      
430     }
431   else if ( what == "R38" )
432     {
433       for ( int i = 0; i < 3; ++i ) add(cols,0,1);      
434       for ( int i = 0; i < 2; ++i ) add(cols,0,2);      
435       add(cols,0,3);
436       for ( int i = 0; i < 2; ++i ) add(cols,0,4);      
437       for ( int i = 0; i < 7; ++i ) add(cols,0,6);      
438       add(cols,0,4);
439     }
440   else if ( what == "R39" )
441     {
442       add(cols,4,2);
443       for ( int i = 0; i < 8; ++i ) add(cols,0,6);            
444       for ( int i = 0; i < 2; ++i ) add(cols,0,7);            
445     }
446   else if ( what == "R40" )
447     {     
448       add(cols,29,7);
449       add(cols,15,21);
450       add(cols,0,36);
451     }
452   else if ( what == "R41" )
453     {     
454       add(cols,0,7);
455       add(cols,0,21);
456       add(cols,0,36);      
457     }
458   else if ( what == "R42" )
459     {     
460       add(cols,0,32);
461       add(cols,16,32);
462     }
463   else if ( what == "I1" )
464     {
465       add(cols,0,64);
466     }
467   else if ( what == "L18" )
468     {
469       add(cols,0,40);
470       add(cols,32,8);
471     }
472   else if ( what == "L22" )
473   {
474     add(cols,32,8);
475     add(cols,0,40);
476   }
477   else if ( what == "L19" )
478     {
479       add(cols,0,48);
480       add(cols,32,16);
481     }
482   else if ( what == "L20" )
483     {
484       add(cols,32,16);
485       add(cols,0,48);
486     }
487   else if ( what == "D1" ) // dummy big motif of 16x80 to test
488     {
489       for ( int i = 0; i < 16; ++i )
490       {
491         add(cols,0,80);
492       }
493     }
494   else if ( what == "R43" ) 
495   {
496     add(cols,0,7);
497     add(cols,0,21);
498     add(cols,0,36);
499   }
500   else if ( what == "L24")
501   {
502     add(cols,32,16);
503     add(cols,0,48);
504   }
505   else if ( what == "R44" )
506   {
507     add(cols,16,32);
508     add(cols,0,32);
509   }
510   else if ( what == "L25" )
511   {
512     add(cols,0,48);
513     add(cols,0,16);
514   }
515   else if ( what == "R45" ) 
516   {
517     add(cols,29,7);
518     add(cols,15,21);
519     add(cols,0,36);
520   }
521   else if ( what == "A1" ) 
522   {
523     for ( int i = 0; i < 6; ++i ) 
524     {
525       add(cols,0,8);
526     }
527     for ( int i = 0; i < 2; ++i ) 
528     {
529       add(cols,1,7);
530     }
531     add(cols,1,2);    
532   }
533   else if ( what == "A2" ) 
534   {
535     add(cols,1,13);
536     for ( int i = 0; i < 3; ++i ) 
537     {
538       add(cols,0,14);
539     }
540     add(cols,0,9);
541   }
542   else if ( what == "A3" ) 
543   {
544     add(cols,8,5);
545     for ( int i = 0; i < 4; ++i ) 
546     {
547       add(cols,0,13);
548     }
549     add(cols,0,7);
550   }
551   else if ( what == "A4" ) 
552   {
553     add(cols,6,6);
554     for ( int i = 0; i < 4; ++i ) 
555     {
556       add(cols,0,12);
557     }
558     add(cols,0,10);
559   }
560   else if ( what == "A5" ) 
561   {
562     add(cols,10,2);
563     for ( int i = 0; i < 3; ++i ) 
564     {
565       add(cols,0,12);
566     }
567     add(cols,1,11);
568     add(cols,1,11);
569     add(cols,1,4);
570   }
571   else if ( what == "A6" ) 
572   {
573     add(cols,4,7);
574     for ( int i = 0; i < 5; ++i ) 
575     {
576       add(cols,0,11);
577     }
578     add(cols,0,2);
579   }
580   else if ( what == "A7" ) 
581   {
582     add(cols,2,9);
583     for ( int i = 0; i < 5; ++i ) 
584     {
585       add(cols,0,11);
586     }
587   }
588   else if ( what == "A8" ) 
589   {
590     add(cols,0,27);
591     add(cols,5,22);
592     add(cols,9,15);
593   }  
594   else if ( what == "A9" ) 
595   {
596     add(cols,0,11);
597     add(cols,1,53);
598   }  
599   else if ( what == "A18" || what == "A19" ) 
600   {
601     add(cols,0,48);
602     add(cols,0,16);
603   }  
604   else if ( what == "A17" ) 
605   {
606     add(cols,16,32);
607     add(cols,0,32);
608   }  
609   else if ( what == "A19" || what == "A16" ) 
610   {
611     add(cols,32,16);
612     add(cols,0,48);
613   }  
614   else if ( what == "A15" ) 
615   {
616     add(cols,11,51);
617     add(cols,0,13);
618   }
619   else if ( what == "A14" ) 
620   {
621     add(cols,11,49);
622     add(cols,0,15);
623   }
624   else if ( what == "A13" ) 
625   {
626     add(cols,12,45);
627     add(cols,0,19);
628   }
629   else if ( what == "A12" ) 
630   {
631     add(cols,0,38);
632     add(cols,12,26);
633   }
634   else if ( what == "A11" ) 
635   {
636     add(cols,0,30);
637     add(cols,22,34);
638   }
639   else if ( what == "A10" ) 
640   {
641     add(cols,0,21);
642     add(cols,12,43);
643   }
644   else if ( what == "C1" ) 
645   {
646     add(cols,0,9);
647     add(cols,0,9);
648     add(cols,0,10);
649     add(cols,0,10);
650     add(cols,0,10);
651     add(cols,0,10);
652     add(cols,4,6);
653   }
654   else if ( what == "C2" ) 
655   {
656     add(cols,0,4);
657     for ( int i = 0; i < 6; ++i ) 
658     {
659       add(cols,0,10);
660     }
661   }
662   else if ( what == "C3" ) 
663   {
664     for ( int i = 0; i < 4; ++i ) 
665     {
666       add(cols,0,10);
667     }
668     add(cols,0,6);
669     add(cols,0,4);
670     add(cols,0,4);
671     add(cols,0,3);
672     add(cols,0,2);
673     add(cols,0,2);
674     add(cols,0,1);
675     add(cols,0,1);
676     add(cols,0,1);
677   }
678   else if ( what == "C4" )
679   {
680     add(cols,2,4);
681     for ( int i = 0; i < 7; ++i )
682     {
683       add(cols,0,6);
684     }
685     add(cols,2,4);
686     add(cols,2,4);
687     add(cols,3,3);
688     add(cols,4,2);
689     add(cols,4,2);
690     add(cols,5,1);
691     add(cols,5,1);
692     add(cols,5,1);
693   }
694   else if ( what == "C5" )
695   {
696     add(cols,0,7);
697     add(cols,0,7);
698     for ( int i = 0; i < 8; ++i )
699     {
700       add(cols,1,6);
701     }
702     add(cols,1,2);
703   }
704   else if ( what == "C6" ) 
705   {
706     add(cols,0,48);
707     add(cols,0,16);
708   }
709   else if ( what == "C7" ) 
710   {
711     add(cols,16,32);
712     add(cols,0,32);
713   }
714   else if ( what == "C8" )
715   {
716     add(cols,32,16);
717     add(cols,0,48);
718   }
719   else if ( what == "C9" )
720   {
721     add(cols,0,36);
722     add(cols,0,21);
723     add(cols,0,7);        
724   }
725   else if ( what == "C10" )
726   {
727     add(cols,0,36);
728     add(cols,15,21);
729     add(cols,29,7);
730   }
731   else if ( what == "O25" )
732   {
733     add(cols,0,32);
734     add(cols,0,32);
735   }
736   else if ( what == "O26" ) 
737   {
738     for ( int i = 0; i < 4; ++i ) 
739     {
740       add(cols,0,16);
741     }
742   }
743   else if ( what == "E1" )
744   {
745     add(cols,0,15);
746     add(cols,0,15);
747     add(cols,1,14);
748     add(cols,1,14);
749     add(cols,9,6);
750   }
751   else if ( what == "E2" ) 
752   {
753     add(cols,0,8);
754     add(cols,1,13);
755     add(cols,1,13);
756     add(cols,1,13);
757     add(cols,2,12);
758     add(cols,11,3);
759     add(cols,13,1);
760     add(cols,13,1);
761   }
762   else if ( what == "E3" ) 
763   {
764     add(cols,0,9);
765     add(cols,0,11);
766     add(cols,0,11);
767     add(cols,1,11);
768     add(cols,1,11);
769     add(cols,4,8);
770     add(cols,11,1);
771     add(cols,11,1);
772     add(cols,11,1);
773   }
774   else if ( what == "E4" ) 
775   {
776     add(cols,0,3);
777     add(cols,0,10);
778     add(cols,1,9);
779     add(cols,1,9);
780     add(cols,1,10);
781     add(cols,1,10);
782     add(cols,1,10);
783     add(cols,10,1);
784     add(cols,10,1);
785     add(cols,10,1);
786   }
787   else if ( what == "E5" ) 
788   {
789     add(cols,0,9);
790     add(cols,1,8);
791     add(cols,1,8);
792     add(cols,1,9);
793     add(cols,1,9);
794     add(cols,1,9);
795     add(cols,1,9);
796     add(cols,9,1);
797     add(cols,9,1);
798     add(cols,9,1);
799   }
800   else if ( what == "E6" )
801   {
802     for (int i = 0; i < 3; ++ i )
803     {
804       add(cols,0,8);
805     }
806     for (int i = 0; i < 5; ++ i )
807     {
808       add(cols,1,8);
809     }
810   }
811   else if ( what == "O27" ) 
812   {
813     for (int i = 0; i < 8; ++ i )
814     {
815       add(cols,0,8);
816     }
817   }
818   else if ( what == "E7" )
819   {
820     add(cols,0,17);
821     add(cols,0,17);
822     add(cols,0,17);
823     add(cols,6,10);
824     add(cols,13,3);
825   }
826   else if ( what == "E8" )
827   {
828     add(cols,10,12);
829     add(cols,0,25);
830     add(cols,1,27);
831   }
832   else if ( what == "E9" )
833   {
834     add(cols,0,24);
835     add(cols,0,11);
836     add(cols,-23,4);
837     add(cols,26,14);
838     add(cols,29,11);
839   }
840   else if ( what == "E10" )
841   {
842     add(cols,13,14);
843     add(cols,0,30);
844     add(cols,2,1);
845     add(cols,-27,6);
846     add(cols,30,13);    
847   }
848   else if ( what == "E11" )
849   {
850     add(cols,10,21);
851     add(cols,0,15);
852     add(cols,-29,5);
853     add(cols,32,13);
854     add(cols,35,10);    
855   }
856   else if ( what == "E12" )
857   {
858     add(cols,0,35);
859     add(cols,0,12);
860     add(cols,-33,6);
861     add(cols,36,11);    
862   }
863   else if ( what == "E13" ) 
864   {
865     add(cols,1,2);
866     add(cols,0,43);
867     add(cols,3,3);
868     add(cols,-41,8);
869     add(cols,45,8);    
870   }
871   else if ( what == "E14" )
872   {
873     add(cols,0,2);
874     add(cols,2,5);
875     add(cols,-9,43);
876     add(cols,49,10);
877     add(cols,55,4);
878   }
879   else if ( what == "E15" )
880   {
881     add(cols,1,1);
882     add(cols,0,3);
883     add(cols,-5,54);
884     add(cols,55,6);    
885   }
886   else if ( what == "E16" ) 
887   {
888     add(cols,0,60);
889     add(cols,57,3);
890     add(cols,59,1);    
891   }
892   else if ( what == "E17" )
893   {
894     add(cols,3,61);
895     add(cols,0,3);
896   }
897   else if ( what == "E18" ) 
898   {
899     add(cols,1,62);
900     add(cols,0,2);    
901   }
902   else if ( what == "E19" ) 
903   {
904     add(cols,0,63);
905     add(cols,0,1);    
906   }
907   else if ( what == "S0" )
908   {
909     add(cols,0,40);
910     add(cols,16,24);
911   }
912   else if ( what == "S1" ) 
913   {
914     add(cols,0,16);
915     add(cols,0,40);
916     add(cols,32,8);
917   }
918   else if ( what == "S2" || what == "S6" ) 
919   {
920     add(cols,0,32);
921     add(cols,0,32);
922   }
923   else if ( what == "S3" ) 
924   {
925     add(cols,32,8);
926     add(cols,0,40);
927     add(cols,0,16);
928   }
929   else if ( what == "S4" ) 
930   {
931     add(cols,0,64);
932   }
933   else if ( what == "S5" ) 
934   {
935     add(cols,0,8);
936     add(cols,0,40);
937   }
938   else if ( what == "S7" ) 
939   {
940     add(cols,24,16);
941     add(cols,0,40);
942     add(cols,0,8);
943   }
944   else if ( what == "S8" ) 
945   {
946     add(cols,0,40);
947     add(cols,0,24);
948   }
949   return cols;
950 }
951
952 void makePadPos(const char* padposfile /*="padPosTest.dat"*/, const char* type)
953 {
954   std::ofstream out(padposfile);
955
956   int n = 1;
957
958   std::vector<std::pair<int,int> > cols = make_pattern(type);
959
960   int c = 0;
961
962   for ( size_t i = 0; i < cols.size(); ++i )
963     {
964       std::pair<int,int> p = cols[i];
965       if ( p.first < 0 ) --c;
966       for ( int j = abs(p.first); j < abs(p.first)+p.second; ++j )
967         {
968           out << n << "\t" << c << "\t" << j << std::endl;
969           ++n;
970         }
971       ++c;
972     }
973   out.close();
974 }
975
976 int main(int argc, char** argv)
977 {
978   makePadPos(argv[1],argv[2]);
979 }