#ifndef TRACKFILTERBFCALIBFD_H
#define TRACKFILTERBFCALIBFD_H
//_____________________________________________________________________________
///
/// \class TrackFilterBFCalibFD 
///
/// Filter that selects only tracks useful for calibrating FD b-field.
/// Requires minimum number of planes and contained track end.
///
/// \author Sergei avva@fnal.gov
///

#include "CandFitTrackSA/TrackFilter.h"


class AlgConfig;
class TrackContext;

class TrackFilterBFCalibFD : public TrackFilter
{

public:
    
    TrackFilterBFCalibFD();

    ~TrackFilterBFCalibFD();

    virtual Bool_t Pass(const TrackContext& ) const;
    virtual void   Config(const AlgConfig& );
    

private:

    ///
    /// min # of hit planes per view 
    ///
    Int_t       fNHitsInViewMin; 
    
    ///
    /// min acceptable track length in #planes
    ///
    Int_t       fNPlanesMin;
    
    // contained track end cuts
    ///
    /// Min distance from front/end face or supermodule boundary 
    /// along Z axis
    ///
    Double_t    fZDistanceMin;  
    
    ///
    /// min distance from z-axis 
    ///
    Double_t    fRadiusMin;
    
    ///
    /// max distance from z-axis 
    ///
    Double_t    fRadiusMax;
};

#endif
