279{
280 if (!output_file) {
281 output_file = new char[256];
282 sprintf(output_file, "%s", input_file );
283 char* ext = strrchr(output_file,'.') ;
284 sprintf(ext,".cp.root\0");
285 }
286
287
288 TFile *
o =
new TFile( output_file,
"RECREATE");
289
290 couples =
new TTree(
"couples",
"couples");
291
296
297 couples->Branch(
"cp" ,
"EdbSegCouple" , &
cp ,32000 ,99 ) ;
298 couples->Branch(
"s1." ,
"EdbSegP" , &
s1 ,32000 ,99 ) ;
299 couples->Branch(
"s2." ,
"EdbSegP" , &
s2 ,32000 ,99 ) ;
300 couples->Branch(
"s." ,
"EdbSegP" , &
s ,32000 ,99 ) ;
301
302
303
304
305
308
309
310 Char_t dummych ;
311 UShort_t dummyus ;
312 UInt_t dummyui ;
314 Double_t dummyd ;
315
316
325
326
327
328 fstream infile(input_file, ios::in | ios::binary);
329
331 infile.read( (Char_t*) &
infotype ,
sizeof(Char_t) );
332 infile.read( (Char_t*) &
headerformat ,
sizeof(UShort_t) );
333
336 {
345
346 default: { cout <<
"Unknown format\n";
return ; }
347 };
348
350 {
351 infile.read( (Char_t*) &dummych , sizeof(Char_t) );
353 {
354 cout << "The first section in a TLG file must contain tracks!" << endl;
355 return;
356 }
357 infile.read( (Char_t*) &dummyd , sizeof(Double_t) );
358 }
359
360 int i;
361
366
368 {
371 }
372 else
373 {
378 }
379
381 {
382 infile.read( (Char_t*) &
Center::X ,
sizeof(Double_t) );
383 infile.read( (Char_t*) &
Center::Y ,
sizeof(Double_t) );
396
397
400 infile.read( (Char_t*) &
Top_TopZ ,
sizeof(Double_t) );
401 infile.read( (Char_t*) &
Top_BottomZ ,
sizeof(Double_t) );
402 infile.read( (Char_t*) &
Bottom_TopZ ,
sizeof(Double_t) );
404
405 using namespace View ;
406 for (
int s=0;
s<2;
s++ ) {
408 for (int i=0; i<nviews; i++ ) {
409 infile.read( (Char_t*) &
id ,
sizeof(Int_t) );
410 infile.read( (Char_t*) &px , sizeof(Double_t) );
411 infile.read( (Char_t*) &py , sizeof(Double_t) );
412 infile.read( (Char_t*) &topz , sizeof(Double_t) );
413 infile.read( (Char_t*) &bottomz , sizeof(Double_t) );
414
415 }
416 }
417
421
423
425 for (
int s=0;
s<2;
s++ ) {
428 for (int i=0; i<ntracks; i++ ) {
429
430 infile.read( (Char_t*) &
Field ,
sizeof(UInt_t) );
431 infile.read( (Char_t*) &
AreaSum ,
sizeof(UInt_t) );
432 infile.read( (Char_t*) &
Count ,
sizeof(UInt_t) );
433 infile.read( (Char_t*) &
X ,
sizeof(Double_t) );
434 infile.read( (Char_t*) &
Y ,
sizeof(Double_t) );
435 infile.read( (Char_t*) &
Z ,
sizeof(Double_t) );
436 infile.read( (Char_t*) &
SX ,
sizeof(Double_t) );
437 infile.read( (Char_t*) &
SY ,
sizeof(Double_t) );
438 infile.read( (Char_t*) &
SZ ,
sizeof(Double_t) );
439 infile.read( (Char_t*) &
Sigma ,
sizeof(Double_t) );
440 infile.read( (Char_t*) &
TopZ ,
sizeof(Double_t) );
441 infile.read( (Char_t*) &
BottomZ ,
sizeof(Double_t) );
442 infile.read( (Char_t*) &
viewid ,
sizeof(Int_t) );
443
444
446 }
447 }
448
451
463
464
466 }
467
469 for (
int s=0;
s<2;
s++ ) {
471 for (int i=0; i<ntracks; i++ )
472 {
476
477
478 }
479 }
480 }
482 {
484 infile.read( (Char_t*) &
Center::X ,
sizeof(Double_t) );
485 infile.read( (Char_t*) &
Center::Y ,
sizeof(Double_t) );
490 infile.read( (Char_t*) &
dummyf ,
sizeof(Float_t) );
491
492
496 infile.read( (Char_t*) &dummyui , sizeof(UInt_t) );
497
498
499 infile.read( (Char_t*) &
Top_TopZ ,
sizeof(Double_t) );
500 infile.read( (Char_t*) &
Top_BottomZ ,
sizeof(Double_t) );
501 infile.read( (Char_t*) &
Bottom_TopZ ,
sizeof(Double_t) );
503 infile.read( (Char_t*) &dummych , sizeof(Char_t) );
504 infile.read( (Char_t*) &dummych , sizeof(Char_t) );
505
507
509 for (
int s=0;
s<2;
s++ ) {
512 for (int i=0; i<ntracks; i++ ) {
513
514 infile.read( (Char_t*) &
Field ,
sizeof(UInt_t) );
515 infile.read( (Char_t*) &
AreaSum ,
sizeof(UInt_t) );
516 infile.read( (Char_t*) &
Count ,
sizeof(UInt_t) );
517 infile.read( (Char_t*) &
X ,
sizeof(Double_t) );
518 infile.read( (Char_t*) &
Y ,
sizeof(Double_t) );
519 infile.read( (Char_t*) &
Z ,
sizeof(Double_t) );
520 infile.read( (Char_t*) &
SX ,
sizeof(Double_t) );
521 infile.read( (Char_t*) &
SY ,
sizeof(Double_t) );
522 infile.read( (Char_t*) &
SZ ,
sizeof(Double_t) );
523 infile.read( (Char_t*) &
Sigma ,
sizeof(Double_t) );
524 infile.read( (Char_t*) &
TopZ ,
sizeof(Double_t) );
525 infile.read( (Char_t*) &
BottomZ ,
sizeof(Double_t) );
526
527
529 }
530 }
531
534
545
546 for (int j=0; j<6; j++)
547 infile.read( (Char_t*) &dummyd , sizeof(Double_t) );
548 }
551
552
554 }
555
557 for (
int s=0;
s<2;
s++ ) {
559 for (int i=0; i<ntracks; i++ )
560 {
564
565
566 }
567 }
568 }
569 else
570 {
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783 }
784
785 infile.close() ;
786
789
790}
AcqOdyssey * o
Definition: hwinit.C:2
return
Definition: energy.C:49
void Add_MIPBaseTrack(int i, float project_dz=-105.)
Definition: tlg2couples.C:234
void print_Header()
Definition: tlg2couples.C:141
void Add_MIPEmulsionTrack(en_side side, int i)
Definition: tlg2couples.C:202
en_side
Definition: tlg2couples.C:36
Float_t dummyf
Definition: merge_Energy_SytematicSources_Electron.C:9
@ Track
Definition: tlg2couples.C:52
@ Header
Definition: tlg2couples.C:53
UInt_t id
Definition: tlg2couples.C:117