@@ -51,6 +51,41 @@ RepositoryBenchmark::RepositoryBenchmark()
5151{
5252}
5353
54+ TH1 * RepositoryBenchmark::createHisto (uint64_t sizeObjects, string name)
55+ {
56+ TH1 * myHisto;
57+
58+ // Prepare objects (and clean up existing ones)
59+ switch (sizeObjects) {
60+ case 1 :
61+ myHisto = new TH1F (name.c_str (), " h" , 100 , 0 , 99 ); // 1kB
62+ break ;
63+ case 10 :
64+ myHisto = new TH1F (name.c_str (), " h" , 2400 , 0 , 99 ); // 10kB
65+ break ;
66+ case 100 :
67+ myHisto = new TH2F (name.c_str (), " h" , 260 , 0 , 99 , 100 , 0 , 99 ); // 100kB
68+ break ;
69+ case 500 :
70+ myHisto = new TH2F (name.c_str (), " h" , 1250 , 0 , 99 , 100 , 0 , 99 ); // 500kB
71+ break ;
72+ case 1000 :
73+ myHisto = new TH2F (name.c_str (), " h" , 2500 , 0 , 99 , 100 , 0 , 99 ); // 1MB
74+ break ;
75+ case 2500 :
76+ myHisto = new TH2F (name.c_str (), " h" , 6250 , 0 , 99 , 100 , 0 , 99 ); // 2.5MB
77+ break ;
78+ case 5000 :
79+ myHisto = new TH2F (name.c_str (), " h" , 12500 , 0 , 99 , 100 , 0 , 99 ); // 5MB
80+ break ;
81+ default :
82+ BOOST_THROW_EXCEPTION (
83+ FatalException () << errinfo_details (
84+ " size of histo must be 1, 10, 100, 500, 1000, 2500 or 5000 (was: " + to_string (mSizeObjects ) + " )" ));
85+ }
86+ return myHisto;
87+ }
88+
5489void RepositoryBenchmark::InitTask ()
5590{
5691 // parse arguments database
@@ -98,39 +133,11 @@ void RepositoryBenchmark::InitTask()
98133 emptyDatabase ();
99134 }
100135
101- // Prepare objects (and clean up existing ones)
102- switch (mSizeObjects ) {
103- case 1 :
104- mMyHisto = new TH1F (" h" , " h" , 100 , 0 , 99 ); // 1kB
105- break ;
106- case 10 :
107- mMyHisto = new TH1F (" h" , " h" , 2400 , 0 , 99 ); // 10kB
108- break ;
109- case 100 :
110- mMyHisto = new TH2F (" h" , " h" , 260 , 0 , 99 , 100 , 0 , 99 ); // 100kB
111- break ;
112- case 500 :
113- mMyHisto = new TH2F (" h" , " h" , 1250 , 0 , 99 , 100 , 0 , 99 ); // 500kB
114- break ;
115- case 1000 :
116- mMyHisto = new TH2F (" h" , " h" , 2500 , 0 , 99 , 100 , 0 , 99 ); // 1MB
117- break ;
118- case 2500 :
119- mMyHisto = new TH2F (" h" , " h" , 6250 , 0 , 99 , 100 , 0 , 99 ); // 2.5MB
120- break ;
121- case 5000 :
122- mMyHisto = new TH2F (" h" , " h" , 12500 , 0 , 99 , 100 , 0 , 99 ); // 5MB
123- break ;
124- default :
125- BOOST_THROW_EXCEPTION (
126- FatalException () << errinfo_details (
127- " size of histo must be 1, 10, 100, 500, 1000, 2500 or 5000 (was: " + to_string (mSizeObjects ) + " )" ));
128- }
129-
130136 // prepare objects
131137 for (uint64_t i = 0 ; i < mNumberObjects ; i++) {
132- shared_ptr<MonitorObject> mo = make_shared<MonitorObject>(mObjectName + to_string (i), mMyHisto , mTaskName );
133- mo->setIsOwner (false );
138+ TH1 * histo = createHisto (mSizeObjects , mObjectName + to_string (i));
139+ shared_ptr<MonitorObject> mo = make_shared<MonitorObject>(histo, mTaskName );
140+ mo->setIsOwner (true );
134141 mMyObjects .push_back (mo);
135142 }
136143
0 commit comments