/[PAMELA software]/DarthVader/ToFLevel2/src/ToFLevel2.cpp
ViewVC logotype

Diff of /DarthVader/ToFLevel2/src/ToFLevel2.cpp

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

revision 1.44 by mocchiut, Thu Feb 26 14:35:01 2015 UTC revision 1.48 by pam-fi, Wed May 20 10:57:02 2015 UTC
# Line 147  void ToFLevel2::Delete(Option_t *t){ //E Line 147  void ToFLevel2::Delete(Option_t *t){ //E
147    //    //
148  }; //ELENA  }; //ELENA
149    
150    /**
151     * Retrieves the itrk-th tof track stored in the array
152     * @param itrk Array index (min 0, max ToFLevel2::ntrk())
153     *
154     */
155  ToFTrkVar *ToFLevel2::GetToFTrkVar(Int_t itrk){  ToFTrkVar *ToFLevel2::GetToFTrkVar(Int_t itrk){
156    //        //    
157    if(itrk >= ntrk()){    if(itrk >= ntrk()){
# Line 163  ToFTrkVar *ToFLevel2::GetToFTrkVar(Int_t Line 168  ToFTrkVar *ToFLevel2::GetToFTrkVar(Int_t
168    
169  /**  /**
170   * Retrieves the tof track matching the seqno-th tracker stored track.   * Retrieves the tof track matching the seqno-th tracker stored track.
171     * @param seqno Track sequential number
172     * (seqno = -1 for standalone tof track, seqno=0-TrkLevel2::ntrk() for tof tracks associated to a tracker track)
173   *   *
174   */   */
175  ToFTrkVar *ToFLevel2::GetToFStoredTrack(int seqno){  ToFTrkVar *ToFLevel2::GetToFStoredTrack(int seqno){
# Line 299  Int_t ToFLevel2::GetTrueNHitPaddles(Int_ Line 306  Int_t ToFLevel2::GetTrueNHitPaddles(Int_
306   * The method was modified for the "ToF-standalone" part in february 2015   * The method was modified for the "ToF-standalone" part in february 2015
307   * The "adcfl" option is not very useful (an artificial dEdx is per   * The "adcfl" option is not very useful (an artificial dEdx is per
308   * definition= 1 mip and not a real measurement), anyway left in the code   * definition= 1 mip and not a real measurement), anyway left in the code
309   * @param notrack Track Number   * @param notrack Track Number (array index, ranging from 0 to ntrk())
310   * @param plane Plane index (0,1,2,3,4,5)   * @param plane Plane index (0,1,2,3,4,5)
311   * @param adcflag in the plane (100<-> independent of the adcflag; !=0&&!=100 <-> at least one PMT with adcflag!=0; )   * @param adcflag in the plane (100<-> independent of the adcflag; !=0&&!=100 <-> at least one PMT with adcflag!=0; )
312   */   */
313  Float_t ToFLevel2::GetdEdx(Int_t notrack, Int_t plane, Int_t adcfl){  Float_t ToFLevel2::GetdEdx(Int_t notrack, Int_t plane, Int_t adcfl){
314    ToFTrkVar *trk = GetToFTrkVar(notrack);      ToFTrkVar *trk = GetToFTrkVar(notrack);
315    //    ToFTrkVar *trk = GetToFStoredTrack(seqno);//Elena 2015
316    return this->GetdEdx(trk, plane, adcfl);    return this->GetdEdx(trk, plane, adcfl);
317  }  }
318    
# Line 319  Float_t ToFLevel2::GetdEdx(Int_t notrack Line 327  Float_t ToFLevel2::GetdEdx(Int_t notrack
327   * The method was modified for the "ToF-standalone" part in february 2015   * The method was modified for the "ToF-standalone" part in february 2015
328   * The "adcfl" option is not very useful (an artificial dEdx is per   * The "adcfl" option is not very useful (an artificial dEdx is per
329   * definition= 1 mip and not a real measurement), anyway left in the code   * definition= 1 mip and not a real measurement), anyway left in the code
330   * @param trk Pointer to TofTrkVar class   * @param trk Pointer to TofTrkVar object
331   * @param plane Plane index (0,1,2,3,4,5)   * @param plane Plane index (0,1,2,3,4,5)
332   * @param adcflag in the plane (100<-> independent of the adcflag; !=0&&!=100 <-> at least one PMT with adcflag!=0; )   * @param adcflag in the plane (100<-> independent of the adcflag; !=0&&!=100 <-> at least one PMT with adcflag!=0; )
333   */   */
# Line 330  Float_t ToFLevel2::GetdEdx(ToFTrkVar *tr Line 338  Float_t ToFLevel2::GetdEdx(ToFTrkVar *tr
338    Int_t SatWarning;    Int_t SatWarning;
339    Int_t pad=-1;    Int_t pad=-1;
340    //    //
341      if(!trk) cout << "ToFLevel2::GetdEdx(...) ---> NULL ToFTrkVar obj "<<endl;
342    if(!trk) return 0; //ELENA    if(!trk) return 0; //ELENA
343    //    //
344    // ToF standalone part    // ToF standalone part
# Line 383  Float_t ToFLevel2::GetdEdx(ToFTrkVar *tr Line 392  Float_t ToFLevel2::GetdEdx(ToFTrkVar *tr
392  /**  /**
393   * Method to fill the ADC_C 4x12 matrix with the dEdx values and the TDC 4x12 matrix   * Method to fill the ADC_C 4x12 matrix with the dEdx values and the TDC 4x12 matrix
394   * with the time-walk corrected TDC values.   * with the time-walk corrected TDC values.
395   * @param notrack Track Number   * @param notrack Track Number (arry index, ranging from 0 to ntrk())
396   * @param adc  ADC_C matrix with dEdx values   * @param adc  ADC_C matrix with dEdx values
397   * @param tdc  TDC matrix   * @param tdc  TDC matrix
398   */   */
# Line 453  Int_t ToFLevel2::GetPlaneIndex(Int_t pmt Line 462  Int_t ToFLevel2::GetPlaneIndex(Int_t pmt
462   */   */
463  Int_t ToFLevel2::GetPMTid(Int_t hh, Int_t kk){  Int_t ToFLevel2::GetPMTid(Int_t hh, Int_t kk){
464    //    //
465    short tof[4][24] = {    static const short tof[4][24] = {
466      {4, 4,  4,  4,  1,  1, 2, 2,  3,  3, 3, 3,  3,  3, 1, 1,  1,  1, 2, 3,  3, 3, 3,  4},      {4, 4,  4,  4,  1,  1, 2, 2,  3,  3, 3, 3,  3,  3, 1, 1,  1,  1, 2, 3,  3, 3, 3,  4},
467      {1, 3,  5,  7, 10, 12, 2, 4,  2,  4, 6, 8, 10, 12, 1, 5,  3,  9, 7, 9, 11, 1, 5,  9},      {1, 3,  5,  7, 10, 12, 2, 4,  2,  4, 6, 8, 10, 12, 1, 5,  3,  9, 7, 9, 11, 1, 5,  9},
468      {2, 2,  2,  2,  1,  1, 1, 1,  4,  4, 4, 4,  4,  4, 2, 1,  2,  1, 2, 2,  2, 3, 3,  4},      {2, 2,  2,  2,  1,  1, 1, 1,  4,  4, 4, 4,  4,  4, 2, 1,  2,  1, 2, 2,  2, 3, 3,  4},
# Line 489  Int_t ToFLevel2::GetPMTid(Int_t hh, Int_ Line 498  Int_t ToFLevel2::GetPMTid(Int_t hh, Int_
498   */   */
499  void ToFLevel2::GetPMTIndex(Int_t ind, Int_t &hb, Int_t &ch){  void ToFLevel2::GetPMTIndex(Int_t ind, Int_t &hb, Int_t &ch){
500    //    //
501    short tof[4][24] = {    static const short tof[4][24] = {
502      {4, 4,  4,  4,  1,  1, 2, 2,  3,  3, 3, 3,  3,  3, 1, 1,  1,  1, 2, 3,  3, 3, 3,  4},      {4, 4,  4,  4,  1,  1, 2, 2,  3,  3, 3, 3,  3,  3, 1, 1,  1,  1, 2, 3,  3, 3, 3,  4},
503      {1, 3,  5,  7, 10, 12, 2, 4,  2,  4, 6, 8, 10, 12, 1, 5,  3,  9, 7, 9, 11, 1, 5,  9},      {1, 3,  5,  7, 10, 12, 2, 4,  2,  4, 6, 8, 10, 12, 1, 5,  3,  9, 7, 9, 11, 1, 5,  9},
504      {2, 2,  2,  2,  1,  1, 1, 1,  4,  4, 4, 4,  4,  4, 2, 1,  2,  1, 2, 2,  2, 3, 3,  4},      {2, 2,  2,  2,  1,  1, 1, 1,  4,  4, 4, 4,  4,  4, 2, 1,  2,  1, 2, 2,  2, 3, 3,  4},
# Line 521  void ToFLevel2::GetPMTIndex(Int_t ind, I Line 530  void ToFLevel2::GetPMTIndex(Int_t ind, I
530   * Method to get the dEdx from a given ToF paddle.   * Method to get the dEdx from a given ToF paddle.
531   * If two PMTs are good, the mean dEdx of both PMTs is taken, otherwise   * If two PMTs are good, the mean dEdx of both PMTs is taken, otherwise
532   * just the dEdx of the "good" PMT. If both PMTs are above saturation => dEdx=1000   * just the dEdx of the "good" PMT. If both PMTs are above saturation => dEdx=1000
533   * @param notrack Track Number   * @param notrack Track Number (-1 for standalone info)
534   * @param Paddle index (0,1,...,23).   * @param Paddle index (0,1,...,23).
535   * @param adcflag in the paddle (100<-> independent of the adcflag; !=0&&!=100 <-> at least one PMT with adcflag!=0; )   * @param adcflag in the paddle (100<-> independent of the adcflag; !=0&&!=100 <-> at least one PMT with adcflag!=0; )
536   * @param PadEdx dEdx from a given ToF paddle   * @param PadEdx dEdx from a given ToF paddle
# Line 530  void ToFLevel2::GetPMTIndex(Int_t ind, I Line 539  void ToFLevel2::GetPMTIndex(Int_t ind, I
539  void ToFLevel2::GetdEdxPaddle(Int_t notrack, Int_t paddleid, Int_t adcfl, Float_t &PadEdx, Int_t &SatWarning){  void ToFLevel2::GetdEdxPaddle(Int_t notrack, Int_t paddleid, Int_t adcfl, Float_t &PadEdx, Int_t &SatWarning){
540    
541    ToFTrkVar *trk = GetToFTrkVar(notrack);    ToFTrkVar *trk = GetToFTrkVar(notrack);
542    //    ToFTrkVar *trk = GetToFStoredTrack(seqno); //Elena 2015
543    this->GetdEdxPaddle(trk, paddleid, adcfl, PadEdx, SatWarning);    this->GetdEdxPaddle(trk, paddleid, adcfl, PadEdx, SatWarning);
544        
545  };  };
# Line 579  void ToFLevel2::GetdEdxPaddle(ToFTrkVar Line 589  void ToFLevel2::GetdEdxPaddle(ToFTrkVar
589    Int_t pmt_id = -1;    Int_t pmt_id = -1;
590    Float_t adcraw[48];    Float_t adcraw[48];
591    //    //
592      if(!trk)cout << "ToFLevel2::GetdEdxPaddle(...) ---> NULL ToFTrkVar obj "<<endl;
593    if(!trk) return; //ELENA    if(!trk) return; //ELENA
594    //    //
595    
# Line 649  TString ToFLevel2::GetPMTName(Int_t ind, Line 660  TString ToFLevel2::GetPMTName(Int_t ind,
660        
661    TString pmtname = " ";    TString pmtname = " ";
662        
663    TString photoS[48] = {    static const TString photoS[48] = {
664      "S11_1A", "S11_1B", "S11_2A", "S11_2B", "S11_3A", "S11_3B", "S11_4A",      "S11_1A", "S11_1B", "S11_2A", "S11_2B", "S11_3A", "S11_3B", "S11_4A",
665      "S11_4B",      "S11_4B",
666      "S11_5A", "S11_5B", "S11_6A", "S11_6B", "S11_7A", "S11_7B", "S11_8A",      "S11_5A", "S11_5B", "S11_6A", "S11_6B", "S11_7A", "S11_7B", "S11_8A",
# Line 1109  Int_t ToFLevel2::GetNPaddle(Int_t plane) Line 1120  Int_t ToFLevel2::GetNPaddle(Int_t plane)
1120   * @param cut on chi2   * @param cut on chi2
1121   */   */
1122    
 Float_t ToFLevel2::CalcBeta(Int_t notrack, Float_t resmax, Float_t qualitycut, Float_t chi2cut){  
1123    
1124  //  cout<<" in CalcBeta "<<resmax<<" "<<chi2cut<<" "<<qualitycut<<endl;  Float_t ToFTrkVar::CalcBeta( Float_t resmax, Float_t qualitycut, Float_t chi2cut){
1125    
1126    
1127    Float_t bxx = 100.;    Float_t bxx = 100.;
1128    //    //
1129    ToFTrkVar *trk = GetToFTrkVar(notrack);    ToFTrkVar *trk = this;
   if(!trk) return 0; //ELENA  
1130    
1131    
1132    Float_t chi2,xhelp,beta_mean;    Float_t chi2,xhelp,beta_mean;
# Line 1143  Float_t  w_il[6]; Line 1153  Float_t  w_il[6];
1153    for (Int_t i=0; i<trk->npmttdc; i++){    for (Int_t i=0; i<trk->npmttdc; i++){
1154      //      //
1155      pmt_id = (trk->pmttdc).At(i);      pmt_id = (trk->pmttdc).At(i);
1156      pmt_plane = GetPlaneIndex(pmt_id);      pmt_plane = ToFLevel2::GetPlaneIndex(pmt_id);
1157      tdcfl = (trk->tdcflag).At(i);      tdcfl = (trk->tdcflag).At(i);
1158      if (w_il[pmt_plane] != 1.) w_il[pmt_plane] = tdcfl; //tdcflag      if (w_il[pmt_plane] != 1.) w_il[pmt_plane] = tdcfl; //tdcflag
1159                                       };                                       };
# Line 1230  Int_t ibot[12] = {4,5,4,5,4,5,4,5,2,3,2, Line 1240  Int_t ibot[12] = {4,5,4,5,4,5,4,5,2,3,2,
1240    //    //
1241    return(bxx);    return(bxx);
1242  };  };
1243    ////////////////////////////////////////////////////
1244    ////////////////////////////////////////////////////
1245    /**
1246     * See ToFTrkVar::CalcBeta(Float_t,Float_t, Float_t).
1247     * @param notrack Track Number (arry index, ranging from 0 to ntrk())
1248     */
1249    Float_t ToFLevel2::CalcBeta(Int_t notrack, Float_t resmax, Float_t qualitycut, Float_t chi2cut){
1250    
1251    //  cout<<" in CalcBeta "<<resmax<<" "<<chi2cut<<" "<<qualitycut<<endl;
1252    
1253      ToFTrkVar *trk = GetToFTrkVar(notrack);
1254    //    ToFTrkVar *trk = GetToFStoredTrack(seqno);//Elena Apr 2015
1255      if(!trk) return 0; //ELENA
1256    
1257      return trk->CalcBeta(resmax,qualitycut,chi2cut);
1258    
1259    };
1260    
1261    
1262  ////////////////////////////////////////////////////  ////////////////////////////////////////////////////

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.48

  ViewVC Help
Powered by ViewVC 1.1.23