Skip to content
Snippets Groups Projects
Commit 5b97834e authored by John Kenneth Anders's avatar John Kenneth Anders
Browse files

Merge branch '21.0-ZCounting' into '21.0'

Added TTree functionality for running over MC

See merge request atlas/athena!26184
parents 11b6b5b4 4a86c448
No related branches found
No related tags found
No related merge requests found
......@@ -11,6 +11,7 @@ atlas_depends_on_subdirs(
Control/AthenaBaseComps
Control/AthenaMonitoring
Control/StoreGate
Database/ConnectionManagement/AtlasAuthentication
Event/xAOD/xAODCaloEvent
Event/xAOD/xAODEventInfo
Event/xAOD/xAODJet
......@@ -41,7 +42,7 @@ atlas_depends_on_subdirs(
Tools/LWHists
Tracking/TrkEvent/TrkParameters
Tracking/TrkExtrapolation/TrkExInterfaces
Trigger/TrigAnalysis/TrigEgammaMatchingTool
Trigger/TrigAnalysis/TrigEgammaMatchingTool
Trigger/TrigAnalysis/TrigDecisionTool
Trigger/TrigAnalysis/TrigMuonMatching
Trigger/TrigEvent/TrigCaloEvent
......@@ -62,7 +63,7 @@ atlas_add_component( DataQualityTools
src/*.cxx
src/components/*.cxx
INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
LINK_LIBRARIES ${ROOT_LIBRARIES} CaloGeoHelpers AthenaBaseComps AthenaMonitoringLib StoreGateLib SGtests xAODCaloEvent xAODEventInfo xAODJet xAODMissingET xAODMuon xAODTracking LUCID_RawEvent ZdcEvent ZdcIdentifier GaudiKernel InDetIdentifier InDetRawData InDetPrepRawData LArRawEvent LArRecEvent MagFieldInterfaces MuonCalibITools MuonIdHelpersLib MuonRDO MuonRecHelperToolsLib TagEvent RecBackgroundEvent RecoToolInterfaces TileEvent LWHists TrkParameters TrkExInterfaces TrkVertexAnalysisUtilsLib TrigDecisionToolLib TrigCaloEvent TrigMuonEvent TrigParticle TrigT1Result MuonSelectorToolsLib )
LINK_LIBRARIES ${ROOT_LIBRARIES} CaloGeoHelpers AthenaBaseComps AthenaMonitoringLib StoreGateLib SGtests xAODCaloEvent xAODEventInfo xAODJet xAODMissingET xAODMuon xAODTracking LUCID_RawEvent ZdcEvent ZdcIdentifier GaudiKernel InDetIdentifier InDetRawData InDetPrepRawData LArRawEvent LArRecEvent MagFieldInterfaces MuonCalibITools MuonIdHelpersLib MuonRDO MuonRecHelperToolsLib TagEvent RecBackgroundEvent RecoToolInterfaces TileEvent LWHists TrkParameters TrkExInterfaces TrkVertexAnalysisUtilsLib TrigDecisionToolLib TrigCaloEvent TrigMuonEvent TrigParticle TrigT1Result MuonSelectorToolsLib TrigAnalysisInterfaces TrigBunchCrossingTool )
# Install files from the package:
#atlas_install_headers( DataQualityTools )
......
......@@ -23,10 +23,6 @@
#include "TrigDecisionTool/TrigDecisionTool.h"
#include "TrigEgammaMatchingTool/ITrigEgammaMatchingTool.h"
#include "PATInterfaces/ISystematicsTool.h"
#include <PATInterfaces/SystematicRegistry.h>
#include <PATInterfaces/SystematicVariation.h>
#include "TMath.h"
#include <string>
#include <iostream>
......@@ -71,8 +67,9 @@ class DQTGlobalWZFinderTool: public DataQualityFatherMonTool
bool bookDQTGlobalWZFinderTool();
private:
void setDQTGlobalWZFinderBranches();
void doMuonTriggerTP(const xAOD::Muon* , const xAOD::Muon*);
void doMuonTruthEff(std::vector<const xAOD::Muon*>&);
void doMuonLooseTP(std::vector<const xAOD::Muon*>& goodmuonsZ, const xAOD::Vertex* pVtx);
void doMuonInDetTP(std::vector<const xAOD::Muon*>& goodmuonsZ, const xAOD::Vertex* pVtx);
......@@ -86,7 +83,9 @@ private:
const xAOD::Vertex* pVtx, bool isBad);
bool kinematicCuts(const xAOD::Electron*);
ToolHandle<Trig::ITrigEgammaMatchingTool> m_elTrigMatchTool;
bool m_isSimulation;
bool m_writeTTrees;
TH1F *m_ZBosonCounter_El_os;
TH1F *m_ZBosonCounter_El_ss;
......@@ -110,116 +109,220 @@ private:
TH1F_LW *m_fiducialSumWeights_el;
TH1F_LW *m_fiducialSumWeights_mu;
//----- Electron END ------//
TH1F_LW *m_W_mt_ele;
TH1F_LW *m_W_mt_mu;
TH2F_LW *m_W_pt_v_met_ele;
TH2F_LW *m_W_pt_v_met_mu;
TH1F_LW *m_metHist;
TH1F_LW *m_metPhiHist;
TH1F_LW *m_Z_mass_opsele;
TH1F_LW *m_Z_mass_opsmu;
TH1F_LW *m_JPsi_mass_opsmu;
TH1F_LW *m_Upsilon_mass_opsmu;
TH1F_LW *m_Z_mass_ssele;
TH1F_LW *m_Z_mass_ssmu;
TH1F_LW *m_Z_Q_ele;
TH1F_LW *m_Z_Q_mu;
TProfile *m_livetime_lb;
TProfile *m_lblength_lb;
TProfile *m_mu_lb;
TProfile *m_Z_ee_trig_ps;
TProfile *m_Z_mm_trig_ps;
//----- Electron END ------//
TH1F_LW *m_W_mt_ele;
TH1F_LW *m_W_mt_mu;
TH2F_LW *m_W_pt_v_met_ele;
TH2F_LW *m_W_pt_v_met_mu;
TH1F_LW *m_metHist;
TH1F_LW *m_metPhiHist;
TH1F_LW *m_Z_mass_opsele;
TH1F_LW *m_Z_mass_opsmu;
TH1F_LW *m_JPsi_mass_opsmu;
TH1F_LW *m_Upsilon_mass_opsmu;
TH1F_LW *m_Z_mass_ssele;
TH1F_LW *m_Z_mass_ssmu;
TH1F_LW *m_Z_Q_ele;
TH1F_LW *m_Z_Q_mu;
TProfile *m_livetime_lb;
TProfile *m_lblength_lb;
TProfile *m_mu_lb;
TProfile *m_Z_ee_trig_ps;
TProfile *m_Z_mm_trig_ps;
TH1F_LW *m_muon_Pt;
TH1F_LW *m_muon_Eta;
TH1F_LW *m_ele_Et;
TH1F_LW *m_ele_Eta;
//Resonance Counters
float m_minLumiBlock;
float m_maxLumiBlock;
float m_numBins;
TH1F_LW *m_JPsiCounter_Mu;
TH1F_LW *m_UpsilonCounter_Mu;
TH1F *m_ZBosonCounter_Mu;
//Trigger T&P
TH1F_LW *m_mutrigtp_matches;
//Reco T&P
TH1F_LW *m_muloosetp_match_os;
TH1F_LW *m_muloosetp_match_ss;
TH1F_LW *m_muloosetp_nomatch_os;
TH1F_LW *m_muloosetp_nomatch_ss;
// Inner detector T&P
TH1F_LW *m_mu_InDet_tp_match_os;
TH1F_LW *m_mu_InDet_tp_match_ss;
TH1F_LW *m_mu_InDet_tp_nomatch_os;
TH1F_LW *m_mu_InDet_tp_nomatch_ss;
// MC truth
TH1F_LW *m_mcmatch;
TH1F_LW *m_muon_Pt;
TH1F_LW *m_muon_Eta;
TH1F_LW *m_ele_Et;
TH1F_LW *m_ele_Eta;
//Resonance Counters
float m_minLumiBlock;
float m_maxLumiBlock;
float m_numBins;
TH1F_LW *m_JPsiCounter_Mu;
TH1F_LW *m_UpsilonCounter_Mu;
TH1F *m_ZBosonCounter_Mu;
//Trigger T&P
TH1F_LW *m_mutrigtp_matches;
//Reco T&P
TH1F_LW *m_muloosetp_match_os;
TH1F_LW *m_muloosetp_match_ss;
TH1F_LW *m_muloosetp_nomatch_os;
TH1F_LW *m_muloosetp_nomatch_ss;
// Inner detector T&P
TH1F_LW *m_mu_InDet_tp_match_os;
TH1F_LW *m_mu_InDet_tp_match_ss;
TH1F_LW *m_mu_InDet_tp_nomatch_os;
TH1F_LW *m_mu_InDet_tp_nomatch_ss;
// MC truth
TH1F_LW *m_mcmatch;
//Second component of counter array is for trigger aware counter
int m_JPsiCounterSBG[2];
int m_JPsiCounter2BG[2];
int m_JPsiCounterSignal[2];
//Second component of counter array is for trigger aware counter
int m_JPsiCounterSBG[2];
int m_JPsiCounter2BG[2];
int m_JPsiCounterSignal[2];
int m_UpsilonCounterSBG[2];
int m_UpsilonCounterBG[2];
int m_UpsilonCounterSignal[2];
int m_UpsilonCounterSBG[2];
int m_UpsilonCounterBG[2];
int m_UpsilonCounterSignal[2];
int m_ZBosonCounterSBG_El[2];
int m_ZBosonCounterSBG_Mu[2];
int m_ZBosonCounterSBG_El[2];
int m_ZBosonCounterSBG_Mu[2];
//uint32_t lumiBlock;
//uint32_t eventNumber;
//uint32_t lumiBlock;
//uint32_t eventNumber;
int m_this_lb; //remove _t
int m_eventNumber; //remove _t
Float_t m_evtWeight;
int m_this_lb; //remove _t
int m_eventNumber; //remove _t
float m_evtWeight;
std::string m_electronContainerName;
std::string m_egDetailContainerName;
std::string m_VxPrimContainerName;
std::string m_VxContainerName;
std::string m_METName;
std::string m_muonContainerName;
std::string m_jetCollectionName;
std::string m_tracksName;
Float_t m_electronEtCut;
Float_t m_muonPtCut;
Float_t m_metCut;
Float_t m_zCutLow;
Float_t m_zCutHigh;
Float_t m_muonMaxEta;
bool m_doTrigger;
ToolHandle<CP::IMuonSelectionTool> m_muonSelectionTool;
ToolHandle<CP::IIsolationSelectionTool> m_isolationSelectionTool;
ToolHandle<Trig::ITrigMuonMatching> m_muTrigMatchTool;
bool m_useOwnMuonSelection;
std::string m_electronContainerName;
std::string m_egDetailContainerName;
std::string m_VxPrimContainerName;
std::string m_VxContainerName;
std::string m_METName;
std::string m_muonContainerName;
std::string m_jetCollectionName;
std::string m_tracksName;
float m_electronEtCut;
float m_muonPtCut;
float m_metCut;
float m_zCutLow;
float m_zCutHigh;
float m_muonMaxEta;
bool m_doTrigger;
ToolHandle<CP::IMuonSelectionTool> m_muonSelectionTool;
ToolHandle<CP::IIsolationSelectionTool> m_isolationSelectionTool;
ToolHandle<Trig::ITrigMuonMatching> m_muTrigMatchTool;
bool m_useOwnMuonSelection;
// to guard against endless messages
bool m_printedErrorEleContainer;
bool m_printedErrorMuColl;
bool m_printedErrorMet;
bool m_printedErrorTrackContainer;
std::vector<std::string> m_Jpsi_mm_trigger;
std::vector<std::string> m_Z_mm_trigger;
std::vector<std::string> m_Z_ee_trigger;
// to guard against endless messages
bool m_printedErrorEleContainer;
bool m_printedErrorMuColl;
bool m_printedErrorMet;
bool m_printedErrorTrackContainer;
std::vector<std::string> m_Jpsi_mm_trigger;
std::vector<std::string> m_Z_mm_trigger;
std::vector<std::string> m_Z_ee_trigger;
ToolHandle<Trig::ITrigEgammaMatchingTool> m_elTrigMatchTool;
// Here we define all the TTree variables
// Muon TTrees
TTree *m_muontree;
bool m_muontree_isTruth;
float m_muontree_eta1;
float m_muontree_eta2;
float m_muontree_phi1;
float m_muontree_phi2;
float m_muontree_pT1;
float m_muontree_pT2;
float m_muontree_weight;
float m_muontree_mass;
int m_muontree_lb;
int m_muontree_runnumber;
unsigned long long m_muontree_eventnumber;
TTree *m_muon_reco_tptree;
bool m_muon_reco_tptree_isTruth;
float m_muon_reco_tptree_pT;
float m_muon_reco_tptree_eta;
float m_muon_reco_tptree_phi;
float m_muon_reco_tptree_mass;
float m_muon_reco_tptree_weight;
int m_muon_reco_tptree_mtype;
int m_muon_reco_tptree_lb;
int m_muon_reco_tptree_runnumber;
unsigned long long m_muon_reco_tptree_eventnumber;
TTree *m_muon_indet_tptree;
bool m_muon_indet_tptree_isTruth;
float m_muon_indet_tptree_pT;
float m_muon_indet_tptree_eta;
float m_muon_indet_tptree_phi;
float m_muon_indet_tptree_mass;
float m_muon_indet_tptree_weight;
int m_muon_indet_tptree_mtype;
int m_muon_indet_tptree_lb;
int m_muon_indet_tptree_runnumber;
unsigned long long m_muon_indet_tptree_eventnumber;
TTree *m_muon_trig_tptree;
bool m_muon_trig_tptree_isTruth;
float m_muon_trig_tptree_pT;
float m_muon_trig_tptree_eta;
float m_muon_trig_tptree_phi;
float m_muon_trig_tptree_mass;
float m_muon_trig_tptree_weight;
int m_muon_trig_tptree_mtype;
int m_muon_trig_tptree_lb;
int m_muon_trig_tptree_runnumber;
unsigned long long m_muon_trig_tptree_eventnumber;
// Electron TTrees
TTree *m_electrontree;
bool m_electrontree_isTruth;
float m_electrontree_eta1;
float m_electrontree_eta2;
float m_electrontree_phi1;
float m_electrontree_phi2;
float m_electrontree_pT1;
float m_electrontree_pT2;
float m_electrontree_weight;
float m_electrontree_mass;
int m_electrontree_lb;
int m_electrontree_runnumber;
unsigned long long m_electrontree_eventnumber;
TTree *m_electron_reco_tptree;
bool m_electron_reco_tptree_isTruth;
float m_electron_reco_tptree_pT;
float m_electron_reco_tptree_eta;
float m_electron_reco_tptree_phi;
float m_electron_reco_tptree_mass;
float m_electron_reco_tptree_weight;
int m_electron_reco_tptree_mtype;
int m_electron_reco_tptree_lb;
int m_electron_reco_tptree_runnumber;
unsigned long long m_electron_reco_tptree_eventnumber;
TTree *m_electron_container_tptree;
bool m_electron_container_tptree_isTruth;
float m_electron_container_tptree_pT;
float m_electron_container_tptree_eta;
float m_electron_container_tptree_phi;
float m_electron_container_tptree_mass;
float m_electron_container_tptree_weight;
int m_electron_container_tptree_mtype;
int m_electron_container_tptree_lb;
int m_electron_container_tptree_runnumber;
unsigned long long m_electron_container_tptree_eventnumber;
TTree *m_electron_trig_tptree;
bool m_electron_trig_tptree_isTruth;
float m_electron_trig_tptree_pT;
float m_electron_trig_tptree_eta;
float m_electron_trig_tptree_phi;
float m_electron_trig_tptree_mass;
float m_electron_trig_tptree_weight;
int m_electron_trig_tptree_mtype;
int m_electron_trig_tptree_lb;
int m_electron_trig_tptree_runnumber;
unsigned long long m_electron_trig_tptree_eventnumber;
};
......
......@@ -38,6 +38,8 @@
#include "LWHists/TProfile_LW.h"
#include "LWHists/TProfile2D_LW.h"
#include "TTree.h"
#include "TH1.h"
#include "TGraph.h"
......@@ -71,6 +73,9 @@ class DataQualityFatherMonTool: public ManagedMonitorToolBase
StatusCode registerHist(const std::string& path, TH2F_LW* h1, Interval_t interval=run, MgmtAttr_t histo_mgmt = ATTRIB_MANAGED);
StatusCode registerHist(const std::string& path, TProfile_LW* h1, Interval_t interval=run, MgmtAttr_t histo_mgmt = ATTRIB_MANAGED);
StatusCode registerHist(const std::string& path, TProfile2D_LW* h1, Interval_t interval=run, MgmtAttr_t histo_mgmt = ATTRIB_MANAGED);
StatusCode registerTree(const std::string& path, TTree* t1, Interval_t interval=run, MgmtAttr_t histo_mgmt = ATTRIB_MANAGED);
//StatusCode registerHist(const std::string& path, TH1F_LW* h1, Interval_t interval=run, std::string dqmAlgorithm="");
//StatusCode registerHist(const std::string& path, TH1I_LW* h1, Interval_t interval=run, std::string dqmAlgorithm="");
//StatusCode registerHist(const std::string& path, TH2F_LW* h1, Interval_t interval=run, std::string dqmAlgorithm="");
......@@ -78,7 +83,6 @@ class DataQualityFatherMonTool: public ManagedMonitorToolBase
//StatusCode registerHist(const std::string& path, TProfile_LW* h1, Interval_t interval=run, std::string dqmAlgorithm="");
//StatusCode registerHist(const std::string& path, TProfile2D_LW* h1, Interval_t interval=run, std::string dqmAlgorithm="");
protected:
StoreGateSvc* m_detStore ;
......
......@@ -271,6 +271,7 @@ if isBeam==True and (DQMonFlags.monManEnvironment != 'tier0Raw') and rec.doInDet
from TrigMuonMatching.TrigMuonMatchingConf import Trig__TrigMuonMatching
ToolSvc += Trig__TrigMuonMatching("MatchingTool");
from TrigBunchCrossingTool.BunchCrossingTool import BunchCrossingTool
from DataQualityTools.DataQualityToolsConf import DQTGlobalWZFinderTool
MyDQTGlobalWZFinderTool = DQTGlobalWZFinderTool(
name = 'DQTGlobalWZFinderTool',
......@@ -287,7 +288,6 @@ if isBeam==True and (DQMonFlags.monManEnvironment != 'tier0Raw') and rec.doInDet
#from TrigBunchCrossingTool.TrigBunchCrossingToolConf import Trig__TrigConfBunchCrossingTool
#ToolSvc += Trig__TrigConfBunchCrossingTool("DQTBunchCrossingTool")
from TrigBunchCrossingTool.BunchCrossingTool import BunchCrossingTool
#ToolSvc += BunchCrossingTool("DQTBunchCrossingTool")
DontUseBunchCrossingTool = False
if (rec.triggerStream() == 'CosmicCalo'
......
......@@ -85,20 +85,6 @@ StatusCode DQTDataFlowMonTool::bookHistograms( )
MonGroup run_hists( this, m_path, run, ATTRIB_MANAGED );
MonGroup rolling_hists( this, m_path, run, ATTRIB_X_VS_LB, "", "merge" );
//failure |= lb_hists.regHist(m_events_lb = TH1I_LW::create("events_lb", "Event Count", AthenaMonManager::altprod+1, -0.5, AthenaMonManager::altprod+0.5)).isFailure();
failure |= lb_hists.regHist(m_events_lb = new TH1I("events_lb", "Event Count", AthenaMonManager::altprod+1, -0.5, AthenaMonManager::altprod+0.5)).isFailure();
if (m_events_lb) {
for (int i = 1; i <= AthenaMonManager::altprod+1; i++) {
m_events_lb->GetXaxis()->SetBinLabel(i, envstrings[i-1]);
}
}
//failure |= lowStat_alpha_hists.regHist(m_release_stage_lowStat = TH1I_LW::create("m_release_stage_lowStat", "Release - Event Count", AthenaMonManager::altprod+1, -0.5, AthenaMonManager::altprod+0.5)).isFailure();
failure |= lowStat_alpha_hists.regHist(m_release_stage_lowStat = new TH1I("m_release_stage_lowStat", "Release - Event Count", AthenaMonManager::altprod+1, -0.5, AthenaMonManager::altprod+0.5)).isFailure();
if (m_release_stage_lowStat) {
m_release_stage_lowStat->GetXaxis()->SetBinLabel(m_environment+1, m_releaseStageString.c_str());
}
const EventInfo* evtinfo;
StatusCode sc(evtStore()->retrieve(evtinfo));
if (sc.isFailure()) {
......@@ -110,6 +96,18 @@ StatusCode DQTDataFlowMonTool::bookHistograms( )
}
}
failure |= lb_hists.regHist(m_events_lb = new TH1I("events_lb", "Event Count", AthenaMonManager::altprod+1, -0.5, AthenaMonManager::altprod+0.5)).isFailure();
if (m_events_lb) {
for (int i = 1; i <= AthenaMonManager::altprod+1; i++) {
m_events_lb->GetXaxis()->SetBinLabel(i, envstrings[i-1]);
}
}
failure |= lowStat_alpha_hists.regHist(m_release_stage_lowStat = new TH1I("m_release_stage_lowStat", "Release - Event Count", AthenaMonManager::altprod+1, -0.5, AthenaMonManager::altprod+0.5)).isFailure();
if (m_release_stage_lowStat) {
m_release_stage_lowStat->GetXaxis()->SetBinLabel(m_environment+1, m_releaseStageString.c_str());
}
if (failure) {return StatusCode::FAILURE;}
else {return StatusCode::SUCCESS;}
......@@ -118,25 +116,30 @@ StatusCode DQTDataFlowMonTool::bookHistograms( )
StatusCode
DQTDataFlowMonTool::bookHistogramsRecurrent() {
bool failure(false);
MonGroup lowStat_hists( this, m_path, lowStat, ATTRIB_UNMANAGED );
MonGroup run_hists( this, m_path, run, ATTRIB_UNMANAGED );
bool failure(false);
MonGroup lowStat_hists( this, m_path, lowStat, ATTRIB_UNMANAGED );
MonGroup run_hists( this, m_path, run, ATTRIB_UNMANAGED );
const EventInfo* evtinfo;
StatusCode sc(evtStore()->retrieve(evtinfo));
if (!evtinfo->eventType(xAOD::EventInfo::IS_SIMULATION)){
if( m_environment != AthenaMonManager::tier0Raw ) {
/*
if (newRunFlag()) {
if (newRunFlag()) {
for (int i=0; i < EventInfo::nDets; i++) {
m_eventflag_run[i] = new TGraph();
m_eventflag_run[i]->SetTitle((std::string("Nonzero Warning/Error Event Flags for ")
+ eventflagdets[i]).c_str());
m_eventflag_run[i]->SetName((std::string("eventflag_run_")
+ eventflagdets[i]).c_str());
failure |= run_hists.regGraph(m_eventflag_run[i]).isFailure();
delete m_eventflag_vec[i];
m_eventflag_vec[i] = new std::vector<EvFlagPt_t>;
m_eventflag_vec[i]->reserve(1000);
m_eventflag_run[i] = new TGraph();
m_eventflag_run[i]->SetTitle((std::string("Nonzero Warning/Error Event Flags for ")
+ eventflagdets[i]).c_str());
m_eventflag_run[i]->SetName((std::string("eventflag_run_")
+ eventflagdets[i]).c_str());
failure |= run_hists.regGraph(m_eventflag_run[i]).isFailure();
delete m_eventflag_vec[i];
m_eventflag_vec[i] = new std::vector<EvFlagPt_t>;
m_eventflag_vec[i]->reserve(1000);
}
}
}
*/
if (newLumiBlockFlag() && newLowStatIntervalFlag()) {
......@@ -154,6 +157,7 @@ DQTDataFlowMonTool::bookHistogramsRecurrent() {
}
}
}
}
//else if (isNewEventsBlock) {
// return StatusCode::SUCCESS;
//}
......@@ -166,7 +170,9 @@ DQTDataFlowMonTool::fillHistograms()
{
ATH_MSG_DEBUG("in fillHists()");
//StatusCode sc;
const EventInfo* evtinfo;
StatusCode sc(evtStore()->retrieve(evtinfo));
m_events_lb->Fill(m_environment);
m_release_stage_lowStat->Fill(m_environment);
......@@ -179,19 +185,21 @@ DQTDataFlowMonTool::fillHistograms()
if (m_sumweights) {
m_sumweights->Fill(evtinfo->lumiBlock(), evtinfo->mcEventWeight());
}
EventInfo::EventFlagErrorState worststate = EventInfo::NotSet;
for (int i = 0; i < EventInfo::nDets; i++) {
//unsigned int flag = evtinfo->eventFlags((EventInfo::EventFlagSubDet) i);
EventInfo::EventFlagErrorState detstate = evtinfo->errorState((EventInfo::EventFlagSubDet) i);
/*
if (flag != 0 && detstate > EventInfo::NotSet) {
m_eventflag_vec[i]->push_back(EvFlagPt_t(evtinfo->eventNumber(), flag));
if (!evtinfo->eventType(xAOD::EventInfo::IS_SIMULATION)){
EventInfo::EventFlagErrorState worststate = EventInfo::NotSet;
for (int i = 0; i < EventInfo::nDets; i++) {
//unsigned int flag = evtinfo->eventFlags((EventInfo::EventFlagSubDet) i);
EventInfo::EventFlagErrorState detstate = evtinfo->errorState((EventInfo::EventFlagSubDet) i);
/*
if (flag != 0 && detstate > EventInfo::NotSet) {
m_eventflag_vec[i]->push_back(EvFlagPt_t(evtinfo->eventNumber(), flag));
}
*/
if (detstate > worststate) worststate = detstate;
m_eventflag_summary_lowStat->Fill(i, detstate);
}
*/
if (detstate > worststate) worststate = detstate;
m_eventflag_summary_lowStat->Fill(i, detstate);
m_eventflag_summary_lowStat->Fill(EventInfo::nDets, worststate);
}
m_eventflag_summary_lowStat->Fill(EventInfo::nDets, worststate);
}
}
return StatusCode::SUCCESS;
......
This diff is collapsed.
......@@ -327,3 +327,15 @@ StatusCode DataQualityFatherMonTool::registerHist(const std::string& path, TGrap
return StatusCode::SUCCESS;
}
//----------------------------------------------------------------------------------
StatusCode DataQualityFatherMonTool::registerTree(const std::string& path, TTree* t1, Interval_t interval, MgmtAttr_t histo_mgmt)
//----------------------------------------------------------------------------------
{
if(ManagedMonitorToolBase::regTree(t1, path, interval, histo_mgmt) != StatusCode::SUCCESS) {
MsgStream log(msgSvc(), name());
log << MSG::WARNING << "Could not register ttree : "
<< "/"+path+"/"+t1->GetName() << endmsg;
return StatusCode::FAILURE;
}
return StatusCode::SUCCESS;
}
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