FEDRA emulsion software from the OPERA Collaboration
tlg2pattern.C File Reference
#include "Riostream.h"
#include <iostream>
Include dependency graph for tlg2pattern.C:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  File
 
namespace  File::Format
 
namespace  File::Info
 
namespace  File::Section
 
namespace  Header
 
namespace  Header::Center
 
namespace  Header::Extents
 
namespace  Header::Identifier
 
namespace  Header::Transform
 
namespace  MIPBaseTrack
 
namespace  MIPEmulsionTrack
 
namespace  TrackIndexEntry
 
namespace  View
 

Enumerations

enum  { File::Info::Track = 1 , File::Info::BaseTrack = 2 , File::Info::Field = 3 }
 
enum  { File::Section::Data = 0x20 , File::Section::Header = 0x40 }
 
enum  {
  File::Format::Old = 0x08 , File::Format::Old2 = 0x02 , File::Format::NoExtents = 0x01 , File::Format::Normal = 0x03 ,
  File::Format::NormalWithIndex = 0x04 , File::Format::NormalDouble_tWithIndex = 0x05 , File::Format::Detailed = 0x06 , File::Format::MultiSection = 0x07
}
 
enum  en_side {
  TOP , BOT , TOP , BOT ,
  TOP , BOT , TOP , BOT
}
 

Functions

void Add_MIPBaseTrack (int i, EdbPattern &base, EdbPattern &ptop, EdbPattern &pbot, float project_dz=-105.)
 
void Add_MIPEmulsionTrack (en_side side, int i, EdbPattern &ptop, EdbPattern &pbot)
 
void print_Header ()
 
void print_MIPBaseTrack (int i)
 
void print_MIPEmulsionTrack (int s, int i)
 
void print_View (int side, int i)
 
void printrackIndexEntry (int s, int i)
 
void tlg2patterns (const char *input_file, EdbPattern &ptop, EdbPattern &pbot, EdbPattern &base, float project_dz=-105.)
 

Variables

EdbSegCouplecp = 0
 
Int_t Pid1 =0
 
Int_t Pid2 =0
 
EdbSegPs = 0
 
EdbSegPs1 = 0
 
EdbSegPs2 = 0
 
Float_t Xv =0
 
Float_t Yv =0
 

Enumeration Type Documentation

◆ en_side

enum en_side
Enumerator
TOP 
BOT 
TOP 
BOT 
TOP 
BOT 
TOP 
BOT 
37{ TOP , BOT } ;
@ TOP
Definition: tlg2pattern.C:37
@ BOT
Definition: tlg2pattern.C:37

Function Documentation

◆ Add_MIPBaseTrack()

void Add_MIPBaseTrack ( int  i,
EdbPattern base,
EdbPattern ptop,
EdbPattern pbot,
float  project_dz = -105. 
)
236{
237 using namespace MIPBaseTrack ;
238
239 EdbSegP* t = ptop.GetSegment(TopId);
240 EdbSegP* b = pbot.GetSegment(BottomId);
241
242 if(t==0) return;
243 if(b==0) return;
244
245 float x_ = X + SX*( project_dz ) ;
246 float y_ = Y + SY*( project_dz ) ;
247
248 float z_ = Z + project_dz ;
249
250 EdbSegP s( i , x_, y_, SX, SY, Count ) ;
251 s.SetChi2( Sigma ) ;
252 s.SetVolume( AreaSum ) ;
253 s.SetZ( z_ ) ;
254
255 s.SetAid ( -90 , -90 );
256 s.SetFlag( -90 );
257 s.SetDZ( b->Z() - t->Z() );
258 s.SetDZem( 0 ) ;
259
260 base.AddSegment(s);
261}
Definition: EdbSegP.h:21
void SetVolume(float w)
Definition: EdbSegP.h:136
void SetDZem(float dz)
Definition: EdbSegP.h:127
Float_t Z() const
Definition: EdbSegP.h:153
void SetZ(float z)
Definition: EdbSegP.h:125
void SetChi2(float chi2)
Definition: EdbSegP.h:135
void SetDZ(float dz)
Definition: EdbSegP.h:126
void SetFlag(int flag)
Definition: EdbSegP.h:130
void SetAid(int a, int v, int side=0)
Definition: EdbSegP.h:138
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
EdbSegP * AddSegment(int i, EdbSegP &s)
Definition: EdbPattern.cxx:72
TTree * t
Definition: check_shower.C:4
Double_t X
Definition: tlg2couples.C:76
Double_t Y
Definition: tlg2couples.C:76
Definition: tlg2couples.C:116
Int_t TopId
Definition: tlg2couples.C:127
Int_t BottomId
Definition: tlg2couples.C:128
Double_t Z
Definition: tlg2couples.C:104
Double_t Sigma
Definition: tlg2couples.C:108
UInt_t AreaSum
Definition: tlg2couples.C:100
UInt_t Count
Definition: tlg2couples.C:101
Double_t SY
Definition: tlg2couples.C:106
Double_t SX
Definition: tlg2couples.C:105
EdbSegP * s
Definition: tlg2pattern.C:32

