Skip to content
Snippets Groups Projects
Commit 861b7513 authored by Nikita Belyaev's avatar Nikita Belyaev
Browse files

InDetTrackSummaryTool workaround added

parent 9a5f512b
No related merge requests found
Showing
with 1535 additions and 630 deletions
......@@ -75,7 +75,6 @@ private:
const ComTime* comTimeObject) const;
StatusCode fillTRTHighThreshold(const xAOD::TrackParticleContainer& trackCollection,
const xAOD::EventInfo& eventInfo) const;
StatusCode fillTRTEfficiency(const TrackCollection& combTrackCollection) const;
int strawLayerNumber(int strawLayerNumber, int LayerNumber) const;
......@@ -111,12 +110,10 @@ private:
SG::ReadHandleKey<xAOD::EventInfo> m_xAODEventInfoKey{this, "xAODEventInfo", "EventInfo", "Name of EventInfo object"};
SG::ReadHandleKey<InDetTimeCollection> m_TRT_BCIDCollectionKey{this, "TRTBCIDCollectionName", "TRT_BCID", "Name of TRT BCID collection"};
SG::ReadHandleKey<ComTime> m_comTimeObjectKey{this, "ComTimeObjectName", "TRT_Phase", "Name of ComTime object"};
SG::ReadHandleKey<TrackCollection> m_combTrackCollectionKey{this, "track_collection_hole_finder", "CombinedInDetTracks", "Name of tracks container used for hole finder"};
SG::ReadHandleKey<xAOD::TrigDecision> m_trigDecisionKey{this, "TrigDecisionObjectName", "xTrigDecision", "Name of trigger decision object"};
// Tools
ToolHandle<Trk::ITrackSummaryTool> m_TrackSummaryTool{this, "TrackSummaryTool", "InDetTrackSummaryTool", "Track summary tool name"};
ToolHandle<Trk::ITrackHoleSearchTool> m_trt_hole_finder{this, "trt_hole_search", "TRTTrackHoleSearchTool", "Track hole search tool name"};
ToolHandle<ITRT_DriftFunctionTool> m_drifttool;
const TRT_ID* m_pTRTHelper;
......@@ -127,25 +124,19 @@ private:
bool m_doChips;
bool m_doShift;
bool m_doExpert;
bool m_doEfficiency;
bool m_useHoleFinder;
unsigned char m_mat_chip_B[64][1642];
unsigned char m_mat_chip_E[64][3840];
float m_DistToStraw;
bool m_isCosmics;
int m_minTRThits;
float m_minP;
int m_min_si_hits;
int m_min_pixel_hits;
int m_min_sct_hits;
int m_min_trt_hits;
int m_every_xth_track;
float m_max_abs_eta;
float m_max_abs_d0;
float m_max_abs_z0;
int m_minTRThits;
float m_minP;
float m_min_pT;
......
......@@ -73,6 +73,10 @@ private:
bool m_doRDOsMon;
bool m_doShift;
bool m_doMaskStraws;
bool m_doEfficiency;
bool m_useHoleFinder;
bool m_doTracksMon;
float m_DistToStraw;
bool m_ArgonXenonSplitter;
......@@ -80,10 +84,24 @@ private:
int m_evtLumiBlock;
float m_longToTCut;
int m_min_si_hits;
int m_min_pixel_hits;
int m_min_sct_hits;
int m_min_trt_hits;
int m_minTRThits;
int m_every_xth_track;
float m_max_abs_d0;
float m_max_abs_z0;
float m_max_abs_eta;
float m_minP;
float m_min_pT;
StatusCode fillTRTRDOs(const TRT_RDO_Container& rdoContainer,
const xAOD::EventInfo& eventInfo,
const InDetTimeCollection* trtBCIDCollection) const;
StatusCode fillTRTEfficiency(const TrackCollection& combTrackCollection) const;
StatusCode fillHits(const TrackCollection& trackCollection) const;
int chipToBoard(int chip) const;
int chipToBoard_EndCap(int chip) const;
StatusCode checkTRTReadoutIntegrity(const xAOD::EventInfo& eventInfo) const;
......@@ -91,17 +109,24 @@ private:
int strawNumberEndCap(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const;
int strawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const;
int strawLayerNumber(int strawLayerNumber, int LayerNumber) const;
float radToDegrees(float radValue) const;
// Services
ServiceHandle<IToolSvc> p_toolSvc;
ToolHandle<ITRT_StrawStatusSummaryTool> m_sumTool;
ServiceHandle<ITRT_ByteStream_ConditionsSvc> m_BSSvc;
ToolHandle<ITRT_CalDbTool> m_TRTCalDbTool;
// Data handles
SG::ReadHandleKey<TRT_RDO_Container> m_rdoContainerKey{this, "TRTRawDataObjectName", "TRT_RDOs", "Name of TRT RDOs container"};
SG::ReadHandleKey<InDetTimeCollection> m_TRT_BCIDCollectionKey{this, "TRTBCIDCollectionName", "TRT_BCID", "Name of TRT BCID collection"};
SG::ReadHandleKey<xAOD::EventInfo> m_xAODEventInfoKey{this, "xAODEventInfo", "EventInfo", "Name of EventInfo object"};
//SG::ReadHandleKey<xAOD::TrigDecision> m_trigDecisionKey{this, "TrigDecisionObjectName", "xTrigDecision", "Name of trigger decision object"};
SG::ReadHandleKey<TrackCollection> m_combTrackCollectionKey{this, "track_collection_hole_finder", "CombinedInDetTracks", "Name of tracks container used for hole finder"};
SG::ReadHandleKey<TrackCollection> m_trackCollectionKey{this, "TRTTracksObjectName", "Tracks", "Name of tracks container"};
// Tools
ToolHandle<Trk::ITrackHoleSearchTool> m_trt_hole_finder{this, "trt_hole_search", "TRTTrackHoleSearchTool", "Track hole search tool name"};
ToolHandle<Trk::ITrackSummaryTool> m_TrackSummaryTool{this, "TrackSummaryTool", "InDetTrackSummaryTool", "Track summary tool name"};
ToolHandle<ITRT_DriftFunctionTool> m_drifttool;
//Deciphers status HT to GasType Enumerator
inline GasType Straw_Gastype(int stat) const {
......@@ -122,7 +147,8 @@ private:
return Gas;
}
int m_EventBurstCut;
bool m_isCosmics;
int m_EventBurstCut;
};
#endif
......@@ -10,8 +10,9 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
'AlgTRTMonitoringRun3RAW')
from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
maxLumiBlock = 200
numberOfBarrelStacks = 32
numberOfStacks = (32, 32)
moduleNum = (96, 64)
iChipMax = (104, 240)
......@@ -110,6 +111,41 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
rdoLLHLOccGroup.defineHistogram('AvgLLOcc_side_x,AvgLLOcc_side_y;hAvgLLOcc_{0}'.format(regionMarker),type='TProfile',title='Avg. LL Occupancy{0};{1};Occupancy'.format(regionTag,stackOrSector[ibe]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=1,xmax=33)
rdoLLHLOccGroup.defineHistogram('AvgLLOccMod_side_x,AvgLLOccMod_side_y;hAvgLLOccMod_{0}'.format(regionMarker),type='TProfile',title='Avg. LL Occupancy: {0}s{1};{2};Occupancy'.format(moduleOrWheel[ibe],regionTag,moduleNumAssign[ibe]),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=moduleNum[ibe],xmin=0,xmax=moduleNum[ibe])
rdoLLHLOccGroup.defineHistogram('AvgHLOccMod_side_x,AvgHLOccMod_side_y;hAvgHLOccMod_{0}'.format(regionMarker),type='TProfile',title='Avg. HL Occupancy: {0}s{1};{2};Occupancy'.format(moduleOrWheel[ibe],regionTag,moduleNumAssign[ibe]),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=moduleNum[ibe],xmin=0,xmax=moduleNum[ibe])
effGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistograms')
effGroup.defineHistogram('Efficiency_eta_passed,Efficiency_eta;hefficiency_eta',type='TEfficiency',title='Efficiency vs #eta;#eta;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.8,xmax=2.8,duration='run')
effGroup.defineHistogram('Efficiency_phi_passed,Efficiency_phi;hefficiency_phi',type='TEfficiency',title='Efficiency vs #phi;#phi (deg);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-3.2,xmax=3.2,duration='run')
effGroup.defineHistogram('Efficiency_pt_passed,Efficiency_pt;hefficiency_pt',type='TEfficiency',title='Efficiency vs pT;pT (GeV);Efficiency',path='TRT/Efficiency',xbins=50,xmin=0,xmax=10,duration='run')
effGroup.defineHistogram('Efficiency_z0_passed,Efficiency_z0;hefficiency_z0',type='TEfficiency',title='Efficiency vs z0;z0;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-200,xmax=200,duration='run')
effGroup.defineHistogram('EfficiencyBarrel_locR_passed,EfficiencyBarrel_locR;hefficiencyBarrel_locR',type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Xenon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5,duration='run')
effGroup.defineHistogram('EfficiencyBarrel_locR_Ar_passed,EfficiencyBarrel_locR_Ar;hefficiencyBarrel_locR_Ar',type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Argon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5,duration='run')
effBarrelGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsBarrel')
effBarrelGroup.defineHistogram('EfficiencyBarrelMap_passed,EfficiencyBarrelMap;hEfficiencyBarrelMap',type='TEfficiency',title='Straw Efficiency Map (Barrel);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[0],xmin=0,xmax=strawMax[0],duration='run')
effEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsEndCap')
effEndcapGroup.defineHistogram('EfficiencyEndCapMap_passed,EfficiencyEndCapMap;hEfficiencyEndCapMap',type='TEfficiency',title='Straw Efficiency Map (Endcap);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[1],xmin=0,xmax=strawMax[1],duration='run')
for iside in range(2):
effTRTEndcapACGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsEndCap{0}'.format(iside))
regionTag = ' (' + beId[1] + sideId[iside] + ')'
effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_passed,EfficiencyEndCap_locR;hEfficiencyEndCap{0}_locR'.format(sideId[iside]),type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Xenon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5,duration='run')
effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_Ar_passed,EfficiencyEndCap_locR_Ar;hEfficiencyEndCap{0}_locR_Ar'.format(sideId[iside]),type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Argon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5,duration='run')
for ibe in range(2):
for iside in range(2):
regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
imintmp = numberOfBarrelStacks*iside
imaxtmp = numberOfBarrelStacks*(iside + 1)
for i in range(imintmp,imaxtmp):
if ibe == 0:
oss = 'TRT/Barrel/Stack' + str(i + 1 - 32*iside) + str(sideId[iside])
elif ibe == 1:
oss = 'TRT/Endcap' + str(sideId[iside]) + '/Sector' + str(i + 1 - 32*iside)
effStrawChipGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistograms{0}{1}'.format(ibe,i))
effStrawChipGroup.defineHistogram('EfficiencyS_passed,EfficiencyS;hHitEfficiencyS',type='TEfficiency',title='Straw Efficiency Map;Straw Number;Efficiency',path=oss,xbins=strawMax[ibe],xmin=0.5,xmax=strawMax[ibe],duration='run')
effStrawChipGroup.defineHistogram('EfficiencyC_passed,EfficiencyC;hHitEfficiencyC',type='TEfficiency',title='Chip Efficiency Map;Chip Number;Efficiency', path=oss,xbins=iChipMax[ibe],xmin=0.5,xmax=iChipMax[ibe],duration='run')
### Finished Booking TRT RDO Histograms ###
return helper.result()
#
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
#
'''@file TrackingConfigurationWorkaround.py
@author Peter Onyisi
@date 2019-12-17
@brief Centralize the DQ workarounds for setting up ID tracking tools in new-style config, until this is provided centrally
'''
def TrackSummaryToolWorkaround(flags):
from AthenaConfiguration.ComponentFactory import CompFactory
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
result = ComponentAccumulator()
############################## WORKAROUND (START) ##########################
############################## TO RUN TRACKSUMMARYTOOL #####################
# Taken from InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfigNew.py
from PixelConditionsAlgorithms.PixelConditionsConfig import PixelConfigCondAlgCfg
result.merge(PixelConfigCondAlgCfg(flags,
UseCalibConditions=True,
UseDeadmapConditions=True,
UseDCSStateConditions=False,
UseDCSStatusConditions=False,
UseDCSHVConditions=True,
UseDCSTemperatureConditions=True,
UseTDAQConditions=False))
from PixelConditionsTools.PixelConditionsSummaryConfig import PixelConditionsSummaryCfg
InDetPixelConditionsSummaryTool = result.popToolsAndMerge(PixelConditionsSummaryCfg(flags))
# Taken from Tracking/TrkConfig/python/AtlasExtrapolatorConfig.py
# AtlasExtrapolatorConfig can give only private extrapolator. We need public extrapolator.
from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg
trackGeomCfg = TrackingGeometrySvcCfg(flags)
geom_svc = trackGeomCfg.getPrimary()
geom_svc.GeometryBuilder.Compactify = False ######## To avoid crash ########
result.merge(trackGeomCfg)
from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
result.merge(MagneticFieldSvcCfg(flags))
AtlasNavigator = CompFactory.Trk.Navigator(name = 'AtlasNavigator')
AtlasNavigator.TrackingGeometrySvc = geom_svc
result.addPublicTool(AtlasNavigator)
# Taken from InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py
InDetPropagator = CompFactory.Trk.RungeKuttaPropagator(name = 'InDetPropagator')
InDetPropagator.AccuracyParameter = 0.0001
InDetPropagator.MaxStraightLineStep = .004
result.addPublicTool(InDetPropagator)
InDetMaterialUpdator = CompFactory.Trk.MaterialEffectsUpdator(name = "InDetMaterialEffectsUpdator")
result.addPublicTool(InDetMaterialUpdator)
InDetSubPropagators = []
InDetSubUpdators = []
# -------------------- set it depending on the geometry ----------------------------------------------------
# default for ID is (Rk,Mat)
InDetSubPropagators += [ InDetPropagator.name ]
InDetSubUpdators += [ InDetMaterialUpdator.name ]
# default for Calo is (Rk,MatLandau)
InDetSubPropagators += [ InDetPropagator.name ]
InDetSubUpdators += [ InDetMaterialUpdator.name ]
# default for MS is (STEP,Mat)
#InDetSubPropagators += [ InDetStepPropagator.name ]
InDetSubUpdators += [ InDetMaterialUpdator.name ]
#from TrkExTools.TrkExToolsConf import Trk__Extrapolator
InDetExtrapolator = CompFactory.Trk.Extrapolator(name = 'InDetExtrapolator',
Propagators = [ InDetPropagator ],
MaterialEffectsUpdators = [ InDetMaterialUpdator ],
Navigator = AtlasNavigator,
SubPropagators = InDetSubPropagators,
SubMEUpdators = InDetSubUpdators)
result.addPublicTool(InDetExtrapolator)
InDetTestPixelLayerTool = CompFactory.InDet.InDetTestPixelLayerTool(name = "InDetTestPixelLayerTool",
PixelSummaryTool = InDetPixelConditionsSummaryTool,
CheckActiveAreas=True,
CheckDeadRegions=True,
CheckDisabledFEs=True)
result.addPublicTool(InDetTestPixelLayerTool)
InDetHoleSearchTool = CompFactory.InDet.InDetTrackHoleSearchTool(name = "InDetHoleSearchTool",
Extrapolator = InDetExtrapolator,
PixelSummaryTool = InDetPixelConditionsSummaryTool,
usePixel = flags.Detector.GeometryPixel,
useSCT = flags.Detector.GeometrySCT,
CountDeadModulesAfterLastHit = True,
PixelLayerTool = InDetTestPixelLayerTool)
result.addPublicTool(InDetHoleSearchTool)
InDetPrdAssociationTool = CompFactory.InDet.InDetPRD_AssociationToolGangedPixels(name = "InDetPrdAssociationTool",
PixelClusterAmbiguitiesMapName = "PixelClusterAmbiguitiesMap",
SetupCorrect = True,
addTRToutliers = True)
result.addPublicTool(InDetPrdAssociationTool)
InDetTrackSummaryHelperTool = CompFactory.InDet.InDetTrackSummaryHelperTool(name = "InDetSummaryHelper",
AssoTool = InDetPrdAssociationTool,
PixelToTPIDTool = None,
TestBLayerTool = None,
RunningTIDE_Ambi = True,
DoSharedHits = False,
HoleSearch = InDetHoleSearchTool,
usePixel = flags.Detector.GeometryPixel,
useSCT = flags.Detector.GeometrySCT,
useTRT = flags.Detector.GeometryTRT)
InDetTrackSummaryTool = CompFactory.Trk.TrackSummaryTool(name = "InDetTrackSummaryTool",
InDetSummaryHelperTool = InDetTrackSummaryHelperTool,
doSharedHits = False,
doHolesInDet = True,
TRT_ElectronPidTool = None,
TRT_ToT_dEdxTool = None,
PixelToTPIDTool = None)
result.setPrivateTools(InDetTrackSummaryTool)
############################## WORKAROUND (END) ############################
return result
#
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
#
OutputLevel = DEBUG
from AthenaMonitoring import AthMonitorCfgHelperOld as AthMonitorCfgHelper
helper = AthMonitorCfgHelper(DQMonFlags, 'TRTMonitoringCfg')
from AthenaConfiguration.ComponentFactory import CompFactory
algTRTMonitoringRun3RAW = helper.addAlgorithm(CompFactory.TRTMonitoringRun3RAW_Alg,
'AlgTRTMonitoringRun3RAW')
from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
algTRTMonitoringRun3RAW.TrackSummaryTool = InDetTrackSummaryTool
maxLumiBlock = 200
numberOfBarrelStacks = 32
distToStraw = 0.4
numberOfStacks = (32, 32)
moduleNum = (96, 64)
iChipMax = (104, 240)
strawMax = (1642, 3840)
moduleOrWheel = ('Module', 'Wheel')
barrelOrEndcap = ('Barrel', 'EndCap')
beId = ('B', 'E')
sideId = ('A', 'C')
stackOrSector = ('Barrel Stack', 'Endcap Sector')
moduleNumAssign = ( 'Modules Type 1 (1-32), Type 2 (33-64), Type 3 (65-96)', 'Wheels A (1-32), B (33-64)')
### Booking TRT RDO Histograms ###
# ibe = 0 (Barrel), ibe = 1 (Endcap)
for ibe in range(2):
for i in range(numberOfStacks[ibe]*2):
rdoStackGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOStackHistograms{0}{1}'.format(ibe,i))
if ibe == 0:
if i < numberOfStacks[ibe]:
oss = 'TRT/Barrel/Stack' + str(i + 1) + 'A'
elif i >= numberOfStacks[ibe]:
oss = 'TRT/Barrel/Stack' + str(i + 1 - 32) + 'C'
elif ibe == 1:
if i < numberOfStacks[ibe]:
oss = 'TRT/EndcapA/Sector' + str(i + 1)
elif i >= numberOfStacks[ibe]:
oss = 'TRT/EndcapC/Sector' + str(i + 1 - 32)
rdoStackGroup.defineHistogram('HitWMapS_passed,HitWMapS;hHitWMapS',type='TEfficiency',title='Leading Edge in Time Window: Straws;Straw Number in Stack;Probability per Event',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitTrWMapS_x,HitTrWMapS_y;hHitTrWMapS',type='TProfile',title='Mean Trailing Edge in Time Window: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitTrMapS_x,HitTrMapS_y;hHitTrMapS',type='TProfile',title='Mean Trailing Edge: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitAWMapS_passed,HitAWMapS;hHitAWMapS',type='TEfficiency',title='LL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitAMapS_passed,HitAMapS;hHitAMapS',type='TEfficiency',title='Any LL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('StrawOcc_passed,StrawOcc;hOccupancyS',type='TEfficiency',title='Straw Occupancy Distribution: Straws;Occupancy;Number of Straws',path=oss,xbins=201,xmin=0,xmax=1.005)
rdoStackGroup.defineHistogram('HitToTMapS_x,HitToTMapS_y;hHitToTMapS',type='TProfile',title='Mean ToT: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitToTLongMapS_x,HitToTLongMapS_y;hHitToTLongMapS',type='TProfile',title='Mean ToT for Straws with ToT > LongToTCut: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitToTLongTrMapS_x,HitToTLongTrMapS_y;hHitToTLongTrMapS',type='TProfile',title='Mean Trailing Edge for Straws with ToT > LongToTCut: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitHMapS_passed,HitHMapS;hHitHMapS',type='TEfficiency',title='Any HL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitHWMapS_passed,HitHWMapS;hHitHWMapS',type='TEfficiency',title='HL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HtoLMapS_passed,HtoLMapS;hHtoLMapS',type='TEfficiency',title='HL/LL Ratio: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoStackGroup.defineHistogram('HitWMapC_passed,HitWMapC;hHitWMapC',type='TEfficiency',title='Leading Edge in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('HitTrMapC_x,HitTrMapC_y;hHitTrMapC',type='TProfile',title='Mean Trailing Edge: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('HitTrWMapC_x,HitTrWMapC_y;hHitTrWMapC',type='TProfile',title='Mean Trailing Edge in Time Window: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('HitAWMapC_passed,HitAWMapC;hHitAWMapC',type='TEfficiency',title='LL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('HitAMapC_passed,HitAMapC;hHitAMapC',type='TEfficiency',title='Any LL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('OccupancyC_passed,OccupancyC;hChipOcc',type='TEfficiency',title='Chip Occupancy Distribution;Occupancy;Number of Chips',path=oss,xbins=201,xmin=0,xmax=1.005)
rdoStackGroup.defineHistogram('HitToTMapC_x,HitToTMapC_y;hHitToTMapC',type='TProfile',title='Mean ToT: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('HitHMapC_passed,HitHMapC;hHitHMapC',type='TEfficiency',title='Any HL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('HitHWMapC_passed,HitHWMapC;hHitHWMapC',type='TEfficiency',title='HL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('HtoLMapC_passed,HtoLMapC;hHtoLMapC',type='TEfficiency',title='HL/LL Ratio: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
rdoStackGroup.defineHistogram('HtoBCMapC_x,HtoBCMapC_y;hHtoBCMapC',type='TH2F',title='HL in BC: Chips;Bunch Crossing ID;Chip Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=iChipMax[ibe],ymin=0,ymax=iChipMax[ibe])
if ibe == 0: rdoStackGroup.defineHistogram('HtoBCMapB_x,HtoBCMapB_y;hHtoBCMapB',type='TH2F',title='HL in BC: Boards;Bunch Crossing ID;Board Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=9,ymin=0,ymax=9)
elif ibe == 1: rdoStackGroup.defineHistogram('HtoBCMapB_x,HtoBCMapB_y;hHtoBCMapB',type='TH2F',title='HL in BC: Boards;Bunch Crossing ID;Board Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=20,ymin=-0.5,ymax=19.5)
### Registering Collisions Histograms ###
rdoShiftSmryGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftSmryHistograms')
sumLabels = ['Events', 'Tracks Total', 'Tracks BA', 'Tracks BA', 'Tracks BC', 'Tracks EA', 'Tracks EC', 'Transition Side A', 'Transition Side C']
rdoShiftSmryGroup.defineHistogram('Summary;hSummary',weight='SummaryWeight',type='TH1F',title='Run Summary;;Entries',path='TRT/Shift/Summary',xbins=8,xmin=0,xmax=8,xlabels=sumLabels)
# Lumi summary histograms
rdoShiftSmryGroup.defineHistogram('IntLum_passed,IntLum;IntLum',type='TEfficiency',title='Luminosity;;Luminosity [#mub^{1}]',path='TRT/Shift/Summary',xbins=1,xmin=0.,xmax=1.)
rdoShiftSmryGroup.defineHistogram('LBvsLum_passed,LBvsLum;LBvsLum',type='TEfficiency',title='Luminosity;Luminosity Bin;Luminosity [#mub^{1}]',path='TRT/Shift/Summary',xbins=2000,xmin=0.,xmax=2000.)
rdoShiftSmryGroup.defineHistogram('LBvsTime_passed,LBvsTime;LBvsTime',type='TEfficiency',title='Time;Luminosity Bin;Time [s]',path='TRT/Shift/Summary',xbins=2000,xmin=0.,xmax=2000.)
for ibe in range(2):
for iside in range(2):
rdoShiftSmryRebinnedGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftSmryRebinnedHistograms{0}{1}'.format(ibe,iside))
regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
rdoShiftSmryRebinnedGroup.defineHistogram('ChipBSErrorsVsLB_x,ChipBSErrorsVsLB_y;hChipBSErrorsVsLB{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Chip Bytestream Errors vs LB{0};Luminosity Block;Fraction of Chips with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlock + 1,xmin=-0.5,xmax=maxLumiBlock + 0.5)
#CAN_REBIN(m_hChipBSErrorsVsLB[ibe][iside]);
rdoShiftSmryRebinnedGroup.defineHistogram('RobBSErrorsVsLB_x,RobBSErrorsVsLB_y;hRobBSErrorsVsLB{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Rob Bytestream Errors vs LB{0};Luminosity Block;Fraction of RODs with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlock + 1,xmin=-0.5,xmax=maxLumiBlock + 0.5)
#CAN_REBIN(m_hRobBSErrorsVsLB[ibe][iside]);
# Barrel/Endcap Histograms
for ibe in range(2):
regionTag = ' (' + barrelOrEndcap[ibe] + ')'
rdoGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOHistograms{0}'.format(ibe))
rdoGroup.defineHistogram('BCIDvsOcc_x,BCIDvsOcc_y;hBCIDvsOcc',type='TProfile',title='Avg. Occupancy vs BCID{0};Bunch Crossing ID;Occupancy'.format(regionTag),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=3564,xmin=0,xmax=3564)
if ibe == 0:
rdoGroup.defineHistogram('HitWMap_passed,HitWMap;hHitWMap',type='TEfficiency',title='Leading Edge in Time Window: Xenon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(str(barrelOrEndcap[ibe])),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoGroup.defineHistogram('HitWMap_Ar_passed,HitWMap_Ar;hHitWMap_Ar',type='TEfficiency',title='Leading Edge in Time Window: Argon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoGroup.defineHistogram('OccAll_passed,OccAll;hOccAll',type='TEfficiency',title='Occupancy per Event;Occupancy;Events',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=400,xmin=0.0,xmax=1.0)
elif ibe == 1:
for iside in range(2):
side = ('A', 'C')
rdoEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOHistograms1{0}'.format(iside))
rdoEndcapGroup.defineHistogram('HitWMap_passed,HitWMap;hHitWMap_{0}'.format(side[iside]),type='TEfficiency',title='Leading Edge in Time Window: Xenon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
rdoEndcapGroup.defineHistogram('HitWMap_Ar_passed,HitWMap_Ar;hHitWMap_Ar_{0}'.format(side[iside]),type='TEfficiency',title='Leading Edge in Time Window: Argon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
for iside in range(2):
regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
regionMarker = (beId[ibe] + sideId[iside]) if athenaCommonFlags.isOnline is True else (sideId[iside]) # for historical reasons...
rdoLLHLOccGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOLLHLOccHistograms{0}{1}'.format(ibe,iside))
rdoLLHLOccGroup.defineHistogram('AvgHLOcc_side_x,AvgHLOcc_side_y;hAvgHLOcc_{0}'.format(regionMarker),type='TProfile',title='Avg. HL Occupancy{0};{1};Occupancy'.format(regionTag,stackOrSector[ibe]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=1,xmax=33)
rdoLLHLOccGroup.defineHistogram('AvgLLOcc_side_x,AvgLLOcc_side_y;hAvgLLOcc_{0}'.format(regionMarker),type='TProfile',title='Avg. LL Occupancy{0};{1};Occupancy'.format(regionTag,stackOrSector[ibe]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=1,xmax=33)
rdoLLHLOccGroup.defineHistogram('AvgLLOccMod_side_x,AvgLLOccMod_side_y;hAvgLLOccMod_{0}'.format(regionMarker),type='TProfile',title='Avg. LL Occupancy: {0}s{1};{2};Occupancy'.format(moduleOrWheel[ibe],regionTag,moduleNumAssign[ibe]),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=moduleNum[ibe],xmin=0,xmax=moduleNum[ibe])
rdoLLHLOccGroup.defineHistogram('AvgHLOccMod_side_x,AvgHLOccMod_side_y;hAvgHLOccMod_{0}'.format(regionMarker),type='TProfile',title='Avg. HL Occupancy: {0}s{1};{2};Occupancy'.format(moduleOrWheel[ibe],regionTag,moduleNumAssign[ibe]),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=moduleNum[ibe],xmin=0,xmax=moduleNum[ibe])
effGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistograms')
effGroup.defineHistogram('Efficiency_eta_passed,Efficiency_eta;hefficiency_eta',type='TEfficiency',title='Efficiency vs #eta;#eta;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.8,xmax=2.8)
effGroup.defineHistogram('Efficiency_phi_passed,Efficiency_phi;hefficiency_phi',type='TEfficiency',title='Efficiency vs #phi;#phi (deg);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-3.2,xmax=3.2)
effGroup.defineHistogram('Efficiency_pt_passed,Efficiency_pt;hefficiency_pt',type='TEfficiency',title='Efficiency vs pT;pT (GeV);Efficiency',path='TRT/Efficiency',xbins=50,xmin=0,xmax=10)
effGroup.defineHistogram('Efficiency_z0_passed,Efficiency_z0;hefficiency_z0',type='TEfficiency',title='Efficiency vs z0;z0;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-200,xmax=200)
effGroup.defineHistogram('EfficiencyBarrel_locR_passed,EfficiencyBarrel_locR;hefficiencyBarrel_locR',type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Xenon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
effGroup.defineHistogram('EfficiencyBarrel_locR_Ar_passed,EfficiencyBarrel_locR_Ar;hefficiencyBarrel_locR_Ar',type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Argon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
effBarrelGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsBarrel')
effBarrelGroup.defineHistogram('EfficiencyBarrelMap_passed,EfficiencyBarrelMap;hEfficiencyBarrelMap',type='TEfficiency',title='Straw Efficiency Map (Barrel);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[0],xmin=0,xmax=strawMax[0])
effEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsEndCap')
effEndcapGroup.defineHistogram('EfficiencyEndCapMap_passed,EfficiencyEndCapMap;hEfficiencyEndCapMap',type='TEfficiency',title='Straw Efficiency Map (Endcap);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[1],xmin=0,xmax=strawMax[1])
for iside in range(2):
effTRTEndcapACGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsEndCap{0}'.format(iside))
regionTag = ' (' + beId[1] + sideId[iside] + ')'
effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_passed,EfficiencyEndCap_locR;hEfficiencyEndCap{0}_locR'.format(sideId[iside]),type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Xenon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_Ar_passed,EfficiencyEndCap_locR_Ar;hEfficiencyEndCap{0}_locR_Ar'.format(sideId[iside]),type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Argon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
for ibe in range(2):
for iside in range(2):
regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
imintmp = numberOfBarrelStacks*iside
imaxtmp = numberOfBarrelStacks*(iside + 1)
for i in range(imintmp,imaxtmp):
if ibe == 0:
oss = 'TRT/Barrel/Stack' + str(i + 1 - 32*iside) + str(sideId[iside])
elif ibe == 1:
oss = 'TRT/Endcap' + str(sideId[iside]) + '/Sector' + str(i + 1 - 32*iside)
effStrawChipGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistograms{0}{1}'.format(ibe,i))
effStrawChipGroup.defineHistogram('EfficiencyS_passed,EfficiencyS;hHitEfficiencyS',type='TEfficiency',title='Straw Efficiency Map;Straw Number;Efficiency',path=oss,xbins=strawMax[ibe],xmin=0.5,xmax=strawMax[ibe])
effStrawChipGroup.defineHistogram('EfficiencyC_passed,EfficiencyC;hHitEfficiencyC',type='TEfficiency',title='Chip Efficiency Map;Chip Number;Efficiency', path=oss,xbins=iChipMax[ibe],xmin=0.5,xmax=iChipMax[ibe])
### Finished Booking TRT RDO Histograms ###
### Booking TRT Track Histograms ###
for ibe in range(2):
oss_distance = distToStraw
distance = str(oss_distance)
regionTag = ' (' + barrelOrEndcap[ibe] + ')'
for i in range(numberOfStacks[ibe]*2):
trackGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTTrackHistograms{0}{1}'.format(ibe,i))
nBarrelModules = 0
if ibe == 0:
if i < numberOfStacks[ibe]:
nBarrelModules = i + 1
oss = 'TRT/Barrel/Stack{0}A'.format(nBarrelModules)
elif i >= numberOfStacks[ibe]:
nBarrelModules = i + 1 - 32
oss = 'TRT/Barrel/Stack{0}C'.format(nBarrelModules)
elif ibe == 1:
if i < numberOfStacks[ibe]:
nBarrelModules = i + 1
oss = 'TRT/EndcapA/Sector{0}'.format(nBarrelModules)
elif i >= numberOfStacks[ibe]:
nBarrelModules = i + 1 - 32
oss = 'TRT/EndcapC/Sector{0}'.format(nBarrelModules)
trackGroup.defineHistogram('HitHonTMapS_passed,HitHonTMapS;hHitHonTMapS{0}{1}'.format(ibe,i),type='TEfficiency',title='HL Hit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe],duration='run')
topSequence += helper.result()
......@@ -71,15 +71,17 @@ if InDetTrigFlags.useConditionsClasses():
_prefix = ''
#_prefix = ''
from InDetTrigRecExample.InDetTrigConfigConditions import TRT_ConditionsSetup
TRT_ConditionsSetup.config(useDCS=_useDCS, onlineMode=_onlineMode,prefix=_prefix)
TRT_ConditionsSetup.lock()
TRT_ConditionsSetup.createSvc()
#from InDetTrigRecExample.InDetTrigConfigConditions import TRT_ConditionsSetup
#TRT_ConditionsSetup.config(useDCS=_useDCS, onlineMode=_onlineMode,prefix=_prefix)
#TRT_ConditionsSetup.lock()
#TRT_ConditionsSetup.createSvc()
from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
#addFoldersSplitOnline(DQMonFlags, "TRT","/TRT/Onl/Calib/RT","/TRT/Calib/RT",className="TRTCond::RtRelationMultChanContainer")
#addFoldersSplitOnline(DQMonFlags, "TRT","/TRT/Onl/Calib/T0","/TRT/Calib/T0",className="TRTCond::StrawT0MultChanContainer")
#from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags
#if InDetTrigFlags.useConditionsClasses():
# _useDCS = False
......@@ -132,7 +134,7 @@ from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
#else:
# JetCollectionKey='AntiKt4EMTopoJets'
#
## Import Algorithm
# Import Algorithm
#from AthenaMonitoring.AthenaMonitoringConf import AthenaMonManager
#topSequence += AthenaMonManager( "GlobalMonManager" )
#ManagedAthenaGlobalMon = topSequence.GlobalMonManager
......@@ -140,7 +142,7 @@ from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
#ManagedAthenaGlobalMon.ManualDataTypeSetup = DQMonFlags.monManManualDataTypeSetup()
#ManagedAthenaGlobalMon.DataType = DQMonFlags.monManDataType()
#ManagedAthenaGlobalMon.Environment = DQMonFlags.monManEnvironment()
#
#from AthenaCommon.JobProperties import jobproperties
#if not 'InDetKeys' in dir():
# from InDetRecExample.InDetKeys import InDetKeys
......@@ -153,7 +155,7 @@ from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
#if jobproperties.Beam.beamType()=='cosmics':
# isCosmics=True
# isBeam=False
#
if DQMonFlags.monManEnvironment != 'tier0ESD':
# Import Det Synch tool
if DQMonFlags.monManEnvironment in ('tier0Raw', 'tier0') and globalflags.DataSource.get_Value() != 'geant4':
......
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