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

Track histograms filling code added

parent f6a4528d
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,7 @@ atlas_depends_on_subdirs( PUBLIC
Tracking/TrkEvent/TrkSpacePoint
Tracking/TrkEvent/TrkTrack
Tracking/TrkTools/TrkToolInterfaces
#Trigger/TrigAnalysis/TrigAnalysisInterfaces
PRIVATE
LumiBlock/LumiBlockComps
Control/AthContainers
......@@ -52,6 +53,41 @@ atlas_depends_on_subdirs( PUBLIC
Event/EventInfo
AtlasTest/TestTools)
#atlas_depends_on_subdirs( PUBLIC
# Control/AthenaMonitoring
# GaudiKernel
# InnerDetector/InDetRawEvent/InDetRawData
# LumiBlock/LumiBlockComps
# Control/AthenaBaseComps
# Trigger/TrigEvent/TrigDecisionInterface
# PRIVATE
# Control/StoreGate
# Commission/CommissionEvent
# Control/AthContainers
# DetectorDescription/AtlasDetDescr
# DetectorDescription/Identifier
# Event/EventPrimitives
# Event/xAOD/xAODEventInfo
# Event/xAOD/xAODTrigger
# InnerDetector/InDetConditions/InDetConditionsSummaryService
# InnerDetector/InDetConditions/TRT_ConditionsServices
# InnerDetector/InDetDetDescr/InDetIdentifier
# InnerDetector/InDetDetDescr/InDetReadoutGeometry
# InnerDetector/InDetRecEvent/InDetRIO_OnTrack
# InnerDetector/InDetRecTools/TRT_DriftFunctionTool
# InnerDetector/InDetRecTools/TRT_TrackHoleSearch
# Tools/LWHists
# Tracking/TrkEvent/TrkTrack
# Tracking/TrkEvent/TrkTrackSummary
# Tracking/TrkTools/TrkToolInterfaces #Control/AthenaMonitoring
# Control/AthenaCommon
# Control/AthenaConfiguration
# Control/AthenaKernel
# Control/SGMon/SGAudCore
# Database/AthenaPOOL/AthenaPoolUtilities
# Event/EventInfo
# Trigger/TrigAnalysis/TrigAnalysisInterfaces
# AtlasTest/TestTools)
# External dependencies:
find_package( Eigen )
......@@ -66,14 +102,16 @@ atlas_add_library( TRTMonitoringRun3Lib
INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS}
LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps xAODEventInfo InDetPrepRawData GaudiKernel TRT_ConditionsServicesLib InDetReadoutGeometry InDetRawData TrkTrack TrkToolInterfaces AthenaMonitoringLib CommissionEvent TrkSpacePoint
PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaKernel SGTools SGAudCore AthenaPoolUtilities LumiBlockCompsLib EventInfo LWHists TrkTrackSummary InDetRIO_OnTrack InDetIdentifier TrkRIO_OnTrack TrkParameters TrkMeasurementBase TrkEventUtils TrkSurfaces PathResolver EventPrimitives Identifier AtlasDetDescr AthContainers )
PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaKernel SGTools SGAudCore AthenaPoolUtilities LumiBlockCompsLib EventInfo LWHists TrkTrackSummary InDetRIO_OnTrack InDetIdentifier TrkRIO_OnTrack TrkParameters TrkMeasurementBase TrkEventUtils TrkSurfaces PathResolver xAODTrigger EventPrimitives Identifier AtlasDetDescr AthContainers )
#"WITH TRIGGER LIBRARIES" PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaKernel SGTools SGAudCore AthenaPoolUtilities LumiBlockCompsLib EventInfo LWHists TrkTrackSummary InDetRIO_OnTrack InDetIdentifier TrkRIO_OnTrack TrkParameters TrkMeasurementBase TrkEventUtils TrkSurfaces PathResolver xAODTrigger EventPrimitives Identifier AtlasDetDescr AthContainers )
atlas_add_component( TRTMonitoringRun3
src/*.cxx
src/components/*.cxx
INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS}
LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} TRTMonitoringRun3Lib AthenaMonitoringLib SGAudCore SGTools AthenaPoolUtilities GaudiKernel EventInfo InDetRawData InDetPrepRawData LumiBlockCompsLib CommissionEvent AthContainers AtlasDetDescr Identifier xAODEventInfo EventPrimitives TRT_ConditionsServicesLib InDetReadoutGeometry InDetRIO_OnTrack LWHists TrkTrack TrkTrackSummary TrkToolInterfaces AthenaKernel InDetIdentifier MagFieldInterfaces PathResolver TrkSurfaces TrkEventUtils TrkMeasurementBase TrkParameters TrkRIO_OnTrack TrkSpacePoint)
LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} TRTMonitoringRun3Lib AthenaMonitoringLib SGAudCore SGTools AthenaPoolUtilities GaudiKernel EventInfo InDetRawData InDetPrepRawData LumiBlockCompsLib CommissionEvent AthContainers AtlasDetDescr Identifier xAODEventInfo xAODTrigger EventPrimitives TRT_ConditionsServicesLib InDetReadoutGeometry InDetRIO_OnTrack LWHists TrkTrack TrkTrackSummary TrkToolInterfaces AthenaKernel InDetIdentifier MagFieldInterfaces PathResolver TrkSurfaces TrkEventUtils TrkMeasurementBase TrkParameters TrkRIO_OnTrack TrkSpacePoint)
#"WITH TRIGGER LIBRARIES" LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} TRTMonitoringRun3Lib AthenaMonitoringLib SGAudCore SGTools AthenaPoolUtilities GaudiKernel EventInfo InDetRawData InDetPrepRawData LumiBlockCompsLib CommissionEvent AthContainers AtlasDetDescr Identifier xAODEventInfo xAODTrigger EventPrimitives TRT_ConditionsServicesLib InDetReadoutGeometry InDetRIO_OnTrack LWHists TrkTrack TrkTrackSummary TrkToolInterfaces AthenaKernel InDetIdentifier MagFieldInterfaces PathResolver TrkSurfaces TrkEventUtils TrkMeasurementBase TrkParameters TrkRIO_OnTrack TrkSpacePoint)
# Install files from the package:
atlas_install_python_modules( python/*.py )
atlas_install_joboptions( share/*.py )
......
......@@ -39,10 +39,10 @@
#include <set>
namespace Trk {
class ITrackHoleSearchTool;
class Track;
class TrackStateOnSurface;
class ITrackSummaryTool;
// class ITrackHoleSearchTool;
class Track;
class TrackStateOnSurface;
// class ITrackSummaryTool;
}
namespace InDetDD {
......@@ -60,26 +60,15 @@ class ITRT_ConditionsSvc;
class ITRT_DAQ_ConditionsSvc;
class ITRT_ByteStream_ConditionsSvc;
class ITRT_StrawNeighbourSvc;
class ITRT_DriftFunctionTool;
//class ITRT_DriftFunctionTool;
class TRTMonitoringRun3_Tool : public AthMonitorAlgorithm {
public:
TRTMonitoringRun3_Tool( const std::string& name, ISvcLocator* pSvcLocator );
virtual ~TRTMonitoringRun3_Tool();
virtual StatusCode initialize() override;
virtual StatusCode fillTestTRTTrackHistograms( const TrackCollection& trackCollection) const;
virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
private:
static const int s_numberOfBarrelStacks;
static const int s_numberOfEndCapStacks;
static const int s_Straw_max[2];
static const int s_iStack_max[2];
static const int s_iChip_max[2];
static const int s_numberOfStacks[2];
static const int s_moduleNum[2];
int m_lastLumiBlock;
int m_evtLumiBlock;
int m_good_bcid;
......@@ -93,14 +82,310 @@ private:
bool m_passEventBurst;
bool m_ArgonXenonSplitter;
enum GasType{ Xe = 0, Ar = 1, Kr = 2 };
private:
const AtlasDetectorID * m_idHelper;
//
// StatusCode bookTRTRDOs(bool isNewLumiBlock, bool isNewRun);
// StatusCode bookTRTTracks(bool isNewLumiBlock, bool isNewRun);
// StatusCode bookTRTShiftTracks(bool isNewLumiBlock, bool isNewRun);
// StatusCode bookTRTEfficiency(bool isNewLumiBlock, bool isNewRun);
// StatusCode checkEventBurst(const TRT_RDO_Container& rdoContainer);
// StatusCode fillTRTRDOs(const TRT_RDO_Container& rdoContainer,
// const xAOD::EventInfo& eventInfo,
// const InDetTimeCollection* trtBCIDCollection);
// // ComTime might be missing from file, have to use const pointer
StatusCode fillTRTTracks(const TrackCollection& trackCollection,
const xAOD::TrigDecision* trigDecision,
const ComTime* comTimeObject) const;
// StatusCode fillTRTEfficiency(const TrackCollection& combTrackCollection);
// StatusCode fillTRTHighThreshold(const TrackCollection& trackCollection,
// const xAOD::EventInfo& eventInfo);
// StatusCode checkTRTReadoutIntegrity(const xAOD::EventInfo& eventInfo);
//
int strawLayerNumber(int strawLayerNumber, int LayerNumber) const;
// Returns the straw number (0-1641) given the layerNumber, strawlayerNumber, and strawNumber, all gotten from Athena IDHelper
int strawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const;
// Returns Barrel Board Number
int chipToBoard(int chip) const;
// Returns EndCap Board Number
int chipToBoard_EndCap(int chip) const;
// Returns Degrees, converted from radians (Athena Standard units)
float radToDegrees(float radValue) const;
int strawNumber_reverse (int inp_strawnumber, int* strawNumber, int* strawlayerNumber, int* LayerNumber) const;
int strawLayerNumber_reverse(int strawLayerNumInp,int* strawLayerNumber, int* LayerNumber) const;
int strawNumberEndCap(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const;
private:
static const int s_numberOfBarrelStacks;
static const int s_numberOfEndCapStacks;
static const int s_Straw_max[2];
static const int s_iStack_max[2];
static const int s_iChip_max[2];
static const int s_numberOfStacks[2];
static const int s_moduleNum[2];
// Services
ServiceHandle<IToolSvc> p_toolSvc;
ToolHandle<ITRT_StrawStatusSummaryTool> m_sumTool;
ServiceHandle<ITRT_DAQ_ConditionsSvc> m_DAQSvc;
ServiceHandle<ITRT_ByteStream_ConditionsSvc> m_BSSvc;
ServiceHandle<ITRT_ConditionsSvc> m_condSvc_BS;
ServiceHandle<ITRT_StrawNeighbourSvc> m_TRTStrawNeighbourSvc;
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<TrackCollection> m_trackCollectionKey{this, "TRTTracksObjectName", "Tracks", "Name of tracks container"};
// NOTE: this property is not used anywhere, is it ok to change its name?
SG::ReadHandleKey<TrackCollection> m_combTrackCollectionKey{this, "track_collection_hole_finder", "CombinedInDetTracks", "Name of tracks container used for hole finder"};
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<xAOD::TrigDecision> m_trigDecisionKey{this, "TrigDecisionObjectName", "xTrigDecision", "Name of trigger decision object"};
// Tools
//ToolHandle<Trk::ITrackSummaryTool> m_TrackSummaryTool{this, "TrkSummaryTool", "Trk::TrackSummaryTool/InDetTrackSummaryTool", "Track summary tool name"};
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<ILuminosityTool> m_lumiTool{this, "LuminosityTool", "LuminosityTool", "Luminosity tool name"};
ToolHandle<ITRT_DriftFunctionTool> m_drifttool; // keep this public for now
const TRT_ID* m_pTRTHelper;
const InDetDD::TRT_DetectorManager *m_mgr;
std::string m_geo_summary_provider;//obsolete
std::string m_mapPath;
int m_rbins;
float m_rmin;
float m_rmax;
float m_tbins;
float m_tmin;
float m_tmax;
float m_fitmin;
float m_fitmax;
// /** Leading Edge in time Window: Straws.
// * Any hit where the leading edge (driftTimeBin()) is less than 24.
// * In Time window means ((driftTimeBin<24) && !lastBinHigh && !firstBinHigh)
// * This is an RDO level histogram.
// */
// TH1F_LW* m_hHitWMapS[2][64];
//
// /** TE in Time Window: Straws.
// * If hit trailing edge is in time window.
// * In Time window means ((trailingEdge<23)&& !lastBinHigh && !firstBinHigh)
// * m_hHitTrWMapS[m_phi_module]->Fill(m_strawNumber, ((m_trailingEdge+1)*3.125));
// */
// TProfile_LW* m_hHitTrWMapS[2][64];
//
// /** Mean TE: Straws.
// * Average of Trailing Edge bin where the trailing edge (trailingEdge()) is less than 23.
// * This an RDO level histogram.
// */
// TProfile_LW* m_hHitTrMapS[2][64];
//
// /** Any LL bit on: Straws
// * if any low threshold bit was set.
// * if leading edge is > 0, or if trailing edge < 23, or if first bin is high, or if last bin is high
// * This is an RDO level histogram.
// */
// TH1F_LW* m_hHitAMapS[2][64];
//
// /** LL in time window: Straws
// * Any low level hit in time window by straw.
// * ((m_driftTimeBin>0 || m_trailingEdge<23)&& !m_firstBinHigh && !m_lastBinHigh)
// * This is an RDO level histogram.
// */
// TH1F_LW* m_hHitAWMapS[2][64];
//
// /** HL/LL: Straws
// * The ratio of High Level hits to Low Level hits per straw.
// * This is an RDO level histogram.
// */
// TH1F_LW* m_hHtoLMapS[2][64]; // not filled
//
// /** Mean ToT (ns): Straws.
// * Average Time over Threshold (ToT) in nano seconds per straw.
// * m_hHitToTMapS[m_phi_module]->Fill(m_strawNumber, m_timeOverThreshold);
// * m_timeOverThreshold = (p_lolum)->timeOverThreshold();
// * This is an RDO level histogram.
// */
// TProfile_LW* m_hHitToTMapS[2][64];
//
// /** Mean ToT (ns) for straws with ToT > LongToTCut: Straws.
// * Average Time over Threshold (ToT) in nano seconds per straw for straws with ToT > LongToTCut.
// * m_hHitToTLongMapS[m_phi_module]->Fill(m_strawNumber, m_timeOverThreshold);
// * m_timeOverThreshold = (p_lolum)->timeOverThreshold();
// * This is an RDO level histogram.
// */
// TProfile_LW* m_hHitToTLongMapS[2][64];
//
// /** Mean Trailing Edge (ns) for straws with ToT > LongToTCut: Straws.
// * Average Trailing Edge (Tr) in nano seconds per straw for straws with ToT > LongToTCut.
// * m_hHitToTLongTrMapS[m_phi_module]->Fill(m_strawNumber, m_trailingEdge);
// * m_trailingEdge = (p_lolum)->trailingEgde();
// * This is an RDO level histogram.
// */
// TProfile_LW* m_hHitToTLongTrMapS[2][64];
//
// /** High Level: Straws
// * If a hit has any of the high threshold time bins up.
// * m_hHitHMapS[m_phi_module]->Fill(m_strawNumber);
// * This is an RDO level histogram
// */
// TH1F_LW* m_hHitHMapS[2][64];
//
// /** HL in time window: Straws
// * If a hit has any of the high threshold time bins up, and is in the time window. ((m_driftTimeBin<24) && !m_firstBinHight && !m_lastBinHight)
// * This is an RDO level histogram
// */
// TH1F_LW* m_hHitHWMapS[2][64];
//
// /** LE in time window on track: Straws.
// * Leading Edge (LE) is within first 23 time bins of read out from a hit associated with a track.
// * This is track level histogram.
// */
// TH1F_LW* m_hHitWonTMapS[2][64];
//
// /** Mean TE on track: Straws
// * Average Trailing Edge(TE) from a hit associated with a track.
// * This is a track level histogram.
// */
// TProfile_LW* m_hHitTronTMapS[2][64];
//
// /** Any LL bit on track: Straws
// * Any low level bit is set from hit associated with a track.
// * This is a track level hit
// */
// TH1F_LW* m_hHitAonTMapS[2][64];
//
// /** Any LL bit in time window on track: Straws
// * Any low level (LL) bit set and is in time window from hits associated with tracks
// * This is a track level histogram.
// */
// TH1F_LW* m_hHitAWonTMapS[2][64];
//
// /** Any HL hit on track: Straws
// * Any straw with a High Threshold (HL) hit associated with a track.
// * This is a track level histogram
// */
// TH1F_LW* m_hHitHWonTMapS[2][64];
// //
//
// TH1F_LW* m_hHitHonTMapS[2][64];
//
// /** HL in time window on track: Straws
// * Straws with a High Threshold hit associated with a track and the hit is in the time window.
// * This is a track level histogram.
// */
// TH1F_LW* m_hHtoLonTMapS[2][64]; //not filled
//
// //
// TH1F_LW* m_hHtoLWonTMapS[2][64]; //not filled
//
// /** Mean ToT (ns) on Track: Straws
// * Average Time over Threshold (ToT) from a straw hit associated with a track.
// * This is a track level histogram.
// */
// TProfile_LW* m_hHitToTonTMapS[2][64];
//
// /** Mean TE on track (with Event Phase correction): Straws.
// * Average trailing edge(TE) on track after correcting for event phase from a hit associated with a track.
// * This is a track level histogram.
// */
// TProfile_LW* m_hHitTronTwEPCMapS[2][64];
//
// /** Valid Raw Drift Time on Track.
// * Staws with hits that have valid drift times and are associated with a track.
// * This is a track level histogram.
// */
// TProfile_LW* m_hValidRawDriftTimeonTrk[2][64];
// TProfile_LW* m_hValidRawDriftTimeonTrkC[2][64];
// TH1F_LW* m_hHitWMapC[2][64];
// TProfile_LW* m_hHitTrMapC[2][64];
// TProfile_LW* m_hHitTrWMapC[2][64];
// TH1F_LW* m_hHitAMapC[2][64];
// TH1F_LW* m_hHitAWMapC[2][64];
// TH1F_LW* m_hHtoLMapC[2][64]; // not filled
//
// TH2F_LW* m_hHtoBCMapC[2][64];
// TH2F_LW* m_hHtoBCMapB[2][64];
// TProfile_LW* m_hHitToTMapC[2][64];
// TH1F_LW* m_hHitHMapC[2][64];
// TH1F_LW* m_hHitHWMapC[2][64];
//
// /** LE in time window on track: Chips.
// * Leading Edge (LE) from a hit associated with a track is within first 23 time bins.
// * Plotted as a function of DTMROC.
// * This is a track level histogram.
// */
// TH1F_LW* m_hHitWonTMapC[2][64];
// TProfile_LW* m_hHitTronTMapC[2][64];
// TH1F_LW* m_hHitAonTMapC[2][64];
// TH1F_LW* m_hHitAWonTMapC[2][64];
// TH1F_LW* m_hHitHonTMapC[2][64];
// TH1F_LW* m_hHitHWonTMapC[2][64];
// TH1F_LW* m_hHtoLonTMapC[2][64]; // not filled
// TH1F_LW* m_hHtoLWonTMapC[2][64]; //
// TProfile_LW* m_hHitToTonTMapC[2][64];
// TProfile_LW* m_hHitTronTwEPCMapC[2][64];
//
// TProfile_LW* m_hHitToTrkDistanceMapS_E[64];
//
// /** Avg. Occupancy: Modules (Side A&C)
// * Average Occupancy per Phi Module on Side A(&C).
// * This is an RDO level Histogram.
// */
// TProfile_LW* m_hAvgLLOccMod_side[2][2];
// TProfile_LW* m_hAvgHLOccMod_side[2][2];
// TProfile_LW* m_hBCIDvsOcc[2];
//
// /** Avg. Occupancy: Modules (Side A and C)
// * Average Occupancy per Phi Module on Side A and C.
// * This is an RDO level Histogram.
// */
// TH1F_LW* m_hChipOcc[2][64];
// TH1F_LW* m_hStrawOcc[2][64];
//
// /** Anatoli's "Scatter histograms" **
// ** Monitor quantities as a function of lumi block. Fill per every stack
// */
// TH2F_LW* m_hHitsOnTrack_Scatter[2];
// TH2F_LW* m_hLLOcc_Scatter[2];
// TH2F_LW* m_hHightoLowRatioOnTrack_Scatter[2];
// TH1F_LW* m_hOccAll;
// //Vector for normalizing probabilities of hHitWmap histograms (Leading Edge in Time Window probability per straw number)
// std::vector<float> m_scale_hHitWMap_B;
// std::vector<float> m_scale_hHitWMap_B_Ar;
// /* Helpers for the scatter histograms - 32 stacks (do same for both side for now) */
float m_LLOcc[2][64]; // easy to keep occupancy separately for sides A&C, so let's do that
float m_HLOcc[2][64]; // easy to keep occupancy separately for sides A&C, so let's do that
//
// /**Initialize Aging plots**
// **HT, All, Barrel, EC, In/A, Out/C, etc...
// */
//
// TH1F_LW* m_trackz_All[5][2];//({L1 Long, L2, L3, L1 short Pos, L2 Short Neg},{A,C})
// TH1F_LW* m_trackz_HT[5][2];
//
// TH1F_LW* m_trackr_All[4][2]; // ({In_A,In_B,Out_A,Out_B},{A,C})
// TH1F_LW* m_trackr_HT[4][2];
// TH1F_LW* m_IntLum;
// TH1F_LW* m_LBvsLum;
// TH1F_LW* m_LBvsTime;
//
float m_HTfraconTrack_B[32];
float m_LonTrack_B[32];
int m_nTrack_B[32];
int m_nTrackwithHL_B[32];//obsolete
float m_HTfraconTrack_E[64];
float m_LonTrack_E[64];
int m_nTrack_E[64];
......@@ -192,7 +477,12 @@ private:
int m_nHitsperLB_E[2];
int m_nHLHitsperLB_E[2];
/*
ToolHandle<Trk::IPropagator> m_propagatorTool;
Trk::IPropagator *m_propagator;
ToolHandle<Trk::IExtrapolator> m_extrapolatorTool;
Trk::IExtrapolator *m_extrapolator;
*/ //obsolete
float m_maxDistToStraw;
float m_DistToStraw;
bool m_trt_only_trks;
......@@ -206,9 +496,13 @@ private:
bool m_isCosmics;
int m_minTRThits;
float m_minP;
int m_flagforscale;
///// Additional stuff for efficiency measurements, online only for now
// void scale_LWHist(LWHist1D* hist, float scale);
// void scale_LWHistWithScaleVector(LWHist1D* hist, const std::vector<float>& scale);
// int initScaleVectors();
// int m_flagforscale;
// void divide_LWHist(TH1F_LW* result, TH1F_LW* a, TH1F_LW* b);
//
// ///// Additional stuff for efficiency measurements, online only for now
std::string m_track_collection_hole_finder;
float m_max_abs_d0;
float m_max_abs_z0;
......@@ -229,30 +523,77 @@ private:
int m_every_xth_track;
std::string m_datatype;
//std::string m_mongroupshift1d;
char *m_mongroupshift1d;
//std::vector<char> m_mongroupshift1d;
std::string m_mongroupshift2d;
std::string m_mongroupother2d;
//
//
//
// TProfile_LW* m_hefficiency_eta;
// TProfile_LW* m_hefficiency_phi;
// TProfile_LW* m_hefficiency_pt;
// TProfile_LW* m_hefficiency_z0;
// TProfile_LW* m_hefficiencyBarrel_locR;
// TProfile_LW* m_hefficiencyBarrel_locR_Ar;
// TProfile_LW* m_hefficiencyEndCap_locR[2];
// TProfile_LW* m_hefficiencyEndCap_locR_Ar[2];
//
// TProfile_LW* m_hefficiencyMap[2]; // 0-barrel, 1-endcap
// TProfile_LW* m_hefficiencyS[2][64]; // 0-barrel, 1-endcap
// TProfile_LW* m_hefficiencyC[2][64]; // 0-barrel, 1-endcap
// TH1F_LW* m_hefficiency[2][2];
// TH1F_LW* m_hefficiencyIntegral[2][2];
//
// /////////
// //inline functions
// ////////
//
// //it is taking lots of time to compile ?
//
//Deciphers status HT to GasType Enumerator
inline GasType Straw_Gastype(int stat) const {
// getStatusHT returns enum {Undefined, Dead, Good, Xenon, Argon, Krypton}.
// Our representation of 'GasType' is 0:Xenon, 1:Argon, 2:Krypton
GasType Gas = Xe; // Xenon is default
if (m_ArgonXenonSplitter) {
// int stat=m_sumSvc->getStatusHT(TRT_Identifier);
if ( stat==2 || stat==3 ) { Gas = Xe; } // Xe
else if ( stat==1 || stat==4 ) { Gas = Ar; } // Ar
else if ( stat==5 ) { Gas = Kr; } // Kr
else if ( stat==6 ) { Gas = Xe; } // emulate Ar (so treat as Xe here)
else if ( stat==7 ) { Gas = Xe; } // emulate Kr (so treat as Xe here)
else { ATH_MSG_FATAL ("getStatusHT = " << stat << ", must be 'Good(2)||Xenon(3)' or 'Dead(1)||Argon(4)' or 'Krypton(5)!' or 6 or 7 for emulated types!");
throw std::exception();
}
}
return Gas;
}
//Gaudi::Property<bool> m_doRandom {this,"RandomHist",false}; //< Trigger chain string pulled from the job option and parsed into a vector?
//
//int strawLayerNumber(int strawLayerNumber, int LayerNumber) const;
//int strawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const;
//int strawNumberEndCap(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const;
//float radToDegrees(float radValue) const;
//
//// Services
//ToolHandle<ITRT_StrawStatusSummaryTool> m_sumTool;
//
//const TRT_ID *m_pTRTHelper;
//const InDetDD::TRT_DetectorManager* m_mgr;
//
//// Data handles
//SG::ReadHandleKey<TRT_RDO_Container> m_rdoContainerKey {this, "TRTRawDataObjectName", "TRT_RDOs", "Name of TRT RDOs container"};
//SG::ReadHandleKey<TrackCollection> m_trackCollectionKey {this, "TRTTracksObjectName", "Tracks", "Name of tracks container"};
//SG::ReadHandleKey<TrackCollection> m_combTrackCollectionKey{this, "track_collection_hole_finder", "CombinedInDetTracks", "Name of tracks container used for hole finder"};
//
//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"};
// Tools
//ToolHandle<Trk::ITrackSummaryTool> m_TrackSummaryTool{this, "TrkSummaryTool", "Trk::TrackSummaryTool/InDetTrackSummaryTool", "Track summary tool name"};
const AtlasDetectorID* m_idHelper;
Gaudi::Property<bool> m_doRandom {this,"RandomHist",false}; //< Trigger chain string pulled from the job option and parsed into a vector?
int strawLayerNumber(int strawLayerNumber, int LayerNumber) const;
int strawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const;
int strawNumberEndCap(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const;
float radToDegrees(float radValue) const;
// Services
ToolHandle<ITRT_StrawStatusSummaryTool> m_sumTool;
const TRT_ID *m_pTRTHelper;
const InDetDD::TRT_DetectorManager* m_mgr;
// Data handles
SG::ReadHandleKey<TRT_RDO_Container> m_rdoContainerKey {this, "TRTRawDataObjectName", "TRT_RDOs", "Name of TRT RDOs container"};
SG::ReadHandleKey<TrackCollection> m_trackCollectionKey {this, "TRTTracksObjectName", "Tracks", "Name of tracks container"};
SG::ReadHandleKey<TrackCollection> m_combTrackCollectionKey{this, "track_collection_hole_finder", "CombinedInDetTracks", "Name of tracks container used for hole finder"};
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"};
};
#endif
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