Skip to content

Commit

Permalink
update validation of RecHits
Browse files Browse the repository at this point in the history
  • Loading branch information
Bruno Alves committed Sep 2, 2020
1 parent 22285a1 commit ecc666c
Show file tree
Hide file tree
Showing 11 changed files with 56 additions and 62 deletions.
2 changes: 1 addition & 1 deletion CUDADataFormats/HGCal/interface/HGCConditions.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ namespace hgcal_conditions {
struct HeterogeneousHEFConditionsESProduct {
parameters::HeterogeneousHGCalHEFParameters params;
//positions::HeterogeneousHGCalPositionsMapping posmap;
size_t nelems_posmap;
//size_t nelems_posmap;
};
struct HeterogeneousHEBConditionsESProduct {
parameters::HeterogeneousHGCalHEBParameters params;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@
namespace maxsizes_constants {
//EE
constexpr size_t ee_fCPerMIP = 3; //number of elements pointed by hgcEE_fCPerMIP_
constexpr size_t ee_cce = 3; //number of elements posize_ted by hgcEE_cce_
constexpr size_t ee_noise_fC = 3; //number of elements posize_ted by hgcEE_noise_fC_
constexpr size_t ee_rcorr = 3; //number of elements posize_ted by rcorr_
constexpr size_t ee_weights = 53; //number of elements posize_ted by weights_
constexpr size_t ee_cce = 3; //number of elements pointed by hgcEE_cce_
constexpr size_t ee_noise_fC = 3; //number of elements pointed by hgcEE_noise_fC_
constexpr size_t ee_rcorr = 3; //number of elements pointed by rcorr_
constexpr size_t ee_weights = 51; //number of elements posize_ted by weights_
//HEF
constexpr size_t hef_fCPerMIP = 3; //number of elements pointed by hgcEE_fCPerMIP_
constexpr size_t hef_cce = 3; //number of elements posize_ted by hgcEE_cce_
constexpr size_t hef_noise_fC = 3; //number of elements posize_ted by hgcEE_noise_fC_
constexpr size_t hef_cce = 3; //number of elements pointed by hgcEE_cce_
constexpr size_t hef_noise_fC = 3; //number of elements pointed by hgcEE_noise_fC_
constexpr size_t hef_rcorr = 3; //number of elements pointed by rcorr_
constexpr size_t hef_weights = 53; //number of elements posize_ted by weights_
constexpr size_t hef_weights = 51; //number of elements pointed by weights_
//HEB
constexpr size_t heb_weights = 53; //number of elements posize_ted by weights_
constexpr size_t heb_weights = 51; //number of elements pointed by weights_
}

class HGCConstantVectorData {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ float*& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_f_(cpos::He
case 2:
return cpuObject->z_per_layer;
default:
edm::LogError("HeterogeneousHGCalHEFCellPositionsConditions") << "select_pointer_i(heterogeneous): no item.";
edm::LogError("HeterogeneousHGCalHEFCellPositionsConditions") << "select_pointer_i(heterogeneous): no item (typed " << item << ").";
return cpuObject->x;
}
}
Expand All @@ -147,7 +147,7 @@ std::vector<float>& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer
case 0:
return cpuObject->z_per_layer;
default:
edm::LogError("HeterogeneousHGCalHEFCellPositionsConditions") << "select_pointer_i(non-heterogeneous): no item.";
edm::LogError("HeterogeneousHGCalHEFCellPositionsConditions") << "select_pointer_i(non-heterogeneous): no item (typed " << item << ").";
return cpuObject->z_per_layer;
}
}
Expand Down Expand Up @@ -183,19 +183,19 @@ uint32_t*& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_u_(cpos:
case 4:
return cpuObject->detid;
default:
edm::LogError("HeterogeneousHGCalHEFCellPositionsConditions") << "select_pointer_u(heterogeneous): no item.";
edm::LogError("HeterogeneousHGCalHEFCellPositionsConditions") << "select_pointer_u(heterogeneous): no item (typed " << item << ").";
return cpuObject->detid;
}
}

