Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Run.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/GlastEvent/GlastEvent/TopLevel/Run.h,v 1.2 2001/04/18 19:07:26 igable Exp $
00002 #ifndef LHCBEVENT_RUN_H
00003 #define LHCBEVENT_RUN_H 1
00004 
00005 
00006 //Include files
00007 #include <iostream>
00008 #include "GaudiKernel/Kernel.h"
00009 #include "GaudiKernel/StreamBuffer.h"
00010 #include "GaudiKernel/DataObject.h"
00011 #include "GlastEvent/Utilities/TriggerPattern.h"
00012 #include "GlastEvent/Utilities/RandomNumberSeed.h"
00013 #include "GlastEvent/TopLevel/Definitions.h"
00014 
00015 
00016 // Externals 
00017 extern const CLID& CLID_Run;
00018 
00019 
00020 //------------------------------------------------------------------------------
00021 //
00022 // ClassName:   Run
00023 //  
00024 // Description: Essential information of the run
00025 //
00026 //              It conttains
00027 //              - run number
00028 //              - run type
00029 //              - trigger type
00030 //              - enabled trigger mask
00031 //              - enabled detector mask
00032 //              - luminocity
00033 //              - fill number
00034 //              - generator type
00035 //              - random number seed
00036 //
00037 // Author:      Pavel Binko
00038 // Changes:     P.Binko 19/10/1999 : Formating of ASCII output
00039 //
00040 //------------------------------------------------------------------------------
00041 
00042 
00043 class Run : public DataObject                                                  {
00044 
00045 public:
00047   Run(const char* name = "Event")
00048     : DataObject(name),
00049       m_runType(0),
00050       m_triggerType(0),
00051       m_enabledDetectorMask(0),
00052       m_luminosity(0.),
00053       m_fillNumber(0),
00054       m_generatorType(0)                                                     { }
00056   virtual ~Run()                                                             { }
00057 
00059   virtual const CLID& clID() const                    { return Run::classID(); }
00060   static const CLID& classID()                              { return CLID_Run; }
00061 
00063   long runNumber () const                                                      {
00064     return m_run;
00065   }
00067   void setRunNumber (long value)                                               {
00068     m_run = value;
00069   }
00070 
00072   long runType () const                                                        {
00073     return m_runType;
00074   }
00076   void setRunType (long value)                                                 {
00077     m_runType = value;
00078   }
00079 
00081   long triggerType () const                                                    {
00082     return m_triggerType;
00083   }
00085   void setTriggerType (long value)                                             {
00086     m_triggerType = value;
00087   }
00088 
00090   const TriggerPattern& enabledTriggerPattern () const                         {
00091     return m_enabledTriggerMask;
00092   }
00094   void setEnabledTriggerPattern (const TriggerPattern& value)                  {
00095     m_enabledTriggerMask=value;
00096   }
00097 
00099   long enabledDetectorMask () const                                            {
00100     return m_enabledDetectorMask;
00101   }
00103   void setEnabledDetectorMask (long value)                                     {
00104     m_enabledDetectorMask = value;
00105   }
00106 
00108   double luminosity () const                                                   {
00109     return m_luminosity;
00110   }
00112   void setLuminosity (double value)                                            {
00113     m_luminosity = value;
00114   }
00115 
00117   long fillNumber () const                                                     {
00118     return m_fillNumber;
00119   }
00121   void setFillNumber (long value)                                              {
00122     m_fillNumber = value;
00123   }
00124 
00126   long generatorType () const                                                  {
00127     return m_generatorType;
00128   }
00130   void setGeneratorType (long value)                                           {
00131     m_generatorType = value;
00132   }
00133 
00135   const RandomNumberSeed randomNumberSeed () const                             {
00136     return m_randomNumberSeed;
00137   }
00139   void setRandomNumberSeed (RandomNumberSeed value)                            {
00140     m_randomNumberSeed = value;
00141   }
00142 
00144   virtual StreamBuffer& serialize( StreamBuffer& s ) const;
00146   virtual StreamBuffer& serialize( StreamBuffer& s );
00147 
00149   friend std::ostream& operator<< ( std::ostream& s, const Run& obj )          {
00150     return obj.fillStream(s);
00151   }
00153   virtual std::ostream& fillStream( std::ostream& s ) const;
00154 
00155 private:
00157   long                 m_run;
00159   long                 m_runType;
00161   long                 m_triggerType;
00163   TriggerPattern       m_enabledTriggerMask;
00165   long                 m_enabledDetectorMask;
00167   double               m_luminosity;
00169   long                 m_fillNumber;
00171   long                 m_generatorType;
00173   RandomNumberSeed     m_randomNumberSeed;
00174 
00175 };
00176 
00177 
00178 //
00179 // Inline code must be outside the class definition
00180 //
00181 
00182 
00184 inline StreamBuffer& Run::serialize( StreamBuffer& s ) const                   {
00185   DataObject::serialize(s);
00186   return s
00187     << m_run
00188     << m_runType
00189     << m_triggerType
00190     << m_enabledTriggerMask
00191     << m_enabledDetectorMask
00192     << m_luminosity
00193     << m_fillNumber
00194     << m_generatorType
00195     << m_randomNumberSeed;
00196 }
00197 
00198 
00200 inline StreamBuffer& Run::serialize( StreamBuffer& s )                         {
00201   DataObject::serialize(s);
00202   return s
00203     >> m_run
00204     >> m_runType
00205     >> m_triggerType
00206     >> m_enabledTriggerMask
00207     >> m_enabledDetectorMask
00208     >> m_luminosity
00209     >> m_fillNumber
00210     >> m_generatorType
00211     >> m_randomNumberSeed;
00212 }
00213 
00214 
00216 inline std::ostream& Run::fillStream( std::ostream& s ) const                  {
00217   return s
00218     << "class Run :\n"
00219     << "\n    Run number           = "
00220     << GlastEventField( GlastEvent::field12 )
00221     << m_run
00222     << "\n    Run type             = "
00223     << GlastEventField( GlastEvent::field12 )
00224     << m_runType
00225     << "\n    Trigger type         = "
00226     << GlastEventField( GlastEvent::field12 )
00227     << m_triggerType
00228     << "\n    Present triggers     = " << m_enabledTriggerMask
00229     << "\n    Detector enable mask = "
00230     << GlastEventField( GlastEvent::field12 )
00231     << m_enabledDetectorMask
00232     << "\n    Luminosity           = "
00233     << GlastEventFloatFormat( GlastEvent::width, GlastEvent::precision )
00234     << m_luminosity
00235     << "\n    Fill number          = "
00236     << GlastEventField( GlastEvent::field12 )
00237     << m_fillNumber
00238     << "\n    MC generator type    = "
00239     << GlastEventField( GlastEvent::field12 )
00240     << m_generatorType
00241     << "\n    Random number seed   = " << m_randomNumberSeed;
00242 }
00243 
00244 
00245 #endif // LHCBEVENT_RUN_H

Generated at Wed Nov 21 12:22:50 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000