Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:33:44

0001 #ifndef TrackerHitAnalyzer_H
0002 #define TrackerHitAnalyzer_H
0003 
0004 /*
0005  * \file TrackerHitAnalyzer.h
0006  *
0007  * \author F. Cossutti
0008  *
0009  */
0010 // framework & common header files
0011 #include "FWCore/Framework/interface/Frameworkfwd.h"
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0014 
0015 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0016 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0017 #include "DQMServices/Core/interface/DQMStore.h"
0018 
0019 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0020 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0021 
0022 #include <string>
0023 
0024 class TrackerHitAnalyzer : public DQMEDAnalyzer {
0025 public:
0026   /// Constructor
0027   TrackerHitAnalyzer(const edm::ParameterSet &ps);
0028 
0029   /// Destructor
0030   ~TrackerHitAnalyzer() override;
0031 
0032 protected:
0033   void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override;
0034 
0035   /// Analyze
0036   void analyze(const edm::Event &e, const edm::EventSetup &c) override;
0037 
0038   // void BookTestHistos(Char_t sname, int nbin, float *xmin, float *xmax);
0039 
0040 private:
0041   const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> tGeomEsToken_;
0042   bool verbose_;
0043 
0044   edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_pxlBrlLow_Token_, edmPSimHitContainer_pxlBrlHigh_Token_;
0045   edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_pxlFwdLow_Token_, edmPSimHitContainer_pxlFwdHigh_Token_;
0046   edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_siTIBLow_Token_, edmPSimHitContainer_siTIBHigh_Token_;
0047   edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_siTOBLow_Token_, edmPSimHitContainer_siTOBHigh_Token_;
0048   edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_siTIDLow_Token_, edmPSimHitContainer_siTIDHigh_Token_;
0049   edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_siTECLow_Token_, edmPSimHitContainer_siTECHigh_Token_;
0050   edm::EDGetTokenT<edm::SimTrackContainer> edmSimTrackContainerToken_;
0051 
0052   DQMStore *fDBE;
0053   edm::ParameterSet conf_;
0054 
0055   MonitorElement *htofeta;
0056   MonitorElement *htofphi;
0057   MonitorElement *htofr;
0058   MonitorElement *htofz;
0059   MonitorElement *htofeta_profile;
0060   MonitorElement *htofphi_profile;
0061   MonitorElement *htofr_profile;
0062   MonitorElement *htofz_profile;
0063   MonitorElement *h1e[12];
0064   MonitorElement *h2e[12];
0065   MonitorElement *h3e[12];
0066   MonitorElement *h4e[12];
0067   MonitorElement *h5e[12];
0068   MonitorElement *h6e[12];
0069 
0070   MonitorElement *h1ex[12];
0071   MonitorElement *h2ex[12];
0072   MonitorElement *h3ex[12];
0073   MonitorElement *h4ex[12];
0074   MonitorElement *h5ex[12];
0075   MonitorElement *h6ex[12];
0076 
0077   MonitorElement *h1ey[12];
0078   MonitorElement *h2ey[12];
0079   MonitorElement *h3ey[12];
0080   MonitorElement *h4ey[12];
0081   MonitorElement *h5ey[12];
0082   MonitorElement *h6ey[12];
0083 
0084   MonitorElement *h1ez[12];
0085   MonitorElement *h2ez[12];
0086   MonitorElement *h3ez[12];
0087   MonitorElement *h4ez[12];
0088   MonitorElement *h5ez[12];
0089   MonitorElement *h6ez[12];
0090 
0091   MonitorElement *h1lx[12];
0092   MonitorElement *h2lx[12];
0093   MonitorElement *h3lx[12];
0094   MonitorElement *h4lx[12];
0095   MonitorElement *h5lx[12];
0096   MonitorElement *h6lx[12];
0097 
0098   MonitorElement *h1ly[12];
0099   MonitorElement *h2ly[12];
0100   MonitorElement *h3ly[12];
0101   MonitorElement *h4ly[12];
0102   MonitorElement *h5ly[12];
0103   MonitorElement *h6ly[12];
0104 
0105   bool runStandalone;
0106   std::string fOutputFile;
0107   bool pixelOutput;
0108 };
0109 
0110 #endif