/[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.110 by pam-fi, Tue Mar 24 09:15:01 2015 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;
# Line 1952  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 1979  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 2142  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 2202  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 2221  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 2592  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 2615  void PamLevel2::SortTracksNew() { Line 2657  void PamLevel2::SortTracksNew() {
2657  //   }  //   }
2658    
2659    
2660  //       cout << "text "<<doit<<endl;        //      cout << "text "<<orbext<<endl;
2661    
2662    
2663        //--------------------------------------------------        //--------------------------------------------------
# Line 2624  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 2725  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 2737  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 2760  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 2801  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 4066  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

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

  ViewVC Help
Powered by ViewVC 1.1.23