◆ Add_MIPEmulsionTrack()

void Add_MIPEmulsionTrack ( en_side  side,
int  i,
EdbPattern ptop,
EdbPattern pbot 
)
204{
205 using namespace MIPEmulsionTrack ;
206
207 EdbSegP *s=0;
208 if ( side == TOP) {
209 s = ptop.AddSegment( i , X, Y, SX, SY, Count );
210 s->SetZ( Z );
211 s->SetChi2( Sigma );
212 s->SetVolume( AreaSum ) ;
213
214 s->SetAid ( -91 , viewid );
215 s->SetFlag( -91 );
216 s->SetDZ( TopZ-BottomZ );
217 s->SetDZem( 0 );
218 }
219
220 if ( side == BOT) {
221 s = pbot.AddSegment( i , X, Y, SX, SY, Count );
222 s->SetZ( Z );
223 s->SetChi2( Sigma );
224 s->SetVolume( AreaSum ) ;
225
226 s->SetAid ( -92 , viewid );
227 s->SetFlag( -92 );
228 s->SetDZ( TopZ-BottomZ );
229 s->SetDZem( 0 );
230 }
231 // s->PrintNice();
232}
Definition: tlg2couples.C:98
Double_t BottomZ
Definition: tlg2couples.C:110
Int_t viewid
Definition: tlg2couples.C:112
Double_t TopZ
Definition: tlg2couples.C:109

◆ print_Header()

void print_Header ( )
143{
144
145 using namespace Header ;
146 cout << "Header"<< endl;
147 cout << (Int_t) infotype << endl;
148 cout << headerformat << endl;
149
150 using namespace Header::Identifier;
151 cout << Part0 <<" "<< Part1 <<" "<< Part2 <<" "<< Part3 << endl;
152 using namespace Header::Center;
153 cout << X <<" "<< Y << endl;
154 using namespace Header::Extents ;
155 cout << MinX <<" "<< MaxX <<" "<< MinY <<" "<< MaxY << endl;
156 using namespace Header::Transform ;
157 cout << MXX <<" "<< MXY <<" "<< MYX <<" "<< MYY << endl;
158 cout << TX <<" "<< TY <<" "<< RX <<" "<< RY << endl;
159
160 using namespace Header;
161 cout << TopViewsLength <<" "<< BottomViewsLength << endl ;
162 cout << TopTracksLength <<" "<< BottomTracksLength <<" "<< TracksLength << endl;
163 cout << Top_TopZ <<" "<< Top_BottomZ <<" "<< Bottom_TopZ <<" "<< Bottom_BottomZ << endl;
164
165}
Definition: tlg2couples.C:76
Definition: tlg2couples.C:77
Double_t MaxX
Definition: tlg2couples.C:77
Double_t MinX
Definition: tlg2couples.C:77
Double_t MinY
Definition: tlg2couples.C:77
Double_t MaxY
Definition: tlg2couples.C:77
Definition: tlg2couples.C:75
Int_t Part1
Definition: tlg2couples.C:75
Int_t Part3
Definition: tlg2couples.C:75
Int_t Part0
Definition: tlg2couples.C:75
Int_t Part2
Definition: tlg2couples.C:75
Definition: tlg2couples.C:78
Double_t RX
Definition: tlg2couples.C:78
Double_t MYX
Definition: tlg2couples.C:78
Double_t TY
Definition: tlg2couples.C:78
Double_t MXX
Definition: tlg2couples.C:78
Double_t TX
Definition: tlg2couples.C:78
Double_t RY
Definition: tlg2couples.C:78
Double_t MYY
Definition: tlg2couples.C:78
Double_t MXY
Definition: tlg2couples.C:78
Definition: tlg2couples.C:65
Char_t infotype
Definition: tlg2couples.C:68
Double_t Bottom_TopZ
Definition: tlg2couples.C:73
Int_t BottomViewsLength
Definition: tlg2couples.C:81
UShort_t headerformat
Definition: tlg2couples.C:69
Int_t TopTracksLength
Definition: tlg2couples.C:83
Int_t TracksLength
Definition: tlg2couples.C:85
Double_t Top_TopZ
Definition: tlg2couples.C:71
Double_t Bottom_BottomZ
Definition: tlg2couples.C:74
Double_t Top_BottomZ
Definition: tlg2couples.C:72
Int_t BottomTracksLength
Definition: tlg2couples.C:84
Int_t TopViewsLength
Definition: tlg2couples.C:80

