00001 #ifndef DATABLOCK_H 00002 #define DATABLOCK_H 00003 00004 // $Id: DataBlock.h,v 1.7 2008/09/05 15:42:33 rustem Exp $ 00005 // 00006 // Class that counts number of events, snarls and protons 00007 // 00008 00009 // C++ 00010 #include <iostream> 00011 00012 // ROOT 00013 #include "TObject.h" 00014 00015 namespace Anp 00016 { 00017 class Record; 00018 } 00019 00020 class DataBlock : public TObject 00021 { 00022 public: 00023 00024 DataBlock(); 00025 virtual ~DataBlock(); 00026 00027 void Add(const DataBlock &block); 00028 void Add(const Anp::Record &record); 00029 00030 void SetInput(const DataBlock &rhs); 00031 void SetProtons(double protons); 00032 00033 void ScaleOut(double factor); 00034 00035 Double_t GetProtonsOut() const; 00036 Double_t GetProtonsIn() const; 00037 00038 UInt_t GetNSnarlsOut() const; 00039 UInt_t GetNSnarlsIn() const; 00040 00041 UInt_t GetNEventsOut() const; 00042 UInt_t GetNEventsIn() const; 00043 00044 Double_t GetProtonsPerSnarl() const; 00045 00046 void print(std::ostream& o = std::cout) const; 00047 00048 private: 00049 00050 Double_t Ratio(Double_t nom, Double_t den) const; 00051 Float_t Ratio(Float_t nom, Float_t den) const; 00052 Float_t Ratio(UInt_t nom, UInt_t den) const; 00053 00054 private: 00055 00056 UInt_t nSnarlIn; 00057 UInt_t nEventIn; 00058 00059 UInt_t nSnarlOut; 00060 UInt_t nEventOut; 00061 00062 Double_t ProtonsIn; 00063 Double_t ProtonsOut; 00064 00065 ClassDef(DataBlock, 2) 00066 }; 00067 00068 std::ostream& operator<<(std::ostream& o, const DataBlock& self); 00069 00070 const DataBlock FindDataBlock(const std::string &path, const std::string &name = "block"); 00071 00072 // 00073 // Inlined member functions 00074 // 00075 inline Double_t DataBlock::GetProtonsOut() const { return ProtonsOut; } 00076 inline Double_t DataBlock::GetProtonsIn() const { return ProtonsIn; } 00077 00078 inline UInt_t DataBlock::GetNSnarlsOut() const { return nSnarlOut; } 00079 inline UInt_t DataBlock::GetNSnarlsIn() const { return nSnarlIn; } 00080 00081 inline UInt_t DataBlock::GetNEventsOut() const { return nEventOut; } 00082 inline UInt_t DataBlock::GetNEventsIn() const { return nEventIn; } 00083 00084 #endif
1.3.9.1