00001 #ifndef bbbarAnalysis_H 00002 #define bbbarAnalysis_H 00003 00004 #include "baseAnalysis.h" 00005 00006 // forward declarations 00007 namespace HepMC { 00008 class GenEvent; 00009 } 00010 00011 class TH1D; 00012 class TFile; 00013 00014 /** 00015 00016 @class bbbarAnalysis.h 00017 @brief This class is used for hepmc based validation of bbbar events 00018 00019 Init() is used to initialise histograms 00020 Process() is used to process the events and do the analysis and 00021 00022 The ouput (histograms) will be saved in a root file 00023 00024 00025 */ 00026 00027 class bbbarAnalysis : public baseAnalysis { 00028 00029 public: 00030 00031 bbbarAnalysis(); 00032 bbbarAnalysis(char *); 00033 00034 void getBbbar(HepMC::GenEvent *evt); 00035 00036 int getBcount() {return Bcount;} 00037 int getBcountTotal() {return BcountTotal;} 00038 int getBdcount() {return Bdcount;} 00039 int getBucount() {return Bucount;} 00040 int getBscount() {return Bscount;} 00041 int getBarions() {return Barions;} 00042 int getChargedPartMB() {return ChargedPartMB;} 00043 int getChargedPartBBbar() {return ChargedPartBBbar;} 00044 00045 virtual int Init(double tr_max_eta, double tr_min_pt); 00046 virtual int Process(HepMC::GenEvent* hepmcevt); 00047 00048 virtual ~bbbarAnalysis(); 00049 00050 private: 00051 00052 void clearCounters(); 00053 void initPlots(); 00054 00055 TFile *hOutputFile; 00056 char* OutputFileName; // ??? 00057 00058 TH1D *hPtmb; 00059 TH1D *hPtbbbar; 00060 TH1D *hPtbhadr; 00061 TH1D *hEtabhadr; 00062 00063 // the number of 'b events' 00064 int Bcount; 00065 int BcountTotal; 00066 // the number of Bd/Bu/Bs/b-baryons 00067 int Bdcount; 00068 int Bucount; 00069 int Bscount; 00070 int Barions; 00071 // the number of stable charged particles in MinBias and bbbar events 00072 int ChargedPartMB; 00073 int ChargedPartBBbar; 00074 00075 }; 00076 00077 #endif // bbbar_Analysis_H_ 00078