Skip to content
Commits on Source (65)
......@@ -158,6 +158,10 @@ class CaloTopoClusterMaker: public AthAlgTool, virtual public CaloClusterCollect
* threshold used for timing cut on seed cells. Implemented as |seed_cell_time|<m_seedThresholdOnTAbs. No such cut on neighboring cells.*/
float m_seedThresholdOnTAbs;
/**
* upper limit on the energy significance, for applying the cell time cut */
float m_timeCutUpperLimit;
/**
......@@ -287,6 +291,11 @@ class CaloTopoClusterMaker: public AthAlgTool, virtual public CaloClusterCollect
*/
bool m_cutOOTseed;
/**
* if set to true, the time cut is not applied on cell of large significance
*/
bool m_useTimeCutUpperLimit;
/**
* @brief if set to true use 2-gaussian noise description for
......
......@@ -371,6 +371,9 @@ class CaloClusterTopoGetter ( Configured ) :
#timing
TopoMaker.SeedCutsInT = jobproperties.CaloTopoClusterFlags.doTimeCut()
TopoMaker.CutOOTseed = jobproperties.CaloTopoClusterFlags.extendTimeCut() and jobproperties.CaloTopoClusterFlags.doTimeCut()
TopoMaker.UseTimeCutUpperLimit = jobproperties.CaloTopoClusterFlags.useUpperLimitForTimeCut()
TopoMaker.TimeCutUpperLimit = 20.0
# note E or AbsE
......
......@@ -123,6 +123,13 @@ class extendTimeCut(JobProperty):
allowedTypes=['bool']
StoredValue=False
class useUpperLimitForTimeCut(JobProperty):
"""
"""
statusOn=True
allowedTypes=['bool']
StoredValue=False
# add the flags container to the top container
jobproperties.add_Container(CaloTopoClusterFlags)
......@@ -146,6 +153,7 @@ list_jobproperties = [
,doMomentsfromAbs
,doTimeCut
,extendTimeCut
,useUpperLimitForTimeCut
]
for i in list_jobproperties:
......
......@@ -86,6 +86,7 @@ CaloTopoClusterMaker::CaloTopoClusterMaker(const std::string& type,
m_neighborThresholdOnEtorAbsEt ( 100.*MeV),
m_seedThresholdOnEtorAbsEt ( 200.*MeV),
m_seedThresholdOnTAbs ( 12.5*ns),
m_timeCutUpperLimit ( 20.),
m_useNoiseTool (false),
m_usePileUpNoise (false),
m_noiseTool ("CaloNoiseTool"),
......@@ -100,6 +101,7 @@ CaloTopoClusterMaker::CaloTopoClusterMaker(const std::string& type,
m_clusterEtorAbsEtCut ( 0.*MeV),
m_seedCutsInT (false),
m_cutOOTseed (false),
m_useTimeCutUpperLimit (false),
m_twogaussiannoise (false),
m_treatL1PredictedCellsAsGood (true),
m_minSampling (0),
......@@ -137,6 +139,9 @@ CaloTopoClusterMaker::CaloTopoClusterMaker(const std::string& type,
// Time thresholds (in abs. val.)
declareProperty("SeedThresholdOnTAbs",m_seedThresholdOnTAbs);
// Significance upper limit for applying time cut
declareProperty("TimeCutUpperLimit",m_timeCutUpperLimit);
// Seed and cluster cuts are in E or Abs E
declareProperty("SeedCutsInAbsE",m_seedCutsInAbsE);
......@@ -150,6 +155,9 @@ CaloTopoClusterMaker::CaloTopoClusterMaker(const std::string& type,
declareProperty("SeedCutsInT",m_seedCutsInT);
//exclude out-of-time seeds from neighbouring and cell stage
declareProperty("CutOOTseed",m_cutOOTseed);
//do not apply time cut on cells of large significance
declareProperty("UseTimeCutUpperLimit",m_useTimeCutUpperLimit);
// Noise Sigma
declareProperty("NoiseSigma",m_noiseSigma);
......@@ -245,6 +253,9 @@ CaloTopoClusterMaker::geoInit(IOVSVC_CALLBACK_ARGS)
<< m_cellThresholdOnEorAbsEinSigma
<< endreq;
ATH_MSG_INFO( "Time cut option: " << ((!m_seedCutsInT) ? "None" : (m_cutOOTseed ? "Seed Extended" : "Seed")));
ATH_MSG_INFO( "E/sigma veto on T cut: m_useTimeCutUpperLimit=" << (m_useTimeCutUpperLimit ? "true" : "false") << ", m_timeCutUpperLimit=" << m_timeCutUpperLimit);
//--- set Neighbor Option
if ( m_neighborOption == "all2D" )
......@@ -525,8 +536,8 @@ StatusCode CaloTopoClusterMaker::execute(xAOD::CaloClusterContainer* clusColl)
&& ( m_usePileUpNoise || ((m_seedCutsInAbsE?std::abs(signedEt):signedEt) > m_seedThresholdOnEtorAbsEt ));
bool passTimeCut_seedCell = (!m_seedCutsInT || passCellTimeCut(pCell,m_seedThresholdOnTAbs));
bool applyTimeCut = m_seedCutsInT && !(m_useTimeCutUpperLimit && signedRatio > m_timeCutUpperLimit);
bool passTimeCut_seedCell = (!applyTimeCut || passCellTimeCut(pCell,m_seedThresholdOnTAbs));
bool passedSeedAndTimeCut = (passedSeedCut && passTimeCut_seedCell); //time cut is applied here
bool passedNeighborAndTimeCut = passedNeighborCut;
......
......@@ -12,6 +12,7 @@
#include "GaudiKernel/ClassID.h"
#include "GaudiKernel/FileIncident.h"
#include "GaudiKernel/IChronoStatSvc.h"
#include "GaudiKernel/IIoComponentMgr.h"
#include "GaudiKernel/IOpaqueAddress.h"
#include "GaudiKernel/IJobOptionsSvc.h"
#include "GaudiKernel/IIncidentSvc.h"
......@@ -84,6 +85,14 @@ StatusCode AthenaPoolCnvSvc::initialize() {
return(StatusCode::FAILURE);
}
}
// Register this service for 'I/O' events
ServiceHandle<IIoComponentMgr> iomgr("IoComponentMgr", name());
ATH_CHECK(iomgr.retrieve());
if (!iomgr->io_register(this).isSuccess()) {
ATH_MSG_FATAL("Could not register myself with the IoComponentMgr !");
return(StatusCode::FAILURE);
}
// Extracting MaxFileSizes for global default and map by Database name.
for (std::vector<std::string>::const_iterator iter = m_maxFileSizes.value().begin(),
last = m_maxFileSizes.value().end(); iter != last; iter++) {
......@@ -127,6 +136,13 @@ StatusCode AthenaPoolCnvSvc::initialize() {
return(StatusCode::SUCCESS);
}
//______________________________________________________________________________
StatusCode AthenaPoolCnvSvc::io_reinit() {
ATH_MSG_DEBUG("I/O reinitialization...");
// Extracting OUTPUT POOL ItechnologySpecificAttributes for Domain, Database and Container.
extractPoolAttributes(m_poolAttr, &m_containerAttr, &m_databaseAttr, &m_domainAttr);
return(StatusCode::SUCCESS);
}
//______________________________________________________________________________
StatusCode AthenaPoolCnvSvc::finalize() {
// Release AthenaSerializeSvc
if (!m_serializeSvc.empty()) {
......@@ -163,6 +179,11 @@ StatusCode AthenaPoolCnvSvc::finalize() {
m_cnvs.shrink_to_fit();
return(::AthCnvSvc::finalize());
}
//______________________________________________________________________________
StatusCode AthenaPoolCnvSvc::io_finalize() {
ATH_MSG_DEBUG("I/O finalization...");
return(StatusCode::SUCCESS);
}
//_______________________________________________________________________
StatusCode AthenaPoolCnvSvc::queryInterface(const InterfaceID& riid, void** ppvInterface) {
if (IAthenaPoolCnvSvc::interfaceID().versionMatch(riid)) {
......
......@@ -13,6 +13,7 @@
#include "AthenaPoolCnvSvc/IAthenaPoolCnvSvc.h"
#include "GaudiKernel/IIncidentListener.h"
#include "GaudiKernel/IIoComponent.h"
#include "GaudiKernel/ServiceHandle.h"
#include "GaudiKernel/ToolHandle.h"
#include "StorageSvc/DbType.h"
......@@ -36,15 +37,18 @@ template <class TYPE> class SvcFactory;
**/
class AthenaPoolCnvSvc : public ::AthCnvSvc,
public virtual IAthenaPoolCnvSvc,
public virtual IIncidentListener {
public virtual IIncidentListener,
public virtual IIoComponent {
// Allow the factory class access to the constructor
friend class SvcFactory<AthenaPoolCnvSvc>;
public:
/// Required of all Gaudi Services
StatusCode initialize();
StatusCode io_reinit();
/// Required of all Gaudi Services
StatusCode finalize();
StatusCode io_finalize();
/// Required of all Gaudi services: see Gaudi documentation for details
StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface);
......
......@@ -146,6 +146,15 @@ def adjustlongfolder(name):
global overlaylongfolders
overlaylongfolders += [name]
overlaydayfolders = []
def adjustdayfolder(name):
if conddb.folderRequested(name):
print "setting "+name+" to day(86400s) cache"
conddb.addMarkup(name,"<cache>86400</cache>")
global overlaydayfolders
overlaydayfolders += [name]
if dofolderoverrides:
adjustlongfolder("/CALO/CaloSwClusterCorrections/calhits")
adjustlongfolder("/CALO/CaloSwClusterCorrections/clcon")
......@@ -234,13 +243,21 @@ if dofolderoverrides:
adjustlongfolder("/RPC/TRIGGER/CM_THR_ETA")
adjustlongfolder("/RPC/TRIGGER/CM_THR_PHI")
adjustlongfolder("/TRT/AlignL2")
adjustdayfolder("/SCT/DAQ/Config/Chip")
adjustdayfolder("/SCT/DAQ/Config/Module")
adjustdayfolder("/SCT/DAQ/Config/MUR")
adjustdayfolder("/SCT/DAQ/Config/ROD")
print "overlaylongfolders: ", overlaylongfolders
print "overlaydayfolders: ", overlaydayfolders
def adjustshortfolder(name):
global overlaylongfolders
global overlaydayfolders
if name in overlaylongfolders:
print "already made "+name+" long"
elif name in overlaydayfolders:
print "already made "+name+" day long"
else:
if conddb.folderRequested(name):
print "setting "+name+" to 10s cache"
......
......@@ -20,6 +20,7 @@ public:
bool m_VerboseOutput;
bool m_DeepCopy;
bool m_EtaPhi;
bool m_PrintQuasiStableParticles;
};
#endif
......@@ -7,6 +7,7 @@
using namespace Gaudi::Units;
using namespace std;
#include <CLHEP/Vector/LorentzVector.h>
DumpMC::DumpMC(const string& name, ISvcLocator* pSvcLocator)
: GenBase(name, pSvcLocator)
......@@ -15,6 +16,7 @@ DumpMC::DumpMC(const string& name, ISvcLocator* pSvcLocator)
declareProperty("VerboseOutput", m_VerboseOutput=true);
declareProperty("DeepCopy", m_DeepCopy=false);
declareProperty("EtaPhi", m_EtaPhi=false);
declareProperty("PrintQuasiStableParticles", m_PrintQuasiStableParticles=false);
}
......@@ -139,6 +141,30 @@ StatusCode DumpMC::execute() {
cout << " eta = " << rapid<< " Phi = " << phi << " Et = " <<et/GeV << " Status= " << p_stat << " PDG ID= "<< p_id << endl;
}
}
if(m_PrintQuasiStableParticles) {
const HepMC::GenEvent* genEvt = (*itr);
for (HepMC::GenEvent::particle_const_iterator pitr=genEvt->particles_begin(); pitr!=genEvt->particles_end(); ++pitr) {
int p_stat=(*pitr)->status();
if(p_stat==2 && (*pitr)->production_vertex() && (*pitr)->end_vertex()) {
const auto& prodVtx = (*pitr)->production_vertex()->position();
const auto& endVtx = (*pitr)->end_vertex()->position();
const CLHEP::HepLorentzVector lv0( prodVtx.x(), prodVtx.y(), prodVtx.z(), prodVtx.t() );
const CLHEP::HepLorentzVector lv1( endVtx.x(), endVtx.y(), endVtx.z(), endVtx.t() );
CLHEP::HepLorentzVector dist4D(lv1);
dist4D-=lv0;
CLHEP::Hep3Vector dist3D=dist4D.vect();
if(dist3D.mag()>1*Gaudi::Units::mm) {
const auto& GenMom = (*pitr)->momentum();
const CLHEP::HepLorentzVector mom( GenMom.x(), GenMom.y(), GenMom.z(), GenMom.t() );
ATH_MSG_INFO("Quasi stable particle "<<**pitr);
ATH_MSG_INFO(" Prod V:"<<*((*pitr)->production_vertex ()));
ATH_MSG_INFO(" Decay V:"<<*((*pitr)->end_vertex ()));
ATH_MSG_INFO(" gamma(Momentum)="<<mom.gamma()<<" gamma(Vertices)="<<dist4D.gamma());
}
}
}
}
}
}
return StatusCode::SUCCESS;
......
......@@ -192,6 +192,7 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, PixelRDO
unsigned int errorcode = 0;
unsigned int fe_errorcode = 0; //to keep MCC/FE individual per FE for pixel
// m_errors->reset(); // reset the collection of errors
StatusCode sc = StatusCode::SUCCESS;
......@@ -334,7 +335,7 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, PixelRDO
}
errorcode = 0; // reset errorcode
fe_errorcode = 0;
// Keep track of IDs for previous fragment before decoding the new values
prevLVL1ID = mLVL1ID;
prevBCID = mBCID;
......@@ -451,6 +452,7 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, PixelRDO
if (headererror != 0) { // only treatment for header errors now, FIXME
sc = StatusCode::RECOVERABLE;
errorcode = errorcode | (headererror << 20); //encode error as HHHHMMMMMMMMFFFFFFFFTTTT for header, flagword, trailer errors
fe_errorcode = fe_errorcode | (headererror << 20);
if (headererror & (1 << 3))
m_errors->addPreambleError();
if (headererror & (1 << 2))
......@@ -989,6 +991,7 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, PixelRDO
if (trailererror != 0) {
sc = StatusCode ::RECOVERABLE;
errorcode = errorcode | trailererror; //encode error as HHHHMMMMMMMMFFFFFFFFTTTT for header, flagword, trailer errors
fe_errorcode = fe_errorcode | trailererror;
//for now just sum all trailer errors
if (trailererror & (1 << 3))
m_errors->addTrailerError();
......@@ -1067,6 +1070,8 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, PixelRDO
FEFlags = FEFlags & 0xF3; // mask out the parity bits, they don't work
if ((MCCFlags | FEFlags) != 0) {
sc = StatusCode::RECOVERABLE;
fe_errorcode = fe_errorcode & 0xfff0000f; // clean-up MCC and FE bits before writing them
fe_errorcode = fe_errorcode | (MCCFlags << 12) | (FEFlags << 4);
errorcode = errorcode | (MCCFlags << 12) | (FEFlags << 4); //encode error as HHHHMMMMMMMMFFFFFFFFTTTT for header, flagword, trailer errors
//for now just sum all flagged errors
if (MCCFlags & (1 << 7))
......@@ -1101,7 +1106,7 @@ StatusCode PixelRodDecoder::fillCollection( const ROBFragment *robFrag, PixelRDO
m_errors->addFlaggedError();
if (FEFlags & (1 << 0))
m_errors->addFlaggedError();
m_errors->setFeErrorCode(offlineIdHash, fe_number, errorcode);
m_errors->setFeErrorCode(offlineIdHash, fe_number, fe_errorcode);
} else {
m_errors->addDisabledFEError();
......
......@@ -1846,7 +1846,7 @@ TRT_RodDecoder::update( IOVSVC_CALLBACK_ARGS_P(I,keys) )
Ctable->m_TableVersion );
delete Ctable;
catrIt++;
continue;
}
......@@ -1856,7 +1856,7 @@ TRT_RodDecoder::update( IOVSVC_CALLBACK_ARGS_P(I,keys) )
ATH_MSG_WARNING( "Table " << Ctable->m_TableVersion
<< " already loaded! Not overwriting" );
delete Ctable;
catrIt++;
continue;
}
......
......@@ -102,7 +102,7 @@ StatusCode PixelMainMon::bookClustersMon(void) {
sc = clusterExpert.regHist(m_clusterSize_eta = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_eta, min_eta, max_eta));
hname = makeHistname("Clusters_per_lumi", true);
htitles = makeHisttitle("Average number of pixel clusters per event", (atext_LB + atext_clu), true);
htitles = makeHisttitle("Average number of pixel clusters per event per LB", (atext_LB + atext_clu), true);
sc = clusterShift.regHist(m_clusters_per_lumi = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB));
hname = makeHistname("TotalClusters_per_lumi", true);
......@@ -219,7 +219,7 @@ StatusCode PixelMainMon::bookClustersMon(void) {
}
if (m_doOnTrack) {
sc = clusterExpert.regHist(m_clustersOnOffTrack_per_lumi = TProfile_LW::create("ClustersOnOffTrack_per_lumi", ("Fraction pixel clusters on track per event per LB" + m_histTitleExt + ";lumi block; fraction clusters/event").c_str(), 2500, -0.5, 2499.5));
sc = clusterExpert.regHist(m_clustersOnOffTrack_per_lumi = TProfile_LW::create("ClustersOnOffTrack_per_lumi", ("Fraction pixel clusters on track per event per LB" + m_histTitleExt + ";lumi block;fraction clusters/event").c_str(), 2500, -0.5, 2499.5));
hname = makeHistname("Zoomed_Cluster_ToTxCosAlpha_lumi_IBL", false);
htitles = makeHisttitle("Zoomed Cluster ToTxCosAlpha, IBL", ";lumi block;ToT [BC]", false);
......
......@@ -56,9 +56,9 @@ StatusCode PixelMainMon::bookRODErrorMon(void) {
std::make_pair("ROD_Trunc_HT_Limit_errors", "ROD H/T Limit Trunc Errors"),
std::make_pair("ROD_Trunc_ROD_OF_errors", "ROD Overflow Trunc Errors"),
std::make_pair("Optical_Errors", "Preamble/Header Errors"),
std::make_pair("SEU_Hit_Parity", "SEU Hit Parity Errors"),
std::make_pair("SEU_Register_Parity", "SEU Register Parity Errors"),
std::make_pair("SEU_Hamming", "SEU Hamming Code Errors"),
std::make_pair("SEU_Register_Parity", "SEU Register Parity Errors"),
std::make_pair("SEU_Hit_Parity", "SEU Hit Parity Errors"),
std::make_pair("ROD_Timeout", "ROD Formatter Timeout Errors"),
std::make_pair("FE_Warning", "FE Warning Errors"),
}};
......@@ -67,7 +67,7 @@ StatusCode PixelMainMon::bookRODErrorMon(void) {
std::make_pair("ROD_BCID_errors", "ROD BCID synchronization errors"),
std::make_pair("ROD_LVL1ID_errors", "ROD LVL1ID synchronization errors"),
std::make_pair("SR_BCID_counter_errors", "SR BCID counter errors"),
std::make_pair("SR_L1_Trigger_ID_errors", "SR L1 trigger ID errors"),
std::make_pair("SR_L1_in_counter_errors", "SR L1 in counter errors"),
std::make_pair("SR_L1_request_counter_errors", "SR L1 request counter errors"),
std::make_pair("SR_L1_register_errors", "SR L1 register errors"),
std::make_pair("SR_L1_Trigger_ID_errors", "SR L1 trigger ID errors"),
......@@ -95,7 +95,7 @@ StatusCode PixelMainMon::bookRODErrorMon(void) {
const char* errorBitsPIX[kNumErrorBits] = {
"ROD Overflow Trunc", "ROD H/T Limit Trunc", "2", "3",
"FE/MCC EoC Trunc", "SEU Hit Parity", "SEU Register Parity", "SEU Hamming Code",
"FE/MCC EoC Trunc", "SEU Hamming Code", "SEU Register Parity", "SEU Hit Parity",
"FE Warning (Bit Flip)", "9", "10", "11",
"FE/MCC Hit Overflow Trunc", "FE/MCC EoE Overflow Trunc", "FE/MCC BCID1 Sync", "FE/MCC BCID2 Sync",
"FE/MCC LVL1ID Sync", "17", "18", "19",
......@@ -279,11 +279,11 @@ StatusCode PixelMainMon::bookRODErrorMon(void) {
}
hname = makeHistname("ServiceRecord_Unweighted_IBL", false);
htitles = makeHisttitle("ServiceRecord Unweighted, IBL", ";SR;Count", false);
htitles = makeHisttitle("IBL ServiceRecord Unweighted", ";SR;Count", false);
sc = rodExpert.regHist(m_errhist_expert_servrec_ibl_unweighted = TH1F_LW::create(hname.c_str(), htitles.c_str(), 40, -0.5, 39.5));
hname = makeHistname("ServiceRecord_Weighted_IBL", false);
htitles = makeHisttitle("ServiceRecord Weighted, IBL", ";SR;Count", false);
htitles = makeHisttitle("IBL ServiceRecord Weighted with Payload", ";SR;Count", false);
sc = rodExpert.regHist(m_errhist_expert_servrec_ibl_weighted = TH1F_LW::create(hname.c_str(), htitles.c_str(), 40, -0.5, 39.5));
hname = makeHistname("ServiceRecord_Count_IBL", false);
......@@ -490,7 +490,8 @@ StatusCode PixelMainMon::fillRODErrorMon(void) {
if ((fe_errorword & (static_cast<uint64_t>(1) << bit)) != 0) {
// FE Error word contains 'bit', so take appropriate actions.
if (is_fei4 && bit > 7) continue; // For FE-I4 we are interested only in trailer errors, which are the first 8 bits, service records are treated below
if (!is_fei4 && !(bit >=4 && bit <=16)) continue; //avoid double-counting of ROD header errors
if (!is_fei4) has_femcc_errbits = true;
num_errors[kLayer]++;
num_errors_per_bit[kLayer][bit]++;
......@@ -500,7 +501,7 @@ StatusCode PixelMainMon::fillRODErrorMon(void) {
if (!is_fei4) {
if (bit == 14 || bit == 15 || bit == 16) error_type = 1; // module synchronization errors (14: BCID, 15: BCID. 16: LVL1ID)
if (bit == 4 || bit == 12 || bit == 13) error_type = 3; // module truncation errors (4: EOC, 12: hit overflow, 13: EoE overflow)
if (bit >= 5 && bit <= 7) error_type = 6; // SEU (single event upset) errors (5,6,7: hit parity, register parity, hammingcode)
if (bit >= 5 && bit <= 7) error_type = 6; // SEU (single event upset) errors (5,6,7: hammingcode, register parity, hit parity)
} else {
if (bit == 3 || bit == 4) error_type = 2; // synchronization error (3:LVL1ID, 4:BCID)
if (bit == 0 || bit == 1) error_type = 4; // ROD truncation error (0:Row/Column error, 1:Limit error)
......@@ -598,26 +599,26 @@ StatusCode PixelMainMon::fillRODErrorMon(void) {
if (m_errors) m_errors->fill(error_type, WaferID, m_pixelid);
if (m_doLumiBlock && m_errors_LB) {
m_errors_LB->fill(WaferID, m_pixelid);
m_errors_LB->fill(WaferID, m_pixelid, payload+1);
}
// Should this stay the same? This counts '1' for errors,
// regardless of how many FEs have that error type.
if (!has_err_type[error_type - 1]) {
if (m_errhist_errtype_map[error_type - 1] && !m_doOnline) {
m_errhist_errtype_map[error_type - 1]->fill(WaferID, m_pixelid, payload+1);
m_errhist_errtype_map[error_type - 1]->fill(WaferID, m_pixelid);
}
num_errormodules_per_type[kLayer][error_type - 1] += (payload+1);
if (kLayerIBL != 99) num_errormodules_per_type[kLayerIBL][error_type - 1] += (payload+1);
num_errormodules_per_type[kLayer][error_type - 1]++;
if (kLayerIBL != 99) num_errormodules_per_type[kLayerIBL][error_type - 1]++;
has_err_type[error_type - 1] = true;
}
if (!has_err_cat[error_cat]) {
if (m_errhist_errcat_map[error_cat] && !m_doOnline) {
m_errhist_errcat_map[error_cat]->fill(WaferID, m_pixelid, payload+1);
m_errhist_errcat_map[error_cat]->fill(WaferID, m_pixelid);
}
num_errormodules_per_cat[kLayer][error_cat] += (payload+1);
num_errormodules_per_cat[kLayer][error_cat]++;
if (kLayerIBL != 99) {
num_errormodules_per_cat[kLayerIBL][error_cat] += (payload+1);
num_errormodules_per_cat[kLayerIBL][error_cat]++;
}
has_err_cat[error_cat] = true;
}
......
......@@ -33,7 +33,7 @@ std::string PixelMainMon::makeHistname(std::string set, bool ontrk) {
std::string PixelMainMon::makeHisttitle(std::string set, std::string axis, bool ontrk) {
std::string name = set;
if (ontrk && m_doOnTrack) name += "_OnTrack";
if (ontrk && m_doOnTrack) name += " OnTrack";
name = name + m_histTitleExt + axis;
return name;
}
......
......@@ -87,7 +87,7 @@ StatusCode PixelMainMon::bookHitsMon(void) {
StatusCode sc;
hname = makeHistname("Hits_per_lumi", false);
htitles = makeHisttitle("Average number of pixel hits per event", (atext_LB + atext_hit), false);
htitles = makeHisttitle("Average number of pixel hits per event per LB", (atext_LB + atext_hit), false);
sc = rdoShift.regHist(m_hits_per_lumi = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB));
hname = makeHistname("AvgOcc_per_lumi", false);
......@@ -96,7 +96,7 @@ StatusCode PixelMainMon::bookHitsMon(void) {
for (int i = 0; i < PixLayer::COUNT - 1 + (int)(m_doIBL); i++) { // not include IBL2D and IBL3D
hname = makeHistname(("Hits_per_lumi_" + m_modLabel_PixLayerIBL2D3D[i]), false);
htitles = makeHisttitle(("Average number of pixel hits per event, " + m_modLabel_PixLayerIBL2D3D[i]), (atext_LB + atext_hit), false);
htitles = makeHisttitle(("Average number of pixel hits per event per LB, " + m_modLabel_PixLayerIBL2D3D[i]), (atext_LB + atext_hit), false);
sc = rdoExpert.regHist(m_hits_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB));
if (m_doOnline) {
......@@ -136,7 +136,7 @@ StatusCode PixelMainMon::bookHitsMon(void) {
for (int i = 0; i < PixLayerIBL2D3D::COUNT; i++) {
hname = makeHistname(("AvgOcc_active_per_lumi_" + m_modLabel_PixLayerIBL2D3D[i]), false);
htitles = makeHisttitle(("Average pixel occupancy for active per event, " + m_modLabel_PixLayerIBL2D3D[i]), (atext_LB + atext_occ), false);
htitles = makeHisttitle(("Average pixel occupancy for active modules per event per LB, " + m_modLabel_PixLayerIBL2D3D[i]), (atext_LB + atext_occ), false);
sc = rdoExpert.regHist(m_avgocc_active_per_lumi_mod[i] = TProfile_LW::create(hname.c_str(), htitles.c_str(), nbins_LB, min_LB, max_LB));
hname = makeHistname(("MaxOcc_per_lumi_" + m_modLabel_PixLayerIBL2D3D[i]), false);
......
......@@ -20,49 +20,49 @@ PixelMon2DLumiMaps::PixelMon2DLumiMaps(std::string name, std::string title, std:
int num_modules;
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kIBL)) {
num_modules = PixMon::kNumStavesIBL * (PixMon::kNumModulesIBL2D + PixMon::kNumModulesIBL3D);
m_histograms.at(0).reset(TH2F_LW::create((name + "_2D_Map_IBL").c_str(), (title + ", IBL " + " (Map);LB;Module;" + zlabel).c_str(),
m_histograms.at(0).reset(TH2F_LW::create((name + "_2D_Map_IBL").c_str(), (title + ", IBL" + " (Map);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB0)) {
num_modules = PixMon::kNumStavesL0 * PixMon::kNumModulesBarrel;
m_histograms.at(3).reset(TH2F_LW::create((name + "_2D_Map_B0").c_str(), (title + ", B0 " + " (Map);LB;Module;" + zlabel).c_str(),
m_histograms.at(3).reset(TH2F_LW::create((name + "_2D_Map_B0").c_str(), (title + ", B0" + " (Map);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB1)) {
num_modules = PixMon::kNumStavesL1 * PixMon::kNumModulesBarrel;
m_histograms.at(4).reset(TH2F_LW::create((name + "_2D_Map_B1").c_str(), (title + ", B1 " + " (Map);LB;Module;" + zlabel).c_str(),
m_histograms.at(4).reset(TH2F_LW::create((name + "_2D_Map_B1").c_str(), (title + ", B1" + " (Map);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB2)) {
num_modules = PixMon::kNumStavesL2 * PixMon::kNumModulesBarrel;
m_histograms.at(5).reset(TH2F_LW::create((name + "_2D_Map_B2").c_str(), (title + ", B2 " + " (Map);LB;Module;" + zlabel).c_str(),
m_histograms.at(5).reset(TH2F_LW::create((name + "_2D_Map_B2").c_str(), (title + ", B2" + " (Map);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kECA)) {
num_modules = PixMon::kNumLayersDisk * PixMon::kNumModulesDisk;
m_histograms.at(6).reset(TH2F_LW::create((name + "_2D_Map_ECA").c_str(), (title + ", ECA " + " (Map);LB;Module;" + zlabel).c_str(),
m_histograms.at(6).reset(TH2F_LW::create((name + "_2D_Map_ECA").c_str(), (title + ", ECA" + " (Map);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kECC)) {
num_modules = PixMon::kNumLayersDisk * PixMon::kNumModulesDisk;
m_histograms.at(7).reset(TH2F_LW::create((name + "_2D_Map_ECC").c_str(), (title + ", ECC " + " (Map);LB;Module;" + zlabel).c_str(),
m_histograms.at(7).reset(TH2F_LW::create((name + "_2D_Map_ECC").c_str(), (title + ", ECC" + " (Map);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kDBMA)) {
num_modules = PixMon::kNumLayersDBM * PixMon::kNumModulesDBM;
m_histograms.at(8).reset(TH2F_LW::create((name + "_2D_Map_DBMA").c_str(), (title + ", DBMA " + " (Map);LB;Module;" + zlabel).c_str(),
m_histograms.at(8).reset(TH2F_LW::create((name + "_2D_Map_DBMA").c_str(), (title + ", DBMA" + " (Map);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kDBMC)) {
num_modules = PixMon::kNumLayersDBM * PixMon::kNumModulesDBM;
m_histograms.at(9).reset(TH2F_LW::create((name + "_2D_Map_DBMC").c_str(), (title + ", DBMC " + " (Map);LB;Module;" + zlabel).c_str(),
m_histograms.at(9).reset(TH2F_LW::create((name + "_2D_Map_DBMC").c_str(), (title + ", DBMC" + " (Map);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
......
......@@ -19,49 +19,49 @@ PixelMon2DLumiProfiles::PixelMon2DLumiProfiles(std::string name, std::string tit
int num_modules;
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kIBL)) {
num_modules = PixMon::kNumStavesIBL * (PixMon::kNumModulesIBL2D + PixMon::kNumModulesIBL3D);
m_histograms.at(0).reset(TProfile2D_LW::create((name + "_2D_Profile_IBL").c_str(), (title + ", IBL " + title + " (Profile);LB;Module;" + zlabel).c_str(),
m_histograms.at(0).reset(TProfile2D_LW::create((name + "_2D_Profile_IBL").c_str(), (title + ", IBL" + title + " (Profile);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB0)) {
num_modules = PixMon::kNumStavesL0 * PixMon::kNumModulesBarrel;
m_histograms.at(3).reset(TProfile2D_LW::create((name + "_2D_Profile_B0").c_str(), (title + ", B0 " + title + " (Profile);LB;Module;" + zlabel).c_str(),
m_histograms.at(3).reset(TProfile2D_LW::create((name + "_2D_Profile_B0").c_str(), (title + ", B0" + title + " (Profile);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB1)) {
num_modules = PixMon::kNumStavesL1 * PixMon::kNumModulesBarrel;
m_histograms.at(4).reset(TProfile2D_LW::create((name + "_2D_Profile_B1").c_str(), (title + ", B1 " + title + " (Profile);LB;Module;" + zlabel).c_str(),
m_histograms.at(4).reset(TProfile2D_LW::create((name + "_2D_Profile_B1").c_str(), (title + ", B1" + title + " (Profile);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB2)) {
num_modules = PixMon::kNumStavesL2 * PixMon::kNumModulesBarrel;
m_histograms.at(5).reset(TProfile2D_LW::create((name + "_2D_Profile_B2").c_str(), (title + ", B2 " + title + " (Profile);LB;Module;" + zlabel).c_str(),
m_histograms.at(5).reset(TProfile2D_LW::create((name + "_2D_Profile_B2").c_str(), (title + ", B2" + title + " (Profile);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kECA)) {
num_modules = PixMon::kNumLayersDisk * PixMon::kNumModulesDisk;
m_histograms.at(6).reset(TProfile2D_LW::create((name + "_2D_Profile_ECA").c_str(), (title + ", ECA " + title + " (Profile);LB;Module;" + zlabel).c_str(),
m_histograms.at(6).reset(TProfile2D_LW::create((name + "_2D_Profile_ECA").c_str(), (title + ", ECA" + title + " (Profile);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kECC)) {
num_modules = PixMon::kNumLayersDisk * PixMon::kNumModulesDisk;
m_histograms.at(7).reset(TProfile2D_LW::create((name + "_2D_Profile_ECC").c_str(), (title + ", ECC " + title + " (Profile);LB;Module;" + zlabel).c_str(),
m_histograms.at(7).reset(TProfile2D_LW::create((name + "_2D_Profile_ECC").c_str(), (title + ", ECC" + title + " (Profile);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kDBMA)) {
num_modules = PixMon::kNumLayersDBM * PixMon::kNumModulesDBM;
m_histograms.at(8).reset(TProfile2D_LW::create((name + "_2D_Profile_DBMA").c_str(), (title + ", DBMA " + title + " (Profile);LB;Module;" + zlabel).c_str(),
m_histograms.at(8).reset(TProfile2D_LW::create((name + "_2D_Profile_DBMA").c_str(), (title + ", DBMA" + title + " (Profile);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kDBMC)) {
num_modules = PixMon::kNumLayersDBM * PixMon::kNumModulesDBM;
m_histograms.at(9).reset(TProfile2D_LW::create((name + "_2D_Profile_DBMC").c_str(), (title + ", DBMC " + title + " (Profile);LB;Module;" + zlabel).c_str(),
m_histograms.at(9).reset(TProfile2D_LW::create((name + "_2D_Profile_DBMC").c_str(), (title + ", DBMC" + title + " (Profile);LB;Module;" + zlabel).c_str(),
lbRange, -0.5, -0.5 + lbRange,
num_modules, -0.5, -0.5 + num_modules));
}
......@@ -153,8 +153,11 @@ void PixelMon2DLumiProfiles::formatHist() {
}
if (IBL) {
for (unsigned int i = 0; i < PixMon::kNumStavesIBL; ++i) {
for (unsigned int j = 0; j < PixMon::kNumModulesIBL; ++j) {
label = "IBL_" + PixMon::StavesIBL.at(i) + "_" + PixMon::ModulesIBL.at(j);
for (unsigned int j = 0; j < (PixMon::kNumModulesIBL2D + PixMon::kNumModulesIBL3D); ++j) {
label = "IBL_" + PixMon::StavesIBL.at(i) + "_";
if (j<4) label+= PixMon::ModulesIBL3D.at(j);
else if (j>=4 && j<16) label+= PixMon::ModulesIBL2D.at(j-4);
else if (j<20) label+= PixMon::ModulesIBL3D.at(j-PixMon::kNumModulesIBL2D);
IBL->GetYaxis()->SetBinLabel(count, label.c_str());
count++;
}
......
......@@ -22,52 +22,52 @@ PixelMon2DMapsLW::PixelMon2DMapsLW(std::string name, std::string title, const Pi
std::string layertext = ";layer number";
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kIBL)) {
m_histograms.at(0).reset(TH2F_LW::create((name + "_IBL").c_str(), (title + ", IBL " + setatext + phitext).c_str(),
m_histograms.at(0).reset(TH2F_LW::create((name + "_IBL").c_str(), (title + ", IBL" + setatext + phitext).c_str(),
PixMon::kNumModulesIBL, -16.5, -16.5 + PixMon::kNumModulesIBL,
PixMon::kNumStavesIBL, -0.5, -0.5 + PixMon::kNumStavesIBL));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kIBL2D)) {
m_histograms.at(1).reset(TH2F_LW::create((name + "_IBL2D").c_str(), (title + ", IBL planar modules " + setatext + phitext).c_str(),
m_histograms.at(1).reset(TH2F_LW::create((name + "_IBL2D").c_str(), (title + ", IBL planar modules" + setatext + phitext).c_str(),
PixMon::kNumModulesIBL2D, -6.5, -6.5 + PixMon::kNumModulesIBL2D,
PixMon::kNumStavesIBL, -0.5, -0.5 + PixMon::kNumStavesIBL));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kIBL3D)) {
m_histograms.at(2).reset(TH2F_LW::create((name + "_IBL3D").c_str(), (title + ", IBL 3D modules " + etatext + phitext).c_str(),
m_histograms.at(2).reset(TH2F_LW::create((name + "_IBL3D").c_str(), (title + ", IBL 3D modules" + etatext + phitext).c_str(),
PixMon::kNumModulesIBL3D, -0.5, -0.5 + PixMon::kNumModulesIBL3D,
PixMon::kNumStavesIBL, -0.5, -0.5 + PixMon::kNumStavesIBL));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB0)) {
m_histograms.at(3).reset(TH2F_LW::create((name + "_B0").c_str(), (title + ", B0 " + etatext + phitext).c_str(),
m_histograms.at(3).reset(TH2F_LW::create((name + "_B0").c_str(), (title + ", B0" + etatext + phitext).c_str(),
PixMon::kNumModulesBarrel, -6.5, -6.5 + PixMon::kNumModulesBarrel,
PixMon::kNumStavesL0, -0.5, -0.5 + PixMon::kNumStavesL0));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB1)) {
m_histograms.at(4).reset(TH2F_LW::create((name + "_B1").c_str(), (title + ", B1 " + etatext + phitext).c_str(),
m_histograms.at(4).reset(TH2F_LW::create((name + "_B1").c_str(), (title + ", B1" + etatext + phitext).c_str(),
PixMon::kNumModulesBarrel, -6.5, -6.5 + PixMon::kNumModulesBarrel,
PixMon::kNumStavesL1, -0.5, -0.5 + PixMon::kNumStavesL1));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB2)) {
m_histograms.at(5).reset(TH2F_LW::create((name + "_B2").c_str(), (title + ", B2 " + etatext + phitext).c_str(),
m_histograms.at(5).reset(TH2F_LW::create((name + "_B2").c_str(), (title + ", B2" + etatext + phitext).c_str(),
PixMon::kNumModulesBarrel, -6.5, -6.5 + PixMon::kNumModulesBarrel,
PixMon::kNumStavesL2, -0.5, -0.5 + PixMon::kNumStavesL2));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kECA)) {
m_histograms.at(6).reset(TH2F_LW::create((name + "_ECA").c_str(), (title + ", ECA " + disktext + phitext).c_str(),
m_histograms.at(6).reset(TH2F_LW::create((name + "_ECA").c_str(), (title + ", ECA" + disktext + phitext).c_str(),
PixMon::kNumLayersDisk, -0.5, -0.5 + PixMon::kNumLayersDisk,
PixMon::kNumModulesDisk, -0.5, -0.5 + PixMon::kNumModulesDisk));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kECC)) {
m_histograms.at(7).reset(TH2F_LW::create((name + "_ECC").c_str(), (title + ", ECC " + disktext + phitext).c_str(),
m_histograms.at(7).reset(TH2F_LW::create((name + "_ECC").c_str(), (title + ", ECC" + disktext + phitext).c_str(),
PixMon::kNumLayersDisk, -0.5, -0.5 + PixMon::kNumLayersDisk,
PixMon::kNumModulesDisk, -0.5, -0.5 + PixMon::kNumModulesDisk));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kDBMA)) {
m_histograms.at(8).reset(TH2F_LW::create((name + "_DBMA").c_str(), (title + ", DBMA " + layertext + phitext).c_str(),
m_histograms.at(8).reset(TH2F_LW::create((name + "_DBMA").c_str(), (title + ", DBMA" + layertext + phitext).c_str(),
PixMon::kNumLayersDBM, -0.5, -0.5 + PixMon::kNumLayersDBM,
PixMon::kNumModulesDBM, -0.5, -0.5 + PixMon::kNumModulesDBM));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kDBMC)) {
m_histograms.at(9).reset(TH2F_LW::create((name + "_DBMC").c_str(), (title + ", DBMC " + layertext + phitext).c_str(),
m_histograms.at(9).reset(TH2F_LW::create((name + "_DBMC").c_str(), (title + ", DBMC" + layertext + phitext).c_str(),
PixMon::kNumLayersDBM, -0.5, -0.5 + PixMon::kNumLayersDBM,
PixMon::kNumModulesDBM, -0.5, -0.5 + PixMon::kNumModulesDBM));
}
......
......@@ -24,52 +24,52 @@ PixelMon2DProfilesLW::PixelMon2DProfilesLW(std::string name, std::string title,
std::string layertext = ";layer number";
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kIBL)) {
m_histograms.at(0).reset(TProfile2D_LW::create((name + "_IBL").c_str(), (title + ", IBL " + setatext + phitext).c_str(),
m_histograms.at(0).reset(TProfile2D_LW::create((name + "_IBL").c_str(), (title + ", IBL" + setatext + phitext).c_str(),
PixMon::kNumModulesIBL, -16.5, -16.5 + PixMon::kNumModulesIBL,
PixMon::kNumStavesIBL, -0.5, -0.5 + PixMon::kNumStavesIBL));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kIBL2D)) {
m_histograms.at(1).reset(TProfile2D_LW::create((name + "_IBL2D").c_str(), (title + ", IBL planar modules " + setatext + phitext).c_str(),
m_histograms.at(1).reset(TProfile2D_LW::create((name + "_IBL2D").c_str(), (title + ", IBL planar modules" + setatext + phitext).c_str(),
PixMon::kNumModulesIBL2D, -6.5, -6.5 + PixMon::kNumModulesIBL2D,
PixMon::kNumStavesIBL, -0.5, -0.5 + PixMon::kNumStavesIBL));
}
if (m_doIBL && PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kIBL3D)) {
m_histograms.at(2).reset(TProfile2D_LW::create((name + "_IBL3D").c_str(), (title + ", IBL 3D modules " + etatext + phitext).c_str(),
m_histograms.at(2).reset(TProfile2D_LW::create((name + "_IBL3D").c_str(), (title + ", IBL 3D modules" + etatext + phitext).c_str(),
PixMon::kNumModulesIBL3D, -.5, -.5 + PixMon::kNumModulesIBL3D,
PixMon::kNumStavesIBL, -0.5, -0.5 + PixMon::kNumStavesIBL));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB0)) {
m_histograms.at(3).reset(TProfile2D_LW::create((name + "_B0").c_str(), (title + ", B0 " + etatext + phitext).c_str(),
m_histograms.at(3).reset(TProfile2D_LW::create((name + "_B0").c_str(), (title + ", B0" + etatext + phitext).c_str(),
PixMon::kNumModulesBarrel, -6.5, -6.5 + PixMon::kNumModulesBarrel,
PixMon::kNumStavesL0, -0.5, -0.5 + PixMon::kNumStavesL0));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB1)) {
m_histograms.at(4).reset(TProfile2D_LW::create((name + "_B1").c_str(), (title + ", B1 " + etatext + phitext).c_str(),
m_histograms.at(4).reset(TProfile2D_LW::create((name + "_B1").c_str(), (title + ", B1" + etatext + phitext).c_str(),
PixMon::kNumModulesBarrel, -6.5, -6.5 + PixMon::kNumModulesBarrel,
PixMon::kNumStavesL1, -0.5, -0.5 + PixMon::kNumStavesL1));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kB2)) {
m_histograms.at(5).reset(TProfile2D_LW::create((name + "_B2").c_str(), (title + ", B2 " + etatext + phitext).c_str(),
m_histograms.at(5).reset(TProfile2D_LW::create((name + "_B2").c_str(), (title + ", B2" + etatext + phitext).c_str(),
PixMon::kNumModulesBarrel, -6.5, -6.5 + PixMon::kNumModulesBarrel,
PixMon::kNumStavesL2, -0.5, -0.5 + PixMon::kNumStavesL2));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kECA)) {
m_histograms.at(6).reset(TProfile2D_LW::create((name + "_ECA").c_str(), (title + ", ECA " + disktext + phitext).c_str(),
m_histograms.at(6).reset(TProfile2D_LW::create((name + "_ECA").c_str(), (title + ", ECA" + disktext + phitext).c_str(),
PixMon::kNumLayersDisk, -0.5, -0.5 + PixMon::kNumLayersDisk,
PixMon::kNumModulesDisk, -0.5, -0.5 + PixMon::kNumModulesDisk));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kECC)) {
m_histograms.at(7).reset(TProfile2D_LW::create((name + "_ECC").c_str(), (title + ", ECC " + disktext + phitext).c_str(),
m_histograms.at(7).reset(TProfile2D_LW::create((name + "_ECC").c_str(), (title + ", ECC" + disktext + phitext).c_str(),
PixMon::kNumLayersDisk, -0.5, -0.5 + PixMon::kNumLayersDisk,
PixMon::kNumModulesDisk, -0.5, -0.5 + PixMon::kNumModulesDisk));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kDBMA)) {
m_histograms.at(8).reset(TProfile2D_LW::create((name + "_DBMA").c_str(), (title + ", DBMA " + layertext + phitext).c_str(),
m_histograms.at(8).reset(TProfile2D_LW::create((name + "_DBMA").c_str(), (title + ", DBMA" + layertext + phitext).c_str(),
PixMon::kNumLayersDBM, -0.5, -0.5 + PixMon::kNumLayersDBM,
PixMon::kNumModulesDBM, -0.5, -0.5 + PixMon::kNumModulesDBM));
}
if (PixMon::HasComponent(m_config, PixMon::LayerIBL2D3DDBM::kDBMC)) {
m_histograms.at(9).reset(TProfile2D_LW::create((name + "_DBMC").c_str(), (title + ", DBMC " + layertext + phitext).c_str(),
m_histograms.at(9).reset(TProfile2D_LW::create((name + "_DBMC").c_str(), (title + ", DBMC" + layertext + phitext).c_str(),
PixMon::kNumLayersDBM, -0.5, -0.5 + PixMon::kNumLayersDBM,
PixMon::kNumModulesDBM, -0.5, -0.5 + PixMon::kNumModulesDBM));
}
......
......@@ -44,7 +44,7 @@ StatusCode PixelMainMon::bookStatusMon(void) {
sc = m_status->regHist(statusHistos);
m_status->setMaxValue(2.0);
m_status_mon = std::make_unique<PixelMon2DProfilesLW>(PixelMon2DProfilesLW("Map_Of_Modules_Status_Mon", ("Modules Status (0=Active+Good, 1=Active+Bad, 2=Inactive) for monitoring" + m_histTitleExt).c_str(), PixMon::HistConf::kPixIBL2D3D, true));
m_status_mon = std::make_unique<PixelMon2DProfilesLW>(PixelMon2DProfilesLW("Map_Of_Modules_Status_Mon", ("Modules Status Reset (0=Active+Good, 1=Active+Bad, 2=Inactive)" + m_histTitleExt).c_str(), PixMon::HistConf::kPixIBL2D3D, true));
sc = m_status_mon->regHist(statusHistos);
m_status_mon->setMaxValue(2.0);
......@@ -67,20 +67,20 @@ StatusCode PixelMainMon::bookStatusMon(void) {
for (int i = 0; i < PixLayerIBL2D3D::COUNT; i++) {
tmp = makeHistname(("BadModules_per_lumi_" + modlabel[i]), false);
tmp2 = makeHisttitle(("Number of bad modules (bad+active) per event per LB, " + modlabel[i]), (atext_LB + atext_nmod), false);
sc = statusHistos.regHist(m_badModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atext_LB + atext_nmod).c_str(), nbins_LB, min_LB, max_LB));
sc = statusHistos.regHist(m_badModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt).c_str(), nbins_LB, min_LB, max_LB));
tmp = makeHistname(("DisabledModules_per_lumi_" + modlabel[i]), false);
tmp2 = makeHisttitle(("Number of disabled modules per event per LB, " + modlabel[i]), (atext_LB + atext_nmod), false);
sc = statusHistos.regHist(m_disabledModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atext_LB + atext_nmod).c_str(), nbins_LB, min_LB, max_LB));
sc = statusHistos.regHist(m_disabledModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt).c_str(), nbins_LB, min_LB, max_LB));
tmp = makeHistname(("BadDisabledModules_per_lumi_" + modlabel[i]), false);
tmp2 = makeHisttitle(("Number of disabled & bad modules per event per LB, " + modlabel[i]), (atext_LB + atext_nmod), false);
sc = statusHistos.regHist(m_baddisabledModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atext_LB + atext_nmod).c_str(), nbins_LB, min_LB, max_LB));
sc = statusHistos.regHist(m_baddisabledModules_per_lumi_mod[i] = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt).c_str(), nbins_LB, min_LB, max_LB));
}
tmp = makeHistname("DisabledModules_per_lumi_PIX", false);
tmp2 = makeHisttitle("Number of disabled modules per event per LB for Pixel barrel", (atext_LB + atext_nmod), false);
sc = statusHistos.regHist(m_disabledModules_per_lumi_PIX = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt + atext_LB + atext_nmod).c_str(), nbins_LB, min_LB, max_LB));
sc = statusHistos.regHist(m_disabledModules_per_lumi_PIX = TProfile_LW::create(tmp.c_str(), (tmp2 + m_histTitleExt).c_str(), nbins_LB, min_LB, max_LB));
}
if (sc.isFailure()) {
......