• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/Users/jmonk/Physics/ForIA/ForIA/AnalysisTools/TrackSelection.hh

Go to the documentation of this file.
00001 #ifndef FORIA_TRACKSELECTION_HH
00002 #define FORIA_TRACKSELECTION_HH
00003 
00004 #include "ForIA/Track.hh"
00005 #include "ForIA/Event.hh"
00006 #include "ForIA/Vertex.hh"
00007 
00008 #include "ForIA/AnalysisTools/FourVectorSelection.hh"
00009 
00010 #include <ostream>
00011 #include <map>
00012 #include <set>
00013 
00014 namespace ForIA{
00015  
00016   using std::map;
00017   using std::set;
00018   
00019   class MessageBox;
00020   
00022   class TrackSelection : public FourVectorSelection{
00023     
00024   public:
00025     
00039     enum DefinedSelection{MINBIAS_2, MINBIAS_2_BS, UE, HIGHMULT_LOOSE, HIGHMULT_TIGHT, HIGHMULT_ASSOC};
00040     
00042     TrackSelection();
00044     const TrackVector &tracks() const;
00046     const TrackVector &rejectedTracks() const;
00049     void setSelection(DefinedSelection selection);
00050     
00052     void setOrigin(Track::Origin origin);
00054     void setD0(double d0);
00056     void setZ0SinTheta(double z0SinTheta);
00058     void setPTMin(double pt);
00060     void setEtaMax(double eta);
00062     void setNBLayerHits(int nBLayer);
00064     void setNPixHits(int nPix);
00066     void setNSCTHits(int nSCT);
00068     void setPixSCTHits(int nHits);
00075     void setNSCTHits(double ptThresh, int nSCT);
00081     void setMinFitProbability(double ptThresh, double minProbability);
00084     void setChi2PerDOF(double chi2);
00085     
00088     void addTrackAuthor(Track::TrackAuthor author);
00091     void clearAllTrackAuthors();
00093     void setVertexType(Vertex::VertexType vType);
00094     
00096     void setInput(const TrackVector &tracks);
00097     
00098   private:
00099     
00100     friend std::ostream &operator << (std::ostream &out, const TrackSelection &selection);
00101     friend MessageBox &operator <<(MessageBox &box, const TrackSelection &selection);
00102     
00103     void fillVectors() const;
00104     
00105     TrackVector m_inputTracks;
00106     
00107     mutable TrackVector m_passedTracks;
00108     mutable TrackVector m_rejectedTracks;
00109         
00110     Track::Origin m_origin;
00111     
00112     double m_d0;
00113     double m_z0SinTheta;
00114     double m_ptMin;
00115     double m_etaMax;
00116     int m_nBLayer;
00117     int m_minPix;
00118     int m_minSCT;
00119     int m_minPixSCT;
00120     map<double, int> m_minSCTByPT;
00121     map<double, double> m_minFitProbability;
00122     double m_maxChi2PerDOF;
00123     TrackAuthorSet m_authors;    
00124     Vertex::VertexType m_vertexType;
00125     
00126     bool m_haveSetD0;
00127     bool m_haveSetZ0SinTheta;
00128     bool m_haveSetPT;
00129     bool m_haveSetEta;
00130     bool m_haveSetBLayer;
00131     bool m_haveSetNPix;
00132     bool m_haveSetNSCT;
00133     bool m_haveSetPixSCT;
00134     bool m_haveSetNSCTByPT;
00135     bool m_haveSetMinFitProbability;
00136     bool m_haveSetChi2;
00137     bool m_haveSetTrackAuthors;
00138     bool m_haveSetVertexType;
00139     
00140   };
00141   
00142 }
00143 
00144 #endif

Generated on Mon Jul 30 2012 16:56:35 for ForIA by  doxygen 1.7.2