Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate Validation/DTRecHit clients to DQMEDHarvester + update efficiency plots #22199

Merged
merged 3 commits into from Feb 15, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions Validation/DTRecHits/plugins/BuildFile.xml
@@ -1,4 +1,5 @@
<use name="FWCore/Framework"/>
<use name="DQMServices/Core"/>
<use name="DataFormats/DTRecHit"/>
<use name="Geometry/Records"/>
<use name="Geometry/DTGeometry"/>
Expand Down
34 changes: 23 additions & 11 deletions Validation/DTRecHits/plugins/DT2DSegmentClients.cc
Expand Up @@ -4,32 +4,44 @@
#include "Validation/DTRecHits/interface/utils.h"

#include "DT2DSegmentClients.h"
#include "Histograms.h"

using namespace std;
using namespace edm;

DT2DSegmentClients::DT2DSegmentClients(edm::ParameterSet const& config)
DT2DSegmentClients::DT2DSegmentClients(edm::ParameterSet const& pset)
{
do2D_ = pset.getUntrackedParameter<bool>("do2D", false);
doSLPhi_ = pset.getUntrackedParameter<bool>("doSLPhi", false);
}

void DT2DSegmentClients::endLuminosityBlock(edm::LuminosityBlock const& lumi,
edm::EventSetup const& setup)
DT2DSegmentClients::~DT2DSegmentClients()
{
DQMStore* dbe = Service<DQMStore>().operator->();
MonitorElement * hResPos = dbe->get("DT/2DSegments/Res/2D_SuperPhi_hResPos");
MonitorElement * hResAngle = dbe->get("DT/2DSegments/Res/2D_SuperPhi_hResAngle");
MonitorElement * hPullPos = dbe->get("DT/2DSegments/Pull/2D_SuperPhi_hPullPos");
MonitorElement * hPullAngle = dbe->get("DT/2DSegments/Pull/2D_SuperPhi_hPullAngle");
}

void DT2DSegmentClients::dqmEndJob(DQMStore::IBooker & booker, DQMStore::IGetter & getter)
{
MonitorElement * hResPos = getter.get("DT/2DSegments/Res/2D_SuperPhi_hResPos");
MonitorElement * hResAngle = getter.get("DT/2DSegments/Res/2D_SuperPhi_hResAngle");
MonitorElement * hPullPos = getter.get("DT/2DSegments/Pull/2D_SuperPhi_hPullPos");
MonitorElement * hPullAngle = getter.get("DT/2DSegments/Pull/2D_SuperPhi_hPullAngle");

Tutils util;
util.drawGFit(hResPos->getTH1(), -0.1, 0.1, -0.1, 0.1);
util.drawGFit(hResAngle->getTH1(), -0.1, 0.1, -0.1, 0.1);
util.drawGFit(hPullPos->getTH1(), -5, 5, -5, 5);
util.drawGFit(hPullAngle->getTH1(), -5, 5, -5, 5);
}

void DT2DSegmentClients::analyze(Event const& event, EventSetup const& setup)
{
if (do2D_) {
HEff2DHitHarvest hEff_RPhi("RPhi", booker, getter);
HEff2DHitHarvest hEff_RZ("RZ", booker, getter);
HEff2DHitHarvest hEff_RZ_W0("RZ_W0", booker, getter);
HEff2DHitHarvest hEff_RZ_W1("RZ_W1", booker, getter);
HEff2DHitHarvest hEff_RZ_W2("RZ_W2", booker, getter);
}
if (doSLPhi_) {
HEff2DHitHarvest hEff_SuperPhi("SuperPhi", booker, getter);
}
}

// declare this as a framework plugin
Expand Down
25 changes: 15 additions & 10 deletions Validation/DTRecHits/plugins/DT2DSegmentClients.h
Expand Up @@ -9,21 +9,26 @@
*
*/

#include "FWCore/Framework/interface/EDAnalyzer.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "DQMServices/Core/interface/DQMEDHarvester.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

class DT2DSegmentClients: public edm::EDAnalyzer {
public:
class DT2DSegmentClients: public DQMEDHarvester {

public:
/// Constructor
DT2DSegmentClients(const edm::ParameterSet& ps);

/// Analyze
void analyze(const edm::Event& e, const edm::EventSetup& c) override;
void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg,
edm::EventSetup const& c) override;
/// Destructor
~DT2DSegmentClients() override;

protected:
/// End Job
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override;

private:
bool do2D_;
bool doSLPhi_;

};

