Skip to content
Snippets Groups Projects
Commit 3eee59f6 authored by James Beacham's avatar James Beacham
Browse files

Merge branch 'PV_alignmentmonitoring' into '21.0'

d0 monitoring for alignment

See merge request atlas/athena!7622

Former-commit-id: 9ae13aff66cfb945a82956de0dbbc0e1ae2ee971
parents c465ad8a d3d8f209
No related branches found
No related tags found
No related merge requests found
......@@ -116,6 +116,14 @@ if not jobproperties.Beam.beamType()=='cosmics':
if (InDetFlags.doPrintConfigurables()):
print InDetAlignMonBeamSpot_noTrig
from InDetAlignmentMonitoring.InDetAlignmentMonitoringConf import IDAlignMonPVBiases
InDetAlignMonPVBiases_noTrig = IDAlignMonPVBiases (name = "InDetAlignMonPVBiases_noTrig",
trackSelection = m_alignMonTrackSelectionTool[1],
VxPrimContainerName = InDetKeys.xAODVertexContainer())
ToolSvc += InDetAlignMonPVBiases_noTrig
if (InDetFlags.doPrintConfigurables()):
print InDetAlignMonPVBiases_noTrig
# Note this is not to be included in the tool service
from InDetAlignmentMonitoring.InDetAlignmentMonitoringConf import IDAlignMonNtuple
......@@ -382,19 +390,25 @@ else:
vxContainerName = InDetKeys.PrimaryVertices(),
vxContainerWithBeamConstraint = InDetFlags.useBeamConstraint())
InDetAlignMonPVBiases = IDAlignMonPVBiases (name = "InDetAlignMonPVBiases",
trackSelection = m_alignMonTrackSelectionTool[1],
VxPrimContainerName = InDetKeys.xAODVertexContainer())
if jobproperties.Beam.beamType()=='collisions' and hasattr(ToolSvc, 'DQFilledBunchFilterTool'):
InDetAlignMonSivsTRT.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonResiduals.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonEfficiencies.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonGenericTracks.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonBeamSpot.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonPVBiases.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonSivsTRT.TrigDecisionTool = monTrigDecTool
InDetAlignMonResiduals.TrigDecisionTool = monTrigDecTool
InDetAlignMonEfficiencies.TrigDecisionTool = monTrigDecTool
InDetAlignMonGenericTracks.TrigDecisionTool = monTrigDecTool
InDetAlignMonBeamSpot.TrigDecisionTool = monTrigDecTool
InDetAlignMonPVBiases.TrigDecisionTool = monTrigDecTool
if rec.doHeavyIon():
InDetAlignMonSivsTRT.TriggerChain = "HLT_j30_ion_L1TE50"
......@@ -402,18 +416,21 @@ else:
InDetAlignMonEfficiencies.TriggerChain = "HLT_j30_ion_L1TE50"
InDetAlignMonGenericTracks.TriggerChain = "HLT_j30_ion_L1TE50"
InDetAlignMonBeamSpot.TriggerChain = "HLT_j30_ion_L1TE50"
InDetAlignMonPVBiases.TriggerChain = "HLT_j30_ion_L1TE50"
else:
InDetAlignMonSivsTRT.TriggerChain = "HLT_mu24_imedium"
InDetAlignMonResiduals.TriggerChain = "HLT_mu24_imedium"
InDetAlignMonEfficiencies.TriggerChain = "HLT_mu24_imedium"
InDetAlignMonGenericTracks.TriggerChain = "HLT_mu24_imedium"
InDetAlignMonBeamSpot.TriggerChain = "HLT_mu24_imedium"
InDetAlignMonPVBiases.TriggerChain = "HLT_mu24_imedium"
InDetAlignMonSivsTRT.triggerChainName = "TriggerAwareMon"
InDetAlignMonResiduals.triggerChainName = "TriggerAwareMon"
InDetAlignMonEfficiencies.triggerChainName = "TriggerAwareMon"
InDetAlignMonGenericTracks.triggerChainName = "TriggerAwareMon"
InDetAlignMonBeamSpot.histFolder = "IDAlignMon/BeamSpot/TriggerAwareMon"
InDetAlignMonPVBiases.triggerChainName = "TriggerAwareMon"
ToolSvc += InDetAlignMonResiduals
if (InDetFlags.doPrintConfigurables()):
......@@ -427,6 +444,9 @@ else:
ToolSvc += InDetAlignMonBeamSpot
if (InDetFlags.doPrintConfigurables()):
print InDetAlignMonBeamSpot
ToolSvc += InDetAlignMonPVBiases
if (InDetFlags.doPrintConfigurables()):
print InDetAlignMonPVBiases
ToolSvc += InDetAlignMonSivsTRT
if (InDetFlags.doPrintConfigurables()):
print InDetAlignMonSivsTRT
......@@ -455,7 +475,8 @@ if jobproperties.Beam.beamType()=='cosmics':
elif jobproperties.Beam.beamType()=='collisions':
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonSivsTRT_noTrig ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonBeamSpot_noTrig ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonPVBiases_noTrig ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonResiduals_noTrig ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonEfficiencies_noTrig ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonGenericTracks_noTrig ]
......@@ -466,7 +487,7 @@ if jobproperties.Beam.beamType()=='collisions' and hasattr(ToolSvc, 'DQFilledBun
InDetAlignMonEfficiencies_noTrig.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonGenericTracks_noTrig.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonBeamSpot_noTrig.FilterTools.append(monFilledBunchFilterTool)
InDetAlignMonPVBiases_noTrig.FilterTools.append(monFilledBunchFilterTool)
if InDetAlignMonDoTruth:
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonTruthComparison ]
......@@ -479,6 +500,7 @@ else:
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonEfficiencies ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonGenericTracks ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonBeamSpot ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonPVBiases ]
InDetAlignMonManager.AthenaMonTools += [ InDetAlignMonSivsTRT ]
## Setup the output histogram file(s):
......
......@@ -53,22 +53,97 @@ public:
virtual StatusCode bookHistograms();
virtual StatusCode procHistograms();
private:
bool fillVertexInformation() const;
const xAOD::Vertex* findAssociatedVertexTP(const xAOD::TrackParticle *) const;
void InitializeHistograms();
void RegisterHisto(MonGroup& mon, TH1* histo);
void RegisterHisto(MonGroup& mon, TH2* histo);
void RegisterHisto(MonGroup& mon, TProfile* histo);
void RegisterHisto(MonGroup& mon, TProfile2D* histo);
protected:
/////////////////////////////////////////////////
///////Declare histo's 400MeV until 600MeV///////
/////////////////////////////////////////////////
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_400MeV_600MeV_positive;
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_400MeV_600MeV_negative;
TH2F* m_trkd0_wrtPV_vs_phi_400MeV_600MeV_positive;
TH2F* m_trkd0_wrtPV_vs_phi_400MeV_600MeV_negative;
TH2F* m_trkd0_wrtPV_vs_eta_400MeV_600MeV_positive;
TH2F* m_trkd0_wrtPV_vs_eta_400MeV_600MeV_negative;
/////////////////////////////////////////////////
////////Declare histo's 600MeV until 1GeV////////
/////////////////////////////////////////////////
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_600MeV_1GeV_positive;
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_600MeV_1GeV_negative;
TH2F* m_trkd0_wrtPV_vs_phi_600MeV_1GeV_positive;
TH2F* m_trkd0_wrtPV_vs_phi_600MeV_1GeV_negative;
TH2F* m_trkd0_wrtPV_vs_eta_600MeV_1GeV_positive;
TH2F* m_trkd0_wrtPV_vs_eta_600MeV_1GeV_negative;
/////////////////////////////////////////////////
/////////Declare histo's 1GeV until 2GeV/////////
/////////////////////////////////////////////////
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_1GeV_2GeV_positive;
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_1GeV_2GeV_negative;
TH2F* m_trkd0_wrtPV_vs_phi_1GeV_2GeV_positive;
TH2F* m_trkd0_wrtPV_vs_phi_1GeV_2GeV_negative;
TH2F* m_trkd0_wrtPV_vs_eta_1GeV_2GeV_positive;
TH2F* m_trkd0_wrtPV_vs_eta_1GeV_2GeV_negative;
/////////////////////////////////////////////////
/////////Declare histo's 2GeV until 5GeV/////////
/////////////////////////////////////////////////
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_2GeV_5GeV_positive;
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_2GeV_5GeV_negative;
TH2F* m_trkd0_wrtPV_vs_phi_2GeV_5GeV_positive;
TH2F* m_trkd0_wrtPV_vs_phi_2GeV_5GeV_negative;
TH2F* m_trkd0_wrtPV_vs_eta_2GeV_5GeV_positive;
TH2F* m_trkd0_wrtPV_vs_eta_2GeV_5GeV_negative;
mutable std::map<const xAOD::TrackParticle*, const xAOD::Vertex* > m_trackVertexMapTP;
/////////////////////////////////////////////////
////////Declare histo's 5GeV until 10GeV/////////
/////////////////////////////////////////////////
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_5GeV_10GeV_positive;
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_5GeV_10GeV_negative;
TH2F* m_trkd0_wrtPV_vs_phi_5GeV_10GeV_positive;
TH2F* m_trkd0_wrtPV_vs_phi_5GeV_10GeV_negative;
TH2F* m_trkd0_wrtPV_vs_eta_5GeV_10GeV_positive;
TH2F* m_trkd0_wrtPV_vs_eta_5GeV_10GeV_negative;
/////////////////////////////////////////////////
/////////Declare histo's larger than 10GeV///////
/////////////////////////////////////////////////
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_10GeV_positive;
TH3F* m_trkd0_wrtPV_vs_phi_vs_eta_10GeV_negative;
TH2F* m_trkd0_wrtPV_vs_phi_10GeV_positive;
TH2F* m_trkd0_wrtPV_vs_phi_10GeV_negative;
TH2F* m_trkd0_wrtPV_vs_eta_10GeV_positive;
TH2F* m_trkd0_wrtPV_vs_eta_10GeV_negative;
private:
int m_checkrate;
int m_events;
int m_histosBooked;
std::string m_tracksName;
std::string m_triggerChainName;
std::string m_VxPrimContainerName;
ToolHandle< Trk::ITrackToVertexIPEstimator > m_trackToVertexIPEstimator;
const xAOD::VertexContainer* m_vertices;
std::string m_TreeFolder;
TTree* m_Tree;
std::string m_TreeName;
mutable unsigned int m_runNumber;
mutable unsigned int m_evtNumber;
......@@ -85,12 +160,6 @@ private:
double m_vertex_x;
double m_vertex_y;
double m_vertex_z;
//Daiki stuf
double bsXerror;
double bsYerror;
double bsXYerror;
double bsZerror;
ToolHandle< InDetAlignMon::TrackSelectionTool > m_trackSelection;
};
......
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