Skip to content
Snippets Groups Projects
THcHallCSpectrometer.cxx 35.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • 	fGoodTrack = ptrack;
    	chi2Min = chi2PerDeg;
    
    Mark Jones's avatar
    Mark Jones committed
         PruneSelect++;
        if (fPruneSelect ==0 && fNtracks>1) fPruneSelect=PruneSelect;
       // Set index=0 for fGoodTrack 
    
        for (Int_t iitrack = 0; iitrack < fNtracks; iitrack++ ){
          THaTrack* aTrack = dynamic_cast<THaTrack*>( fTracks->At(iitrack) );
          aTrack->SetIndex(1);
          if (iitrack==fGoodTrack) aTrack->SetIndex(0);
        }
        //
    
    Zafar's avatar
    Zafar committed
    
    
    }
    
    //_____________________________________________________________________________
    Int_t THcHallCSpectrometer::TrackTimes( TClonesArray* Tracks ) {
      // Do the actual track-timing (beta) calculation.
      // Use multiple scintillators to average together and get "best" time at S1.
      //
      // To be useful, a meaningful timing resolution should be assigned
      // to each Scintillator object (part of the database).
    
    Zafar's avatar
    Zafar committed
    
    
    Int_t THcHallCSpectrometer::Decode( const THaEvData& evdata )
    {
    
      fPresent=kTRUE;
      if(eventtypes.size()!=0) {
        Int_t evtype = evdata.GetEvType();
        if(!IsMyEvent(evtype)) {
          fPresent = kFALSE;
        }
      }
    
      return THaSpectrometer::Decode(evdata);
    }
    
    
    //_____________________________________________________________________________
    Int_t THcHallCSpectrometer::ReadRunDatabase( const TDatime& date )
    {
      // Override THaSpectrometer with nop method.  All needed kinamatics
      // read in ReadDatabase.
    
    void THcHallCSpectrometer::AddEvtType(int evtype) {
      eventtypes.push_back(evtype);
    }
      
    void THcHallCSpectrometer::SetEvtType(int evtype) {
      eventtypes.clear();
      AddEvtType(evtype);
    }
    
    Bool_t THcHallCSpectrometer::IsMyEvent(Int_t evtype) const
    {
      for (UInt_t i=0; i < eventtypes.size(); i++) {
        if (evtype == eventtypes[i]) return kTRUE;
      }
    
      return kFALSE;
    }
    
    
    //_____________________________________________________________________________
    ClassImp(THcHallCSpectrometer)