#endif // Validation_DTRecHits_DT2DSegmentClients_h
134 changes: 71 additions & 63 deletions Validation/DTRecHits/plugins/DT4DSegmentClients.cc
Expand Up @@ -7,74 +7,78 @@
#include "Validation/DTRecHits/interface/utils.h"

#include "DT4DSegmentClients.h"
#include "Histograms.h"

using namespace std;
using namespace edm;

DT4DSegmentClients::DT4DSegmentClients(edm::ParameterSet const& config)
DT4DSegmentClients::DT4DSegmentClients(edm::ParameterSet const& pset)
{
doall_ = pset.getUntrackedParameter<bool>("doall", false);
}

void DT4DSegmentClients::endLuminosityBlock(edm::LuminosityBlock const& lumi,
edm::EventSetup const& setup)
DT4DSegmentClients::~DT4DSegmentClients()
{
DQMStore* dbe = Service<DQMStore>().operator->();

MonitorElement * hResAlpha = dbe->get("DT/4DSegments/Res/4D_All_hResAlpha");
MonitorElement * hResBeta = dbe->get("DT/4DSegments/Res/4D_All_hResBeta");
MonitorElement * hResX = dbe->get("DT/4DSegments/Res/4D_All_hResX");
MonitorElement * hResY = dbe->get("DT/4DSegments/Res/4D_All_hResY");
MonitorElement * hResBetaRZ = dbe->get("DT/4DSegments/Res/4D_All_hResBetaRZ");
MonitorElement * hResYRZ = dbe->get("DT/4DSegments/Res/4D_All_hResYRZ");

MonitorElement * hResAlpha_W0 = dbe->get("DT/4DSegments/Res/4D_W0_hResAlpha");
MonitorElement * hResBeta_W0 = dbe->get("DT/4DSegments/Res/4D_W0_hResBeta");
MonitorElement * hResX_W0 = dbe->get("DT/4DSegments/Res/4D_W0_hResX");
MonitorElement * hResY_W0 = dbe->get("DT/4DSegments/Res/4D_W0_hResY");
MonitorElement * hResBetaRZ_W0 = dbe->get("DT/4DSegments/Res/4D_W0_hResBetaRZ");
MonitorElement * hResYRZ_W0 = dbe->get("DT/4DSegments/Res/4D_W0_hResYRZ");

MonitorElement * hResAlpha_W1 = dbe->get("DT/4DSegments/Res/4D_W1_hResAlpha");
MonitorElement * hResBeta_W1 = dbe->get("DT/4DSegments/Res/4D_W1_hResBeta");
MonitorElement * hResX_W1 = dbe->get("DT/4DSegments/Res/4D_W1_hResX");
MonitorElement * hResY_W1 = dbe->get("DT/4DSegments/Res/4D_W1_hResY");
MonitorElement * hResBetaRZ_W1 = dbe->get("DT/4DSegments/Res/4D_W1_hResBetaRZ");
MonitorElement * hResYRZ_W1 = dbe->get("DT/4DSegments/Res/4D_W1_hResYRZ");

MonitorElement * hResAlpha_W2 = dbe->get("DT/4DSegments/Res/4D_W2_hResAlpha");
MonitorElement * hResBeta_W2 = dbe->get("DT/4DSegments/Res/4D_W2_hResBeta");
MonitorElement * hResX_W2 = dbe->get("DT/4DSegments/Res/4D_W2_hResX");
MonitorElement * hResY_W2 = dbe->get("DT/4DSegments/Res/4D_W2_hResY");
MonitorElement * hResBetaRZ_W2 = dbe->get("DT/4DSegments/Res/4D_W2_hResBetaRZ");
MonitorElement * hResYRZ_W2 = dbe->get("DT/4DSegments/Res/4D_W2_hResYRZ");

MonitorElement * hPullAlpha = dbe->get("DT/4DSegments/Pull/4D_All_hPullAlpha");
MonitorElement * hPullBeta = dbe->get("DT/4DSegments/Pull/4D_All_hPullBeta");
MonitorElement * hPullX = dbe->get("DT/4DSegments/Pull/4D_All_hPullX");
MonitorElement * hPullY = dbe->get("DT/4DSegments/Pull/4D_All_hPullY");
MonitorElement * hPullBetaRZ = dbe->get("DT/4DSegments/Pull/4D_All_hPullBetaRZ");
MonitorElement * hPullYRZ = dbe->get("DT/4DSegments/Pull/4D_All_hPullYRZ");

MonitorElement * hPullAlpha_W0 = dbe->get("DT/4DSegments/Pull/4D_W0_hPullAlpha");
MonitorElement * hPullBeta_W0 = dbe->get("DT/4DSegments/Pull/4D_W0_hPullBeta");
MonitorElement * hPullX_W0 = dbe->get("DT/4DSegments/Pull/4D_W0_hPullX");
MonitorElement * hPullY_W0 = dbe->get("DT/4DSegments/Pull/4D_W0_hPullY");
MonitorElement * hPullBetaRZ_W0 = dbe->get("DT/4DSegments/Pull/4D_W0_hPullBetaRZ");
MonitorElement * hPullYRZ_W0 = dbe->get("DT/4DSegments/Pull/4D_W0_hPullYRZ");

MonitorElement * hPullAlpha_W1 = dbe->get("DT/4DSegments/Pull/4D_W1_hPullAlpha");
MonitorElement * hPullBeta_W1 = dbe->get("DT/4DSegments/Pull/4D_W1_hPullBeta");
MonitorElement * hPullX_W1 = dbe->get("DT/4DSegments/Pull/4D_W1_hPullX");
MonitorElement * hPullY_W1 = dbe->get("DT/4DSegments/Pull/4D_W1_hPullY");
MonitorElement * hPullBetaRZ_W1 = dbe->get("DT/4DSegments/Pull/4D_W1_hPullBetaRZ");
MonitorElement * hPullYRZ_W1 = dbe->get("DT/4DSegments/Pull/4D_W1_hPullYRZ");

MonitorElement * hPullAlpha_W2 = dbe->get("DT/4DSegments/Pull/4D_W2_hPullAlpha");
MonitorElement * hPullBeta_W2 = dbe->get("DT/4DSegments/Pull/4D_W2_hPullBeta");
MonitorElement * hPullX_W2 = dbe->get("DT/4DSegments/Pull/4D_W2_hPullX");
MonitorElement * hPullY_W2 = dbe->get("DT/4DSegments/Pull/4D_W2_hPullY");
MonitorElement * hPullBetaRZ_W2 = dbe->get("DT/4DSegments/Pull/4D_W2_hPullBetaRZ");
MonitorElement * hPullYRZ_W2 = dbe->get("DT/4DSegments/Pull/4D_W2_hPullYRZ");
}

