00001 /*************************************************************************** 00002 EventInfo Package 00003 ----------------------------------------- 00004 Copyright (C) 2000 by ATLAS Collaboration 00005 ***************************************************************************/ 00006 00007 //<doc><file> $Id: EventType.h,v 1.1.1.1 2007/04/25 11:46:57 zoujh Exp $ 00008 //<version> $Name: HltDataTypes-01-01-03 $ 00009 00010 #ifndef EVENTINFO_EVENTTYPE_H 00011 # define EVENTINFO_EVENTTYPE_H 1 00012 00013 //<<<<<< INCLUDES >>>>>> 00014 00015 #include <vector> 00016 #include <string> 00017 00018 //<<<<<< PUBLIC DEFINES >>>>>> 00019 //<<<<<< PUBLIC CONSTANTS >>>>>> 00020 //<<<<<< PUBLIC TYPES >>>>>> 00021 //<<<<<< PUBLIC VARIABLES >>>>>> 00022 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00023 //<<<<<< CLASS DECLARATIONS >>>>>> 00024 00084 class EventType { 00085 public: 00086 00087 // public typedefs: 00088 typedef std::vector<bool> BitMask; 00089 typedef BitMask::const_iterator BitMaskIterator; 00090 typedef BitMask::size_type EventTypeCode; 00091 typedef std::pair<std::string,std::string> NameTagPair; 00092 typedef std::vector<NameTagPair> NameTagPairVec; 00093 00094 EventType(); 00095 virtual ~EventType(); 00096 00097 // Set characteristics: 00098 void add_type (EventTypeCode type_code); 00099 void set_user_type (const std::string& user_type); 00100 void set_detdescr_tags(const NameTagPairVec& pairs); 00101 00102 // Tests for standard characteristics 00103 bool test (EventTypeCode type_code) const; 00104 00105 // Access to user type 00106 const std::string& user_type (void) const; 00107 00108 // Access DetDescr tags 00109 void get_detdescr_tags(NameTagPairVec& pairs); 00110 00111 00112 // The set of possible characteristic codes: 00113 static const EventTypeCode IS_SIMULATION; // false: IS_DATA 00114 static const EventTypeCode IS_TESTBEAM; // false: IS_FROM_ATLAS_DET 00115 static const EventTypeCode IS_CALIBRATION; // false: IS_PHYSICS 00116 00117 00118 // Access to full set of standard characteristics 00119 BitMaskIterator bit_mask_begin (void) const; 00120 BitMaskIterator bit_mask_end (void) const; 00121 00122 private: 00123 BitMask m_bit_mask; 00124 std::string m_user_type; 00125 }; 00126 00127 00128 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00129 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00130 00131 #endif // EVENTINFO_EVENTTYPE_H