00001 #ifndef PARTICLEFILTRATIONDECISION_H_ 00002 #define PARTICLEFILTRATIONDECISION_H_ 00003 #include <string> 00004 #include <vector> 00005 #include "DataFormats/Common/interface/Ref.h" 00006 #include "DataFormats/Common/interface/RefProd.h" 00007 #include "DataFormats/Common/interface/RefVector.h" 00008 #include "DataFormats/Common/interface/RefToBase.h" 00009 00010 namespace pftools { 00011 00024 class ParticleFiltrationDecision { 00025 public: 00026 ParticleFiltrationDecision() {}; 00027 virtual ~ParticleFiltrationDecision() {}; 00028 00029 /* Bit field to contain user-defined vetos */ 00030 char vetosPassed_; 00031 00032 /*User-defined string representing who made this */ 00033 std::string filtrationProvenance_; 00034 00035 enum TestbeamParticle { 00036 PION, PROTON_KAON, PROTON, KAON, ELECTRON, MUON, NOISE, OTHER 00037 }; 00038 00039 /* This event contains a clean... */ 00040 TestbeamParticle type_; 00041 00042 }; 00043 00044 //Usual framework & EDM incantations 00045 typedef std::vector<pftools::ParticleFiltrationDecision> 00046 ParticleFiltrationDecisionCollection; 00047 00048 typedef edm::Ref<ParticleFiltrationDecisionCollection> 00049 ParticleFiltrationDecisionRef; 00050 typedef edm::RefProd<ParticleFiltrationDecisionCollection> 00051 ParticleFiltrationDecisionRefProd; 00052 typedef edm::RefVector<ParticleFiltrationDecisionCollection> 00053 ParticleFiltrationDecisionRefVector; 00054 typedef ParticleFiltrationDecisionRefVector::iterator 00055 particleFiltrationDecision_iterator; 00056 typedef edm::RefToBase<pftools::ParticleFiltrationDecision> 00057 ParticleFiltrationDecisionBaseRef; 00058 00059 } 00060 00061 #endif /* PARTICLEFILTRATIONDECISION_H_ */