Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:35:56

0001 #ifndef PARTICLEFILTRATIONDECISION_H_
0002 #define PARTICLEFILTRATIONDECISION_H_
0003 #include <string>
0004 #include <vector>
0005 #include "DataFormats/Common/interface/Ref.h"
0006 #include "DataFormats/Common/interface/RefProd.h"
0007 #include "DataFormats/Common/interface/RefVector.h"
0008 #include "DataFormats/Common/interface/RefToBase.h"
0009 
0010 namespace pftools {
0011 
0012   /**
0013  * @class ParticleFiltrationDecision
0014  * @brief Articulates the decision of the ParticleFilter in RecoParticleFlow/PFAnalyses.
0015  *
0016  * Despite its generic name, it is currently only suitable for testbeam analysis and
0017  * particle gun use. To be reworked for collisions.
0018  *
0019  * @author  Jamie Ballin
0020  * @since   CMSSW 31X
0021  * @date    Added July 2009
0022  *
0023  */
0024   class ParticleFiltrationDecision {
0025   public:
0026     ParticleFiltrationDecision() {}
0027     virtual ~ParticleFiltrationDecision() {}
0028 
0029     /* Bit field to contain user-defined vetos */
0030     char vetosPassed_;
0031 
0032     /*User-defined string representing who made this */
0033     std::string filtrationProvenance_;
0034 
0035     enum TestbeamParticle { PION, PROTON_KAON, PROTON, KAON, ELECTRON, MUON, NOISE, OTHER };
0036 
0037     /* This event contains a clean... */
0038     TestbeamParticle type_;
0039   };
0040 
0041   //Usual framework & EDM incantations
0042   typedef std::vector<pftools::ParticleFiltrationDecision> ParticleFiltrationDecisionCollection;
0043 
0044   typedef edm::Ref<ParticleFiltrationDecisionCollection> ParticleFiltrationDecisionRef;
0045   typedef edm::RefProd<ParticleFiltrationDecisionCollection> ParticleFiltrationDecisionRefProd;
0046   typedef edm::RefVector<ParticleFiltrationDecisionCollection> ParticleFiltrationDecisionRefVector;
0047   typedef ParticleFiltrationDecisionRefVector::iterator particleFiltrationDecision_iterator;
0048   typedef edm::RefToBase<pftools::ParticleFiltrationDecision> ParticleFiltrationDecisionBaseRef;
0049 
0050 }  // namespace pftools
0051 
0052 #endif /* PARTICLEFILTRATIONDECISION_H_ */