std::vector<uint32_t>& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_u_(cpos::HGCalPositionsMapping* cpuObject,
const unsigned int& item) {
const unsigned int& item) {
switch(item)
{
case 2:
return cpuObject->detid;
default:
edm::LogError("HeterogeneousHGCalHEFCellPositionsConditions") << "select_pointer_u(non-heterogeneous): no item.";
edm::LogError("HeterogeneousHGCalHEFCellPositionsConditions") << "select_pointer_u(non-heterogeneous): no item (typed " << item << ").";
return cpuObject->detid;
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#include "RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.h"
#include "RecoLocalCalo/HGCalESProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.h"

HeterogeneousHGCalHEFCellPositionsFiller::HeterogeneousHGCalHEFCellPositionsFiller(const edm::ParameterSet& ps)
{
setWhatProduced(this, dependsOn(&HeterogeneousHGCalHEFCellPositionsFiller::geometryCallback)).setConsumes(geometryToken_);
//setWhatProduced(this/*, dependsOn(&HeterogeneousHGCalHEFCellPositionsFiller::geometryCallback)*/).setConsumes(geometryToken_);
geometryToken_ = setWhatProduced(this).consumesFrom<HGCalGeometry, IdealGeometryRecord>(edm::ESInputTag{"", "HGCalHESiliconSensitive"});
posmap_ = new hgcal_conditions::positions::HGCalPositionsMapping();
}

Expand Down Expand Up @@ -70,17 +71,10 @@ void HeterogeneousHGCalHEFCellPositionsFiller::set_conditions_()

std::unique_ptr<HeterogeneousHGCalHEFCellPositionsConditions> HeterogeneousHGCalHEFCellPositionsFiller::produce(const HeterogeneousHGCalHEFCellPositionsConditionsRecord& iRecord)
{
/*
std::string handle_str;
handle_str = "HGCalHESiliconSensitive";
edm::ESHandle<HGCalGeometry> handle;
setup.get<IdealGeometryRecord>().get(handle_str, handle);
*/

auto geom = iRecord.getTransientHandle(geometryToken_);
ddd_ = &( geom->topology().dddConstants() );
params_ = ddd_->getParameter();

//const cms::cuda::ScopedContextAcquire ctx{event.streamID(), std::move(w), ctxState_};

set_conditions_();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h"
#include "Geometry/HGCalCommonData/interface/HGCalWaferIndex.h"

#include "RecoLocalCalo/HGCalESProducers/plugins/HeterogeneousHGCalHEFCellPositionsConditions.h"
#include "CondFormats/HGCalObjects/interface/HeterogeneousHGCalHEFCellPositionsConditions.h"
#include "RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalProducerMemoryWrapper.h"
#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h"
#include "CondFormats/DataRecord/interface/HeterogeneousHGCalHEFCellPositionsConditionsRecord.h"
Expand All @@ -44,7 +44,7 @@ class HeterogeneousHGCalHEFCellPositionsFiller: public edm::ESProducer
//cms::cuda::ContextState ctxState_;

//conditions (geometry, topology, ...)
void geometryCallback(const &IdealGeometryRecord);
//void geometryCallback(const IdealGeometryRecord&);
void set_conditions_();

const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* d_conds = nullptr;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,26 @@ HeterogeneousHGCalEERecHitProducer::~HeterogeneousHGCalEERecHitProducer()
{
}

std::string HeterogeneousHGCalEERecHitProducer::assert_error_message_(std::string var, const size_t& s)
std::string HeterogeneousHGCalEERecHitProducer::assert_error_message_(std::string var, const size_t& s1, const size_t& s2)
{
std::string str1 = "The '";
std::string str2 = "' array must be at least of size ";
std::string str3 = " to hold the configuration data.";
return str1 + var + str2 + std::to_string(s) + str3;
std::string str3 = " to hold the configuration data, but is of size ";
return str1 + var + str2 + std::to_string(s1) + str3 + std::to_string(s2);
}

void HeterogeneousHGCalEERecHitProducer::assert_sizes_constants_(const HGCConstantVectorData& vd)
{
if( vdata_.fCPerMIP_.size() != maxsizes_constants::ee_fCPerMIP )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("fCPerMIP", vdata_.fCPerMIP_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("fCPerMIP", maxsizes_constants::ee_fCPerMIP, vdata_.fCPerMIP_.size());
else if( vdata_.cce_.size() != maxsizes_constants::ee_cce )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("cce", vdata_.cce_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("cce", maxsizes_constants::ee_cce, vdata_.cce_.size());
else if( vdata_.noise_fC_.size() != maxsizes_constants::ee_noise_fC )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("noise_fC", vdata_.noise_fC_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("noise_fC", maxsizes_constants::ee_noise_fC, vdata_.noise_fC_.size());
else if( vdata_.rcorr_.size() != maxsizes_constants::ee_rcorr )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("rcorr", vdata_.rcorr_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("rcorr", maxsizes_constants::ee_rcorr, vdata_.rcorr_.size());
else if( vdata_.weights_.size() != maxsizes_constants::ee_weights )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("weights", vdata_.weights_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("weights", maxsizes_constants::ee_weights, vdata_.weights_.size());
}

void HeterogeneousHGCalEERecHitProducer::acquire(edm::Event const& event, edm::EventSetup const& setup, edm::WaitingTaskWithArenaHolder w) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ class HeterogeneousHGCalEERecHitProducer: public edm::stream::EDProducer<edm::Ex
HGCConstantVectorData vdata_;

//memory
std::string assert_error_message_(std::string var, const size_t& s);
void assert_sizes_constants_(const HGCConstantVectorData& vd);
std::string assert_error_message_(std::string, const size_t&, const size_t&);
void assert_sizes_constants_(const HGCConstantVectorData&);
void allocate_memory_(const cudaStream_t&);
void deallocate_memory_();
cms::cuda::host::unique_ptr<std::byte[]> mem_in_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,35 +35,34 @@ HeterogeneousHGCalHEFRecHitProducer::~HeterogeneousHGCalHEFRecHitProducer()
//delete posmap_;
}

std::string HeterogeneousHGCalHEFRecHitProducer::assert_error_message_(std::string var, const size_t& s)
std::string HeterogeneousHGCalHEFRecHitProducer::assert_error_message_(std::string var, const size_t& s1, const size_t& s2)
{
std::string str1 = "The '";
std::string str2 = "' array must be at least of size ";
std::string str3 = " to hold the configuration data.";
return str1 + var + str2 + std::to_string(s) + str3;
std::string str3 = " to hold the configuration data, but is of size ";
return str1 + var + str2 + std::to_string(s1) + str3 + std::to_string(s2);
}

void HeterogeneousHGCalHEFRecHitProducer::assert_sizes_constants_(const HGCConstantVectorData& vd)
{
if( vdata_.fCPerMIP_.size() != maxsizes_constants::hef_fCPerMIP )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("fCPerMIP", vdata_.fCPerMIP_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("fCPerMIP", maxsizes_constants::hef_fCPerMIP, vdata_.fCPerMIP_.size());
else if( vdata_.cce_.size() != maxsizes_constants::hef_cce )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("cce", vdata_.cce_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("cce", maxsizes_constants::hef_cce, vdata_.cce_.size());
else if( vdata_.noise_fC_.size() != maxsizes_constants::hef_noise_fC )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("noise_fC", vdata_.noise_fC_.size());
else if( vdata_.rcorr_.size() != maxsizes_constants::hef_rcorr )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("rcorr", vdata_.rcorr_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("noise_fC", maxsizes_constants::hef_noise_fC, vdata_.noise_fC_.size());
else if( vdata_.rcorr_.size() != maxsizes_constants::hef_rcorr )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("rcorr", maxsizes_constants::hef_rcorr, vdata_.rcorr_.size());
else if( vdata_.weights_.size() != maxsizes_constants::hef_weights )
cms::cuda::LogError("WrongSize") << this->assert_error_message_("weights", vdata_.weights_.size());
cms::cuda::LogError("WrongSize") << this->assert_error_message_("weights", maxsizes_constants::hef_weights, vdata_.weights_.size());
}

void HeterogeneousHGCalHEFRecHitProducer::beginRun(edm::Run const&, edm::EventSetup const& setup) {
edm::ESHandle<CaloGeometry> baseGeom;
setup.get<CaloGeometryRecord>().get(baseGeom);
tools_->setGeometry(*baseGeom);

std::string handle_str;
handle_str = "HGCalHESiliconSensitive";
std::string handle_str = "HGCalHESiliconSensitive";
edm::ESHandle<HGCalGeometry> handle;
setup.get<IdealGeometryRecord>().get(handle_str, handle);

Expand All @@ -75,13 +74,15 @@ void HeterogeneousHGCalHEFRecHitProducer::beginRun(edm::Run const&, edm::EventSe
void HeterogeneousHGCalHEFRecHitProducer::acquire(edm::Event const& event, edm::EventSetup const& setup, edm::WaitingTaskWithArenaHolder w) {
const cms::cuda::ScopedContextAcquire ctx{event.streamID(), std::move(w), ctxState_};

edm::ESHandle<HeterogeneousHGCalHEFCellPositionsConditions> celpos;
setup.get<HeterogeneousHGCalHEFCellPositionsConditionsRecord>().get(celpos);
celpos->getHeterogeneousConditionsESProductAsync( 0 );
/*
for(unsigned int i=0; i<celpos->z_per_layer.size(); ++i)
std::cout << celpos->z_per_layer[i] << std::endl;
edm::ESHandle<HeterogeneousHGCalHEFCellPositionsConditions> celpos_handle;
setup.get<HeterogeneousHGCalHEFCellPositionsConditionsRecord>().get(celpos_handle);
hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct const * celpos = celpos_handle->getHeterogeneousConditionsESProductAsync( 0 );
std::cout << "PRINT" << std::endl;
std::cout << celpos->nelems_posmap << std::endl;
*/
//for(unsigned int i=0; i<40; ++i)
// std::cout << celpos->posmap.z_per_layer[i] << std::endl;

/*
HeterogeneousHGCalHEFConditionsWrapper esproduct(params_, posmap_);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ class HeterogeneousHGCalHEFRecHitProducer: public edm::stream::EDProducer<edm::E
HGCConstantVectorData vdata_;

//memory
std::string assert_error_message_(std::string var, const size_t& s);
void assert_sizes_constants_(const HGCConstantVectorData& vd);
std::string assert_error_message_(std::string, const size_t&, const size_t&);
void assert_sizes_constants_(const HGCConstantVectorData&);
void allocate_memory_(const cudaStream_t&);
void deallocate_memory_();
cms::cuda::host::unique_ptr<std::byte[]> mem_in_;
Expand Down
4 changes: 2 additions & 2 deletions UserCode/CodeGPU/python/HeterogeneousHGCalRecHit_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
HGCEE_isSiFE = HGCalRecHit.__dict__['HGCEE_isSiFE'],
HGCEE_noise_fC = HGCalRecHit.__dict__['HGCEE_noise_fC'],
HGCEE_cce = HGCalRecHit.__dict__['HGCEE_cce'],
rcorr = HGCalRecHit.__dict__['thicknessCorrection'],
rcorr = cms.vdouble( HGCalRecHit.__dict__['thicknessCorrection'][0:3] ),
weights = HGCalRecHit.__dict__['layerWeights']
)
process.HeterogeneousHGCalHEFCellPositionsFiller = cms.ESProducer("HeterogeneousHGCalHEFCellPositionsFiller")
Expand All @@ -63,7 +63,7 @@
HGCHEF_isSiFE = HGCalRecHit.__dict__['HGCHEF_isSiFE'],
HGCHEF_noise_fC = HGCalRecHit.__dict__['HGCHEF_noise_fC'],
HGCHEF_cce = HGCalRecHit.__dict__['HGCHEF_cce'],
rcorr = HGCalRecHit.__dict__['thicknessCorrection'],
rcorr = cms.vdouble( HGCalRecHit.__dict__['thicknessCorrection'][3:6] ),
weights = HGCalRecHit.__dict__['layerWeights'] )

process.HeterogeneousHGCalHEBRecHits = cms.EDProducer('HeterogeneousHGCalHEBRecHitProducer',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
HGCEE_isSiFE = HGCalRecHit.__dict__['HGCEE_isSiFE'],
HGCEE_noise_fC = HGCalRecHit.__dict__['HGCEE_noise_fC'],
HGCEE_cce = HGCalRecHit.__dict__['HGCEE_cce'],
rcorr = HGCalRecHit.__dict__['thicknessCorrection'],
rcorr = cms.vdouble( HGCalRecHit.__dict__['thicknessCorrection'][0:3] ),
weights = HGCalRecHit.__dict__['layerWeights']
)
process.HeterogeneousHGCalHEFRecHits = cms.EDProducer( 'HeterogeneousHGCalHEFRecHitProducer',
Expand All @@ -67,21 +67,20 @@
HGCHEF_cce = HGCalRecHit.__dict__['HGCHEF_cce'],
rangeMatch = HGCalRecHit.__dict__['rangeMatch'],
rangeMask = HGCalRecHit.__dict__['rangeMask'],
rcorr = HGCalRecHit.__dict__['thicknessCorrection'],
rcorr = cms.vdouble( HGCalRecHit.__dict__['thicknessCorrection'][3:6] ),
weights = HGCalRecHit.__dict__['layerWeights'] )
process.HeterogeneousHGCalHEBRecHits = cms.EDProducer('HeterogeneousHGCalHEBRecHitProducer',
HGCHEBUncalibRecHitsTok = cms.InputTag('HGCalUncalibRecHit', 'HGCHEBUncalibRecHits'),
HGCHEB_keV2DIGI = HGCalRecHit.__dict__['HGCHEB_keV2DIGI'],
HGCHEB_noise_MIP = HGCalRecHit.__dict__['HGCHEB_noise_MIP'],
weights = HGCalRecHit.__dict__['layerWeights'] )


process.valid = cms.EDAnalyzer( "HeterogeneousHGCalRecHitsValidator",
cpuRecHitsEEToken = cms.InputTag('HeterogeneousHGCalEERecHits','HeterogeneousHGCalEERecHits'),
cpuRecHitsEEToken = cms.InputTag('HGCalRecHit', 'HGCEERecHits'),
gpuRecHitsEEToken = cms.InputTag('HeterogeneousHGCalEERecHits','HeterogeneousHGCalEERecHits'),
cpuRecHitsHSiToken = cms.InputTag('HeterogeneousHGCalHEFRecHits','HeterogeneousHGCalHEFRecHits'),
cpuRecHitsHSiToken = cms.InputTag('HGCalRecHit', 'HGCHEFRecHits'),
gpuRecHitsHSiToken = cms.InputTag('HeterogeneousHGCalHEFRecHits','HeterogeneousHGCalHEFRecHits'),
cpuRecHitsHSciToken = cms.InputTag('HeterogeneousHGCalHEBRecHits','HeterogeneousHGCalHEBRecHits'),
cpuRecHitsHSciToken = cms.InputTag('HGCalRecHit', 'HGCHEBRecHits'),
gpuRecHitsHSciToken = cms.InputTag('HeterogeneousHGCalHEBRecHits','HeterogeneousHGCalHEBRecHits') )

process.recHitsTask = cms.Task( process.HeterogeneousHGCalEERecHits, process.HeterogeneousHGCalHEFRecHits, process.HeterogeneousHGCalHEBRecHits )
Expand Down

0 comments on commit ecc666c

Please sign in to comment.