Go to the documentation of this file.00001 #ifndef FORIA_VERTEXCUTS_HH
00002 #define FORIA_VERTEXCUTS_HH
00003
00004 #include "ForIA/Vertex.hh"
00005
00006 #include "ForIA/AnalysisTools/IVertexCuts.hh"
00007
00008 #include <ostream>
00009
00010 namespace ForIA {
00011
00012 class Event;
00013 class MessageBox;
00014
00015 class VertexCuts : public IVertexCuts{
00016
00017 public:
00018
00019 VertexCuts();
00020
00021 bool setEvent(const Event &evt);
00022
00023 bool doPileUpCut(bool pileUpCut);
00024 bool setNTracksForPrimaryVertex(int nTracks);
00025 bool setNTracksForPileUpVertex(int nTracks);
00026 bool setRequirePrimary(bool require);
00027
00028 bool passesCuts() const;
00029
00030 const VertexVector &goodVertices()const;
00031
00032 private:
00033
00034 friend std::ostream &operator << (std::ostream &out, const VertexCuts &cuts);
00035 friend MessageBox &operator <<(MessageBox &box, const VertexCuts &cuts);
00036
00037 bool m_pileUpCut;
00038 bool m_requirePrimary;
00039 int m_nTracksForPrimary;
00040 int m_nTracksForPileUp;
00041
00042 bool m_canSetCuts;
00043
00044 bool m_haveSetPileUpCut;
00045 bool m_haveSetRequirePrimary;
00046 bool m_haveSetNTracksForPrimary;
00047 bool m_haveSetNTracksForPileUp;
00048
00049 VertexVector m_goodVertices;
00050 bool m_gotPrimary;
00051
00052 mutable bool m_passes;
00053 mutable bool m_gotPasses;
00054
00055 };
00056 }
00057
00058 #endif