Skip to content

Commit bded6c0

Browse files
committed
create Phase2ITValidateRecHitBase and use it
1 parent c0933f2 commit bded6c0

File tree

5 files changed

+474
-751
lines changed

5 files changed

+474
-751
lines changed

Validation/SiTrackerPhase2V/BuildFile.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
<use name="DQM/SiTrackerPhase2"/>
2+
<use name="DQMServices/Core"/>
3+
<use name="DataFormats/TrackerCommon"/>
4+
<use name="DataFormats/TrackerRecHit2D"/>
5+
<use name="Geometry/Records"/>
6+
<use name="Geometry/TrackerGeometryBuilder"/>
17
<use name="SimDataFormats/Track"/>
28
<use name="SimDataFormats/TrackingHit"/>
39
<export>
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#ifndef Validation_SiTrackerPhase2_Phase2ITValidateRecHitBase_h
2+
#define Validation_SiTrackerPhase2_Phase2ITValidateRecHitBase_h
3+
4+
/**\class Phase2ITValidateRecHitBase
5+
Description: Base Class for Phase2 Validation
6+
*/
7+
//
8+
// Author: Marco Musich
9+
// Date: May 2021
10+
//
11+
12+
// STL includes
13+
#include <memory>
14+
#include <map>
15+
#include <vector>
16+
#include <algorithm>
17+
18+
// system include files
19+
#include "DataFormats/Common/interface/Handle.h"
20+
#include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
21+
#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h"
22+
#include "FWCore/Framework/interface/ESHandle.h"
23+
#include "FWCore/Framework/interface/Event.h"
24+
#include "FWCore/Framework/interface/Frameworkfwd.h"
25+
#include "FWCore/Framework/interface/MakerMacros.h"
26+
#include "FWCore/MessageLogger/interface/MessageLogger.h"
27+
#include "FWCore/ParameterSet/interface/ParameterSet.h"
28+
#include "FWCore/ServiceRegistry/interface/Service.h"
29+
#include "FWCore/Utilities/interface/InputTag.h"
30+
#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
31+
#include "Geometry/Records/interface/TrackerTopologyRcd.h"
32+
#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
33+
#include "SimDataFormats/TrackingHit/interface/PSimHit.h"
34+
#include "SimDataFormats/Track/interface/SimTrackContainer.h"
35+
36+
//DQM
37+
#include "DQMServices/Core/interface/DQMEDAnalyzer.h"
38+
#include "DQMServices/Core/interface/DQMStore.h"
39+
#include "DQMServices/Core/interface/MonitorElement.h"
40+
41+
class Phase2ITValidateRecHitBase : public DQMEDAnalyzer {
42+
public:
43+
explicit Phase2ITValidateRecHitBase(const edm::ParameterSet&);
44+
~Phase2ITValidateRecHitBase() override;
45+
void bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) override;
46+
void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
47+
static void fillPSetDescription(edm::ParameterSetDescription& desc);
48+
49+
protected:
50+
void bookLayerHistos(DQMStore::IBooker& ibooker, unsigned int det_id, std::string& subdir);
51+
void fillRechitHistos(const PSimHit* simhitClosest,
52+
const SiPixelRecHit* rechit,
53+
const std::map<unsigned int, SimTrack>& selectedSimTrackMap,
54+
std::map<std::string, unsigned int>& nrechitLayerMap_primary);
55+
56+
edm::ParameterSet config_;
57+
const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> geomToken_;
58+
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
59+
const TrackerGeometry* tkGeom_ = nullptr;
60+
const TrackerTopology* tTopo_ = nullptr;
61+
62+
struct RecHitME {
63+
MonitorElement* deltaX = nullptr;
64+
MonitorElement* deltaY = nullptr;
65+
MonitorElement* pullX = nullptr;
66+
MonitorElement* pullY = nullptr;
67+
MonitorElement* deltaX_eta = nullptr;
68+
MonitorElement* deltaY_eta = nullptr;
69+
MonitorElement* deltaX_clsizex = nullptr;
70+
MonitorElement* deltaX_clsizey = nullptr;
71+
MonitorElement* deltaY_clsizex = nullptr;
72+
MonitorElement* deltaY_clsizey = nullptr;
73+
MonitorElement* deltaYvsdeltaX = nullptr;
74+
MonitorElement* pullX_eta = nullptr;
75+
MonitorElement* pullY_eta = nullptr;
76+
//For rechits matched to primary simhits
77+
MonitorElement* numberRecHitsprimary = nullptr;
78+
MonitorElement* pullX_primary;
79+
MonitorElement* pullY_primary;
80+
MonitorElement* deltaX_primary;
81+
MonitorElement* deltaY_primary;
82+
};
83+
std::map<std::string, RecHitME> layerMEs_;
84+
};
85+
86+
#endif

0 commit comments

Comments
 (0)