315 |
|
|
316 |
// candeleteobj = 0; |
// candeleteobj = 0; |
317 |
|
|
318 |
|
// cout << t<<"--"<<c<<"--"<<o<<"--"<<r<<"--"<< endl; |
319 |
|
|
320 |
if (t){ |
if (t){ |
321 |
trk_track = new TrkTrack(*t); |
trk_track = new TrkTrack(*t); |
322 |
trk_ext_track = new ExtTrack(*t);//NB!! ha dimensione 6 invece che 8 |
trk_ext_track = new ExtTrack(*t);//NB!! ha dimensione 6 invece che 8 |
323 |
|
}else{ |
324 |
|
trk_track = new TrkTrack(); |
325 |
|
trk_ext_track = new ExtTrack(); |
326 |
|
|
327 |
} |
} |
328 |
|
|
329 |
if (c) |
if (c) |
330 |
calo_track = new CaloTrkVar(*c); |
calo_track = new CaloTrkVar(*c); |
331 |
|
else |
332 |
|
calo_track = new CaloTrkVar(); |
333 |
|
|
334 |
if (o) |
if (o) |
335 |
tof_track = new ToFTrkVar(*o); |
tof_track = new ToFTrkVar(*o); |
336 |
|
else |
337 |
|
tof_track = new ToFTrkVar(); |
338 |
|
|
339 |
if (r) |
if (r) |
340 |
orb_track = new OrbitalInfoTrkVar(*r); |
orb_track = new OrbitalInfoTrkVar(*r); |
341 |
|
else |
342 |
|
orb_track = new OrbitalInfoTrkVar(); |
343 |
|
|
344 |
|
// cout << trk_track<<"--"<< calo_track <<"--"<<tof_track<<"--"<<orb_track<<"--"<< endl; |
345 |
|
|
346 |
candeleteobj = 1; |
candeleteobj = 1; |
347 |
|
|
348 |
} |
} |
352 |
*/ |
*/ |
353 |
PamTrack::PamTrack(ExtTrack* t, CaloTrkVar* c, ToFTrkVar* o, OrbitalInfoTrkVar *r) { |
PamTrack::PamTrack(ExtTrack* t, CaloTrkVar* c, ToFTrkVar* o, OrbitalInfoTrkVar *r) { |
354 |
|
|
355 |
|
|
356 |
|
|
357 |
trk_ext_track = 0; |
trk_ext_track = 0; |
358 |
trk_track = 0; |
trk_track = 0; |
359 |
calo_track = 0; |
calo_track = 0; |
373 |
|
|
374 |
// candeleteobj = 0; |
// candeleteobj = 0; |
375 |
|
|
376 |
|
// cout << t<<"--"<<c<<"--"<<o<<"--"<<r<<"--"<< endl; |
377 |
|
|
378 |
|
|
379 |
if (t){ |
if (t){ |
380 |
//// trk_track = new TrkTrack(*t);//in this case TrkTrack object remains null |
//// trk_track = new TrkTrack(*t);//in this case TrkTrack object remains null |
381 |
trk_ext_track = new ExtTrack(*t); |
trk_ext_track = new ExtTrack(*t); |
382 |
|
}else{ |
383 |
|
trk_ext_track = new ExtTrack(); |
384 |
} |
} |
385 |
if (c) |
if (c) |
386 |
calo_track = new CaloTrkVar(*c); |
calo_track = new CaloTrkVar(*c); |
387 |
|
else |
388 |
|
calo_track = new CaloTrkVar(); |
389 |
|
|
390 |
if (o) |
if (o) |
391 |
tof_track = new ToFTrkVar(*o); |
tof_track = new ToFTrkVar(*o); |
392 |
|
else |
393 |
|
tof_track = new ToFTrkVar(); |
394 |
|
|
395 |
if (r) |
if (r) |
396 |
orb_track = new OrbitalInfoTrkVar(*r); |
orb_track = new OrbitalInfoTrkVar(*r); |
397 |
|
else |
398 |
|
orb_track = new OrbitalInfoTrkVar(); |
399 |
|
|
400 |
|
// cout << trk_track<<"--"<< calo_track <<"--"<<tof_track<<"--"<<orb_track<<"--"<< endl; |
401 |
|
|
402 |
candeleteobj = 1; |
candeleteobj = 1; |
403 |
pscore = 0; |
pscore = 0; |
404 |
iscore = 0; |
iscore = 0; |
405 |
|
|
406 |
} |
} |
407 |
; |
; |
408 |
|
|
409 |
PamTrack::PamTrack(const PamTrack& track) { |
PamTrack::PamTrack(const PamTrack& track) { |
410 |
|
|
411 |
TrkTrack *t = track.trk_track; |
TrkTrack *t = track.trk_track; |
435 |
iscore = 0; |
iscore = 0; |
436 |
|
|
437 |
} |
} |
438 |
|
|
439 |
|
void PamTrack::Copy( PamTrack& track) const { |
440 |
|
|
441 |
|
track.trk_track = trk_track; |
442 |
|
track.trk_ext_track = trk_ext_track; |
443 |
|
track.calo_track = calo_track; |
444 |
|
track.tof_track = tof_track; |
445 |
|
track.orb_track = orb_track; |
446 |
|
|
447 |
|
track.candeleteobj = candeleteobj; |
448 |
|
track.pscore = pscore; |
449 |
|
track.iscore = iscore; |
450 |
|
|
451 |
|
} |
452 |
|
|
453 |
|
|
454 |
|
|
455 |
void PamTrack::Clear(Option_t *option) { |
void PamTrack::Clear(Option_t *option) { |
456 |
|
|
457 |
// cout << "PamTrack::Clear( "<<option<<" ) "<<candeleteobj<<endl; |
// cout << "PamTrack::Clear( "<<option<<" ) "<<candeleteobj<<endl; |
483 |
// cout << "PamTrack::Delete() "<<candeleteobj<<endl; |
// cout << "PamTrack::Delete() "<<candeleteobj<<endl; |
484 |
if (candeleteobj) { |
if (candeleteobj) { |
485 |
if (trk_ext_track) { |
if (trk_ext_track) { |
486 |
trk_ext_track->ExtTrack::Clear("C"); |
// trk_ext_track->ExtTrack::Clear("C");//Clear is called for all the array elements |
487 |
|
trk_ext_track->ExtTrack::Clear("C+C");//Clear is called for all the array elements passing option 'C' |
488 |
delete trk_ext_track; |
delete trk_ext_track; |
489 |
} |
} |
490 |
if (trk_track) { |
if (trk_track) { |
1283 |
return 0; |
return 0; |
1284 |
|
|
1285 |
if (calo2_obj->CaloLevel2::ntrk() == 0) { |
if (calo2_obj->CaloLevel2::ntrk() == 0) { |
1286 |
cout << "PamLevel2::GetCaloStoredTrack(int) : requested tracker SeqNo " << seqno |
if( seqno >=0 ){ |
1287 |
<< " but no Calorimeter tracks are stored" << endl; |
cout << "PamLevel2::GetCaloStoredTrack(int) : requested tracker SeqNo " << seqno; |
1288 |
return NULL; |
cout << " but no Calorimeter tracks are stored" << endl; |
1289 |
|
} |
1290 |
|
return NULL; |
1291 |
}; |
}; |
1292 |
|
|
1293 |
CaloTrkVar *c = 0; |
CaloTrkVar *c = 0; |
1300 |
|
|
1301 |
if (!c || seqno != c->trkseqno) { |
if (!c || seqno != c->trkseqno) { |
1302 |
c = 0; |
c = 0; |
1303 |
if (seqno != -1) |
if (seqno != -1 && seqno>=0) |
1304 |
cout << "PamLevel2::GetCaloStoredTrack(int) : requested tracker SeqNo " << seqno |
cout << "PamLevel2::GetCaloStoredTrack(int) : requested tracker SeqNo " << seqno |
1305 |
<< " does not match Calorimeter stored tracks" << endl; |
<< " does not match Calorimeter stored tracks" << endl; |
1306 |
}; |
}; |
1419 |
// |
// |
1420 |
// |
// |
1421 |
//-------------------------------------- |
//-------------------------------------- |
1422 |
/** |
// /** |
1423 |
* Give the pamela track associated to a tracker track, retrieving related calorimeter, orbitalinfo and tof track information. |
// * Give the pamela track associated to a tracker track, retrieving related calorimeter, orbitalinfo and tof track information. |
1424 |
*/ |
// */ |
1425 |
PamTrack* PamLevel2::GetPamTrackAlong(TrkTrack* t) { |
// PamTrack* PamLevel2::GetPamTrackAlong(TrkTrack* t) { |
1426 |
|
|
1427 |
cout << "PamLevel2::GetPamTrackAlong(TrkTrack* t) **obsolete** " << endl; |
// cout << "PamLevel2::GetPamTrackAlong(TrkTrack* t) **obsolete** " << endl; |
1428 |
cout << "(if you use it, remember to delete the PamTrack object)" << endl; |
// cout << "(if you use it, remember to delete the PamTrack object)" << endl; |
1429 |
|
|
1430 |
|
// CaloTrkVar *c = 0; |
1431 |
|
// ToFTrkVar *o = 0; |
1432 |
|
// OrbitalInfoTrkVar *r = 0; |
1433 |
|
|
1434 |
|
// if (CAL2) |
1435 |
|
// c = GetCaloStoredTrack(t->GetSeqNo()); |
1436 |
|
// if (TOF) |
1437 |
|
// o = GetToFStoredTrack(t->GetSeqNo()); |
1438 |
|
// if (ORB) |
1439 |
|
// r = GetOrbitalInfoStoredTrack(t->GetSeqNo()); |
1440 |
|
|
1441 |
CaloTrkVar *c = 0; |
// // if(t && c && o)track = new PamTrack(t,c,o); |
1442 |
ToFTrkVar *o = 0; |
// PamTrack *track = new PamTrack(t, c, o, r); |
|
OrbitalInfoTrkVar *r = 0; |
|
|
|
|
|
if (CAL2) |
|
|
c = GetCaloStoredTrack(t->GetSeqNo()); |
|
|
if (TOF) |
|
|
o = GetToFStoredTrack(t->GetSeqNo()); |
|
|
if (ORB) |
|
|
r = GetOrbitalInfoStoredTrack(t->GetSeqNo()); |
|
1443 |
|
|
1444 |
// if(t && c && o)track = new PamTrack(t,c,o); |
// return track; |
|
PamTrack *track = new PamTrack(t, c, o, r); |
|
1445 |
|
|
1446 |
return track; |
// } |
1447 |
|
// ; |
|
} |
|
|
; |
|
1448 |
//-------------------------------------- |
//-------------------------------------- |
1449 |
// |
// |
1450 |
// |
// |
1451 |
//-------------------------------------- |
//-------------------------------------- |
1452 |
/** |
// /** |
1453 |
* Retrieves the it-th stored track. |
// * Retrieves the it-th stored track. |
1454 |
* It override TrkLevel2::GetTrack(int it). |
// * It override TrkLevel2::GetTrack(int it). |
1455 |
* @param itrk Track number, ranging from 0 to GetNTracks(). |
// * @param itrk Track number, ranging from 0 to GetNTracks(). |
1456 |
*/ |
// */ |
1457 |
|
|
1458 |
|
// PamTrack* PamLevel2::GetStoredTrack(Int_t itrk) { |
1459 |
|
|
1460 |
|
// cout << "PamLevel2::GetStoredTrack(Int_t itrk) **to-be-updated** " << endl; |
1461 |
|
// cout |
1462 |
|
// << "for the moment, better use separately the methods: TrkLevel2::GetStoredTrack(seqno) CaloLevel2::GetCaloTrkVar(Int_t notrack) ToFLevel2::GetToFTrkVar(Int_t notrack) OrbitalInfo::GetOrbitalInfoTrkVar(Int_t notrack)" |
1463 |
|
// << endl; |
1464 |
|
// cout << "(if you use it, remember to delete the PamTrack object)" << endl; |
1465 |
|
// PamTrack *track = 0; |
1466 |
|
|
1467 |
PamTrack* PamLevel2::GetStoredTrack(Int_t itrk) { |
// if (itrk >= 0 && itrk < trk2_obj->TrkLevel2::ntrk()) { |
1468 |
|
|
1469 |
cout << "PamLevel2::GetStoredTrack(Int_t itrk) **to-be-updated** " << endl; |
// TrkTrack *t = trk2_obj->TrkLevel2::GetStoredTrack(itrk); |
1470 |
cout |
// track = GetPamTrackAlong(t); |
|
<< "for the moment, better use separately the methods: TrkLevel2::GetStoredTrack(seqno) CaloLevel2::GetCaloTrkVar(Int_t notrack) ToFLevel2::GetToFTrkVar(Int_t notrack) OrbitalInfo::GetOrbitalInfoTrkVar(Int_t notrack)" |
|
|
<< endl; |
|
|
cout << "(if you use it, remember to delete the PamTrack object)" << endl; |
|
|
PamTrack *track = 0; |
|
1471 |
|
|
1472 |
if (itrk >= 0 && itrk < trk2_obj->TrkLevel2::ntrk()) { |
// } |
1473 |
|
// else { |
1474 |
TrkTrack *t = trk2_obj->TrkLevel2::GetStoredTrack(itrk); |
// cout << "PamLevel2::GetStoredTrack(int) : tracker track SeqNo " << itrk << " does not exist (GetNTracks() = " |
1475 |
track = GetPamTrackAlong(t); |
// << trk2_obj->TrkLevel2::GetNTracks() << ")" << endl; |
1476 |
|
// }; |
|
} |
|
|
else { |
|
|
cout << "PamLevel2::GetStoredTrack(int) : tracker track SeqNo " << itrk << " does not exist (GetNTracks() = " |
|
|
<< trk2_obj->TrkLevel2::GetNTracks() << ")" << endl; |
|
|
}; |
|
1477 |
|
|
1478 |
return track; |
// return track; |
1479 |
|
|
1480 |
} |
// } |
1481 |
//-------------------------------------- |
//-------------------------------------- |
1482 |
// |
// |
1483 |
|
|
1531 |
Int_t ObjectNumber = TProcessID::GetObjectCount(); |
Int_t ObjectNumber = TProcessID::GetObjectCount(); |
1532 |
|
|
1533 |
// create TCloneArrays to store tracks and its images |
// create TCloneArrays to store tracks and its images |
1534 |
if (!tsorted) |
// if (!tsorted) |
1535 |
tsorted = new TClonesArray("PamTrack", trk2_obj->GetNTracks()); |
// tsorted = new TClonesArray("PamTrack", trk2_obj->GetNTracks()); |
1536 |
tsorted->Clear("C+C");//Delete(); |
// tsorted->Clear("C+C");//Delete(); |
1537 |
TClonesArray &ttsorted = *tsorted; |
// if (!timage) |
1538 |
|
// timage = new TClonesArray("PamTrack", trk2_obj->GetNTracks()); |
1539 |
|
// timage->Clear("C+C");//Delete(); |
1540 |
|
|
1541 |
if (!timage) |
if(tsorted)delete tsorted; |
1542 |
timage = new TClonesArray("PamTrack", trk2_obj->GetNTracks()); |
if(timage) delete timage; |
1543 |
timage->Clear("C+C");//Delete(); |
tsorted = new TClonesArray("PamTrack", trk2_obj->GetNTracks()); |
1544 |
|
timage = new TClonesArray("PamTrack", trk2_obj->GetNTracks()); |
1545 |
|
|
1546 |
|
|
1547 |
|
TClonesArray &ttsorted = *tsorted; |
1548 |
TClonesArray &ttimage = *timage; |
TClonesArray &ttimage = *timage; |
1549 |
|
|
1550 |
|
|
1986 |
// cout<<"o "<<cp<<endl; |
// cout<<"o "<<cp<<endl; |
1987 |
// cout<<"o "<<op<<endl; |
// cout<<"o "<<op<<endl; |
1988 |
|
|
1989 |
|
// cout <<"old p:"<< tp<<"--"<<cp<<"--"<<op<<"--"<<rp<<"--"<< endl; |
1990 |
|
// cout <<"old i:"<< ti<<"--"<<ci<<"--"<<oi<<"--"<<ri<<"--"<< endl; |
1991 |
|
|
1992 |
new (ttsorted[i]) PamTrack(tp, cp, op, rp); |
new (ttsorted[i]) PamTrack(tp, cp, op, rp); |
1993 |
new (ttimage[i]) PamTrack(ti, ci, oi, ri); |
new (ttimage[i]) PamTrack(ti, ci, oi, ri); |
1994 |
|
|
2016 |
issorted = true; |
issorted = true; |
2017 |
lastsorted = GetReadEntry(); |
lastsorted = GetReadEntry(); |
2018 |
|
|
2019 |
|
// cout <<" SortTracks() -- end"<<endl; |
2020 |
|
|
2021 |
} |
} |
2022 |
; |
; |
2023 |
// |
// |
2181 |
|
|
2182 |
if(doit == 0){ |
if(doit == 0){ |
2183 |
|
|
2184 |
trk2 = trk2_obj; |
trk2 = (TRK2 ? trk2_obj: NULL);; |
2185 |
calo2 = calo2_obj; |
calo2 = (CAL2 ? calo2_obj: NULL);; |
2186 |
tof2 = tof2_obj; |
tof2 = (TOF ?tof2_obj: NULL);; |
2187 |
orb2 = orb2_obj; |
orb2 = (ORB ? orb2_obj: NULL);; |
|
|
|
|
trkext = trk_ext_obj; |
|
|
caloext = calo_ext_obj; |
|
|
tofext = tof_ext_obj; |
|
|
orbext = orb_ext_obj; |
|
|
|
|
|
|
|
|
|
|
2188 |
|
|
2189 |
|
trkext = (TRK2 ? trk_ext_obj: NULL);; |
2190 |
|
caloext = (CAL2 ? calo_ext_obj: NULL);; |
2191 |
|
tofext = (TOF ?tof_ext_obj: NULL);; |
2192 |
|
orbext = (ORB ? orb_ext_obj: NULL);; |
2193 |
|
|
2194 |
}else if (doit == 1){ |
}else if (doit == 1){ |
2195 |
|
|
2196 |
if(!NUC)break; |
if(!NUC)break; |
2197 |
|
|
2198 |
|
|
2199 |
trk2 = trk2_nuc_obj; |
trk2 = (TRK2 ?trk2_nuc_obj: NULL);; |
2200 |
calo2 = calo2_nuc_obj; |
calo2 = (CAL2 ? calo2_nuc_obj: NULL);; |
2201 |
tof2 = tof2_nuc_obj; |
tof2 = (TOF ?tof2_nuc_obj: NULL);; |
2202 |
orb2 = orb2_nuc_obj; |
orb2 = (ORB ? orb2_nuc_obj: NULL);; |
2203 |
|
|
2204 |
trkext = trk_ext_nuc_obj; |
trkext = (TRK2 ?trk_ext_nuc_obj: NULL);; |
2205 |
caloext = calo_ext_nuc_obj; |
caloext = (CAL2 ? calo_ext_nuc_obj: NULL);; |
2206 |
tofext = tof_ext_nuc_obj; |
tofext = (TOF ?tof_ext_nuc_obj: NULL);; |
2207 |
orbext = orb_ext_nuc_obj; |
orbext = (ORB ? orb_ext_nuc_obj: NULL);; |
2208 |
|
|
2209 |
|
|
2210 |
|
|
2237 |
OrbitalInfoTrkVar *rs = 0; |
OrbitalInfoTrkVar *rs = 0; |
2238 |
|
|
2239 |
// get tracker tracks |
// get tracker tracks |
2240 |
TrkTrack *tp = trk2->GetTrack(i); //tracker |
TrkTrack *tp = (TRK2 ? trk2->GetTrack(i): NULL); //tracker |
2241 |
CaloTrkVar *cp = calo2->GetCaloStoredTrack(tp->GetSeqNo()); |
CaloTrkVar *cp = (CAL2 ? calo2->GetCaloStoredTrack(tp->GetSeqNo()) : NULL); |
2242 |
ToFTrkVar *op = tof2->GetToFStoredTrack(tp->GetSeqNo()); |
ToFTrkVar *op = (TOF ? tof2->GetToFStoredTrack(tp->GetSeqNo()) : NULL); |
2243 |
OrbitalInfoTrkVar *rp = orb2->GetOrbitalInfoStoredTrack(tp->GetSeqNo()); |
OrbitalInfoTrkVar *rp = (ORB ? orb2->GetOrbitalInfoStoredTrack(tp->GetSeqNo()) : NULL); |
2244 |
|
|
2245 |
|
// cout << "ORB="<<ORB<<" rp="<<rp<<endl; |
2246 |
|
|
2247 |
TrkTrack *ti = 0; //tracker (image) |
TrkTrack *ti = 0; //tracker (image) |
2248 |
CaloTrkVar *ci = 0; |
CaloTrkVar *ci = 0; |
2258 |
|
|
2259 |
if (tp->HasImage()) { |
if (tp->HasImage()) { |
2260 |
|
|
2261 |
ti = trk2->GetTrackImage(i); //tracker (image) |
ti = (TRK2 ? trk2->GetTrackImage(i) : NULL); //tracker (image) |
2262 |
ci = calo2->GetCaloStoredTrack(ti->GetSeqNo()); |
ci = (CAL2 ? calo2->GetCaloStoredTrack(ti->GetSeqNo()): NULL); |
2263 |
oi = tof2->GetToFStoredTrack(ti->GetSeqNo()); |
oi = (TOF ? tof2->GetToFStoredTrack(ti->GetSeqNo()): NULL); |
2264 |
ri = orb2->GetOrbitalInfoStoredTrack(ti->GetSeqNo()); |
ri = (ORB ? orb2->GetOrbitalInfoStoredTrack(ti->GetSeqNo()): NULL); |
2265 |
|
|
2266 |
// cout << "its image "<<i << " "<<hex<< ti <<dec<< endl; |
// cout << "its image "<<i << " "<<hex<< ti <<dec<< endl; |
2267 |
|
|
2629 |
// cout<<"o "<<cp<<endl; |
// cout<<"o "<<cp<<endl; |
2630 |
// cout<<"o "<<op<<endl; |
// cout<<"o "<<op<<endl; |
2631 |
|
|
2632 |
|
// cout <<"p:"<< tp<<"--"<<cp<<"--"<<op<<"--"<<rp<<"--"<< endl; |
2633 |
|
// cout <<"i:"<< ti<<"--"<<ci<<"--"<<oi<<"--"<<ri<<"--"<< endl; |
2634 |
|
|
2635 |
|
|
2636 |
|
|
2637 |
new (ttsorted[i]) PamTrack(tp, cp, op, rp); |
new (ttsorted[i]) PamTrack(tp, cp, op, rp); |
2638 |
new (ttimage[i]) PamTrack(ti, ci, oi, ri); |
new (ttimage[i]) PamTrack(ti, ci, oi, ri); |
2639 |
|
|
2657 |
// } |
// } |
2658 |
|
|
2659 |
|
|
2660 |
// cout << "text "<<doit<<endl; |
// cout << "text "<<orbext<<endl; |
2661 |
|
|
2662 |
|
|
2663 |
//-------------------------------------------------- |
//-------------------------------------------------- |
2666 |
if(EXT){ |
if(EXT){ |
2667 |
for(int it=0; it<trkext->GetEntries(); it++){ |
for(int it=0; it<trkext->GetEntries(); it++){ |
2668 |
|
|
2669 |
new (ttext[it]) PamTrack((ExtTrack*)(*trkext)[it], (CaloTrkVar*)(*caloext)[it], (ToFTrkVar*)(*tofext)[it], (OrbitalInfoTrkVar*)(*orbext)[it]); |
// if( |
2670 |
|
// it < caloext->GetEntries() && |
2671 |
|
// it < tofext->GetEntries() && |
2672 |
|
// it < orbext->GetEntries() && |
2673 |
|
// true){ |
2674 |
|
|
2675 |
|
ExtTrack *t = (trkext ?(ExtTrack*)(*trkext)[it]:NULL ); |
2676 |
|
CaloTrkVar *c =(caloext ?(CaloTrkVar*)(*caloext)[it]:NULL ); |
2677 |
|
ToFTrkVar *o = (tofext ?(ToFTrkVar*)(*tofext)[it]:NULL ); |
2678 |
|
OrbitalInfoTrkVar *r =(orbext ?(OrbitalInfoTrkVar*)(*orbext)[it]:NULL ); |
2679 |
|
// cout <<"ext:"<< t<<"--"<<c<<"--"<<o<<"--"<<r<<"--"<< endl; |
2680 |
|
|
2681 |
|
new (ttext[it]) PamTrack(t, c, o, r); |
2682 |
|
// }else{ |
2683 |
|
// cout << " PamLevel2::SortTracksNew() --> ORRORE E RACCAPRICCIO!!!"<<endl; |
2684 |
|
// cout << " trk ext-tracks = "<<trkext->GetEntries()<<endl; |
2685 |
|
// cout << " calo ext-tracks = "<<caloext->GetEntries()<<endl; |
2686 |
|
// cout << " tof ext-tracks = "<<tofext->GetEntries()<<endl; |
2687 |
|
// cout << " orb ext-tracks = "<<orbext->GetEntries()<<endl; |
2688 |
|
// } |
2689 |
} |
} |
2690 |
} |
} |
2691 |
|
|
2692 |
|
// cout <<" SortTracksNew() -- end"<<endl; |
2693 |
|
|
2694 |
|
|
2695 |
}; |
}; |
2750 |
// *-*-*-*-*-*-*-*-*-*-*-*-* |
// *-*-*-*-*-*-*-*-*-*-*-*-* |
2751 |
if (!tsorted) |
if (!tsorted) |
2752 |
return track; |
return track; |
2753 |
if (!tsorted->GetEntries()) |
// if (!tsorted->GetEntries()) |
2754 |
|
// return track; |
2755 |
|
if (tsorted->GetEntries()==0) |
2756 |
return track; |
return track; |
2757 |
|
|
2758 |
|
|
2759 |
if (it >= 0 && it < trk2_obj->TrkLevel2::GetNTracks()) { |
if ( |
2760 |
track = (PamTrack*)((*tsorted)[it]); |
tsorted && |
2761 |
|
it >= 0 && |
2762 |
|
it < trk2_obj->TrkLevel2::GetNTracks() && |
2763 |
|
it < tsorted->GetEntries() && |
2764 |
|
true) { |
2765 |
|
track = (PamTrack*)((*tsorted)[it]); |
2766 |
} |
} |
2767 |
else { |
else { |
2768 |
cout << "PamLevel2::GetTrackOld(int) : tracker track SeqNo " << it << " does not exist (GetNTracks() = " |
cout << "PamLevel2::GetTrackOld(int) : tracker track SeqNo " << it << " does not exist (GetNTracks() = " |
2786 |
TString s(alg); |
TString s(alg); |
2787 |
if(!s.CompareTo("") ||!s.CompareTo("STD") )return GetTrackOld(it); //old algorythm |
if(!s.CompareTo("") ||!s.CompareTo("STD") )return GetTrackOld(it); //old algorythm |
2788 |
|
|
2789 |
|
|
2790 |
|
|
2791 |
SortTracksNew(); |
SortTracksNew(); |
2792 |
// >> fill tsorted, timage and text |
// >> fill tsorted, timage and text |
2799 |
it < tsorted_nuc->GetEntries() && //enough tracks found |
it < tsorted_nuc->GetEntries() && //enough tracks found |
2800 |
it >= 0 && //valid index |
it >= 0 && //valid index |
2801 |
true) return (PamTrack*)((*tsorted_nuc)[it]); //ok return the track |
true) return (PamTrack*)((*tsorted_nuc)[it]); //ok return the track |
2802 |
|
}else if( s.Contains("HE" ) ){ |
2803 |
|
|
2804 |
|
//-------------------------------- mixed NUC+STD algorythm |
2805 |
|
PamTrack* trnuc = NULL; |
2806 |
|
PamTrack* trstd = NULL; |
2807 |
|
if( tsorted_nuc && |
2808 |
|
it < tsorted_nuc->GetEntries() && //enough NUC tracks found |
2809 |
|
it >= 0 && |
2810 |
|
true)trnuc = (PamTrack*)((*tsorted_nuc)[it]); |
2811 |
|
if( tsorted && |
2812 |
|
it < tsorted->GetEntries() && //enough NUC tracks found |
2813 |
|
it >= 0 && |
2814 |
|
true)trstd = (PamTrack*)((*tsorted)[it]); |
2815 |
|
|
2816 |
|
if(!trnuc && trstd)return trstd; |
2817 |
|
if( trnuc && !trstd)return trnuc; |
2818 |
|
if( trnuc && trnuc->GetExtTrack()->chi2 < trstd->GetExtTrack()->chi2 )return trnuc; |
2819 |
|
return trstd; |
2820 |
|
|
2821 |
}else{ |
}else{ |
2822 |
if( |
if( |
2823 |
tsorted && |
tsorted && |
2841 |
it < text_nuc->GetEntries() && //enough tracks found |
it < text_nuc->GetEntries() && //enough tracks found |
2842 |
it >= 0 && //valid index |
it >= 0 && //valid index |
2843 |
true) return (PamTrack*)((*text_nuc)[it]); |
true) return (PamTrack*)((*text_nuc)[it]); |
2844 |
|
|
2845 |
|
}else if( s.Contains("HE" ) ){ |
2846 |
|
|
2847 |
|
//-------------------------------- mixed NUC+STD algorythm |
2848 |
|
PamTrack* trnuc = NULL; |
2849 |
|
PamTrack* trstd = NULL; |
2850 |
|
if( text_nuc && |
2851 |
|
it < text_nuc->GetEntries() && //enough NUC tracks found |
2852 |
|
it >= 0 && |
2853 |
|
true)trnuc = (PamTrack*)((*text_nuc)[it]); |
2854 |
|
if( text && |
2855 |
|
it < text->GetEntries() && //enough NUC tracks found |
2856 |
|
it >= 0 && |
2857 |
|
true)trstd = (PamTrack*)((*text)[it]); |
2858 |
|
|
2859 |
|
if(!trnuc && trstd)return trstd; |
2860 |
|
if( trnuc && !trstd)return trnuc; |
2861 |
|
if( trnuc && trnuc->GetExtTrack()->chi2 < trstd->GetExtTrack()->chi2 )return trnuc; |
2862 |
|
return trstd; |
2863 |
|
|
2864 |
}else{ |
}else{ |
2865 |
if( |
if( |
2866 |
text && |
text && |
2902 |
return trk_ext_obj->GetEntries();//ok |
return trk_ext_obj->GetEntries();//ok |
2903 |
} |
} |
2904 |
if( s.Contains("EXT", TString::kIgnoreCase) && EXT) { |
if( s.Contains("EXT", TString::kIgnoreCase) && EXT) { |
2905 |
|
|
2906 |
|
if(s.Contains("HE", TString::kIgnoreCase) && NUC){ |
2907 |
|
int nnuc = (trk2_nuc_obj->TrkLevel2::GetNTracks() ? trk2_nuc_obj->TrkLevel2::GetNTracks() : trk_ext_nuc_obj->GetEntries() ); |
2908 |
|
int next = (trk2_obj->TrkLevel2::GetNTracks() ? trk2_obj->TrkLevel2::GetNTracks() : trk_ext_obj->GetEntries() ); |
2909 |
|
return max(nnuc,next); |
2910 |
|
} |
2911 |
if(s.Contains("NUC", TString::kIgnoreCase) && NUC) |
if(s.Contains("NUC", TString::kIgnoreCase) && NUC) |
2912 |
return (trk2_nuc_obj->TrkLevel2::GetNTracks() ? trk2_nuc_obj->TrkLevel2::GetNTracks() : trk_ext_nuc_obj->GetEntries() ); |
return (trk2_nuc_obj->TrkLevel2::GetNTracks() ? trk2_nuc_obj->TrkLevel2::GetNTracks() : trk_ext_nuc_obj->GetEntries() ); |
2913 |
|
|
2914 |
|
|
2915 |
return (trk2_obj->TrkLevel2::GetNTracks() ? trk2_obj->TrkLevel2::GetNTracks() : trk_ext_obj->GetEntries() ); |
return (trk2_obj->TrkLevel2::GetNTracks() ? trk2_obj->TrkLevel2::GetNTracks() : trk_ext_obj->GetEntries() ); |
2916 |
} |
} |
2917 |
|
|
2918 |
|
if(s.Contains("HE", TString::kIgnoreCase) && NUC ) |
2919 |
|
return max(trk2_obj->TrkLevel2::GetNTracks(), trk2_nuc_obj->TrkLevel2::GetNTracks()); |
2920 |
|
|
2921 |
if(s.Contains("NUC", TString::kIgnoreCase) && NUC ) |
if(s.Contains("NUC", TString::kIgnoreCase) && NUC ) |
2922 |
return trk2_nuc_obj->TrkLevel2::GetNTracks(); |
return trk2_nuc_obj->TrkLevel2::GetNTracks(); |
2923 |
|
|
2924 |
|
|
2925 |
cout << "Int_t PamLevel2::GetNTracks("<<alg<<") -- unrecognised algorithm"<<endl; |
cout << "Int_t PamLevel2::GetNTracks("<<alg<<") -- unrecognised algorithm"<<endl; |
2926 |
|
|
3016 |
|
|
3017 |
} |
} |
3018 |
|
|
3019 |
cout << "PamTrack *PamLevel2::GetTrackImage("<<it<<","<<alg<<") -- wrong track number or unrecognised algorithm"<<endl; |
// cout << "PamTrack *PamLevel2::GetTrackImage("<<it<<","<<alg<<") -- wrong track number or unrecognised algorithm"<<endl; |
3020 |
|
|
3021 |
return NULL; |
return NULL; |
3022 |
|
|
3659 |
// L->SetBranchAddress("RunEntry",&irun); |
// L->SetBranchAddress("RunEntry",&irun); |
3660 |
P->SetBranchAddress("ProcInfo", &proc_obj);//NEWNEW |
P->SetBranchAddress("ProcInfo", &proc_obj);//NEWNEW |
3661 |
proc_tree = P; |
proc_tree = P; |
3662 |
|
} else { |
3663 |
|
// proc_tree = new TChain("ProcessingInfo","Log of data processing"); |
3664 |
|
// proc_tree->Branch("ProcInfo", "ProcInfo", &proc_obj); |
3665 |
|
cout << "----------------------------------------------------" << endl; |
3666 |
|
cout << ">>> ProcessingInfo not found, PROC set to false and continue (not 10RED files?)<<<" << endl; |
3667 |
|
PROC = false; |
3668 |
} |
} |
3669 |
// -------------------------------------------- |
// -------------------------------------------- |
3670 |
// return the pamela chain with all the friends |
// return the pamela chain with all the friends |
4180 |
isFragment = false; |
isFragment = false; |
4181 |
run_tree->GetEntry(irun); |
run_tree->GetEntry(irun); |
4182 |
if (!GetOrbitalInfo()) |
if (!GetOrbitalInfo()) |
4183 |
cout << "** WARNING ** missing OrbitalInfo ---> run info might be not correctly updated " << endl; |
cout << "PamLevel2::UpdateRunInfo(Long64_t "<<iev<<") ** WARNING ** missing OrbitalInfo ORB="<<ORB << endl; |
4184 |
if ( fUseDBinRunInfo ){ |
if ( fUseDBinRunInfo ){ |
4185 |
if (gltsync) |
if (gltsync) |
4186 |
delete gltsync; //Emiliano |
delete gltsync; //Emiliano |