Skip to content
Snippets Groups Projects
Commit b140a9b8 authored by lintao@ihep.ac.cn's avatar lintao@ihep.ac.cn
Browse files

WIP: use ntuplesvc to store the id.

parent a50564c9
No related branches found
No related tags found
No related merge requests found
......@@ -37,6 +37,29 @@ StatusCode DumpIDAlg::initialize()
return StatusCode::FAILURE;
}
// Book N-tuple 1
NTuplePtr nt1( ntupleSvc(), "MyTuples/1" );
if ( nt1 ) {
m_tuple_id = nt1;
} else {
m_tuple_id = ntupleSvc()->book( "MyTuples/1", CLID_RowWiseTuple, "Row-wise N-Tuple example" );
if ( m_tuple_id ) {
m_tuple_id->addItem( "system", m_id_system ).ignore();
m_tuple_id->addItem( "module", m_id_module ).ignore();
m_tuple_id->addItem( "stave", m_id_stave ).ignore();
m_tuple_id->addItem( "tower", m_id_tower ).ignore();
m_tuple_id->addItem( "layer", m_id_layer ).ignore();
m_tuple_id->addItem( "wafer", m_id_wafer ).ignore();
m_tuple_id->addItem( "cellX", m_id_cellX ).ignore();
m_tuple_id->addItem( "cellY", m_id_cellY ).ignore();
} else { // did not manage to book the N tuple....
error() << " Cannot book N-tuple:" << long( m_tuple_id ) << endmsg;
return StatusCode::FAILURE;
}
}
return GaudiAlgorithm::initialize();
}
......@@ -48,25 +71,30 @@ StatusCode DumpIDAlg::execute()
for (auto calohit: *ecalBarrelCol) {
auto cellid = calohit.getCellID();
int id_system = m_decoder->get(cellid, "system");
int id_module = m_decoder->get(cellid, "module");
int id_stave = m_decoder->get(cellid, "stave");
int id_tower = m_decoder->get(cellid, "tower");
int id_layer = m_decoder->get(cellid, "layer");
int id_wafer = m_decoder->get(cellid, "wafer");
int id_cellX = m_decoder->get(cellid, "cellX");
int id_cellY = m_decoder->get(cellid, "cellY");
m_id_system = m_decoder->get(cellid, "system");
m_id_module = m_decoder->get(cellid, "module");
m_id_stave = m_decoder->get(cellid, "stave");
m_id_tower = m_decoder->get(cellid, "tower");
m_id_layer = m_decoder->get(cellid, "layer");
m_id_wafer = m_decoder->get(cellid, "wafer");
m_id_cellX = m_decoder->get(cellid, "cellX");
m_id_cellY = m_decoder->get(cellid, "cellY");
info() << "Calo hit cellid: " << cellid
<< " system: " << id_system
<< " module: " << id_module
<< " stave: " << id_stave
<< " tower: " << id_tower
<< " layer: " << id_layer
<< " wafer: " << id_wafer
<< " cellX: " << id_cellX
<< " cellY: " << id_cellY
<< " system: " << m_id_system
<< " module: " << m_id_module
<< " stave: " << m_id_stave
<< " tower: " << m_id_tower
<< " layer: " << m_id_layer
<< " wafer: " << m_id_wafer
<< " cellX: " << m_id_cellX
<< " cellY: " << m_id_cellY
<< endmsg;
// calculate I/J/K
m_tuple_id->write();
}
return StatusCode::SUCCESS;
}
......
......@@ -3,6 +3,7 @@
#include "FWCore/DataHandle.h"
#include "GaudiAlg/GaudiAlgorithm.h"
#include "GaudiKernel/NTuple.h"
#include "DetInterface/IGeoSvc.h"
......@@ -33,6 +34,19 @@ private:
DataHandle<edm4hep::SimCalorimeterHitCollection> m_EcalBarrelCol{"EcalBarrelCollection",
Gaudi::DataHandle::Reader, this};
private:
// strore all the id for later analysis
NTuple::Tuple* m_tuple_id = nullptr;
NTuple::Item<int> m_id_system;
NTuple::Item<int> m_id_module;
NTuple::Item<int> m_id_stave;
NTuple::Item<int> m_id_tower;
NTuple::Item<int> m_id_layer;
NTuple::Item<int> m_id_wafer;
NTuple::Item<int> m_id_cellX;
NTuple::Item<int> m_id_cellY;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment