Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

DataBlock.h

Go to the documentation of this file.
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

Generated on Mon Feb 15 11:06:33 2010 for loon by  doxygen 1.3.9.1