void DT4DSegmentClients::dqmEndJob(DQMStore::IBooker & booker, DQMStore::IGetter & getter)
{

MonitorElement * hResAlpha = getter.get("DT/4DSegments/Res/4D_All_hResAlpha");
MonitorElement * hResBeta = getter.get("DT/4DSegments/Res/4D_All_hResBeta");
MonitorElement * hResX = getter.get("DT/4DSegments/Res/4D_All_hResX");
MonitorElement * hResY = getter.get("DT/4DSegments/Res/4D_All_hResY");
MonitorElement * hResBetaRZ = getter.get("DT/4DSegments/Res/4D_All_hResBetaRZ");
MonitorElement * hResYRZ = getter.get("DT/4DSegments/Res/4D_All_hResYRZ");

MonitorElement * hResAlpha_W0 = getter.get("DT/4DSegments/Res/4D_W0_hResAlpha");
MonitorElement * hResBeta_W0 = getter.get("DT/4DSegments/Res/4D_W0_hResBeta");
MonitorElement * hResX_W0 = getter.get("DT/4DSegments/Res/4D_W0_hResX");
MonitorElement * hResY_W0 = getter.get("DT/4DSegments/Res/4D_W0_hResY");
MonitorElement * hResBetaRZ_W0 = getter.get("DT/4DSegments/Res/4D_W0_hResBetaRZ");
MonitorElement * hResYRZ_W0 = getter.get("DT/4DSegments/Res/4D_W0_hResYRZ");

MonitorElement * hResAlpha_W1 = getter.get("DT/4DSegments/Res/4D_W1_hResAlpha");
MonitorElement * hResBeta_W1 = getter.get("DT/4DSegments/Res/4D_W1_hResBeta");
MonitorElement * hResX_W1 = getter.get("DT/4DSegments/Res/4D_W1_hResX");
MonitorElement * hResY_W1 = getter.get("DT/4DSegments/Res/4D_W1_hResY");
MonitorElement * hResBetaRZ_W1 = getter.get("DT/4DSegments/Res/4D_W1_hResBetaRZ");
MonitorElement * hResYRZ_W1 = getter.get("DT/4DSegments/Res/4D_W1_hResYRZ");

MonitorElement * hResAlpha_W2 = getter.get("DT/4DSegments/Res/4D_W2_hResAlpha");
MonitorElement * hResBeta_W2 = getter.get("DT/4DSegments/Res/4D_W2_hResBeta");
MonitorElement * hResX_W2 = getter.get("DT/4DSegments/Res/4D_W2_hResX");
MonitorElement * hResY_W2 = getter.get("DT/4DSegments/Res/4D_W2_hResY");
MonitorElement * hResBetaRZ_W2 = getter.get("DT/4DSegments/Res/4D_W2_hResBetaRZ");
MonitorElement * hResYRZ_W2 = getter.get("DT/4DSegments/Res/4D_W2_hResYRZ");

MonitorElement * hPullAlpha = getter.get("DT/4DSegments/Pull/4D_All_hPullAlpha");
MonitorElement * hPullBeta = getter.get("DT/4DSegments/Pull/4D_All_hPullBeta");
MonitorElement * hPullX = getter.get("DT/4DSegments/Pull/4D_All_hPullX");
MonitorElement * hPullY = getter.get("DT/4DSegments/Pull/4D_All_hPullY");
MonitorElement * hPullBetaRZ = getter.get("DT/4DSegments/Pull/4D_All_hPullBetaRZ");
MonitorElement * hPullYRZ = getter.get("DT/4DSegments/Pull/4D_All_hPullYRZ");

MonitorElement * hPullAlpha_W0 = getter.get("DT/4DSegments/Pull/4D_W0_hPullAlpha");
MonitorElement * hPullBeta_W0 = getter.get("DT/4DSegments/Pull/4D_W0_hPullBeta");
MonitorElement * hPullX_W0 = getter.get("DT/4DSegments/Pull/4D_W0_hPullX");
MonitorElement * hPullY_W0 = getter.get("DT/4DSegments/Pull/4D_W0_hPullY");
MonitorElement * hPullBetaRZ_W0 = getter.get("DT/4DSegments/Pull/4D_W0_hPullBetaRZ");
MonitorElement * hPullYRZ_W0 = getter.get("DT/4DSegments/Pull/4D_W0_hPullYRZ");

MonitorElement * hPullAlpha_W1 = getter.get("DT/4DSegments/Pull/4D_W1_hPullAlpha");
MonitorElement * hPullBeta_W1 = getter.get("DT/4DSegments/Pull/4D_W1_hPullBeta");
MonitorElement * hPullX_W1 = getter.get("DT/4DSegments/Pull/4D_W1_hPullX");
MonitorElement * hPullY_W1 = getter.get("DT/4DSegments/Pull/4D_W1_hPullY");
MonitorElement * hPullBetaRZ_W1 = getter.get("DT/4DSegments/Pull/4D_W1_hPullBetaRZ");
MonitorElement * hPullYRZ_W1 = getter.get("DT/4DSegments/Pull/4D_W1_hPullYRZ");

MonitorElement * hPullAlpha_W2 = getter.get("DT/4DSegments/Pull/4D_W2_hPullAlpha");
MonitorElement * hPullBeta_W2 = getter.get("DT/4DSegments/Pull/4D_W2_hPullBeta");
MonitorElement * hPullX_W2 = getter.get("DT/4DSegments/Pull/4D_W2_hPullX");
MonitorElement * hPullY_W2 = getter.get("DT/4DSegments/Pull/4D_W2_hPullY");
MonitorElement * hPullBetaRZ_W2 = getter.get("DT/4DSegments/Pull/4D_W2_hPullBetaRZ");
MonitorElement * hPullYRZ_W2 = getter.get("DT/4DSegments/Pull/4D_W2_hPullYRZ");

Tutils util;
util.drawGFit(hResAlpha->getTH1(),-0.2,0.2,-0.1,0.1);
Expand Down Expand Up @@ -132,10 +136,14 @@ void DT4DSegmentClients::endLuminosityBlock(edm::LuminosityBlock const& lumi,
util.drawGFit(hPullY_W2->getTH1(),-0.2,0.2,-0.1,0.1);
util.drawGFit(hPullBetaRZ_W2->getTH1(),-0.2,0.2,-0.1,0.1);
util.drawGFit(hPullYRZ_W2->getTH1(),-0.2,0.2,-0.1,0.1);
}

void DT4DSegmentClients::analyze(Event const& event, EventSetup const& setup)
{
if (doall_) {
HEff4DHitHarvest hEff_S3RPhi("All", booker, getter);
HEff4DHitHarvest hEff_S3RZ_W0("W0", booker, getter);
HEff4DHitHarvest hEff_S3RZ_W1("W1", booker, getter);
HEff4DHitHarvest hEff_S3RZ_W2("W2", booker, getter);
}

}

// declare this as a framework plugin
Expand Down
20 changes: 12 additions & 8 deletions Validation/DTRecHits/plugins/DT4DSegmentClients.h
Expand Up @@ -9,20 +9,24 @@
*
*/

#include "FWCore/Framework/interface/EDAnalyzer.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "DQMServices/Core/interface/DQMEDHarvester.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

class DT4DSegmentClients: public edm::EDAnalyzer {
class DT4DSegmentClients: public DQMEDHarvester {

public:
/// Constructor
DT4DSegmentClients(const edm::ParameterSet& ps);
/// Destructor
~DT4DSegmentClients() override;

protected:
/// End Job
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override;

private:
bool doall_;

/// Analyze
void analyze(const edm::Event& e, const edm::EventSetup& c) override;
void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& c) override;
};

#endif // Validation_DTRecHits_DT4DSegmentClients_h
81 changes: 63 additions & 18 deletions Validation/DTRecHits/plugins/DTRecHitClients.cc
Expand Up @@ -4,29 +4,38 @@
#include "Validation/DTRecHits/interface/utils.h"

#include "DTRecHitClients.h"
#include "Histograms.h"

using namespace std;
using namespace edm;

DTRecHitClients::DTRecHitClients(edm::ParameterSet const& config)
DTRecHitClients::DTRecHitClients(edm::ParameterSet const& pset)
{
// Switches for analysis at various steps
doStep1_ = pset.getUntrackedParameter<bool>("doStep1", false);
doStep2_ = pset.getUntrackedParameter<bool>("doStep2", false);
doStep3_ = pset.getUntrackedParameter<bool>("doStep3", false);
doall_ = pset.getUntrackedParameter<bool>("doall", false);
local_ = pset.getUntrackedParameter<bool>("local", true);
}

void DTRecHitClients::endLuminosityBlock(edm::LuminosityBlock const& lumi,
edm::EventSetup const& setup)
DTRecHitClients::~DTRecHitClients()
{
DQMStore* dbe = Service<DQMStore>().operator->();
MonitorElement * hRes_S3RPhi = dbe->get("DT/1DRecHits/Res/1D_S3RPhi_hRes");
MonitorElement * hRes_S3RZ = dbe->get("DT/1DRecHits/Res/1D_S3RZ_hRes");
MonitorElement * hRes_S3RZ_W0 = dbe->get("DT/1DRecHits/Res/1D_S3RZ_W0_hRes");
MonitorElement * hRes_S3RZ_W1 = dbe->get("DT/1DRecHits/Res/1D_S3RZ_W1_hRes");
MonitorElement * hRes_S3RZ_W2 = dbe->get("DT/1DRecHits/Res/1D_S3RZ_W2_hRes");

MonitorElement * hPull_S3RPhi = dbe->get("DT/1DRecHits/Pull/1D_S3RPhi_hPull");
MonitorElement * hPull_S3RZ = dbe->get("DT/1DRecHits/Pull/1D_S3RZ_hPull");
MonitorElement * hPull_S3RZ_W0 = dbe->get("DT/1DRecHits/Pull/1D_S3RZ_W0_hPull");
MonitorElement * hPull_S3RZ_W1 = dbe->get("DT/1DRecHits/Pull/1D_S3RZ_W1_hPull");
MonitorElement * hPull_S3RZ_W2 = dbe->get("DT/1DRecHits/Pull/1D_S3RZ_W2_hPull");
}

void DTRecHitClients::dqmEndJob(DQMStore::IBooker & booker, DQMStore::IGetter & getter)
{
MonitorElement * hRes_S3RPhi = getter.get("DT/1DRecHits/Res/1D_S3RPhi_hRes");
MonitorElement * hRes_S3RZ = getter.get("DT/1DRecHits/Res/1D_S3RZ_hRes");
MonitorElement * hRes_S3RZ_W0 = getter.get("DT/1DRecHits/Res/1D_S3RZ_W0_hRes");
MonitorElement * hRes_S3RZ_W1 = getter.get("DT/1DRecHits/Res/1D_S3RZ_W1_hRes");
MonitorElement * hRes_S3RZ_W2 = getter.get("DT/1DRecHits/Res/1D_S3RZ_W2_hRes");

MonitorElement * hPull_S3RPhi = getter.get("DT/1DRecHits/Pull/1D_S3RPhi_hPull");
MonitorElement * hPull_S3RZ = getter.get("DT/1DRecHits/Pull/1D_S3RZ_hPull");
MonitorElement * hPull_S3RZ_W0 = getter.get("DT/1DRecHits/Pull/1D_S3RZ_W0_hPull");
MonitorElement * hPull_S3RZ_W1 = getter.get("DT/1DRecHits/Pull/1D_S3RZ_W1_hPull");
MonitorElement * hPull_S3RZ_W2 = getter.get("DT/1DRecHits/Pull/1D_S3RZ_W2_hPull");

Tutils util;
util.drawGFit(hRes_S3RPhi->getTH1(),-0.2,0.2,-0.1,0.1);
Expand All @@ -40,10 +49,46 @@ void DTRecHitClients::endLuminosityBlock(edm::LuminosityBlock const& lumi,
util.drawGFit(hPull_S3RZ_W0->getTH1(),-5,5,-5,5);
util.drawGFit(hPull_S3RZ_W1->getTH1(),-5,5,-5,5);
util.drawGFit(hPull_S3RZ_W2->getTH1(),-5,5,-5,5);
}

void DTRecHitClients::analyze(Event const& event, EventSetup const& setup)
{
if (doall_) {
HEff1DHitHarvest hEff_S3RPhi("S3RPhi", booker, getter);
HEff1DHitHarvest hEff_S3RZ("S3RZ", booker, getter);
HEff1DHitHarvest hEff_S3RZ_W0("S3RZ_W0", booker, getter);
HEff1DHitHarvest hEff_S3RZ_W1("S3RZ_W1", booker, getter);
HEff1DHitHarvest hEff_S3RZ_W2("S3RZ_W2", booker, getter);

if (doStep1_) {
HEff1DHitHarvest hEff_S1RPhi("S1RPhi", booker, getter);
HEff1DHitHarvest hEff_S1RZ("S1RZ", booker, getter);
HEff1DHitHarvest hEff_S1RZ_W0("S1RZ_W0", booker, getter);
HEff1DHitHarvest hEff_S1RZ_W1("S1RZ_W1", booker, getter);
HEff1DHitHarvest hEff_S1RZ_W2("S1RZ_W2", booker, getter);
}

if (doStep2_) {
HEff1DHitHarvest hEff_S2RPhi("S2RPhi", booker, getter);
HEff1DHitHarvest hEff_S2RZ_W0("S2RZ_W0", booker, getter);
HEff1DHitHarvest hEff_S2RZ_W1("S2RZ_W1", booker, getter);
HEff1DHitHarvest hEff_S2RZ_W2("S2RZ_W2", booker, getter);
HEff1DHitHarvest hEff_S2RZ("S2RZ", booker, getter);
}
}

if (local_) {
// Plots with finer granularity, not to be included in DQM
TString name1 = "RPhi_W";
TString name2 = "RZ_W";
for (long w = 0; w <= 2; ++w) {
for (long s = 1;s <= 4; ++s) {
HEff1DHitHarvest hEff_S1RPhiWS(("S1"+name1+w+"_St"+s).Data(), booker, getter);
HEff1DHitHarvest hEff_S3RPhiWS(("S3"+name1+w+"_St"+s).Data(), booker, getter);
if (s != 4) {
HEff1DHitHarvest hEff_S1RZWS(("S1"+name2+w+"_St"+s).Data(), booker, getter);
HEff1DHitHarvest hEff_S3RZWS(("S3"+name2+w+"_St"+s).Data(), booker, getter);
}
}
}
}
}

// declare this as a framework plugin
Expand Down