◆ print_MIPBaseTrack()

void print_MIPBaseTrack ( int  i)
185{
186 using namespace MIPBaseTrack ;
187 cout << "MIPBaseTrack " << i <<" "<< id <<" " ;
188 cout << AreaSum <<" "<< Count <<" "
189 << X <<" "<< Y <<" "<< Z <<" "
190 << SX <<" "<< SY <<" "<< SZ <<" "
191 << Sigma <<" "<< TopId <<" "<< BottomId << endl;
192} ;
Double_t SZ
Definition: tlg2couples.C:107

◆ print_MIPEmulsionTrack()

void print_MIPEmulsionTrack ( int  s,
int  i 
)
175{
176 using namespace MIPEmulsionTrack ;
177 cout << "MIPEmulsionTrack " << s <<" "<< i <<" " ;
178 cout << Field <<" "<< AreaSum <<" "<< Count <<" "
179 << X <<" "<< Y <<" "<< Z <<" "
180 << SX <<" "<< SY <<" "<< SZ <<" "
181 << Sigma <<" "<< TopZ <<" "<< BottomZ <<" "<< viewid << endl;
182} ;
@ Field
Definition: tlg2couples.C:52

◆ print_View()

void print_View ( int  side,
int  i 
)
168{
169 using namespace View ;
170 //if (i<2 || i>848)
171 cout << "View " << side <<" "<< id <<" "<< topz <<" "<< bottomz <<" "<< px <<" "<< py << endl;
172} ;
Definition: tlg2couples.C:89

◆ printrackIndexEntry()

void printrackIndexEntry ( int  s,
int  i 
)
195{
196 using namespace TrackIndexEntry ;
197 cout << "TrackIndexEntry " << s <<" "<< i <<" "<< TrackIndexEntry::Fragment <<" "
199} ;
Definition: tlg2couples.C:132
Int_t View
Definition: tlg2couples.C:135
Int_t Fragment
Definition: tlg2couples.C:134
Int_t Track
Definition: tlg2couples.C:136

◆ tlg2patterns()

