/[PAMELA software]/PamelaLevel2/src/PamLevel2.cpp
ViewVC logotype

Diff of /PamelaLevel2/src/PamLevel2.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.104 by mocchiut, Fri Oct 17 16:21:50 2014 UTC revision 1.114 by pamela, Tue Jan 17 09:49:51 2017 UTC
# Line 315  PamTrack::PamTrack(TrkTrack* t, CaloTrkV Line 315  PamTrack::PamTrack(TrkTrack* t, CaloTrkV
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  }  }
# Line 335  PamTrack::PamTrack(TrkTrack* t, CaloTrkV Line 352  PamTrack::PamTrack(TrkTrack* t, CaloTrkV
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;
# Line 354  PamTrack::PamTrack(ExtTrack* t, CaloTrkV Line 373  PamTrack::PamTrack(ExtTrack* t, CaloTrkV
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;
# Line 400  PamTrack::PamTrack(const PamTrack& track Line 435  PamTrack::PamTrack(const PamTrack& 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;
# Line 431  void PamTrack::Delete() { Line 483  void PamTrack::Delete() {
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) {
# Line 628  void PamLevel2::Initialize() { Line 681  void PamLevel2::Initialize() {
681    if (strcmp(pamdbpsw, ""))    if (strcmp(pamdbpsw, ""))
682      psw = pamdbpsw;      psw = pamdbpsw;
683    
684      customString = "";
685    
686    //    sorted_tracks = 0;//new TRefArray();    //    sorted_tracks = 0;//new TRefArray();
687    
688    CAL0 = false;    CAL0 = false;
# Line 1228  CaloTrkVar *PamLevel2::GetCaloStoredTrac Line 1283  CaloTrkVar *PamLevel2::GetCaloStoredTrac
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;
# Line 1243  CaloTrkVar *PamLevel2::GetCaloStoredTrac Line 1300  CaloTrkVar *PamLevel2::GetCaloStoredTrac
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    };    };
# Line 1362  OrbitalInfoTrkVar *PamLevel2::GetOrbital Line 1419  OrbitalInfoTrkVar *PamLevel2::GetOrbital
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    
# Line 1474  void PamLevel2::SortTracks() { Line 1531  void PamLevel2::SortTracks() {
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    
# Line 1923  void PamLevel2::SortTracks() { Line 1986  void PamLevel2::SortTracks() {
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    
# Line 1950  void PamLevel2::SortTracks() { Line 2016  void PamLevel2::SortTracks() {
2016    issorted = true;    issorted = true;
2017    lastsorted = GetReadEntry();    lastsorted = GetReadEntry();
2018    
2019    //  cout <<" SortTracks() -- end"<<endl;
2020    
2021  }  }
2022  ;  ;
2023  //  //
# Line 2113  void PamLevel2::SortTracksNew() { Line 2181  void PamLevel2::SortTracksNew() {
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                
# Line 2173  void PamLevel2::SortTracksNew() { Line 2237  void PamLevel2::SortTracksNew() {
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;
# Line 2192  void PamLevel2::SortTracksNew() { Line 2258  void PamLevel2::SortTracksNew() {
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    
# Line 2563  void PamLevel2::SortTracksNew() { Line 2629  void PamLevel2::SortTracksNew() {
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    
# Line 2586  void PamLevel2::SortTracksNew() { Line 2657  void PamLevel2::SortTracksNew() {
2657  //   }  //   }
2658    
2659    
2660  //       cout << "text "<<doit<<endl;        //      cout << "text "<<orbext<<endl;
2661    
2662    
2663        //--------------------------------------------------        //--------------------------------------------------
# Line 2595  void PamLevel2::SortTracksNew() { Line 2666  void PamLevel2::SortTracksNew() {
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    };    };
# Line 2660  PamTrack *PamLevel2::GetTrackOld(int it) Line 2750  PamTrack *PamLevel2::GetTrackOld(int it)
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() = "
# Line 2689  PamTrack *PamLevel2::GetTrack(int it, co Line 2786  PamTrack *PamLevel2::GetTrack(int it, co
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
# Line 2701  PamTrack *PamLevel2::GetTrack(int it, co Line 2799  PamTrack *PamLevel2::GetTrack(int it, co
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 &&
# Line 2724  PamTrack *PamLevel2::GetTrack(int it, co Line 2841  PamTrack *PamLevel2::GetTrack(int it, co
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 &&
# Line 2765  Int_t  PamLevel2::GetNTracks(const char* Line 2902  Int_t  PamLevel2::GetNTracks(const char*
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    
# Line 2866  PamTrack *PamLevel2::GetTrackImage(int i Line 3016  PamTrack *PamLevel2::GetTrackImage(int i
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    
# Line 3509  TChain *PamLevel2::GetPamTree(TList *fl, Line 3659  TChain *PamLevel2::GetPamTree(TList *fl,
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
# Line 4024  Bool_t PamLevel2::UpdateRunInfo(Long64_t Line 4180  Bool_t PamLevel2::UpdateRunInfo(Long64_t
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
# Line 5226  void PamLevel2::CreateCloneTrees(TFile * Line 5382  void PamLevel2::CreateCloneTrees(TFile *
5382      //    cout << "irun\t | RUN\t NEVENTS\t absolute time"<<endl;      //    cout << "irun\t | RUN\t NEVENTS\t absolute time"<<endl;
5383      for (Int_t i = 0; i < proc_tree->GetEntries(); i++) {      for (Int_t i = 0; i < proc_tree->GetEntries(); i++) {
5384        proc_tree->GetEntry(i);        proc_tree->GetEntry(i);
5385        cout << i<< "\t | "<<endl;        //      cout << i<< "\t | "<<endl;
5386        proc_tree_clone->Fill();        proc_tree_clone->Fill();
5387      }      }
5388      if ( SELLI != 2 || true ){            if ( SELLI != 2 ){      
       cout << "|| "<<endl;  
5389        proc_obj->runID = 0;        proc_obj->runID = 0;
       cout << "|||d "<<endl;  
5390        TTimeStamp *dt = new TTimeStamp();        TTimeStamp *dt = new TTimeStamp();
5391        proc_obj->date = dt->AsString();        proc_obj->date = dt->AsString();
5392        delete dt;        delete dt;
5393        cout << "|||f "<<endl;        proc_obj->commandLine = Form("PamelaLevel2 was called: CAL2 %i CAL1 %i CAL0 %i TRK2 %i TRK1 %i TRKh %i TRK0 %i TOF %i TOF0 %i TRG %i \n                                            S4 %i ND %i AC %i ORB %i GP %i EXT %i NUC %i RUN %i ISGP %i SELLI %i \n Custom string   = %s",CAL2,CAL1,CAL0,TRK2,TRK1,TRKh,TRK0,TOF,TOF0,TRG,S4,ND,AC,ORB,GP,EXT,NUC,RUN,ISGP,SELLI,customString.Data());
5394        proc_obj->commandLine = Form("PamelaLevel2 was called");        proc_obj->outputFilename = ofile->GetName();
       cout << "|||g "<<endl;  
       proc_obj->outputFilename = "";  
       cout << "|||h "<<endl;  
5395        proc_obj->localDir = gSystem->WorkingDirectory();        proc_obj->localDir = gSystem->WorkingDirectory();
       cout << "|||j "<<endl;  
5396        proc_obj->uname = gSystem->GetFromPipe("uname -a");        proc_obj->uname = gSystem->GetFromPipe("uname -a");
5397        cout << "|||s "<<endl;        if (!dbc || (dbc && !dbc->IsConnected())) SetDBConnection();
5398        proc_obj->DB = Form("mysql://%s/%s",dbc->GetHost(),dbc->GetDB());        proc_obj->DB = Form("mysql://%s/%s",dbc->GetHost(),dbc->GetDB());
5399        cout << "||| "<<endl;        dbc->Close();
5400        proc_tree_clone->Fill();        proc_tree_clone->Fill();
5401      }      }
5402      cout << "----------------------------------------------------" << endl;      cout << "----------------------------------------------------" << endl;
# Line 5469  void PamLevel2::WriteCloneTrees() { Line 5619  void PamLevel2::WriteCloneTrees() {
5619      };      };
5620    }    }
5621        
5622    if ( PROC && false ){//EMEMEMEM    if ( PROC ){//EMEMEMEM
5623      proc_tree_clone->Write("ProcessingInfo",TObject::kOverwrite);      proc_tree_clone->Write("ProcessingInfo",TObject::kOverwrite);
5624    }    }
5625    cout << "+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+" << endl;    cout << "+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+" << endl;

Legend:
Removed from v.1.104  
changed lines
  Added in v.1.114

  ViewVC Help
Powered by ViewVC 1.1.23