CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
check_hist_entries.cxx
Go to the documentation of this file.
1#include <iostream>
2#include <fstream>
3#include <iomanip>
4#include <cstring>
5#include <string>
6#include <vector>
7#include <TFile.h>
8#include <TTree.h>
9#include <TString.h>
10#include <TH1F.h>
11#include <TKey.h>
12
13using namespace std;
14
15int main(int argc, char *argv[]){
16 if(argc<3){
17 cout << "please append a root file name and threshod numbers" << endl;
18 cout << "Ex. check_hist_ent.exe test.root 1000" << endl;
19 return 1;
20 }
21
22 TString str_root_file(argv[1]);
23 TFile f(str_root_file);
24 TList *l = f.GetListOfKeys();
25 double m_min(99999), m_max(0), m_total(0), m_ave(0), m_size(0);
26 Int_t m_temp;
27 Int_t m_thres;
28 TH1F *h(0);
29 sscanf(argv[2], "%d", &m_thres);
30 TIter next(l);
31 TKey *obj(0);
32 while ((obj = (TKey*)next())){
33 TString str_temp(obj->GetClassName());
34 if(str_temp.Contains("TTree")) continue;
35 m_size += 1;
36 h = (TH1F*)f.Get(obj->GetName());
37 m_temp = h->GetEntries();
38 m_total += m_temp;
39 if(m_temp<m_min) m_min = m_temp;
40 if(m_temp>m_max) m_max = m_temp;
41 if(m_temp<m_thres) cout << h->GetName() << " has entries " << m_temp << " less than threshod" << endl;
42 }
43 m_ave = m_total/m_size;
44 cout << "min: " << m_min << " max: " << m_max << " ave: " << m_ave << " size: " << m_size << endl;
45 return 0;
46}
int main()