/[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.95 by pam-ts, Wed Oct 15 08:51:51 2014 UTC revision 1.96 by pam-ts, Wed Oct 15 10:02:51 2014 UTC
# Line 637  void PamLevel2::Initialize() { Line 637  void PamLevel2::Initialize() {
637    
638    EXT = false;    EXT = false;
639    NUC = false;    NUC = false;
640    trkAlg = "";//default tracking algorythm    trkAlg = "STD";//default tracking algorythm
641    
642    RUN = true;    RUN = true;
643    
# Line 2580  void PamLevel2::SortTracksNew() { Line 2580  void PamLevel2::SortTracksNew() {
2580  /**  /**
2581   * This method overrides TrkLevel2::GetTracks(), where sorting is done by decreasing number of fit points and increasing chi^2.   * This method overrides TrkLevel2::GetTracks(), where sorting is done by decreasing number of fit points and increasing chi^2.
2582   * PamLevel2::GetTracks() keeps the same track order given by TrkLevel2::GetTracks(), but checks image selection by using calorimeter and ToF tracking information.   * PamLevel2::GetTracks() keeps the same track order given by TrkLevel2::GetTracks(), but checks image selection by using calorimeter and ToF tracking information.
2583   /*   */
2584    
2585  // TRefArray *PamLevel2::GetTracks(){  // TRefArray *PamLevel2::GetTracks(){
2586    
# Line 2598  void PamLevel2::SortTracksNew() { Line 2598  void PamLevel2::SortTracksNew() {
2598  //  //
2599  //  //
2600  //--------------------------------------  //--------------------------------------
2601    
2602  /**  /**
2603   * Retrieves the it-th Pamela "physical" track.   * Retrieves the it-th Pamela "physical" track.
2604   * It override TrkLevel2::GetTrack(int it).   * It override TrkLevel2::GetTrack(int it).
2605   * @param it Track number, ranging from 0 to GetNTracks().   * @param it Track number, ranging from 0 to GetNTracks().
2606   */   */
2607  PamTrack *PamLevel2::GetTrack(int it) {  PamTrack *PamLevel2::GetTrackOld(int it) {
2608    
2609    PamTrack *track = NULL;    PamTrack *track = NULL;
2610    
# Line 2620  PamTrack *PamLevel2::GetTrack(int it) { Line 2621  PamTrack *PamLevel2::GetTrack(int it) {
2621      track = (PamTrack*)((*tsorted)[it]);      track = (PamTrack*)((*tsorted)[it]);
2622    }    }
2623    else {    else {
2624      cout << "PamLevel2::GetTrack(int) : tracker track SeqNo " << it << " does not exist (GetNTracks() = "      cout << "PamLevel2::GetTrackOld(int) : tracker track SeqNo " << it << " does not exist (GetNTracks() = "
2625          << trk2_obj->TrkLevel2::GetNTracks() << ")" << endl;          << trk2_obj->TrkLevel2::GetNTracks() << ")" << endl;
2626    };    };
2627    
# Line 2636  PamTrack *PamLevel2::GetTrack(int it) { Line 2637  PamTrack *PamLevel2::GetTrack(int it) {
2637   * @param it Track number, ranging from 0 to GetNTracks().   * @param it Track number, ranging from 0 to GetNTracks().
2638   * @param alg Algorythm, see SetTrakingAlgorythm(char *alg) for explanation.   * @param alg Algorythm, see SetTrakingAlgorythm(char *alg) for explanation.
2639   */   */
2640  PamTrack *PamLevel2::GetTrack(int it, char* alg) {  PamTrack *PamLevel2::GetTrack(int it, const char* alg) {
2641    
2642      TString s(alg);      TString s(alg);
2643      if(!s.CompareTo("") ||!s.CompareTo("STD") )return GetTrack(it); //old algorythm      if(!s.CompareTo("") ||!s.CompareTo("STD") )return GetTrackOld(it); //old algorythm
2644    
2645    
2646      SortTracksNew();      SortTracksNew();
# Line 2687  PamTrack *PamLevel2::GetTrack(int it, ch Line 2688  PamTrack *PamLevel2::GetTrack(int it, ch
2688      };      };
2689            
2690            
2691        cout << "PamTrack *PamLevel2::GetTrack("<<it<<","<<alg<<") -- wrong track number or unrecognised algorithm"<<endl;
2692            
2693      return NULL;      return NULL;
2694    
# Line 2702  TClonesArray *PamLevel2::GetTracks() { Line 2704  TClonesArray *PamLevel2::GetTracks() {
2704    
2705  }  }
2706  ;  ;
2707  Int_t  PamLevel2::GetNTracks(char* alg) {  Int_t  PamLevel2::GetNTracks(const char* alg) {
2708    
2709    
2710  //    cout << " trk_nuc_obj->GetEntries() "<<trk_nuc_obj->GetEntries()<<" trk2_nuc_obj->GetNTracks() "<<trk2_nuc_obj->GetNTracks()<<endl;  //    cout << " trk_nuc_obj->GetEntries() "<<trk_nuc_obj->GetEntries()<<" trk2_nuc_obj->GetNTracks() "<<trk2_nuc_obj->GetNTracks()<<endl;
# Line 2723  Int_t  PamLevel2::GetNTracks(char* alg) Line 2725  Int_t  PamLevel2::GetNTracks(char* alg)
2725      if(s.Contains("NUC", TString::kIgnoreCase) && NUC )      if(s.Contains("NUC", TString::kIgnoreCase) && NUC )
2726          return trk2_nuc_obj->TrkLevel2::GetNTracks();          return trk2_nuc_obj->TrkLevel2::GetNTracks();
2727            
2728        cout << "Int_t  PamLevel2::GetNTracks("<<alg<<") -- unrecognised algorithm"<<endl;
2729    
2730      return 0;      return 0;
2731    
2732  }  }
# Line 2736  Int_t  PamLevel2::GetNTracks(char* alg) Line 2740  Int_t  PamLevel2::GetNTracks(char* alg)
2740   * Retrieves (if present) the image of the it-th Pamela "physical" track, sorted by the method PamLevel2::SortTracks().   * Retrieves (if present) the image of the it-th Pamela "physical" track, sorted by the method PamLevel2::SortTracks().
2741   * @param it Track number, ranging from 0 to GetNTracks().   * @param it Track number, ranging from 0 to GetNTracks().
2742   */   */
2743  PamTrack *PamLevel2::GetTrackImage(int it) {  PamTrack *PamLevel2::GetTrackImageOld(int it) {
2744    
2745    //  *-*-*-*-*-*-*-*-*-*-*-*-*    //  *-*-*-*-*-*-*-*-*-*-*-*-*
2746    SortTracks();    SortTracks();
# Line 2760  PamTrack *PamLevel2::GetTrackImage(int i Line 2764  PamTrack *PamLevel2::GetTrackImage(int i
2764      };      };
2765    }    }
2766    else {    else {
2767      cout << "PamLevel2::GetTrackImage(int) : Tracker track SeqNo " << it << " does not exist (GetNTracks() = "      cout << "PamLevel2::GetTrackImageOld(int) : Tracker track SeqNo " << it << " does not exist (GetNTracks() = "
2768          << trk2_obj->TrkLevel2::GetNTracks() << ")" << endl;          << trk2_obj->TrkLevel2::GetNTracks() << ")" << endl;
2769    };    };
2770    
# Line 2771  PamTrack *PamLevel2::GetTrackImage(int i Line 2775  PamTrack *PamLevel2::GetTrackImage(int i
2775   * @param it Track number, ranging from 0 to GetNTracks().   * @param it Track number, ranging from 0 to GetNTracks().
2776   * @param alg Algorythm, see SetTrakingAlgorythm(char *alg) for explanation.   * @param alg Algorythm, see SetTrakingAlgorythm(char *alg) for explanation.
2777   */   */
2778  PamTrack *PamLevel2::GetTrackImage(int it, char* alg) {  PamTrack *PamLevel2::GetTrackImage(int it, const char* alg) {
2779    
2780      TString s(alg);      TString s(alg);
2781      if(!s.CompareTo("") || !s.CompareTo("STD"))return GetTrack(it); //old algorythm      if(!s.CompareTo("") || !s.CompareTo("STD"))return GetTrackImageOld(it); //old algorythm
2782    
2783    
2784      SortTracksNew();      SortTracksNew();
# Line 2792  PamTrack *PamLevel2::GetTrackImage(int i Line 2796  PamTrack *PamLevel2::GetTrackImage(int i
2796                  PamTrack *temp = (PamTrack*) t[it];                  PamTrack *temp = (PamTrack*) t[it];
2797                  if (temp->GetTrkTrack()->HasImage()) {                  if (temp->GetTrkTrack()->HasImage()) {
2798                      return (PamTrack*)((*timage_nuc)[it]);                 //ok return the track                      return (PamTrack*)((*timage_nuc)[it]);                 //ok return the track
2799                    }else{
2800                        return NULL;
2801                  }                  }
2802                                    
2803              }              }
# Line 2805  PamTrack *PamLevel2::GetTrackImage(int i Line 2811  PamTrack *PamLevel2::GetTrackImage(int i
2811                  PamTrack *temp = (PamTrack*) t[it];                  PamTrack *temp = (PamTrack*) t[it];
2812                  if (temp->GetTrkTrack()->HasImage()) {                                if (temp->GetTrkTrack()->HasImage()) {              
2813                      return (PamTrack*)((*timage)[it]);                 //ok return the track                      return (PamTrack*)((*timage)[it]);                 //ok return the track
2814                    }else{
2815                        return NULL;
2816                  }                  }
2817              }              }
2818          }          }
2819    
2820      }      }
2821    
2822        cout << "PamTrack *PamLevel2::GetTrackImage("<<it<<","<<alg<<") -- wrong track number or unrecognised algorithm"<<endl;
2823                
2824      return NULL;      return NULL;
2825    
# Line 3767  void PamLevel2::SetBranchAddress(TChain Line 3777  void PamLevel2::SetBranchAddress(TChain
3777   * "NUCEXT" --> as "EXT", but for nuclei   * "NUCEXT" --> as "EXT", but for nuclei
3778   * "NUCEXTF" --> as "EXTF", but for nuclei   * "NUCEXTF" --> as "EXTF", but for nuclei
3779   */   */
3780  void PamLevel2::SetTrakingAlgorythm(char *alg){  // void PamLevel2::SetTrackingAlgorythm(const char *alg){
3781    
3782    
3783      TString s(alg);  //     TString s(alg);
3784      if(s.Contains("NUC", TString::kIgnoreCase) && !NUC)  //     if(s.Contains("NUC", TString::kIgnoreCase) && !NUC)
3785          cout << "Warning! NUC algorythm requested, but branches are missing"<<endl;  //      cout << "Warning! NUC algorythm requested, but branches are missing"<<endl;
3786      if(s.Contains("EXT", TString::kIgnoreCase) && !EXT)  //     if(s.Contains("EXT", TString::kIgnoreCase) && !EXT)
3787          cout << "Warning! EXT algorythm requested, but branches are missing"<<endl;;  //      cout << "Warning! EXT algorythm requested, but branches are missing"<<endl;;
3788                            
3789      trkAlg = alg;  //     trkAlg = alg;
3790    
3791  };  // };
3792  char* PamLevel2::GetTrakingAlgorythm(){  // const char* PamLevel2::GetTrackingAlgorythm(){
3793    
3794    
3795      cout<<endl<<" Implemented tracking algorythm: ";  //     cout<<endl<<" Implemented tracking algorythm: ";
3796      cout<<endl<<"  \"\" or \"STD\"  --> take the output of the standard tracking algorythm";  //     cout<<endl<<"  \"\" or \"STD\"  --> take the output of the standard tracking algorythm";
3797      cout<<endl<<"  \"NUC\"      --> take the output of the standard tracking algorythm for nuclei cluster selection";  //     cout<<endl<<"  \"NUC\"      --> take the output of the standard tracking algorythm for nuclei cluster selection";
3798      cout<<endl<<"  \"EXT\"      --> in case the standard tracking algorythm has not found any track,";  //     cout<<endl<<"  \"EXT\"      --> in case the standard tracking algorythm has not found any track,";
3799      cout<<endl<<"                 take the output of the extended one";  //     cout<<endl<<"                 take the output of the extended one";
3800      cout<<endl<<"  \"EXTF\"     --> force the extended tracking algorythm";  //     cout<<endl<<"  \"EXTF\"     --> force the extended tracking algorythm";
3801      cout<<endl<<"  \"NUCEXT\"   --> as \"EXT\", but for nuclei ";  //     cout<<endl<<"  \"NUCEXT\"   --> as \"EXT\", but for nuclei ";
3802      cout<<endl<<"  \"NUCEXTF\"  --> as \"EXTF\", but for nuclei";  //     cout<<endl<<"  \"NUCEXTF\"  --> as \"EXTF\", but for nuclei";
3803    
3804      cout<<endl;  //     cout<<endl;
3805      cout<<" <<Currently set algorythm>> "<<trkAlg<<endl;  //     cout<<" <<Currently set algorythm>> "<<trkAlg<<endl;
3806      cout<<endl;  //     cout<<endl;
3807    
3808      return trkAlg;  //     return trkAlg;
3809  };  // };
3810    
3811    
3812    

Legend:
Removed from v.1.95  
changed lines
  Added in v.1.96

  ViewVC Help
Powered by ViewVC 1.1.23