- // Gaudi
- #include "GaudiKernel/PhysicalConstants.h"
- #include "GaudiUtils/HistoLabels.h"
-
- // Tb/TbEvent
- #include "Event/TbTrack.h"
- #include "Event/TbCluster.h"
-
- // Tb/TbKernel
- #include "TbKernel/TbConstants.h"
- #include "TbKernel/TbModule.h"
-
- // Local
- #include "TbChargeCalib.h"
-
- using namespace Gaudi::Utils::Histos;
-
- DECLARE_ALGORITHM_FACTORY(TbChargeCalib)
-
- //=============================================================================
- // Standard constructor
- //=============================================================================
- TbChargeCalib::TbChargeCalib(const std::string& name,
- ISvcLocator* pSvcLocator)
- : TbAlgorithm(name, pSvcLocator) {
-
- declareProperty("ClusterLocation",
- m_clusterLocation = LHCb::TbClusterLocation::Default);
-
- }
-
- //=============================================================================
- // Initialization
- //=============================================================================
- StatusCode TbChargeCalib::initialize() {
-
- // Initialise the base class.
- StatusCode sc = TbAlgorithm::initialize();
- if (sc.isFailure()) return sc;
- info() << "Booking histograms for Chargecalib ... " << endmsg;
- m_ToTHists.reserve(256*256);
- for( unsigned int i = 0 ; i < 256*256; ++i){
- const std::string name = "c=" + std::to_string( i/256 ) + ", r=" + std::to_string(i%256);
- if( i % 256 == 0 ) info() << "Booked histogram for column " << i << endmsg;
- m_ToTHists.push_back(book1D(name, name, 0.5, 200.5, 200));
- setAxisLabels(m_ToTHists[i], "ToT", "Entries");
- }
- info() << "Booked 60000 ish hists" << endmsg;
- return StatusCode::SUCCESS;
- }
-
- //=============================================================================
- // Main execution
- //=============================================================================
- StatusCode TbChargeCalib::execute() {
-
- LHCb::TbClusters* clusters = getIfExists<LHCb::TbClusters>(m_clusterLocation+std::to_string(0));
- if (!clusters) {
- error() << "No clusters in " << m_clusterLocation << endmsg;
- return StatusCode::FAILURE;
- }
- for( const LHCb::TbCluster* c : *clusters ){
- if( c->size() != 1 ) continue;
-
- unsigned int col = c->hits()[0]->col();
- unsigned int row = c->hits()[0]->row();
- unsigned int tot = c->hits()[0]->ToT();
- //info() << c->hits()[0] << endmsg;
- m_ToTHists[ col*256 + row ]->fill( tot );
-
- }
- return StatusCode::SUCCESS;
- }
-