CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/SimTracker/TrackHistory/interface/TrackCategories.h

Go to the documentation of this file.
00001 
00002 #ifndef TrackCategories_h
00003 #define TrackCategories_h
00004 
00005 #include <vector>
00006 
00007 class TrackCategories
00008 {
00009 
00010 public:
00011 
00013     enum Category
00014     {
00015         Fake = 0,
00016         Reconstructed = Fake,
00017         Bad,
00018         BadInnerHits,
00019         SharedInnerHits,
00020         SignalEvent,
00021         Bottom,
00022         Charm,
00023         Light,
00024         Muon,
00025         TrackerSimHits,
00026         BWeakDecay,
00027         CWeakDecay,
00028         ChargePionDecay,
00029         ChargeKaonDecay,
00030         TauDecay,
00031         KsDecay,
00032         LambdaDecay,
00033         JpsiDecay,
00034         XiDecay,
00035         OmegaDecay,
00036         SigmaPlusDecay,
00037         SigmaMinusDecay,
00038         LongLivedDecay,
00039         KnownProcess,
00040         UndefinedProcess,
00041         UnknownProcess,
00042         PrimaryProcess,
00043         HadronicProcess,
00044         DecayProcess,
00045         ComptonProcess,
00046         AnnihilationProcess,
00047         EIoniProcess,
00048         HIoniProcess,
00049         MuIoniProcess,
00050         PhotonProcess,
00051         MuPairProdProcess,
00052         ConversionsProcess,
00053         EBremProcess,
00054         SynchrotronRadiationProcess,
00055         MuBremProcess,
00056         MuNuclProcess,
00057         FromBWeakDecayMuon,
00058         FromCWeakDecayMuon,
00059         DecayOnFlightMuon,
00060         FromChargePionMuon,
00061         FromChargeKaonMuon,
00062         PrimaryVertex,
00063         SecondaryVertex,
00064         TertiaryVertex,
00065         TierciaryVertex = TertiaryVertex,
00066         Unknown
00067     };
00068 
00070     static const char * Names[];
00071 
00073     typedef std::vector<bool> Flags;
00074 
00076     TrackCategories()
00077     {
00078         reset();
00079     }
00080 
00082     bool is(Category category) const
00083     {
00084         return flags_[category];
00085     }
00086 
00088     const Flags & flags() const
00089     {
00090         return flags_;
00091     }
00092 
00093 protected:
00094 
00096     void reset()
00097     {
00098         flags_ = Flags(Unknown + 1, false);
00099     }
00100 
00101     // Check for unkown classification
00102     void unknownTrack();
00103 
00105     Flags flags_;
00106 
00107 };
00108 
00109 // Operation overload for printing the categories
00110 std::ostream & operator<< (std::ostream &, TrackCategories const &);
00111 
00112 #endif