void tlg2patterns ( const char *  input_file,
EdbPattern ptop,
EdbPattern pbot,
EdbPattern base,
float  project_dz = -105. 
)
267{
268 // create dummy variables to read unused field
269 Char_t dummych ;
270 // UShort_t dummyus ;
271 UInt_t dummyui ;
272 Float_t dummyf ;
273 Double_t dummyd ;
274
275 // Initialize the transformation
284
285 double minx=-10000000;
286 double maxx=10000000;
287 double miny=-10000000;
288 double maxy=10000000;
289
290 // Read File
291 //fstream infile(input_file, ios::in | ios::binary);
292 fstream infile(input_file, ios::in | ios::binary);
293
294 using namespace Header;
295 infile.read( (Char_t*) &infotype , sizeof(Char_t) );
296 infile.read( (Char_t*) &headerformat , sizeof(UShort_t) );
297
298 if (infotype == ((Char_t) File::Info::Track | (Char_t)File::Section::Header))
299 switch (headerformat)
300 {
301 case (UShort_t) File::Format::MultiSection: break;
302 case (UShort_t) File::Format::Detailed : break;
303 case (UShort_t) File::Format::NormalDouble_tWithIndex : break;
304 case (UShort_t) File::Format::NormalWithIndex : break;
305 case (UShort_t) File::Format::Normal : break;
306 case (UShort_t) File::Format::NoExtents : break;
307 case (UShort_t) File::Format::Old : break;
308 case (UShort_t) File::Format::Old2 : break;
309
310 default: { cout << "Unknown format\n"; return ; }
311 };
312
314 {
315 infile.read( (Char_t*) &dummych , sizeof(Char_t) );
316 if (dummych != SectionTag)
317 {
318 cout << "The first section in a TLG file must contain tracks!" << endl;
319 return;
320 }
321 infile.read( (Char_t*) &dummyd , sizeof(Double_t) );
322 }
323
328
329 if (headerformat == (UShort_t) File::Format::Old)
330 {
331 infile.read( (Char_t*) &Identifier::Part3 , sizeof(Int_t) );
333 }
334 else
335 {
336 infile.read( (Char_t*) &Identifier::Part0 , sizeof(Int_t) );
337 infile.read( (Char_t*) &Identifier::Part1 , sizeof(Int_t) );
338 infile.read( (Char_t*) &Identifier::Part2 , sizeof(Int_t) );
339 infile.read( (Char_t*) &Identifier::Part3 , sizeof(Int_t) );
340 }
341
343 {
344 infile.read( (Char_t*) &Center::X , sizeof(Double_t) );
345 infile.read( (Char_t*) &Center::Y , sizeof(Double_t) );
346 infile.read( (Char_t*) &Extents::MinX , sizeof(Double_t) );
347 infile.read( (Char_t*) &Extents::MaxX , sizeof(Double_t) );
348 infile.read( (Char_t*) &Extents::MinY , sizeof(Double_t) );
349 infile.read( (Char_t*) &Extents::MaxY , sizeof(Double_t) );
350 infile.read( (Char_t*) &Transform::MXX , sizeof(Double_t) );
351 infile.read( (Char_t*) &Transform::MXY , sizeof(Double_t) );
352 infile.read( (Char_t*) &Transform::MYX , sizeof(Double_t) );
353 infile.read( (Char_t*) &Transform::MYY , sizeof(Double_t) );
354 infile.read( (Char_t*) &Transform::TX , sizeof(Double_t) );
355 infile.read( (Char_t*) &Transform::TY , sizeof(Double_t) );
356 infile.read( (Char_t*) &Transform::RX , sizeof(Double_t) );
357 infile.read( (Char_t*) &Transform::RY , sizeof(Double_t) );
358
359 minx=Extents::MinX;
360 maxx=Extents::MaxX;
361 miny=Extents::MinY;
362 maxy=Extents::MaxY;
363
364 infile.read( (Char_t*) &TopViewsLength , sizeof(Int_t) ); // n. of View
365 infile.read( (Char_t*) &BottomViewsLength , sizeof(Int_t) ); // n. of View
366 infile.read( (Char_t*) &Top_TopZ , sizeof(Double_t) ); // topext
367 infile.read( (Char_t*) &Top_BottomZ , sizeof(Double_t) ); // topInt_t
368 infile.read( (Char_t*) &Bottom_TopZ , sizeof(Double_t) ); // bottomInt_t
369 infile.read( (Char_t*) &Bottom_BottomZ , sizeof(Double_t) ); // bottomext
370
371 using namespace View ;
372 for (int s=0; s<2; s++ ) {
373 int nviews = ( s==0 ? TopViewsLength : BottomViewsLength );
374 for (int i=0; i<nviews; i++ ) {
375 infile.read( (Char_t*) &id , sizeof(Int_t) );
376 infile.read( (Char_t*) &px , sizeof(Double_t) );
377 infile.read( (Char_t*) &py , sizeof(Double_t) );
378 infile.read( (Char_t*) &topz , sizeof(Double_t) );
379 infile.read( (Char_t*) &bottomz , sizeof(Double_t) );
380 // print_View( s, i ) ;
381 }
382 }
383
384 infile.read( (Char_t*) &TopTracksLength , sizeof(Int_t) );
385 infile.read( (Char_t*) &BottomTracksLength , sizeof(Int_t) );
386 infile.read( (Char_t*) &TracksLength , sizeof(Int_t) );
387
388 //print_Header();
389
390 using namespace MIPEmulsionTrack ;
391 for (int s=0; s<2; s++ ) {
392 en_side side = ( s==0? TOP : BOT ) ;
393 int ntracks = ( s==0 ? TopTracksLength : BottomTracksLength );
394 for (int i=0; i<ntracks; i++ ) {
395 // 84 bytes
396 infile.read( (Char_t*) &Field , sizeof(UInt_t) );
397 infile.read( (Char_t*) &AreaSum , sizeof(UInt_t) );
398 infile.read( (Char_t*) &Count , sizeof(UInt_t) );
399 infile.read( (Char_t*) &X , sizeof(Double_t) );
400 infile.read( (Char_t*) &Y , sizeof(Double_t) );
401 infile.read( (Char_t*) &Z , sizeof(Double_t) );
402 infile.read( (Char_t*) &SX , sizeof(Double_t) );
403 infile.read( (Char_t*) &SY , sizeof(Double_t) );
404 infile.read( (Char_t*) &SZ , sizeof(Double_t) );
405 infile.read( (Char_t*) &Sigma , sizeof(Double_t) );
406 infile.read( (Char_t*) &TopZ , sizeof(Double_t) );
407 infile.read( (Char_t*) &BottomZ , sizeof(Double_t) );
408 infile.read( (Char_t*) &viewid , sizeof(Int_t) );
409
410 // print_MIPEmulsionTrack( s, i ) ;
411 if(X<minx-1000) continue;
412 if(X>maxx+1000) continue;
413 if(Y<miny-1000) continue;
414 if(Y>maxy+1000) continue;
415 Add_MIPEmulsionTrack ( side, i, ptop,pbot) ;
416 }
417 }
418
419 using namespace MIPBaseTrack ;
420 for (int i=0; i<TracksLength; i++ ) {
421 // .. bytes
422 infile.read( (Char_t*) &MIPBaseTrack::AreaSum , sizeof(UInt_t) );
423 infile.read( (Char_t*) &MIPBaseTrack::Count , sizeof(UInt_t) );
424 infile.read( (Char_t*) &MIPBaseTrack::X , sizeof(Double_t) );
425 infile.read( (Char_t*) &MIPBaseTrack::Y , sizeof(Double_t) );
426 infile.read( (Char_t*) &MIPBaseTrack::Z , sizeof(Double_t) );
427 infile.read( (Char_t*) &MIPBaseTrack::SX , sizeof(Double_t) );
428 infile.read( (Char_t*) &MIPBaseTrack::SY , sizeof(Double_t) );
429 infile.read( (Char_t*) &MIPBaseTrack::SZ , sizeof(Double_t) );
430 infile.read( (Char_t*) &MIPBaseTrack::Sigma , sizeof(Double_t) );
431 infile.read( (Char_t*) &MIPBaseTrack::TopId , sizeof(Int_t) );
432 infile.read( (Char_t*) &MIPBaseTrack::BottomId , sizeof(Int_t) );
433
434 // print_MIPBaseTrack( i ) ;
435 Add_MIPBaseTrack( i , base, ptop, pbot, project_dz) ;
436 }
437
438 using namespace TrackIndexEntry;
439 for (int s=0; s<2; s++ ) {
440 int ntracks = ( s==0 ? TopTracksLength : BottomTracksLength );
441 for (int i=0; i<ntracks; i++ )
442 {
443 infile.read( (Char_t*) &TrackIndexEntry::Fragment , sizeof(Int_t) );
444 infile.read( (Char_t*) &TrackIndexEntry::View , sizeof(Int_t) );
445 infile.read( (Char_t*) &TrackIndexEntry::Track , sizeof(Int_t) );
446
447 // printrackIndexEntry( s , i ) ;
448 }
449 }
450 }
452 {
453 using namespace Header;
454 infile.read( (Char_t*) &Center::X , sizeof(Double_t) );
455 infile.read( (Char_t*) &Center::Y , sizeof(Double_t) );
456 infile.read( (Char_t*) &Extents::MinX , sizeof(Double_t) );
457 infile.read( (Char_t*) &Extents::MaxX , sizeof(Double_t) );
458 infile.read( (Char_t*) &Extents::MinY , sizeof(Double_t) );
459 infile.read( (Char_t*) &Extents::MaxY , sizeof(Double_t) );
460 infile.read( (Char_t*) &dummyf , sizeof(Float_t) ); // for format compliance
461
462 minx=Extents::MinX;
463 maxx=Extents::MaxX;
464 miny=Extents::MinY;
465 maxy=Extents::MaxY;
466
467 // 16 bytes
468 infile.read( (Char_t*) &TopTracksLength , sizeof(Int_t) ); // n. of MIPIndexedEmulsionTrack
469 infile.read( (Char_t*) &BottomTracksLength , sizeof(Int_t) ); // n. of MIPIndexedEmulsionTrack
470 infile.read( (Char_t*) &TracksLength , sizeof(Int_t) ); // n. of MIPBaseTrack
471 infile.read( (Char_t*) &dummyui , sizeof(UInt_t) ); // count of fields
472
473 // 34 bytes
474 infile.read( (Char_t*) &Top_TopZ , sizeof(Double_t) ); // topext
475 infile.read( (Char_t*) &Top_BottomZ , sizeof(Double_t) ); // topInt_t
476 infile.read( (Char_t*) &Bottom_TopZ , sizeof(Double_t) ); // bottomInt_t
477 infile.read( (Char_t*) &Bottom_BottomZ , sizeof(Double_t) ); // bottomext
478 infile.read( (Char_t*) &dummych , sizeof(Char_t) ); // skip fields
479 infile.read( (Char_t*) &dummych , sizeof(Char_t) ); // skip fields
480
481 //print_Header();
482
483 using namespace MIPEmulsionTrack ;
484 for (int s=0; s<2; s++ ) {
485 en_side side = ( s==0? TOP : BOT ) ;
486 int ntracks = ( s==0 ? TopTracksLength : BottomTracksLength );
487 for (int i=0; i<ntracks; i++ ) {
488 // 84 bytes
489 infile.read( (Char_t*) &Field , sizeof(UInt_t) );
490 infile.read( (Char_t*) &AreaSum , sizeof(UInt_t) );
491 infile.read( (Char_t*) &Count , sizeof(UInt_t) );
492 infile.read( (Char_t*) &X , sizeof(Double_t) );
493 infile.read( (Char_t*) &Y , sizeof(Double_t) );
494 infile.read( (Char_t*) &Z , sizeof(Double_t) );
495 infile.read( (Char_t*) &SX , sizeof(Double_t) );
496 infile.read( (Char_t*) &SY , sizeof(Double_t) );
497 infile.read( (Char_t*) &SZ , sizeof(Double_t) );
498 infile.read( (Char_t*) &Sigma , sizeof(Double_t) );
499 infile.read( (Char_t*) &TopZ , sizeof(Double_t) );
500 infile.read( (Char_t*) &BottomZ , sizeof(Double_t) );
501
502 //print_MIPEmulsionTrack( s, i ) ;
503 if(X<minx-1000) continue;
504 if(X>maxx+1000) continue;
505 if(Y<miny-1000) continue;
506 if(Y>maxy+1000) continue;
507 Add_MIPEmulsionTrack ( side, i, ptop, pbot );
508 }
509 }
510
511 using namespace MIPBaseTrack ;
512 for (int i=0; i<TracksLength; i++ ) {
513 // .. bytes
514 infile.read( (Char_t*) &MIPBaseTrack::AreaSum , sizeof(UInt_t) );
515 infile.read( (Char_t*) &MIPBaseTrack::Count , sizeof(UInt_t) );
516 infile.read( (Char_t*) &MIPBaseTrack::X , sizeof(Double_t) );
517 infile.read( (Char_t*) &MIPBaseTrack::Y , sizeof(Double_t) );
518 infile.read( (Char_t*) &MIPBaseTrack::Z , sizeof(Double_t) );
519 infile.read( (Char_t*) &MIPBaseTrack::SX , sizeof(Double_t) );
520 infile.read( (Char_t*) &MIPBaseTrack::SY , sizeof(Double_t) );
521 infile.read( (Char_t*) &MIPBaseTrack::SZ , sizeof(Double_t) );
522 infile.read( (Char_t*) &MIPBaseTrack::Sigma , sizeof(Double_t) );
523 if (headerformat == (UShort_t)File::Format::NoExtents) {
524 // Int_tercept errors and slope errors
525 for (int j=0; j<6; j++)
526 infile.read( (Char_t*) &dummyd , sizeof(Double_t) );
527 }
528 infile.read( (Char_t*) &MIPBaseTrack::TopId , sizeof(Int_t) );
529 infile.read( (Char_t*) &MIPBaseTrack::BottomId , sizeof(Int_t) );
530
531 //print_MIPBaseTrack( i ) ;
532 Add_MIPBaseTrack( i, base, ptop, pbot, project_dz);
533 }
534
535 using namespace TrackIndexEntry ;
536 for (int s=0; s<2; s++ ) {
537 int ntracks = ( s==0 ? TopTracksLength : BottomTracksLength );
538 for (int i=0; i<ntracks; i++ )
539 {
540 infile.read( (Char_t*) &TrackIndexEntry::Fragment , sizeof(Int_t) );
541 infile.read( (Char_t*) &TrackIndexEntry::View , sizeof(Int_t) );
542 infile.read( (Char_t*) &TrackIndexEntry::Track , sizeof(Int_t) );
543
544 //printrackIndexEntry( s , i ) ;
545 }
546 }
547 }
548 else
549 {
550
551 }
552
553 infile.close() ;
554
555}
return
Definition: energy.C:49
en_side
Definition: tlg2couples.C:36
Float_t dummyf
Definition: merge_Energy_SytematicSources_Electron.C:9
@ NormalWithIndex
Definition: tlg2couples.C:58
@ NormalDouble_tWithIndex
Definition: tlg2couples.C:59
@ NoExtents
Definition: tlg2couples.C:56
@ Old
Definition: tlg2couples.C:54
@ Detailed
Definition: tlg2couples.C:60
@ Old2
Definition: tlg2couples.C:55
@ Normal
Definition: tlg2couples.C:57
@ MultiSection
Definition: tlg2couples.C:61
@ Track
Definition: tlg2couples.C:52
@ Header
Definition: tlg2couples.C:53
const Char_t SectionTag
Definition: tlg2couples.C:66
UInt_t Count
Definition: tlg2couples.C:119
Double_t Y
Definition: tlg2couples.C:121
Double_t Z
Definition: tlg2couples.C:122
Double_t SX
Definition: tlg2couples.C:123
Double_t Sigma
Definition: tlg2couples.C:126
Double_t SZ
Definition: tlg2couples.C:125
UInt_t AreaSum
Definition: tlg2couples.C:118
Double_t X
Definition: tlg2couples.C:120
UInt_t id
Definition: tlg2couples.C:117
Double_t SY
Definition: tlg2couples.C:124
void Add_MIPBaseTrack(int i, EdbPattern &base, EdbPattern &ptop, EdbPattern &pbot, float project_dz=-105.)
Definition: tlg2pattern.C:235
void Add_MIPEmulsionTrack(en_side side, int i, EdbPattern &ptop, EdbPattern &pbot)
Definition: tlg2pattern.C:203

Variable Documentation

◆ cp

EdbSegCouple* cp = 0

◆ Pid1

Int_t Pid1 =0

◆ Pid2

Int_t Pid2 =0

◆ s

EdbSegP* s = 0

◆ s1

EdbSegP* s1 = 0

◆ s2

EdbSegP* s2 = 0

◆ Xv

Float_t Xv =0

◆ Yv

Float_t Yv =0