Go to the documentation of this file.00001 #ifndef CalibMuon_DTT0CalibrationNew_H
00002 #define CalibMuon_DTT0CalibrationNew_H
00003
00016 #include "FWCore/Framework/interface/EDAnalyzer.h"
00017 #include "Geometry/DTGeometry/interface/DTGeometry.h"
00018 #include "DataFormats/MuonDetId/interface/DTWireId.h"
00019 #include "FWCore/Framework/interface/ESHandle.h"
00020
00021 #include <string>
00022 #include <vector>
00023 #include <map>
00024
00025 class TFile;
00026 class TH1I;
00027 class TH1D;
00028 class TSpectrum;
00029 class DTT0;
00030
00031 class DTT0CalibrationNew : public edm::EDAnalyzer {
00032 public:
00034 DTT0CalibrationNew(const edm::ParameterSet& pset);
00035
00037 virtual ~DTT0CalibrationNew();
00038
00039
00040
00042 void analyze(const edm::Event & event, const edm::EventSetup& eventSetup);
00043
00045 void endJob();
00046
00047
00048 protected:
00049
00050 private:
00051
00052 std::string getHistoName(const DTWireId& wId) const;
00053 std::string getHistoName(const DTLayerId& lId) const;
00054
00055
00056 bool debug;
00057
00058
00059 std::string digiLabel;
00060
00061 std::string dbLabel;
00062
00063
00064 TFile *theFile;
00065
00066 TFile *theOutputFile;
00067
00068
00069 unsigned int nevents;
00070
00071 unsigned int eventsForLayerT0;
00072
00073 unsigned int eventsForWireT0;
00074
00075
00076 double tpPeakWidth;
00077
00078
00079 double tpPeakWidthPerLayer;
00080
00081
00082 unsigned int timeBoxWidth;
00083
00084
00085 unsigned int rejectDigiFromPeak;
00086
00087 unsigned int retryForLayerT0;
00088
00089
00090 std::string theCalibWheel;
00091 int selWheel;
00092 std::string theCalibSector;
00093 int selSector;
00094
00095
00096 std::map<DTLayerId, TH1I*> theHistoLayerMap;
00097
00098 TH1D* hT0SectorHisto;
00099
00100 TSpectrum* spectrum;
00101
00102
00103 std::vector<DTWireId> wireIdWithHistos;
00104 std::vector<std::string> cellsWithHistos;
00105
00106
00107 std::map<DTWireId,double> theAbsoluteT0PerWire;
00108 std::map<DTWireId,double> theRelativeT0PerWire;
00109 std::map<DTWireId,double> theSigmaT0PerWire;
00110 std::map<DTWireId,int> nDigiPerWire;
00111 std::map<DTWireId,int> nDigiPerWire_ref;
00112 std::map<DTWireId,double> mK;
00113 std::map<DTWireId,double> mK_ref;
00114 std::map<DTWireId,double> qK;
00115
00116 std::map<DTWireId,TH1I*> theHistoWireMap;
00117
00118 std::map<std::string,double> theT0LayerMap;
00119 std::map<std::string,double> theSigmaT0LayerMap;
00120 std::map<DTLayerId,double> theTPPeakMap;
00121
00122 std::map<DTChamberId,double> theSumT0ByChamber;
00123 std::map<DTChamberId,int> theCountT0ByChamber;
00124 std::map<DTChamberId,double> theRefT0ByChamber;
00125
00126
00127 edm::ESHandle<DTGeometry> dtGeom;
00128 };
00129 #endif
00130