00001
00002
00003
00004
00005 #ifndef PhysicsTools_PatAlgos_PATObjectSelector_h
00006 #define PhysicsTools_PatAlgos_PATObjectSelector_h
00007
00008 #include "DataFormats/Common/interface/RefVector.h"
00009
00010 #include "PhysicsTools/UtilAlgos/interface/StringCutObjectSelector.h"
00011 #include "PhysicsTools/UtilAlgos/interface/SingleObjectSelector.h"
00012 #include "PhysicsTools/UtilAlgos/interface/ObjectSelector.h"
00013 #include "PhysicsTools/UtilAlgos/interface/SingleElementCollectionSelector.h"
00014
00015 #include "DataFormats/PatCandidates/interface/Electron.h"
00016 #include "DataFormats/PatCandidates/interface/Muon.h"
00017 #include "DataFormats/PatCandidates/interface/Tau.h"
00018 #include "DataFormats/PatCandidates/interface/Photon.h"
00019 #include "DataFormats/PatCandidates/interface/Jet.h"
00020 #include "DataFormats/PatCandidates/interface/MET.h"
00021 #include "DataFormats/PatCandidates/interface/PFParticle.h"
00022 #include "DataFormats/PatCandidates/interface/GenericParticle.h"
00023
00024
00025 #include <vector>
00026
00027
00028 namespace pat {
00029
00030
00031 typedef SingleObjectSelector<
00032 std::vector<Electron>,
00033 StringCutObjectSelector<Electron>
00034 > PATElectronSelector;
00035 typedef SingleObjectSelector<
00036 std::vector<Muon>,
00037 StringCutObjectSelector<Muon>
00038 > PATMuonSelector;
00039 typedef SingleObjectSelector<
00040 std::vector<Tau>,
00041 StringCutObjectSelector<Tau>
00042 > PATTauSelector;
00043 typedef SingleObjectSelector<
00044 std::vector<Photon>,
00045 StringCutObjectSelector<Photon>
00046 > PATPhotonSelector;
00047 typedef SingleObjectSelector<
00048 std::vector<Jet>,
00049 StringCutObjectSelector<Jet>
00050 > PATJetSelector;
00051 typedef SingleObjectSelector<
00052 std::vector<MET>,
00053 StringCutObjectSelector<MET>
00054 > PATMETSelector;
00055 typedef SingleObjectSelector<
00056 std::vector<PFParticle>,
00057 StringCutObjectSelector<PFParticle>
00058 > PATPFParticleSelector;
00059 typedef SingleObjectSelector<
00060 std::vector<GenericParticle>,
00061 StringCutObjectSelector<GenericParticle>
00062 > PATGenericParticleSelector;
00063
00064 typedef SingleObjectSelector<
00065 std::vector<Electron>,
00066 StringCutObjectSelector<Electron>,
00067 edm::RefVector<std::vector<Electron> >
00068 > PATElectronRefSelector;
00069 typedef SingleObjectSelector<
00070 std::vector<Muon>,
00071 StringCutObjectSelector<Muon>,
00072 edm::RefVector<std::vector<Muon> >
00073 > PATMuonRefSelector;
00074 typedef SingleObjectSelector<
00075 std::vector<Tau>,
00076 StringCutObjectSelector<Tau>,
00077 edm::RefVector<std::vector<Tau> >
00078 > PATTauRefSelector;
00079 typedef SingleObjectSelector<
00080 std::vector<Photon>,
00081 StringCutObjectSelector<Photon>,
00082 edm::RefVector<std::vector<Photon> >
00083 > PATPhotonRefSelector;
00084 typedef SingleObjectSelector<
00085 std::vector<Jet>,
00086 StringCutObjectSelector<Jet>,
00087 edm::RefVector<std::vector<Jet> >
00088 > PATJetRefSelector;
00089 typedef SingleObjectSelector<
00090 std::vector<MET>,
00091 StringCutObjectSelector<MET>,
00092 edm::RefVector<std::vector<MET> >
00093 > PATMETRefSelector;
00094 typedef SingleObjectSelector<
00095 std::vector<PFParticle>,
00096 StringCutObjectSelector<PFParticle>,
00097 edm::RefVector<std::vector<PFParticle> >
00098 > PATPFParticleRefSelector;
00099 typedef SingleObjectSelector<
00100 std::vector<GenericParticle>,
00101 StringCutObjectSelector<GenericParticle>,
00102 edm::RefVector<std::vector<GenericParticle> >
00103 > PATGenericParticleRefSelector;
00104
00105
00106
00107 }
00108
00109 #endif