13 #include <calobase/RawTower.h>
14 #include <calobase/RawTowerContainer.h>
16 #include <pdbcalbase/PdbParameterMap.h>
18 #include <phparameter/PHParameters.h>
26 #include <TClonesArray.h>
46 _out_file_name(filename)
49 _tower_zero_sup(-10000000)
55 cout <<
"Prototype4DSTReader::destructor - Clean ups" << endl;
59 _T->ResetBranchAddresses();
67 const static int arr_size = 100;
71 cout <<
"Prototype4DSTReader::Init - zero suppression for calorimeter "
78 const string &nodenam = *
it;
95 const string &nodenam = *
it;
113 const char *class_name = RawTower_type::Class()->GetName();
115 const string &nodenam = *
it;
117 string hname = Form(
"TOWER_%s", nodenam.c_str());
119 cout <<
"Prototype4DSTReader::Init - saving raw tower info from node: "
120 << hname <<
" - " << class_name << endl;
125 rec.
_arr = make_shared<TClonesArray>(class_name, arr_size);
138 const string &nodenam = *
it;
139 string hname = Form(
"TOWER_TEMPERATURE_%s", nodenam.c_str());
141 cout <<
"Prototype4DSTReader::Init - saving average tower temperature info "
157 cout <<
"Prototype4DSTReader::Init - requested " <<
nblocks <<
" nodes"
167 cout <<
"Prototype4DSTReader::build_tree - output to " <<
_out_file_name
175 _T =
new TTree(
"T",
"Prototype4DSTReader");
182 cout <<
"Prototype4DSTReader::build_tree - Add " << rec.
_name << endl;
186 const string name_cnt = rec.
_name;
187 const string name_cnt_desc = name_cnt +
"/D";
188 _T->Branch(name_cnt.c_str(), &(rec.
_dvalue), name_cnt_desc.c_str(),
193 const string name_cnt = rec.
_name;
194 const string name_cnt_desc = name_cnt +
"/D";
195 _T->Branch(name_cnt.c_str(), &(rec.
_dvalue), name_cnt_desc.c_str(),
200 const string name_cnt =
"n_" + rec.
_name;
201 const string name_cnt_desc = name_cnt +
"/I";
202 _T->Branch(name_cnt.c_str(), &(rec.
_cnt), name_cnt_desc.c_str(),
208 const string name_cnt = rec.
_name +
"_AVG";
209 const string name_cnt_desc = name_cnt +
"/D";
210 _T->Branch(name_cnt.c_str(), &(rec.
_dvalue), name_cnt_desc.c_str(),
217 cout <<
"Prototype4DSTReader::build_tree - added " <<
nblocks <<
" nodes"
220 _T->SetAutoSave(16000);
249 cout <<
"Prototype4DSTReader::process_event - processing tower "
250 << rec.
_name << endl;
253 findNode::getClass<RawTowerContainer>(topNode, rec.
_name);
257 cout <<
"Prototype4DSTReader::process_event - Error - can not find "
259 << rec.
_name << endl;
266 cout <<
"Prototype4DSTReader::process_event - processing "
267 << rec.
_name <<
" and received " << hits->
size() <<
" tower hits"
271 hit_iter != hit_range.second; hit_iter++)
273 RawTower *hit_raw = hit_iter->second;
283 cout <<
"Prototype4DSTReader::process_event - suppress low "
289 <<
"), Energy = " << hit->
get_energy() << endl;
297 cout <<
"Prototype4DSTReader::process_event - processing Tower hit "
302 <<
"), Energy = " << hit->
get_energy() <<
" - "
303 << rec.
_arr.get()->At(rec.
_cnt)->ClassName() << endl;
320 cout <<
"Prototype4DSTReader::process_event - processing tower "
322 << rec.
_name << endl;
325 findNode::getClass<RawTowerContainer>(topNode, rec.
_name);
329 cout <<
"Prototype4DSTReader::process_event - Error - can not find "
331 << rec.
_name << endl;
338 cout <<
"Prototype4DSTReader::process_event - processing "
339 << rec.
_name <<
" and received " << hits->
size() <<
" tower hits"
345 hit_iter != hit_range.second; hit_iter++)
347 RawTower *hit_raw = hit_iter->second;
366 findNode::getClass<PdbParameterMap>(topNode,
"RUN_INFO");
379 findNode::getClass<PdbParameterMap>(topNode,
"EVENT_INFO");
386 rec.
_dvalue = numeric_limits<double>::quiet_NaN();
413 cout <<
"Prototype4DSTReader::End - Clean ups" << endl;
419 _T->ResetBranchAddresses();