File indexing completed on 2024-04-06 12:26:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include <memory>
0018 #include <fstream>
0019 #include <sys/time.h>
0020 #include <string>
0021 #include <sstream>
0022 #include <iostream>
0023 #include <iomanip>
0024 #include <math.h>
0025
0026
0027 #include "TFile.h"
0028 #include "TH1F.h"
0029 #include "TH2F.h"
0030
0031
0032 #include "FWCore/Framework/interface/Frameworkfwd.h"
0033 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0034 #include "FWCore/Framework/interface/Event.h"
0035 #include "FWCore/Framework/interface/ESHandle.h"
0036 #include "FWCore/Framework/interface/MakerMacros.h"
0037 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0038 #include "FWCore/ServiceRegistry/interface/Service.h"
0039 #include "FWCore/Utilities/interface/InputTag.h"
0040
0041 #include <DataFormats/GEMRecHit/interface/GEMCSCSegmentCollection.h>
0042 #include <DataFormats/GEMRecHit/interface/GEMRecHit.h>
0043 #include "DataFormats/GEMRecHit/interface/GEMRecHitCollection.h"
0044
0045 #include <Geometry/CSCGeometry/interface/CSCChamberSpecs.h> //?
0046 #include <Geometry/CSCGeometry/interface/CSCChamber.h> //?
0047 #include <Geometry/CSCGeometry/interface/CSCLayer.h> //?
0048 #include <Geometry/CSCGeometry/interface/CSCGeometry.h>
0049 #include <Geometry/GEMGeometry/interface/GEMGeometry.h>
0050 #include <Geometry/GEMGeometry/interface/GEMEtaPartition.h>
0051 #include <Geometry/Records/interface/MuonGeometryRecord.h>
0052 #include <DataFormats/MuonDetId/interface/CSCDetId.h>
0053 #include <DataFormats/MuonDetId/interface/GEMDetId.h>
0054
0055 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0056 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0057 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h"
0058 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
0059 #include "DataFormats/TrackingRecHit/interface/TrackingRecHitFwd.h"
0060
0061
0062
0063
0064 using namespace std;
0065 using namespace edm;
0066
0067 class TestGEMCSCSegmentAnalyzer : public edm::one::EDAnalyzer<> {
0068 public:
0069 explicit TestGEMCSCSegmentAnalyzer(const edm::ParameterSet&);
0070 ~TestGEMCSCSegmentAnalyzer();
0071
0072 private:
0073 virtual void beginJob();
0074 virtual void analyze(const edm::Event&, const edm::EventSetup&);
0075 virtual void endJob();
0076
0077 virtual void beginRun(edm::Run const&, edm::EventSetup const&);
0078
0079
0080
0081
0082 edm::PSimHitContainer SimHitMatched(std::vector<GEMRecHit>::const_iterator,
0083 edm::ESHandle<GEMGeometry>,
0084 const edm::Event&);
0085
0086
0087 edm::ESHandle<GEMGeometry> gemGeom;
0088 edm::ESHandle<CSCGeometry> cscGeom;
0089
0090 bool debug;
0091 std::string rootFileName;
0092
0093 const edm::ESGetToken<CSCGeometry, MuonGeometryRecord> kCSCGeometryToken_;
0094 const edm::ESGetToken<GEMGeometry, MuonGeometryRecord> kGEMGeometryToken_;
0095 edm::EDGetTokenT<edm::SimTrackContainer> SimTrack_Token;
0096 edm::EDGetTokenT<CSCSegmentCollection> CSCSegment_Token;
0097 edm::EDGetTokenT<GEMCSCSegmentCollection> GEMCSCSegment_Token;
0098 edm::EDGetTokenT<edm::PSimHitContainer> GEMSimHit_Token;
0099
0100 std::unique_ptr<TFile> outputfile;
0101
0102 std::unique_ptr<TH1F> CSC_fitchi2;
0103 std::unique_ptr<TH1F> GEMCSC_fitchi2;
0104 std::unique_ptr<TH1F> GEMCSC_fitchi2_odd;
0105 std::unique_ptr<TH1F> GEMCSC_fitchi2_even;
0106 std::unique_ptr<TH1F> GEMCSC_NumGEMRH;
0107 std::unique_ptr<TH1F> GEMCSC_NumCSCRH;
0108 std::unique_ptr<TH1F> GEMCSC_NumGEMCSCRH;
0109 std::unique_ptr<TH1F> GEMCSC_NumGEMCSCSeg;
0110
0111 std::unique_ptr<TH1F> GEMCSC_SSegm_LPx;
0112 std::unique_ptr<TH1F> GEMCSC_SSegm_LPy;
0113 std::unique_ptr<TH1F> GEMCSC_SSegm_LPEx;
0114 std::unique_ptr<TH1F> GEMCSC_SSegm_LPEy;
0115 std::unique_ptr<TH1F> GEMCSC_SSegm_LDx;
0116 std::unique_ptr<TH1F> GEMCSC_SSegm_LDy;
0117 std::unique_ptr<TH1F> GEMCSC_SSegm_LDEx;
0118 std::unique_ptr<TH1F> GEMCSC_SSegm_LDEy;
0119 std::unique_ptr<TH2F> GEMCSC_SSegm_LDEy_vs_ndof;
0120 std::unique_ptr<TH2F> GEMCSC_SSegm_LPEy_vs_ndof;
0121 std::unique_ptr<TH1F> GEMCSC_CSCSegm_LPx;
0122 std::unique_ptr<TH1F> GEMCSC_CSCSegm_LPy;
0123 std::unique_ptr<TH1F> GEMCSC_CSCSegm_LPEx;
0124 std::unique_ptr<TH1F> GEMCSC_CSCSegm_LPEy;
0125 std::unique_ptr<TH1F> GEMCSC_CSCSegm_LDx;
0126 std::unique_ptr<TH1F> GEMCSC_CSCSegm_LDy;
0127 std::unique_ptr<TH1F> GEMCSC_CSCSegm_LDEx;
0128 std::unique_ptr<TH1F> GEMCSC_CSCSegm_LDEy;
0129 std::unique_ptr<TH2F> GEMCSC_CSCSegm_LDEy_vs_ndof;
0130 std::unique_ptr<TH2F> GEMCSC_CSCSegm_LPEy_vs_ndof;
0131
0132 std::unique_ptr<TH1F> SIMGEMCSC_SSegm_LDx;
0133 std::unique_ptr<TH1F> SIMGEMCSC_SSegm_LDy;
0134 std::unique_ptr<TH1F> SIMGEMCSC_SSegm_LDEx;
0135 std::unique_ptr<TH1F> SIMGEMCSC_SSegm_LDEy;
0136
0137 std::unique_ptr<TH1F> GEMCSC_Residuals_x;
0138 std::unique_ptr<TH1F> GEMCSC_Residuals_gem_x;
0139 std::unique_ptr<TH1F> GEMCSC_Residuals_csc_x;
0140 std::unique_ptr<TH1F> GEMCSC_Residuals_gem_odd_x;
0141 std::unique_ptr<TH1F> GEMCSC_Residuals_csc_odd_x;
0142 std::unique_ptr<TH1F> GEMCSC_Residuals_gem_even_x;
0143 std::unique_ptr<TH1F> GEMCSC_Residuals_csc_even_x;
0144 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl1_x;
0145 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl2_x;
0146 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl3_x;
0147 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl4_x;
0148 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl5_x;
0149 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl6_x;
0150 std::unique_ptr<TH1F> GEMCSC_Residuals_geml1_x;
0151 std::unique_ptr<TH1F> GEMCSC_Residuals_geml2_x;
0152 std::unique_ptr<TH1F> GEMCSC_Pool_x;
0153 std::unique_ptr<TH1F> GEMCSC_Pool_gem_x;
0154 std::unique_ptr<TH1F> GEMCSC_Pool_csc_x;
0155 std::unique_ptr<TH1F> GEMCSC_Pool_gem_odd_x;
0156 std::unique_ptr<TH1F> GEMCSC_Pool_csc_odd_x;
0157 std::unique_ptr<TH1F> GEMCSC_Pool_gem_even_x;
0158 std::unique_ptr<TH1F> GEMCSC_Pool_csc_even_x;
0159 std::unique_ptr<TH1F> GEMCSC_Pool_cscl1_x;
0160 std::unique_ptr<TH1F> GEMCSC_Pool_cscl2_x;
0161 std::unique_ptr<TH1F> GEMCSC_Pool_cscl3_x;
0162 std::unique_ptr<TH1F> GEMCSC_Pool_cscl4_x;
0163 std::unique_ptr<TH1F> GEMCSC_Pool_cscl5_x;
0164 std::unique_ptr<TH1F> GEMCSC_Pool_cscl6_x;
0165 std::unique_ptr<TH1F> GEMCSC_Pool_geml1_x;
0166 std::unique_ptr<TH1F> GEMCSC_Pool_geml2_x;
0167 std::unique_ptr<TH1F> GEMCSC_Residuals_y;
0168 std::unique_ptr<TH1F> GEMCSC_Residuals_gem_y;
0169 std::unique_ptr<TH1F> GEMCSC_Residuals_csc_y;
0170 std::unique_ptr<TH1F> GEMCSC_Residuals_gem_odd_y;
0171 std::unique_ptr<TH1F> GEMCSC_Residuals_csc_odd_y;
0172 std::unique_ptr<TH1F> GEMCSC_Residuals_gem_even_y;
0173 std::unique_ptr<TH1F> GEMCSC_Residuals_csc_even_y;
0174 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl1_y;
0175 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl2_y;
0176 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl3_y;
0177 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl4_y;
0178 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl5_y;
0179 std::unique_ptr<TH1F> GEMCSC_Residuals_cscl6_y;
0180 std::unique_ptr<TH1F> GEMCSC_Residuals_geml1_y;
0181 std::unique_ptr<TH1F> GEMCSC_Residuals_geml2_y;
0182 std::unique_ptr<TH1F> GEMCSC_Pool_y;
0183 std::unique_ptr<TH1F> GEMCSC_Pool_gem_y;
0184 std::unique_ptr<TH1F> GEMCSC_Pool_csc_y;
0185 std::unique_ptr<TH1F> GEMCSC_Pool_gem_odd_y;
0186 std::unique_ptr<TH1F> GEMCSC_Pool_csc_odd_y;
0187 std::unique_ptr<TH1F> GEMCSC_Pool_gem_even_y;
0188 std::unique_ptr<TH1F> GEMCSC_Pool_csc_even_y;
0189 std::unique_ptr<TH1F> GEMCSC_Pool_cscl1_y;
0190 std::unique_ptr<TH1F> GEMCSC_Pool_cscl2_y;
0191 std::unique_ptr<TH1F> GEMCSC_Pool_cscl3_y;
0192 std::unique_ptr<TH1F> GEMCSC_Pool_cscl4_y;
0193 std::unique_ptr<TH1F> GEMCSC_Pool_cscl5_y;
0194 std::unique_ptr<TH1F> GEMCSC_Pool_cscl6_y;
0195 std::unique_ptr<TH1F> GEMCSC_Pool_geml1_y;
0196 std::unique_ptr<TH1F> GEMCSC_Pool_geml2_y;
0197
0198 std::unique_ptr<TH1F> GEMCSC_Pool_gem_x_newE;
0199 std::unique_ptr<TH1F> GEMCSC_Pool_gem_y_newE;
0200 std::unique_ptr<TH1F> GEMCSC_Pool_gem_odd_x_newE;
0201 std::unique_ptr<TH1F> GEMCSC_Pool_gem_odd_y_newE;
0202 std::unique_ptr<TH1F> GEMCSC_Pool_gem_x_newE_mp;
0203 std::unique_ptr<TH1F> GEMCSC_Pool_gem_y_newE_mp;
0204 std::unique_ptr<TH1F> GEMCSC_Pool_gem_odd_x_newE_mp;
0205 std::unique_ptr<TH1F> GEMCSC_Pool_gem_odd_y_newE_mp;
0206 std::unique_ptr<TH1F> GEMCSC_Pool_gem_x_newE_mm;
0207 std::unique_ptr<TH1F> GEMCSC_Pool_gem_y_newE_mm;
0208 std::unique_ptr<TH1F> GEMCSC_Pool_gem_odd_x_newE_mm;
0209 std::unique_ptr<TH1F> GEMCSC_Pool_gem_odd_y_newE_mm;
0210
0211 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut;
0212 std::unique_ptr<TH1F> GEMCSC_Dtheta_min_afterCut;
0213 std::unique_ptr<TH1F> GEMCSC_DR_min_afterCut;
0214 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut_odd;
0215 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut_even;
0216 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut_l1;
0217 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut_l1_odd;
0218 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut_l1_even;
0219 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut_l2;
0220 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut_l2_odd;
0221 std::unique_ptr<TH1F> GEMCSC_Dphi_min_afterCut_l2_even;
0222 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut;
0223 std::unique_ptr<TH1F> GEMCSC_Dtheta_cscS_min_afterCut;
0224 std::unique_ptr<TH1F> GEMCSC_Dtheta_cscS_min_afterCut_odd;
0225 std::unique_ptr<TH1F> GEMCSC_Dtheta_cscS_min_afterCut_even;
0226 std::unique_ptr<TH1F> GEMCSC_DR_cscS_min_afterCut;
0227
0228 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_l1;
0229 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_l1_odd;
0230 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_l1_even;
0231 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_l2;
0232 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_l2_odd;
0233 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_l2_even;
0234
0235 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd;
0236 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_even;
0237 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd_r1;
0238 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd_r2;
0239 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd_r3;
0240 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd_r4;
0241 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd_r5;
0242 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd_r6;
0243 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd_r7;
0244 std::unique_ptr<TH1F> GEMCSC_Dphi_cscS_min_afterCut_odd_r8;
0245
0246 std::unique_ptr<TH1F> GEMCSC_SSegm_xe_l1;
0247 std::unique_ptr<TH1F> GEMCSC_SSegm_ye_l1;
0248 std::unique_ptr<TH1F> GEMCSC_SSegm_ze_l1;
0249 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaxe_l1;
0250 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaye_l1;
0251 std::unique_ptr<TH1F> GEMCSC_SSegm_xe_l1_odd;
0252 std::unique_ptr<TH1F> GEMCSC_SSegm_ye_l1_odd;
0253 std::unique_ptr<TH1F> GEMCSC_SSegm_ze_l1_odd;
0254 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaxe_l1_odd;
0255 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaye_l1_odd;
0256 std::unique_ptr<TH1F> GEMCSC_SSegm_xe_l1_even;
0257 std::unique_ptr<TH1F> GEMCSC_SSegm_ye_l1_even;
0258 std::unique_ptr<TH1F> GEMCSC_SSegm_ze_l1_even;
0259 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaxe_l1_even;
0260 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaye_l1_even;
0261
0262 std::unique_ptr<TH1F> GEMCSC_SSegm_xe_l2;
0263 std::unique_ptr<TH1F> GEMCSC_SSegm_ye_l2;
0264 std::unique_ptr<TH1F> GEMCSC_SSegm_ze_l2;
0265 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaxe_l2;
0266 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaye_l2;
0267 std::unique_ptr<TH1F> GEMCSC_SSegm_xe_l2_odd;
0268 std::unique_ptr<TH1F> GEMCSC_SSegm_ye_l2_odd;
0269 std::unique_ptr<TH1F> GEMCSC_SSegm_ze_l2_odd;
0270 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaxe_l2_odd;
0271 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaye_l2_odd;
0272 std::unique_ptr<TH1F> GEMCSC_SSegm_xe_l2_even;
0273 std::unique_ptr<TH1F> GEMCSC_SSegm_ye_l2_even;
0274 std::unique_ptr<TH1F> GEMCSC_SSegm_ze_l2_even;
0275 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaxe_l2_even;
0276 std::unique_ptr<TH1F> GEMCSC_SSegm_sigmaye_l2_even;
0277
0278 std::unique_ptr<TH1F> GEMCSC_CSCSegm_xe_l1;
0279 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ye_l1;
0280 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ze_l1;
0281 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaxe_l1;
0282 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaye_l1;
0283 std::unique_ptr<TH1F> GEMCSC_CSCSegm_xe_l1_odd;
0284 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ye_l1_odd;
0285 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ze_l1_odd;
0286 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaxe_l1_odd;
0287 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaye_l1_odd;
0288 std::unique_ptr<TH1F> GEMCSC_CSCSegm_xe_l1_even;
0289 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ye_l1_even;
0290 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ze_l1_even;
0291 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaxe_l1_even;
0292 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaye_l1_even;
0293
0294 std::unique_ptr<TH1F> GEMCSC_CSCSegm_xe_l2;
0295 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ye_l2;
0296 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ze_l2;
0297 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaxe_l2;
0298 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaye_l2;
0299 std::unique_ptr<TH1F> GEMCSC_CSCSegm_xe_l2_odd;
0300 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ye_l2_odd;
0301 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ze_l2_odd;
0302 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaxe_l2_odd;
0303 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaye_l2_odd;
0304 std::unique_ptr<TH1F> GEMCSC_CSCSegm_xe_l2_even;
0305 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ye_l2_even;
0306 std::unique_ptr<TH1F> GEMCSC_CSCSegm_ze_l2_even;
0307 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaxe_l2_even;
0308 std::unique_ptr<TH1F> GEMCSC_CSCSegm_sigmaye_l2_even;
0309
0310 std::unique_ptr<TH2F> SIM_etaVScharge;
0311 std::unique_ptr<TH2F> SIM_etaVStype;
0312 std::unique_ptr<TH2F> SIMGEMCSC_theta_cscSsh_vs_ndof_odd;
0313 std::unique_ptr<TH2F> SIMGEMCSC_theta_cscSsh_vs_ndof_even;
0314
0315 std::unique_ptr<TH1F> SIMGEMCSC_Dphi_SS_min_afterCut;
0316 std::unique_ptr<TH1F> SIMGEMCSC_Dtheta_SS_min_afterCut;
0317 std::unique_ptr<TH1F> SIMGEMCSC_Dtheta_SS_min_afterCut_odd;
0318 std::unique_ptr<TH1F> SIMGEMCSC_Dtheta_SS_min_afterCut_even;
0319 std::unique_ptr<TH1F> SIMGEMCSC_Dphi_SS_min_afterCut_odd;
0320 std::unique_ptr<TH1F> SIMGEMCSC_Dphi_SS_min_afterCut_even;
0321
0322 std::unique_ptr<TH1F> SIMGEMCSC_Dphi_cscS_min_afterCut;
0323 std::unique_ptr<TH1F> SIMGEMCSC_Dtheta_cscS_min_afterCut;
0324 std::unique_ptr<TH1F> SIMGEMCSC_Dtheta_cscS_min_afterCut_odd;
0325 std::unique_ptr<TH1F> SIMGEMCSC_Dtheta_cscS_min_afterCut_even;
0326 std::unique_ptr<TH1F> SIMGEMCSC_Dphi_cscS_min_afterCut_odd;
0327 std::unique_ptr<TH1F> SIMGEMCSC_Dphi_cscS_min_afterCut_even;
0328 std::unique_ptr<TH1F> SIMGEMCSC_Residuals_gem_x;
0329 std::unique_ptr<TH1F> SIMGEMCSC_Residuals_gem_y;
0330 std::unique_ptr<TH1F> SIMGEMCSC_Pool_gem_x_newE;
0331 std::unique_ptr<TH1F> SIMGEMCSC_Pool_gem_y_newE;
0332 std::unique_ptr<TH1F> SIMGEMCSC_Residuals_gem_odd_x;
0333 std::unique_ptr<TH1F> SIMGEMCSC_Residuals_gem_odd_y;
0334 std::unique_ptr<TH1F> SIMGEMCSC_Pool_gem_x_newE_odd;
0335 std::unique_ptr<TH1F> SIMGEMCSC_Pool_gem_y_newE_odd;
0336 std::unique_ptr<TH1F> SIMGEMCSC_Residuals_gem_even_x;
0337 std::unique_ptr<TH1F> SIMGEMCSC_Residuals_gem_even_y;
0338 std::unique_ptr<TH1F> SIMGEMCSC_Pool_gem_x_newE_even;
0339 std::unique_ptr<TH1F> SIMGEMCSC_Pool_gem_y_newE_even;
0340 std::unique_ptr<TH1F> SIMGEMCSC_Residuals_gem_rhsh_x;
0341 std::unique_ptr<TH1F> SIMGEMCSC_Residuals_gem_rhsh_y;
0342 std::unique_ptr<TH1F> SIMGEMCSC_Pool_gem_rhsh_x_newE;
0343 std::unique_ptr<TH1F> SIMGEMCSC_Pool_gem_rhsh_y_newE;
0344 };
0345
0346
0347
0348
0349
0350 TestGEMCSCSegmentAnalyzer::TestGEMCSCSegmentAnalyzer(const edm::ParameterSet& iConfig)
0351 : kCSCGeometryToken_(esConsumes<CSCGeometry, MuonGeometryRecord>()),
0352 kGEMGeometryToken_(esConsumes<GEMGeometry, MuonGeometryRecord>()) {
0353
0354 debug = iConfig.getUntrackedParameter<bool>("Debug");
0355 rootFileName = iConfig.getUntrackedParameter<std::string>("RootFileName");
0356
0357
0358 outputfile.reset(TFile::Open(rootFileName.c_str(), "CREATE"));
0359 outputfile->cd();
0360
0361 SimTrack_Token = consumes<edm::SimTrackContainer>(edm::InputTag("g4SimHits"));
0362 CSCSegment_Token = consumes<CSCSegmentCollection>(edm::InputTag("cscSegments"));
0363 GEMCSCSegment_Token = consumes<GEMCSCSegmentCollection>(edm::InputTag("gemcscSegments"));
0364 GEMSimHit_Token = consumes<edm::PSimHitContainer>(edm::InputTag("g4SimHits", "MuonGEMHits"));
0365
0366 SIM_etaVScharge =
0367 std::unique_ptr<TH2F>(new TH2F("SimTrack_etaVScharge", "SimTrack_etaVScharge", 500, -2.5, 2.5, 6, -3, 3));
0368 SIM_etaVStype =
0369 std::unique_ptr<TH2F>(new TH2F("SimTrack_etaVStype", "SimTrack_etaVStype", 500, -2.5, 2.5, 30, -15, 15));
0370 CSC_fitchi2 = std::unique_ptr<TH1F>(new TH1F("ReducedChi2_csc", "ReducedChi2_csc", 160, 0., 4.));
0371
0372 GEMCSC_fitchi2 = std::unique_ptr<TH1F>(new TH1F("ReducedChi2_gemcsc", "ReducedChi2_gemcsc", 160, 0., 4.));
0373 GEMCSC_fitchi2_odd = std::unique_ptr<TH1F>(new TH1F("ReducedChi2_odd_gemcsc", "ReducedChi2_odd_gemcsc", 160, 0., 4.));
0374 GEMCSC_fitchi2_even =
0375 std::unique_ptr<TH1F>(new TH1F("ReducedChi2_even_gemcsc", "ReducedChi2_even_gemcsc", 160, 0., 4.));
0376 GEMCSC_NumGEMRH = std::unique_ptr<TH1F>(new TH1F("NumGEMRH", "NumGEMRH", 20, 0., 20));
0377 GEMCSC_NumCSCRH = std::unique_ptr<TH1F>(new TH1F("NumCSCRH", "NumCSCRH", 20, 0., 20));
0378 GEMCSC_NumGEMCSCRH = std::unique_ptr<TH1F>(new TH1F("NumGEMCSCRH", "NumGEMCSCRH", 20, 0., 20));
0379 GEMCSC_NumGEMCSCSeg = std::unique_ptr<TH1F>(new TH1F("NumGMCSCSeg", "NumGEMCSCSeg", 20, 0., 20));
0380 GEMCSC_SSegm_LPx = std::unique_ptr<TH1F>(new TH1F("SuperS_LPx", "SuperS_LPx", 1200, -60., 60));
0381 GEMCSC_SSegm_LPy = std::unique_ptr<TH1F>(new TH1F("SuperS_LPy", "SuperS_LPy", 4000, -200., 200));
0382 GEMCSC_SSegm_LPEx = std::unique_ptr<TH1F>(new TH1F("SuperS_LPEx", "SuperS_LPEx", 10000, 0., 0.5));
0383 GEMCSC_SSegm_LPEy = std::unique_ptr<TH1F>(new TH1F("SuperS_LPEy", "SuperS_LPEy", 10000, 0., 5));
0384
0385 GEMCSC_SSegm_LDx = std::unique_ptr<TH1F>(new TH1F("SuperS_LDx", "SuperS_LDx", 1000, -2., 2));
0386 GEMCSC_SSegm_LDy = std::unique_ptr<TH1F>(new TH1F("SuperS_LDy", "SuperS_LDy", 1000, -2., 2));
0387 GEMCSC_SSegm_LDEx = std::unique_ptr<TH1F>(new TH1F("SuperS_LDEx", "SuperS_LDEx", 10000, 0., 0.05));
0388 GEMCSC_SSegm_LDEy = std::unique_ptr<TH1F>(new TH1F("SuperS_LDEy", "SuperS_LDEy", 10000, 0., 0.5));
0389 GEMCSC_SSegm_LDEy_vs_ndof =
0390 std::unique_ptr<TH2F>(new TH2F("SSegm_LDEy_vs_ndof", "SSegm_LDEy vs ndof", 1000, 0., 0.05, 15, -0.5, 14.5));
0391 GEMCSC_SSegm_LPEy_vs_ndof =
0392 std::unique_ptr<TH2F>(new TH2F("SSegm_LPEy_vs_ndof", "SSegm_LPEy vs ndof", 1000, 0., 0.5, 15, -0.5, 14.5));
0393
0394 GEMCSC_CSCSegm_LPx = std::unique_ptr<TH1F>(new TH1F("CSCSegm_LPx", "CSCSegm_LPx", 1200, -60., 60));
0395 GEMCSC_CSCSegm_LPy = std::unique_ptr<TH1F>(new TH1F("CSCSegm_LPy", "CSCSegm_LPy", 4000, -200., 200));
0396 GEMCSC_CSCSegm_LPEx = std::unique_ptr<TH1F>(new TH1F("CSCSegm_LPEx", "CSCSegm_LPEx", 10000, 0., 0.5));
0397 GEMCSC_CSCSegm_LPEy = std::unique_ptr<TH1F>(new TH1F("CSCSegm_LPEy", "CSCSegm_LPEy", 10000, 0., 5));
0398
0399 GEMCSC_CSCSegm_LDx = std::unique_ptr<TH1F>(new TH1F("CSCSegm_LDx", "CSCSegm_LDx", 1000, -2., 2));
0400 GEMCSC_CSCSegm_LDy = std::unique_ptr<TH1F>(new TH1F("CSCSegm_LDy", "CSCSegm_LDy", 1000, -2., 2));
0401 GEMCSC_CSCSegm_LDEx = std::unique_ptr<TH1F>(new TH1F("CSCSegm_LDEx", "CSCSegm_LDEx", 10000, 0., 0.05));
0402 GEMCSC_CSCSegm_LDEy = std::unique_ptr<TH1F>(new TH1F("CSCSegm_LDEy", "CSCSegm_LDEy", 10000, 0., 0.5));
0403
0404 GEMCSC_CSCSegm_LDEy_vs_ndof =
0405 std::unique_ptr<TH2F>(new TH2F("CSCSegm_LDEy_vs_ndof", "CSCSegm_LDEy vs ndof", 1000, 0., 0.05, 15, -0.5, 14.5));
0406 GEMCSC_CSCSegm_LPEy_vs_ndof =
0407 std::unique_ptr<TH2F>(new TH2F("CSCSegm_LPEy_vs_ndof", "CSCSegm_LPEy vs ndof", 1000, 0., 0.5, 15, -0.5, 14.5));
0408 SIMGEMCSC_SSegm_LDx = std::unique_ptr<TH1F>(new TH1F("SSegm_LDx_expected", "SSegm_LDx", 1000, -2., 2));
0409 SIMGEMCSC_SSegm_LDy = std::unique_ptr<TH1F>(new TH1F("SSegm_LDy_expected", "SSegm_LDy", 1000, -2., 2));
0410 SIMGEMCSC_SSegm_LDEx = std::unique_ptr<TH1F>(new TH1F("SuperS_LDEx_expected", "SuperS_LDEx", 10000, 0., 0.005));
0411 SIMGEMCSC_SSegm_LDEy = std::unique_ptr<TH1F>(new TH1F("SuperS_LDEy_expected", "SuperS_LDEy", 1000, 0., 0.05));
0412
0413 GEMCSC_SSegm_xe_l1 = std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_xe_l1", "GEMCSC_SSegm_xe_l1", 1200, -60., 60));
0414 GEMCSC_SSegm_ye_l1 = std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ye_l1", "GEMCSC_SSegm_ye_l1", 4000, -200., 200));
0415 GEMCSC_SSegm_ze_l1 = std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ze_l1", "GEMCSC_SSegm_ze_l1", 12000, -600., 600));
0416 GEMCSC_SSegm_xe_l1_odd =
0417 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_xe_l1_odd", "GEMCSC_SSegm_xe_l1_odd", 1200, -60., 60));
0418 GEMCSC_SSegm_ye_l1_odd =
0419 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ye_l1_odd", "GEMCSC_SSegm_ye_l1_odd", 4000, -200., 200));
0420 GEMCSC_SSegm_ze_l1_odd =
0421 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ze_l1_odd", "GEMCSC_SSegm_ze_l1_odd", 12000, -600., 600));
0422 GEMCSC_SSegm_xe_l1_even =
0423 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_xe_l1_even", "GEMCSC_SSegm_xe_l1_even", 1200, -60., 60));
0424 GEMCSC_SSegm_ye_l1_even =
0425 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ye_l1_even", "GEMCSC_SSegm_ye_l1_even", 4000, -200., 200));
0426 GEMCSC_SSegm_ze_l1_even =
0427 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ze_l1_even", "GEMCSC_SSegm_ze_l1_even", 12000, -600., 600));
0428 GEMCSC_SSegm_xe_l2 = std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_xe_l2", "GEMCSC_SSegm_xe_l2", 1200, -60., 60));
0429 GEMCSC_SSegm_ye_l2 = std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ye_l2", "GEMCSC_SSegm_ye_l2", 4000, -200., 200));
0430 GEMCSC_SSegm_ze_l2 = std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ze_l2", "GEMCSC_SSegm_ze_l2", 12000, -600., 600));
0431 GEMCSC_SSegm_xe_l2_odd =
0432 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_xe_l2_odd", "GEMCSC_SSegm_xe_l2_odd", 1200, -60., 60));
0433 GEMCSC_SSegm_ye_l2_odd =
0434 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ye_l2_odd", "GEMCSC_SSegm_ye_l2_odd", 4000, -200., 200));
0435 GEMCSC_SSegm_ze_l2_odd =
0436 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ze_l2_odd", "GEMCSC_SSegm_ze_l2_odd", 12000, -600., 600));
0437 GEMCSC_SSegm_xe_l2_even =
0438 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_xe_l2_even", "GEMCSC_SSegm_xe_l2_even", 1200, -60., 60));
0439 GEMCSC_SSegm_ye_l2_even =
0440 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ye_l2_even", "GEMCSC_SSegm_ye_l2_even", 4000, -200., 200));
0441 GEMCSC_SSegm_ze_l2_even =
0442 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_ze_l2_even", "GEMCSC_SSegm_ze_l2_even", 12000, -600., 600));
0443
0444 GEMCSC_CSCSegm_xe_l1 =
0445 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_xe_l1", "GEMCSC_CSCSegm_xe_l1", 1200, -60., 60));
0446 GEMCSC_CSCSegm_ye_l1 =
0447 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ye_l1", "GEMCSC_CSCSegm_ye_l1", 4000, -200., 200));
0448 GEMCSC_CSCSegm_ze_l1 =
0449 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ze_l1", "GEMCSC_CSCSegm_ze_l1", 12000, -600., 600));
0450 GEMCSC_CSCSegm_xe_l1_odd =
0451 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_xe_l1_odd", "GEMCSC_CSCSegm_xe_l1_odd", 1200, -60., 60));
0452 GEMCSC_CSCSegm_ye_l1_odd =
0453 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ye_l1_odd", "GEMCSC_CSCSegm_ye_l1_odd", 4000, -200., 200));
0454 GEMCSC_CSCSegm_ze_l1_odd =
0455 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ze_l1_odd", "GEMCSC_CSCSegm_ze_l1_odd", 12000, -600., 600));
0456 GEMCSC_CSCSegm_xe_l1_even =
0457 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_xe_l1_even", "GEMCSC_CSCSegm_xe_l1_even", 1200, -60., 60));
0458 GEMCSC_CSCSegm_ye_l1_even =
0459 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ye_l1_even", "GEMCSC_CSCSegm_ye_l1_even", 4000, -200., 200));
0460 GEMCSC_CSCSegm_ze_l1_even =
0461 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ze_l1_even", "GEMCSC_CSCSegm_ze_l1_even", 12000, -600., 600));
0462 GEMCSC_CSCSegm_xe_l2 =
0463 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_xe_l2", "GEMCSC_CSCSegm_xe_l2", 1200, -60., 60));
0464 GEMCSC_CSCSegm_ye_l2 =
0465 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ye_l2", "GEMCSC_CSCSegm_ye_l2", 4000, -200., 200));
0466 GEMCSC_CSCSegm_ze_l2 =
0467 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ze_l2", "GEMCSC_CSCSegm_ze_l2", 12000, -600., 600));
0468 GEMCSC_CSCSegm_xe_l2_odd =
0469 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_xe_l2_odd", "GEMCSC_CSCSegm_xe_l2_odd", 1200, -60., 60));
0470 GEMCSC_CSCSegm_ye_l2_odd =
0471 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ye_l2_odd", "GEMCSC_CSCSegm_ye_l2_odd", 4000, -200., 200));
0472 GEMCSC_CSCSegm_ze_l2_odd =
0473 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ze_l2_odd", "GEMCSC_CSCSegm_ze_l2_odd", 12000, -600., 600));
0474 GEMCSC_CSCSegm_xe_l2_even =
0475 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_xe_l2_even", "GEMCSC_CSCSegm_xe_l2_even", 1200, -60., 60));
0476 GEMCSC_CSCSegm_ye_l2_even =
0477 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ye_l2_even", "GEMCSC_CSCSegm_ye_l2_even", 4000, -200., 200));
0478 GEMCSC_CSCSegm_ze_l2_even =
0479 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_ze_l2_even", "GEMCSC_CSCSegm_ze_l2_even", 12000, -600., 600));
0480
0481 GEMCSC_SSegm_sigmaxe_l1 =
0482 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaxe_l1", "GEMCSC_SSegm_sigmaxe_l1", 1000, 0., 0.5));
0483 GEMCSC_SSegm_sigmaye_l1 =
0484 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaye_l1", "GEMCSC_SSegm_sigmaye_l1", 1000, 0., 10));
0485 GEMCSC_SSegm_sigmaxe_l1_odd =
0486 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaxe_l1_odd", "GEMCSC_SSegm_sigmaxe_l1_odd", 1000, 0., 0.5));
0487 GEMCSC_SSegm_sigmaye_l1_odd =
0488 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaye_l1_odd", "GEMCSC_SSegm_sigmaye_l1_odd", 1000, 0., 10));
0489 GEMCSC_SSegm_sigmaxe_l1_even =
0490 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaxe_l1_even", "GEMCSC_SSegm_sigmaxe_l1_even", 1000, 0., 0.5));
0491 GEMCSC_SSegm_sigmaye_l1_even =
0492 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaye_l1_even", "GEMCSC_SSegm_sigmaye_l1_even", 1000, 0., 10));
0493 GEMCSC_SSegm_sigmaxe_l2 =
0494 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaxe_l2", "GEMCSC_SSegm_sigmaxe_l2", 1000, 0., 0.5));
0495 GEMCSC_SSegm_sigmaye_l2 =
0496 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaye_l2", "GEMCSC_SSegm_sigmaye_l2", 1000, 0., 10));
0497 GEMCSC_SSegm_sigmaxe_l2_odd =
0498 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaxe_l2_odd", "GEMCSC_SSegm_sigmaxe_l2_odd", 1000, 0., 0.5));
0499 GEMCSC_SSegm_sigmaye_l2_odd =
0500 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaye_l2_odd", "GEMCSC_SSegm_sigmaye_l2_odd", 1000, 0., 10));
0501 GEMCSC_SSegm_sigmaxe_l2_even =
0502 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaxe_l2_even", "GEMCSC_SSegm_sigmaxe_l2_even", 1000, 0., 0.5));
0503 GEMCSC_SSegm_sigmaye_l2_even =
0504 std::unique_ptr<TH1F>(new TH1F("GEMCSC_SSegm_sigmaye_l2_even", "GEMCSC_SSegm_sigmaye_l2_even", 1000, 0., 10));
0505 GEMCSC_CSCSegm_sigmaxe_l1 =
0506 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaxe_l1", "GEMCSC_CSCSegm_sigmaxe_l1", 1000, 0., 0.5));
0507 GEMCSC_CSCSegm_sigmaye_l1 =
0508 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaye_l1", "GEMCSC_CSCSegm_sigmaye_l1", 1000, 0., 10));
0509 GEMCSC_CSCSegm_sigmaxe_l1_odd =
0510 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaxe_l1_odd", "GEMCSC_CSCSegm_sigmaxe_l1_odd", 1000, 0., 0.5));
0511 GEMCSC_CSCSegm_sigmaye_l1_odd =
0512 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaye_l1_odd", "GEMCSC_CSCSegm_sigmaye_l1_odd", 1000, 0., 10));
0513 GEMCSC_CSCSegm_sigmaxe_l1_even = std::unique_ptr<TH1F>(
0514 new TH1F("GEMCSC_CSCSegm_sigmaxe_l1_even", "GEMCSC_CSCSegm_sigmaxe_l1_even", 1000, 0., 0.5));
0515 GEMCSC_CSCSegm_sigmaye_l1_even =
0516 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaye_l1_even", "GEMCSC_CSCSegm_sigmaye_l1_even", 1000, 0., 10));
0517 GEMCSC_CSCSegm_sigmaxe_l2 =
0518 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaxe_l2", "GEMCSC_CSCSegm_sigmaxe_l2", 1000, 0., 0.5));
0519 GEMCSC_CSCSegm_sigmaye_l2 =
0520 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaye_l2", "GEMCSC_CSCSegm_sigmaye_l2", 1000, 0., 10));
0521 GEMCSC_CSCSegm_sigmaxe_l2_odd =
0522 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaxe_l2_odd", "GEMCSC_CSCSegm_sigmaxe_l2_odd", 1000, 0., 0.5));
0523 GEMCSC_CSCSegm_sigmaye_l2_odd =
0524 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaye_l2_odd", "GEMCSC_CSCSegm_sigmaye_l2_odd", 1000, 0., 10));
0525 GEMCSC_CSCSegm_sigmaxe_l2_even = std::unique_ptr<TH1F>(
0526 new TH1F("GEMCSC_CSCSegm_sigmaxe_l2_even", "GEMCSC_CSCSegm_sigmaxe_l2_even", 1000, 0., 0.5));
0527 GEMCSC_CSCSegm_sigmaye_l2_even =
0528 std::unique_ptr<TH1F>(new TH1F("GEMCSC_CSCSegm_sigmaye_l2_even", "GEMCSC_CSCSegm_sigmaye_l2_even", 1000, 0., 10));
0529
0530 GEMCSC_Residuals_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes", "xGEMCSCRes", 100, -0.5, 0.5));
0531 GEMCSC_Residuals_gem_x = std::unique_ptr<TH1F>(new TH1F("xGEMRes", "xGEMRes", 100, -0.5, 0.5));
0532 GEMCSC_Residuals_csc_x = std::unique_ptr<TH1F>(new TH1F("xCSCRes", "xCSCRes", 100, -0.5, 0.5));
0533 GEMCSC_Residuals_gem_even_x = std::unique_ptr<TH1F>(new TH1F("xGEMRes_even", "xGEMRes even", 100, -0.5, 0.5));
0534 GEMCSC_Residuals_csc_even_x = std::unique_ptr<TH1F>(new TH1F("xCSCRes_even", "xCSCRes even", 100, -0.5, 0.5));
0535 GEMCSC_Residuals_gem_odd_x = std::unique_ptr<TH1F>(new TH1F("xGEMRes_odd", "xGEMRes odd", 100, -0.5, 0.5));
0536 GEMCSC_Residuals_csc_odd_x = std::unique_ptr<TH1F>(new TH1F("xCSCRes_odd", "xCSCRes odd", 100, -0.5, 0.5));
0537 GEMCSC_Residuals_cscl1_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes_cscl1", "xGEMCSCRes_cscl1", 100, -0.5, 0.5));
0538 GEMCSC_Residuals_cscl2_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes_cscl2", "xGEMCSCRes_cscl2", 100, -0.5, 0.5));
0539 GEMCSC_Residuals_cscl3_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes_cscl3", "xGEMCSCRes_cscl3", 100, -0.5, 0.5));
0540 GEMCSC_Residuals_cscl4_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes_cscl4", "xGEMCSCRes_cscl4", 100, -0.5, 0.5));
0541 GEMCSC_Residuals_cscl5_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes_cscl5", "xGEMCSCRes_cscl5", 100, -0.5, 0.5));
0542 GEMCSC_Residuals_cscl6_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes_cscl6", "xGEMCSCRes_cscl6", 100, -0.5, 0.5));
0543 GEMCSC_Residuals_geml1_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes_geml1", "xGEMCSCRes_geml1", 100, -0.5, 0.5));
0544 GEMCSC_Residuals_geml2_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCRes_geml2", "xGEMCSCRes_geml2", 100, -0.5, 0.5));
0545 GEMCSC_Pool_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool", "xGEMCSCPool", 100, -5., 5.));
0546 GEMCSC_Pool_gem_x = std::unique_ptr<TH1F>(new TH1F("xGEMPool", "xGEMPool", 100, -5., 5.));
0547 GEMCSC_Pool_csc_x = std::unique_ptr<TH1F>(new TH1F("xCSCPool", "xCSCPool", 100, -5., 5.));
0548 GEMCSC_Pool_gem_even_x = std::unique_ptr<TH1F>(new TH1F("xGEMPool_even", "xGEMPool even", 100, -5., 5.));
0549 GEMCSC_Pool_csc_even_x = std::unique_ptr<TH1F>(new TH1F("xCSCPool_even", "xCSCPool even", 100, -5., 5.));
0550 GEMCSC_Pool_gem_odd_x = std::unique_ptr<TH1F>(new TH1F("xGEMPool_odd", "xGEMPool odd", 100, -5., 5.));
0551 GEMCSC_Pool_csc_odd_x = std::unique_ptr<TH1F>(new TH1F("xCSCPool_odd", "xCSCPool odd", 100, -5., 5.));
0552 GEMCSC_Pool_cscl1_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool_cscl1", "xGEMCSCPool_cscl1", 100, -5., 5.));
0553 GEMCSC_Pool_cscl2_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool_cscl2", "xGEMCSCPool_cscl2", 100, -5., 5.));
0554 GEMCSC_Pool_cscl3_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool_cscl3", "xGEMCSCPool_cscl3", 100, -5., 5.));
0555 GEMCSC_Pool_cscl4_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool_cscl4", "xGEMCSCPool_cscl4", 100, -5., 5.));
0556 GEMCSC_Pool_cscl5_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool_cscl5", "xGEMCSCPool_cscl5", 100, -5., 5.));
0557 GEMCSC_Pool_cscl6_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool_cscl6", "xGEMCSCPool_cscl6", 100, -5., 5.));
0558 GEMCSC_Pool_geml1_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool_geml1", "xGEMCSCPool_geml1", 100, -5., 5.));
0559 GEMCSC_Pool_geml2_x = std::unique_ptr<TH1F>(new TH1F("xGEMCSCPool_geml2", "xGEMCSCPool_geml2", 100, -5., 5.));
0560 GEMCSC_Residuals_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes", "yGEMCSCRes", 100, -10., 10.));
0561 GEMCSC_Residuals_gem_y = std::unique_ptr<TH1F>(new TH1F("yGEMRes", "yGEMRes", 100, -10., 10.));
0562 GEMCSC_Residuals_csc_y = std::unique_ptr<TH1F>(new TH1F("yCSCRes", "yCSCRes", 100, -5., 5.));
0563 GEMCSC_Residuals_gem_even_y = std::unique_ptr<TH1F>(new TH1F("yGEMRes_even", "yGEMRes even", 100, -10., 10.));
0564 GEMCSC_Residuals_csc_even_y = std::unique_ptr<TH1F>(new TH1F("yCSCRes_even", "yCSCRes even", 100, -5., 5.));
0565 GEMCSC_Residuals_gem_odd_y = std::unique_ptr<TH1F>(new TH1F("yGEMRes_odd", "yGEMRes odd", 100, -10., 10.));
0566 GEMCSC_Residuals_csc_odd_y = std::unique_ptr<TH1F>(new TH1F("yCSCRes_odd", "yCSCRes odd", 100, -5., 5.));
0567 GEMCSC_Residuals_cscl1_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes_cscl1", "yGEMCSCRes_cscl1", 100, -5., 5.));
0568 GEMCSC_Residuals_cscl2_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes_cscl2", "yGEMCSCRes_cscl2", 100, -5., 5.));
0569 GEMCSC_Residuals_cscl3_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes_cscl3", "yGEMCSCRes_cscl3", 100, -5., 5.));
0570 GEMCSC_Residuals_cscl4_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes_cscl4", "yGEMCSCRes_cscl4", 100, -5., 5.));
0571 GEMCSC_Residuals_cscl5_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes_cscl5", "yGEMCSCRes_cscl5", 100, -5., 5.));
0572 GEMCSC_Residuals_cscl6_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes_cscl6", "yGEMCSCRes_cscl6", 100, -5., 5.));
0573 GEMCSC_Residuals_geml1_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes_geml1", "yGEMCSCRes_geml1", 100, -5., 5.));
0574 GEMCSC_Residuals_geml2_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCRes_geml2", "yGEMCSCRes_geml2", 100, -5., 5.));
0575 GEMCSC_Pool_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool", "yGEMCSCPool", 100, -5., 5.));
0576 GEMCSC_Pool_gem_y = std::unique_ptr<TH1F>(new TH1F("yGEMPool", "yGEMPool", 100, -5., 5.));
0577 GEMCSC_Pool_csc_y = std::unique_ptr<TH1F>(new TH1F("yCSCPool", "yCSCPool", 100, -5., 5.));
0578 GEMCSC_Pool_gem_even_y = std::unique_ptr<TH1F>(new TH1F("yGEMPool_even", "yGEMPool even", 100, -5., 5.));
0579 GEMCSC_Pool_csc_even_y = std::unique_ptr<TH1F>(new TH1F("yCSCPool_even", "yCSCPool even", 100, -5., 5.));
0580 GEMCSC_Pool_gem_odd_y = std::unique_ptr<TH1F>(new TH1F("yGEMPool_odd", "yGEMPool odd", 100, -5., 5.));
0581 GEMCSC_Pool_csc_odd_y = std::unique_ptr<TH1F>(new TH1F("yCSCPool_odd", "yCSCPool odd", 100, -5., 5.));
0582 GEMCSC_Pool_cscl1_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool_cscl1", "yGEMCSCPool_cscl1", 100, -5., 5.));
0583 GEMCSC_Pool_cscl2_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool_cscl2", "yGEMCSCPool_cscl2", 100, -5., 5.));
0584 GEMCSC_Pool_cscl3_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool_cscl3", "yGEMCSCPool_cscl3", 100, -5., 5.));
0585 GEMCSC_Pool_cscl4_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool_cscl4", "yGEMCSCPool_cscl4", 100, -5., 5.));
0586 GEMCSC_Pool_cscl5_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool_cscl5", "yGEMCSCPool_cscl5", 100, -5., 5.));
0587 GEMCSC_Pool_cscl6_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool_cscl6", "yGEMCSCPool_cscl6", 100, -5., 5.));
0588 GEMCSC_Pool_geml1_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool_geml1", "yGEMCSCPool_geml1", 100, -5., 5.));
0589 GEMCSC_Pool_geml2_y = std::unique_ptr<TH1F>(new TH1F("yGEMCSCPool_geml2", "yGEMCSCPool_geml2", 100, -5., 5.));
0590
0591 GEMCSC_Pool_gem_x_newE = std::unique_ptr<TH1F>(new TH1F("xGEMPool_newE", "xGEMPool_newE", 100, -5., 5.));
0592 GEMCSC_Pool_gem_y_newE = std::unique_ptr<TH1F>(new TH1F("yGEMPool_newE", "yGEMPool_newE", 100, -5., 5.));
0593 GEMCSC_Pool_gem_odd_x_newE = std::unique_ptr<TH1F>(new TH1F("xGEMPool_odd_newE", "xGEMPool odd newE", 100, -5., 5.));
0594 GEMCSC_Pool_gem_odd_y_newE = std::unique_ptr<TH1F>(new TH1F("yGEMPool_odd_newE", "yGEMPool odd newE", 100, -5., 5.));
0595 GEMCSC_Pool_gem_x_newE_mp = std::unique_ptr<TH1F>(new TH1F("xGEMPool_newE_mp", "xGEMPool_newE muon+", 100, -5., 5.));
0596 GEMCSC_Pool_gem_y_newE_mp = std::unique_ptr<TH1F>(new TH1F("yGEMPool_newE_mp", "yGEMPool_newE muon+", 100, -5., 5.));
0597 GEMCSC_Pool_gem_odd_x_newE_mp =
0598 std::unique_ptr<TH1F>(new TH1F("xGEMPool_odd_newE_mp", "xGEMPool odd newE muon+", 100, -5., 5.));
0599 GEMCSC_Pool_gem_odd_y_newE_mp =
0600 std::unique_ptr<TH1F>(new TH1F("yGEMPool_odd_newE_mp", "yGEMPool odd newE muon+", 100, -5., 5.));
0601 GEMCSC_Pool_gem_x_newE_mm = std::unique_ptr<TH1F>(new TH1F("xGEMPool_newE_mm", "xGEMPool_newE muon-", 100, -5., 5.));
0602 GEMCSC_Pool_gem_y_newE_mm = std::unique_ptr<TH1F>(new TH1F("yGEMPool_newE_mm", "yGEMPool_newE muon-", 100, -5., 5.));
0603 GEMCSC_Pool_gem_odd_x_newE_mm =
0604 std::unique_ptr<TH1F>(new TH1F("xGEMPool_odd_newE_mm", "xGEMPool odd newE muon-", 100, -5., 5.));
0605 GEMCSC_Pool_gem_odd_y_newE_mm =
0606 std::unique_ptr<TH1F>(new TH1F("yGEMPool_odd_newE_mm", "yGEMPool odd newE muon-", 100, -5., 5.));
0607
0608 GEMCSC_Dphi_min_afterCut = std::unique_ptr<TH1F>(
0609 new TH1F("Dphi_gemRHgemcscS_min_afterCut", "Dphi_gemRHgemcscS_min_afterCut", 800000, -4., 4.));
0610 GEMCSC_Dtheta_min_afterCut = std::unique_ptr<TH1F>(
0611 new TH1F("Dtheta_gemRHgemcscS_min_afterCut", "Dtheta_gemRHgemcscS_min_afterCut", 60000, -3., 3.));
0612 GEMCSC_DR_min_afterCut =
0613 std::unique_ptr<TH1F>(new TH1F("DR_gemRHgemcscS_min_afterCut", "DR_gemRHgemcscS_min_afterCut", 60000, -3., 3.));
0614 GEMCSC_Dphi_min_afterCut_odd = std::unique_ptr<TH1F>(
0615 new TH1F("Dphi_gemRHgemcscS_min_afterCut_odd", "Dphi_gemRHgemcscS_min_afterCut_odd", 800000, -4., 4.));
0616 GEMCSC_Dphi_min_afterCut_even = std::unique_ptr<TH1F>(
0617 new TH1F("Dphi_gemRHgemcscS_min_afterCut_even", "Dphi_gemRHgemcscS_min_afterCut_even", 800000, -4., 4.));
0618 GEMCSC_Dphi_min_afterCut_l1 = std::unique_ptr<TH1F>(
0619 new TH1F("Dphi_gemRHgemcscS_min_afterCut_l1", "Dphi_gemRHgemcscS_min_afterCut_l1", 800000, -4., 4.));
0620 GEMCSC_Dphi_min_afterCut_l1_odd = std::unique_ptr<TH1F>(
0621 new TH1F("Dphi_gemRHgemcscS_min_afterCut_l1_odd", "Dphi_gemRHgemcscS_min_afterCut_l1_odd", 800000, -4., 4.));
0622 GEMCSC_Dphi_min_afterCut_l1_even = std::unique_ptr<TH1F>(
0623 new TH1F("Dphi_gemRHgemcscS_min_afterCut_l1_even", "Dphi_gemRHgemcscS_min_afterCut_l1_even", 800000, -4., 4.));
0624 GEMCSC_Dphi_min_afterCut_l2 = std::unique_ptr<TH1F>(
0625 new TH1F("Dphi_gemRHgemcscS_min_afterCut_l2", "Dphi_gemRHgemcscS_min_afterCut_l2", 800000, -4., 4.));
0626 GEMCSC_Dphi_min_afterCut_l2_odd = std::unique_ptr<TH1F>(
0627 new TH1F("Dphi_gemRHgemcscS_min_afterCut_l2_odd", "Dphi_gemRHgemcscS_min_afterCut_l2_odd", 800000, -4., 4.));
0628 GEMCSC_Dphi_min_afterCut_l2_even = std::unique_ptr<TH1F>(
0629 new TH1F("Dphi_gemRHgemcscS_min_afterCut_l2_even", "Dphi_gemRHgemcscS_min_afterCut_l2_even", 800000, -4., 4.));
0630
0631 GEMCSC_Dphi_cscS_min_afterCut =
0632 std::unique_ptr<TH1F>(new TH1F("Dphi_gemRHcscS_min_afterCut", "Dphi_gemRHcscS_min_afterCut", 800000, -4., 4.));
0633 GEMCSC_Dtheta_cscS_min_afterCut =
0634 std::unique_ptr<TH1F>(new TH1F("Dtheta_gemRHcscS_min_afterCut", "Dtheta_gemRHcscS_min_afterCut", 60000, -3., 3.));
0635 GEMCSC_DR_cscS_min_afterCut =
0636 std::unique_ptr<TH1F>(new TH1F("DR_gemRHcscS_min_afterCut", "DR_gemRHcscS_min_afterCut", 60000, -3., 3.));
0637 GEMCSC_Dphi_cscS_min_afterCut_l1 = std::unique_ptr<TH1F>(
0638 new TH1F("Dphi_gemRHcscS_min_afterCut_l1", "Dphi_gemRHcscS_min_afterCut_l1", 800000, -4., 4.));
0639 GEMCSC_Dphi_cscS_min_afterCut_l1_odd = std::unique_ptr<TH1F>(
0640 new TH1F("Dphi_gemRHcscS_min_afterCut_l1_odd", "Dphi_gemRHcscS_min_afterCut_l1_odd", 800000, -4., 4.));
0641 GEMCSC_Dphi_cscS_min_afterCut_l1_even = std::unique_ptr<TH1F>(
0642 new TH1F("Dphi_gemRHcscS_min_afterCut_l1_even", "Dphi_gemRHcscS_min_afterCut_l1_even", 800000, -4., 4.));
0643 GEMCSC_Dphi_cscS_min_afterCut_l2 = std::unique_ptr<TH1F>(
0644 new TH1F("Dphi_gemRHcscS_min_afterCut_l2", "Dphi_gemRHcscS_min_afterCut_l2", 800000, -4., 4.));
0645 GEMCSC_Dphi_cscS_min_afterCut_l2_odd = std::unique_ptr<TH1F>(
0646 new TH1F("Dphi_gemRHcscS_min_afterCut_l2_odd", "Dphi_gemRHcscS_min_afterCut_l2_odd", 800000, -4., 4.));
0647 GEMCSC_Dphi_cscS_min_afterCut_l2_even = std::unique_ptr<TH1F>(
0648 new TH1F("Dphi_gemRHcscS_min_afterCut_l2_even", "Dphi_gemRHcscS_min_afterCut_l2_even", 800000, -4., 4.));
0649
0650 GEMCSC_Dphi_cscS_min_afterCut_odd = std::unique_ptr<TH1F>(
0651 new TH1F("Dphi_gemRHcscS_min_afterCut_odd", "Dphi_gemRHcscS_min_afterCut_odd", 800000, -4., 4.));
0652 GEMCSC_Dphi_cscS_min_afterCut_even = std::unique_ptr<TH1F>(
0653 new TH1F("Dphi_gemRHcscS_min_afterCut_even", "Dphi_gemRHcscS_min_afterCut_even", 800000, -4., 4.));
0654 GEMCSC_Dphi_cscS_min_afterCut_odd_r1 = std::unique_ptr<TH1F>(
0655 new TH1F("Dphi_gemRHcscS_min_afterCut_odd_r1", "Dphi_gemRHcscS_min_afterCut_odd_r1", 800000, -4., 4.));
0656 GEMCSC_Dphi_cscS_min_afterCut_odd_r2 = std::unique_ptr<TH1F>(
0657 new TH1F("Dphi_gemRHcscS_min_afterCut_odd_r2", "Dphi_gemRHcscS_min_afterCut_odd_r2", 800000, -4., 4.));
0658 GEMCSC_Dphi_cscS_min_afterCut_odd_r3 = std::unique_ptr<TH1F>(
0659 new TH1F("Dphi_gemRHcscS_min_afterCut_odd_r3", "Dphi_gemRHcscS_min_afterCut_odd_r3", 800000, -4., 4.));
0660 GEMCSC_Dphi_cscS_min_afterCut_odd_r4 = std::unique_ptr<TH1F>(
0661 new TH1F("Dphi_gemRHcscS_min_afterCut_odd_r4", "Dphi_gemRHcscS_min_afterCut_odd_r4", 800000, -4., 4.));
0662 GEMCSC_Dphi_cscS_min_afterCut_odd_r5 = std::unique_ptr<TH1F>(
0663 new TH1F("Dphi_gemRHcscS_min_afterCut_odd_r5", "Dphi_gemRHcscS_min_afterCut_odd_r5", 800000, -4., 4.));
0664 GEMCSC_Dphi_cscS_min_afterCut_odd_r6 = std::unique_ptr<TH1F>(
0665 new TH1F("Dphi_gemRHcscS_min_afterCut_odd_r6", "Dphi_gemRHcscS_min_afterCut_odd_r6", 800000, -4., 4.));
0666 GEMCSC_Dphi_cscS_min_afterCut_odd_r7 = std::unique_ptr<TH1F>(
0667 new TH1F("Dphi_gemRHcscS_min_afterCut_odd_r7", "Dphi_gemRHcscS_min_afterCut_odd_r7", 800000, -4., 4.));
0668 GEMCSC_Dphi_cscS_min_afterCut_odd_r8 = std::unique_ptr<TH1F>(
0669 new TH1F("Dphi_gemRHcscS_min_afterCut_odd_r8", "Dphi_gemRHcscS_min_afterCut_odd_r8", 800000, -4., 4.));
0670 GEMCSC_Dtheta_cscS_min_afterCut_odd = std::unique_ptr<TH1F>(
0671 new TH1F("Dtheta_gemRHcscS_min_afterCut_odd", "Dtheta_gemRHcscS_min_afterCut_odd", 60000, -3., 3.));
0672 GEMCSC_Dtheta_cscS_min_afterCut_even = std::unique_ptr<TH1F>(
0673 new TH1F("Dtheta_gemRHcscS_min_afterCut_even", "Dtheta_gemRHcscS_min_afterCut_even", 60000, -3., 3.));
0674
0675 SIMGEMCSC_Dphi_cscS_min_afterCut =
0676 std::unique_ptr<TH1F>(new TH1F("Dphi_gemSHcscS_min_afterCut", "Dphi_gemSHcscS_min_afterCut", 800000, -4., 4.));
0677 SIMGEMCSC_Dtheta_cscS_min_afterCut =
0678 std::unique_ptr<TH1F>(new TH1F("Dtheta_gemSHcscS_min_afterCut", "Dtheta_gemSHcscS_min_afterCut", 60000, -3., 3.));
0679 SIMGEMCSC_Dphi_cscS_min_afterCut_odd = std::unique_ptr<TH1F>(
0680 new TH1F("Dphi_gemSHcscS_min_afterCut_odd", "Dphi_gemSHcscS_min_afterCut_odd", 800000, -4., 4.));
0681 SIMGEMCSC_Dphi_cscS_min_afterCut_even = std::unique_ptr<TH1F>(
0682 new TH1F("Dphi_gemSHcscS_min_afterCut_even", "Dphi_gemSHcscS_min_afterCut_even", 800000, -4., 4.));
0683 SIMGEMCSC_Dtheta_cscS_min_afterCut_odd = std::unique_ptr<TH1F>(
0684 new TH1F("Dtheta_gemSHcscS_min_afterCut_odd", "Dtheta_gemSHcscS_min_afterCut_odd", 60000, -3., 3.));
0685 SIMGEMCSC_Dtheta_cscS_min_afterCut_even = std::unique_ptr<TH1F>(
0686 new TH1F("Dtheta_gemSHcscS_min_afterCut_even", "Dtheta_gemSHcscS_min_afterCut_even", 60000, -3., 3.));
0687
0688 SIMGEMCSC_Dphi_SS_min_afterCut =
0689 std::unique_ptr<TH1F>(new TH1F("Dphi_gemSHSS_min_afterCut", "Dphi_gemSHSS_min_afterCut", 800000, -4., 4.));
0690 SIMGEMCSC_Dtheta_SS_min_afterCut =
0691 std::unique_ptr<TH1F>(new TH1F("Dtheta_gemSHSS_min_afterCut", "Dtheta_gemSHSS_min_afterCut", 60000, -3., 3.));
0692 SIMGEMCSC_Dphi_SS_min_afterCut_odd = std::unique_ptr<TH1F>(
0693 new TH1F("Dphi_gemSHSS_min_afterCut_odd", "Dphi_gemSHSS_min_afterCut_odd", 800000, -4., 4.));
0694 SIMGEMCSC_Dphi_SS_min_afterCut_even = std::unique_ptr<TH1F>(
0695 new TH1F("Dphi_gemSHSS_min_afterCut_even", "Dphi_gemSHSS_min_afterCut_even", 800000, -4., 4.));
0696 SIMGEMCSC_Dtheta_SS_min_afterCut_odd = std::unique_ptr<TH1F>(
0697 new TH1F("Dtheta_gemSHSS_min_afterCut_odd", "Dtheta_gemSHSS_min_afterCut_odd", 60000, -3., 3.));
0698 SIMGEMCSC_Dtheta_SS_min_afterCut_even = std::unique_ptr<TH1F>(
0699 new TH1F("Dtheta_gemSHSS_min_afterCut_even", "Dtheta_gemSHSS_min_afterCut_even", 60000, -3., 3.));
0700
0701 SIMGEMCSC_theta_cscSsh_vs_ndof_odd = std::unique_ptr<TH2F>(
0702 new TH2F("SIMGEMCSCSegm_theta_cscSsh_vs_ndof_odd", "theta_cscSsh vs ndof odd", 30000, 0., 3., 15, -0.5, 14.5));
0703 SIMGEMCSC_theta_cscSsh_vs_ndof_even = std::unique_ptr<TH2F>(
0704 new TH2F("SIMGEMCSCSegm_theta_cscSsh_vs_ndof_even", "theta_cscSsh vs ndof even", 30000, 0., 3., 15, -0.5, 14.5));
0705
0706 SIMGEMCSC_Residuals_gem_x = std::unique_ptr<TH1F>(new TH1F("xGEMRes_simhit", "xGEMRes", 100, -0.5, 0.5));
0707 SIMGEMCSC_Residuals_gem_y = std::unique_ptr<TH1F>(new TH1F("yGEMRes_simhit", "yGEMRes", 100, -10., 10.));
0708 SIMGEMCSC_Pool_gem_x_newE = std::unique_ptr<TH1F>(new TH1F("xGEMPool_newE_simhit", "xGEMPool newE", 100, -10., 10.));
0709 SIMGEMCSC_Pool_gem_y_newE = std::unique_ptr<TH1F>(new TH1F("yGEMPool_newE_simhit", "yGEMPool newE", 100, -10., 10.));
0710 SIMGEMCSC_Residuals_gem_odd_x = std::unique_ptr<TH1F>(new TH1F("xGEMRes_odd_simhit", "xGEMRes", 100, -0.5, 0.5));
0711 SIMGEMCSC_Residuals_gem_odd_y = std::unique_ptr<TH1F>(new TH1F("yGEMRes_odd_simhit", "yGEMRes", 100, -10., 10.));
0712 SIMGEMCSC_Pool_gem_x_newE_odd =
0713 std::unique_ptr<TH1F>(new TH1F("xGEMPool_odd_newE_simhit", "xGEMPool newE", 100, -10., 10.));
0714 SIMGEMCSC_Pool_gem_y_newE_odd =
0715 std::unique_ptr<TH1F>(new TH1F("yGEMPool_odd_newE_simhit", "yGEMPool newE", 100, -10., 10.));
0716 SIMGEMCSC_Residuals_gem_even_x = std::unique_ptr<TH1F>(new TH1F("xGEMRes_even_simhit", "xGEMRes", 100, -0.5, 0.5));
0717 SIMGEMCSC_Residuals_gem_even_y = std::unique_ptr<TH1F>(new TH1F("yGEMRes_even_simhit", "yGEMRes", 100, -10., 10.));
0718 SIMGEMCSC_Pool_gem_x_newE_even =
0719 std::unique_ptr<TH1F>(new TH1F("xGEMPool_even_newE_simhit", "xGEMPool newE", 100, -10., 10.));
0720 SIMGEMCSC_Pool_gem_y_newE_even =
0721 std::unique_ptr<TH1F>(new TH1F("yGEMPool_even_newE_simhit", "yGEMPool newE", 100, -10., 10.));
0722
0723 SIMGEMCSC_Residuals_gem_rhsh_x = std::unique_ptr<TH1F>(new TH1F("xGEMRes_shrh", "xGEMRes", 100, -0.5, 0.5));
0724 SIMGEMCSC_Residuals_gem_rhsh_y = std::unique_ptr<TH1F>(new TH1F("yGEMRes_shrh", "yGEMRes", 100, -10., 10.));
0725 SIMGEMCSC_Pool_gem_rhsh_x_newE = std::unique_ptr<TH1F>(new TH1F("xGEMPool_shrh", "xGEMPool sh rh", 100, -5., 5.));
0726 SIMGEMCSC_Pool_gem_rhsh_y_newE = std::unique_ptr<TH1F>(new TH1F("yGEMPool_shrh", "yGEMPool sh rh", 100, -5., 5.));
0727 }
0728
0729 TestGEMCSCSegmentAnalyzer::~TestGEMCSCSegmentAnalyzer() {
0730 SIM_etaVScharge->Write();
0731 SIM_etaVStype->Write();
0732
0733 CSC_fitchi2->Write();
0734 GEMCSC_fitchi2->Write();
0735 GEMCSC_fitchi2_odd->Write();
0736 GEMCSC_fitchi2_even->Write();
0737 GEMCSC_NumGEMRH->Write();
0738 GEMCSC_NumCSCRH->Write();
0739 GEMCSC_NumGEMCSCRH->Write();
0740 GEMCSC_NumGEMCSCSeg->Write();
0741 GEMCSC_SSegm_LPx->Write();
0742 GEMCSC_SSegm_LPy->Write();
0743 GEMCSC_SSegm_LPEx->Write();
0744 GEMCSC_SSegm_LPEy->Write();
0745
0746 GEMCSC_SSegm_LDx->Write();
0747 GEMCSC_SSegm_LDy->Write();
0748 GEMCSC_SSegm_LDEx->Write();
0749 GEMCSC_SSegm_LDEy->Write();
0750
0751 GEMCSC_CSCSegm_LPx->Write();
0752 GEMCSC_CSCSegm_LPy->Write();
0753 GEMCSC_CSCSegm_LPEx->Write();
0754 GEMCSC_CSCSegm_LPEy->Write();
0755
0756 GEMCSC_CSCSegm_LDx->Write();
0757 GEMCSC_CSCSegm_LDy->Write();
0758 GEMCSC_CSCSegm_LDEx->Write();
0759 GEMCSC_CSCSegm_LDEy->Write();
0760
0761 GEMCSC_SSegm_LDEy_vs_ndof->Write();
0762 GEMCSC_SSegm_LPEy_vs_ndof->Write();
0763 GEMCSC_CSCSegm_LDEy_vs_ndof->Write();
0764 GEMCSC_CSCSegm_LPEy_vs_ndof->Write();
0765 SIMGEMCSC_SSegm_LDx->Write();
0766 SIMGEMCSC_SSegm_LDy->Write();
0767 SIMGEMCSC_SSegm_LDEx->Write();
0768 SIMGEMCSC_SSegm_LDEy->Write();
0769 GEMCSC_Residuals_x->Write();
0770 GEMCSC_Residuals_gem_x->Write();
0771 GEMCSC_Residuals_csc_x->Write();
0772 GEMCSC_Residuals_gem_even_x->Write();
0773 GEMCSC_Residuals_csc_even_x->Write();
0774 GEMCSC_Residuals_gem_odd_x->Write();
0775 GEMCSC_Residuals_csc_odd_x->Write();
0776 GEMCSC_Residuals_cscl1_x->Write();
0777 GEMCSC_Residuals_cscl2_x->Write();
0778 GEMCSC_Residuals_cscl3_x->Write();
0779 GEMCSC_Residuals_cscl4_x->Write();
0780 GEMCSC_Residuals_cscl5_x->Write();
0781 GEMCSC_Residuals_cscl6_x->Write();
0782 GEMCSC_Residuals_geml1_x->Write();
0783 GEMCSC_Residuals_geml2_x->Write();
0784 GEMCSC_Pool_x->Write();
0785 GEMCSC_Pool_gem_x->Write();
0786 GEMCSC_Pool_csc_x->Write();
0787 GEMCSC_Pool_gem_even_x->Write();
0788 GEMCSC_Pool_csc_even_x->Write();
0789 GEMCSC_Pool_gem_odd_x->Write();
0790 GEMCSC_Pool_csc_odd_x->Write();
0791 GEMCSC_Pool_cscl1_x->Write();
0792 GEMCSC_Pool_cscl2_x->Write();
0793 GEMCSC_Pool_cscl3_x->Write();
0794 GEMCSC_Pool_cscl4_x->Write();
0795 GEMCSC_Pool_cscl5_x->Write();
0796 GEMCSC_Pool_cscl6_x->Write();
0797 GEMCSC_Pool_geml1_x->Write();
0798 GEMCSC_Pool_geml2_x->Write();
0799 GEMCSC_Residuals_y->Write();
0800 GEMCSC_Residuals_gem_y->Write();
0801 GEMCSC_Residuals_csc_y->Write();
0802 GEMCSC_Residuals_gem_even_y->Write();
0803 GEMCSC_Residuals_csc_even_y->Write();
0804 GEMCSC_Residuals_gem_odd_y->Write();
0805 GEMCSC_Residuals_csc_odd_y->Write();
0806 GEMCSC_Residuals_cscl1_y->Write();
0807 GEMCSC_Residuals_cscl2_y->Write();
0808 GEMCSC_Residuals_cscl3_y->Write();
0809 GEMCSC_Residuals_cscl4_y->Write();
0810 GEMCSC_Residuals_cscl5_y->Write();
0811 GEMCSC_Residuals_cscl6_y->Write();
0812 GEMCSC_Residuals_geml1_y->Write();
0813 GEMCSC_Residuals_geml2_y->Write();
0814 GEMCSC_Pool_y->Write();
0815 GEMCSC_Pool_gem_y->Write();
0816 GEMCSC_Pool_csc_y->Write();
0817 GEMCSC_Pool_gem_even_y->Write();
0818 GEMCSC_Pool_csc_even_y->Write();
0819 GEMCSC_Pool_gem_odd_y->Write();
0820 GEMCSC_Pool_csc_odd_y->Write();
0821 GEMCSC_Pool_cscl1_y->Write();
0822 GEMCSC_Pool_cscl2_y->Write();
0823 GEMCSC_Pool_cscl3_y->Write();
0824 GEMCSC_Pool_cscl4_y->Write();
0825 GEMCSC_Pool_cscl5_y->Write();
0826 GEMCSC_Pool_cscl6_y->Write();
0827 GEMCSC_Pool_geml1_y->Write();
0828 GEMCSC_Pool_geml2_y->Write();
0829 GEMCSC_Pool_gem_x_newE->Write();
0830 GEMCSC_Pool_gem_y_newE->Write();
0831 GEMCSC_Pool_gem_odd_x_newE->Write();
0832 GEMCSC_Pool_gem_odd_y_newE->Write();
0833 GEMCSC_Pool_gem_x_newE_mp->Write();
0834 GEMCSC_Pool_gem_y_newE_mp->Write();
0835 GEMCSC_Pool_gem_odd_x_newE_mp->Write();
0836 GEMCSC_Pool_gem_odd_y_newE_mp->Write();
0837 GEMCSC_Pool_gem_x_newE_mm->Write();
0838 GEMCSC_Pool_gem_y_newE_mm->Write();
0839 GEMCSC_Pool_gem_odd_x_newE_mm->Write();
0840 GEMCSC_Pool_gem_odd_y_newE_mm->Write();
0841
0842 GEMCSC_SSegm_xe_l1->Write();
0843 GEMCSC_SSegm_ye_l1->Write();
0844 GEMCSC_SSegm_ze_l1->Write();
0845 GEMCSC_SSegm_sigmaxe_l1->Write();
0846 GEMCSC_SSegm_sigmaye_l1->Write();
0847 GEMCSC_SSegm_xe_l1_odd->Write();
0848 GEMCSC_SSegm_ye_l1_odd->Write();
0849 GEMCSC_SSegm_ze_l1_odd->Write();
0850 GEMCSC_SSegm_sigmaxe_l1_odd->Write();
0851 GEMCSC_SSegm_sigmaye_l1_odd->Write();
0852 GEMCSC_SSegm_xe_l1_even->Write();
0853 GEMCSC_SSegm_ye_l1_even->Write();
0854 GEMCSC_SSegm_ze_l1_even->Write();
0855 GEMCSC_SSegm_sigmaxe_l1_even->Write();
0856 GEMCSC_SSegm_sigmaye_l1_even->Write();
0857
0858 GEMCSC_SSegm_xe_l2->Write();
0859 GEMCSC_SSegm_ye_l2->Write();
0860 GEMCSC_SSegm_ze_l2->Write();
0861 GEMCSC_SSegm_sigmaxe_l2->Write();
0862 GEMCSC_SSegm_sigmaye_l2->Write();
0863 GEMCSC_SSegm_xe_l2_odd->Write();
0864 GEMCSC_SSegm_ye_l2_odd->Write();
0865 GEMCSC_SSegm_ze_l2_odd->Write();
0866 GEMCSC_SSegm_sigmaxe_l2_odd->Write();
0867 GEMCSC_SSegm_sigmaye_l2_odd->Write();
0868 GEMCSC_SSegm_xe_l2_even->Write();
0869 GEMCSC_SSegm_ye_l2_even->Write();
0870 GEMCSC_SSegm_ze_l2_even->Write();
0871 GEMCSC_SSegm_sigmaxe_l2_even->Write();
0872 GEMCSC_SSegm_sigmaye_l2_even->Write();
0873
0874 GEMCSC_CSCSegm_xe_l1->Write();
0875 GEMCSC_CSCSegm_ye_l1->Write();
0876 GEMCSC_CSCSegm_ze_l1->Write();
0877 GEMCSC_CSCSegm_sigmaxe_l1->Write();
0878 GEMCSC_CSCSegm_sigmaye_l1->Write();
0879 GEMCSC_CSCSegm_xe_l1_odd->Write();
0880 GEMCSC_CSCSegm_ye_l1_odd->Write();
0881 GEMCSC_CSCSegm_ze_l1_odd->Write();
0882 GEMCSC_CSCSegm_sigmaxe_l1_odd->Write();
0883 GEMCSC_CSCSegm_sigmaye_l1_odd->Write();
0884 GEMCSC_CSCSegm_xe_l1_even->Write();
0885 GEMCSC_CSCSegm_ye_l1_even->Write();
0886 GEMCSC_CSCSegm_ze_l1_even->Write();
0887 GEMCSC_CSCSegm_sigmaxe_l1_even->Write();
0888 GEMCSC_CSCSegm_sigmaye_l1_even->Write();
0889
0890 GEMCSC_CSCSegm_xe_l2->Write();
0891 GEMCSC_CSCSegm_ye_l2->Write();
0892 GEMCSC_CSCSegm_ze_l2->Write();
0893 GEMCSC_CSCSegm_sigmaxe_l2->Write();
0894 GEMCSC_CSCSegm_sigmaye_l2->Write();
0895 GEMCSC_CSCSegm_xe_l2_odd->Write();
0896 GEMCSC_CSCSegm_ye_l2_odd->Write();
0897 GEMCSC_CSCSegm_ze_l2_odd->Write();
0898 GEMCSC_CSCSegm_sigmaxe_l2_odd->Write();
0899 GEMCSC_CSCSegm_sigmaye_l2_odd->Write();
0900 GEMCSC_CSCSegm_xe_l2_even->Write();
0901 GEMCSC_CSCSegm_ye_l2_even->Write();
0902 GEMCSC_CSCSegm_ze_l2_even->Write();
0903 GEMCSC_CSCSegm_sigmaxe_l2_even->Write();
0904 GEMCSC_CSCSegm_sigmaye_l2_even->Write();
0905
0906 GEMCSC_Dphi_min_afterCut->Write();
0907 GEMCSC_Dtheta_min_afterCut->Write();
0908 GEMCSC_Dphi_min_afterCut_odd->Write();
0909 GEMCSC_Dphi_min_afterCut_even->Write();
0910 GEMCSC_DR_min_afterCut->Write();
0911 GEMCSC_Dphi_min_afterCut_l1->Write();
0912 GEMCSC_Dphi_min_afterCut_l1_odd->Write();
0913 GEMCSC_Dphi_min_afterCut_l1_even->Write();
0914 GEMCSC_Dphi_min_afterCut_l2->Write();
0915 GEMCSC_Dphi_min_afterCut_l2_odd->Write();
0916 GEMCSC_Dphi_min_afterCut_l2_even->Write();
0917
0918 GEMCSC_Dphi_cscS_min_afterCut->Write();
0919 GEMCSC_Dtheta_cscS_min_afterCut->Write();
0920 GEMCSC_Dtheta_cscS_min_afterCut_odd->Write();
0921 GEMCSC_Dtheta_cscS_min_afterCut_even->Write();
0922 GEMCSC_DR_cscS_min_afterCut->Write();
0923
0924 GEMCSC_Dphi_cscS_min_afterCut_l1->Write();
0925 GEMCSC_Dphi_cscS_min_afterCut_l1_odd->Write();
0926 GEMCSC_Dphi_cscS_min_afterCut_l1_even->Write();
0927 GEMCSC_Dphi_cscS_min_afterCut_l2->Write();
0928 GEMCSC_Dphi_cscS_min_afterCut_l2_odd->Write();
0929 GEMCSC_Dphi_cscS_min_afterCut_l2_even->Write();
0930
0931 GEMCSC_Dphi_cscS_min_afterCut_odd->Write();
0932 GEMCSC_Dphi_cscS_min_afterCut_even->Write();
0933 GEMCSC_Dphi_cscS_min_afterCut_odd_r1->Write();
0934 GEMCSC_Dphi_cscS_min_afterCut_odd_r2->Write();
0935 GEMCSC_Dphi_cscS_min_afterCut_odd_r3->Write();
0936 GEMCSC_Dphi_cscS_min_afterCut_odd_r4->Write();
0937 GEMCSC_Dphi_cscS_min_afterCut_odd_r5->Write();
0938 GEMCSC_Dphi_cscS_min_afterCut_odd_r6->Write();
0939 GEMCSC_Dphi_cscS_min_afterCut_odd_r7->Write();
0940 GEMCSC_Dphi_cscS_min_afterCut_odd_r8->Write();
0941
0942 SIMGEMCSC_Dphi_SS_min_afterCut->Write();
0943 SIMGEMCSC_Dtheta_SS_min_afterCut->Write();
0944 SIMGEMCSC_Dtheta_SS_min_afterCut_odd->Write();
0945 SIMGEMCSC_Dtheta_SS_min_afterCut_even->Write();
0946 SIMGEMCSC_Dphi_SS_min_afterCut_odd->Write();
0947 SIMGEMCSC_Dphi_SS_min_afterCut_even->Write();
0948
0949 SIMGEMCSC_Dphi_cscS_min_afterCut->Write();
0950 SIMGEMCSC_Dtheta_cscS_min_afterCut->Write();
0951 SIMGEMCSC_Dtheta_cscS_min_afterCut_odd->Write();
0952 SIMGEMCSC_Dtheta_cscS_min_afterCut_even->Write();
0953 SIMGEMCSC_Dphi_cscS_min_afterCut_odd->Write();
0954 SIMGEMCSC_Dphi_cscS_min_afterCut_even->Write();
0955 SIMGEMCSC_Residuals_gem_x->Write();
0956 SIMGEMCSC_Residuals_gem_y->Write();
0957 SIMGEMCSC_Pool_gem_x_newE->Write();
0958 SIMGEMCSC_Pool_gem_y_newE->Write();
0959 SIMGEMCSC_Residuals_gem_odd_x->Write();
0960 SIMGEMCSC_Residuals_gem_odd_y->Write();
0961 SIMGEMCSC_Pool_gem_x_newE_odd->Write();
0962 SIMGEMCSC_Pool_gem_y_newE_odd->Write();
0963 SIMGEMCSC_Residuals_gem_even_x->Write();
0964 SIMGEMCSC_Residuals_gem_even_y->Write();
0965 SIMGEMCSC_Pool_gem_x_newE_even->Write();
0966 SIMGEMCSC_Pool_gem_y_newE_even->Write();
0967
0968 SIMGEMCSC_Residuals_gem_rhsh_x->Write();
0969 SIMGEMCSC_Residuals_gem_rhsh_y->Write();
0970 SIMGEMCSC_Pool_gem_rhsh_x_newE->Write();
0971 SIMGEMCSC_Pool_gem_rhsh_y_newE->Write();
0972
0973 SIMGEMCSC_theta_cscSsh_vs_ndof_odd->Write();
0974 SIMGEMCSC_theta_cscSsh_vs_ndof_even->Write();
0975 }
0976
0977
0978 void TestGEMCSCSegmentAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0979 const auto gemGeom = iSetup.getHandle(kGEMGeometryToken_);
0980 if (not gemGeom.isValid()) {
0981 edm::LogError("GEMCSCSegment") << "invalid GEMGeometry";
0982 return;
0983 }
0984
0985 const auto cscGeom = iSetup.getHandle(kCSCGeometryToken_);
0986 if (not cscGeom.isValid()) {
0987 edm::LogError("GEMCSCSegment") << "invalid CSCGeometry";
0988 return;
0989 }
0990 const CSCGeometry* cscGeom_ = &*cscGeom;
0991
0992
0993
0994
0995 edm::Handle<edm::SimTrackContainer> simTracks;
0996 iEvent.getByToken(SimTrack_Token, simTracks);
0997
0998
0999
1000 edm::SimTrackContainer::const_iterator simTrack;
1001
1002 for (simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack) {
1003 if (!(abs((*simTrack).type()) == 13))
1004 continue;
1005 double simEta = (*simTrack).momentum().eta();
1006
1007 int qGen = simTrack->charge();
1008 SIM_etaVScharge->Fill(simEta, qGen);
1009 SIM_etaVStype->Fill(simEta, (*simTrack).type());
1010 }
1011
1012
1013
1014
1015 edm::Handle<CSCSegmentCollection> cscSegment;
1016 iEvent.getByToken(CSCSegment_Token, cscSegment);
1017
1018
1019
1020 for (auto cscs = cscSegment->begin(); cscs != cscSegment->end(); cscs++) {
1021 CSCDetId CSCId = cscs->cscDetId();
1022 if (!(CSCId.station() == 1 && (CSCId.ring() == 1 || CSCId.ring() == 4)))
1023 continue;
1024
1025 auto cscrhs = cscs->specificRecHits();
1026 }
1027
1028
1029
1030
1031 edm::Handle<GEMCSCSegmentCollection> gemcscSegment;
1032 iEvent.getByToken(GEMCSCSegment_Token, gemcscSegment);
1033
1034
1035
1036
1037
1038 if (gemcscSegment->size() != 0)
1039 GEMCSC_NumGEMCSCSeg->Fill(gemcscSegment->size());
1040
1041 for (auto gemcscs = gemcscSegment->begin(); gemcscs != gemcscSegment->end(); gemcscs++) {
1042 auto gemrhs_if = gemcscs->gemRecHits();
1043 if (debug) {
1044 std::cout << "GEM-CSC Segment with " << gemcscs->gemRecHits().size() << " GEM rechits and "
1045 << gemcscs->cscSegment().specificRecHits().size() << " CSC rechits" << std::endl;
1046 }
1047 if (gemrhs_if.size() == 0)
1048 continue;
1049
1050
1051
1052 if (debug) {
1053 std::cout << "GEM-CSC Segment with " << gemcscs->gemRecHits().size() << " GEM rechits and "
1054 << gemcscs->cscSegment().specificRecHits().size() << " CSC rechits" << std::endl;
1055 auto gemrhs = gemcscs->gemRecHits();
1056 for (auto rh = gemrhs.begin(); rh != gemrhs.end(); rh++) {
1057 GEMDetId gemId((*rh).geographicalId());
1058 const GEMEtaPartition* id_etapart = gemGeom->etaPartition(gemId);
1059 const BoundPlane& GEMSurface = id_etapart->surface();
1060 GlobalPoint GEMGlobalPoint = GEMSurface.toGlobal((*rh).localPosition());
1061 std::cout << "GEM Rechit in " << gemId << " = " << gemId.rawId() << " at X = " << GEMGlobalPoint.x()
1062 << " Y = " << GEMGlobalPoint.y() << " Z = " << GEMGlobalPoint.z() << std::endl;
1063 }
1064 CSCSegment cscSeg = gemcscs->cscSegment();
1065 auto cscrhs = cscSeg.specificRecHits();
1066 for (auto rh = cscrhs.begin(); rh != cscrhs.end(); rh++) {
1067 CSCDetId cscId = (CSCDetId)(*rh).cscDetId();
1068 GlobalPoint CSCGlobalPoint = cscGeom->idToDet(cscId)->toGlobal((*rh).localPosition());
1069 std::cout << "CSC Rechit in " << cscId << " = " << cscId.rawId() << " at X = " << CSCGlobalPoint.x()
1070 << " Y = " << CSCGlobalPoint.y() << " Z = " << CSCGlobalPoint.z() << std::endl;
1071 }
1072 }
1073
1074
1075
1076 CSCDetId gemcscId = gemcscs->cscDetId();
1077 const CSCChamber* cscChamber = cscGeom_->chamber(gemcscId);
1078
1079 auto gemcscsegLP = gemcscs->localPosition();
1080 auto gemcscsegLD = gemcscs->localDirection();
1081 auto gemcscsegLEP = gemcscs->localPositionError();
1082 auto gemcscsegLED = gemcscs->localDirectionError();
1083 GEMCSC_SSegm_LPx->Fill(gemcscsegLP.x());
1084 GEMCSC_SSegm_LPy->Fill(gemcscsegLP.y());
1085 GEMCSC_SSegm_LPEx->Fill(sqrt(gemcscsegLEP.xx()));
1086 GEMCSC_SSegm_LPEy->Fill(sqrt(gemcscsegLEP.yy()));
1087
1088 GEMCSC_SSegm_LDx->Fill(gemcscsegLD.x());
1089 GEMCSC_SSegm_LDy->Fill(gemcscsegLD.y());
1090 GEMCSC_SSegm_LDEx->Fill(sqrt(gemcscsegLED.xx()));
1091 GEMCSC_SSegm_LDEy->Fill(sqrt(gemcscsegLED.yy()));
1092
1093 GEMCSC_SSegm_LPEy_vs_ndof->Fill(gemcscsegLEP.yy(), gemcscs->degreesOfFreedom());
1094 GEMCSC_SSegm_LDEy_vs_ndof->Fill(gemcscsegLED.yy(), gemcscs->degreesOfFreedom());
1095
1096 GEMCSC_fitchi2->Fill(gemcscs->chi2() / gemcscs->degreesOfFreedom());
1097
1098 CSCDetId id((*gemcscs).geographicalId());
1099 int chamber = id.chamber();
1100 if (chamber % 2 != 0) {
1101 GEMCSC_fitchi2_odd->Fill(gemcscs->chi2() / gemcscs->degreesOfFreedom());
1102 } else {
1103 GEMCSC_fitchi2_even->Fill(gemcscs->chi2() / gemcscs->degreesOfFreedom());
1104 }
1105
1106 GEMCSC_NumGEMCSCRH->Fill(gemcscs->cscSegment().specificRecHits().size() + gemcscs->gemRecHits().size());
1107
1108
1109 CSCSegment cscSeg = gemcscs->cscSegment();
1110
1111
1112 auto cscrhs = cscSeg.specificRecHits();
1113 GEMCSC_NumCSCRH->Fill(cscrhs.size());
1114
1115 auto cscsegLP = cscSeg.localPosition();
1116 auto cscsegLD = cscSeg.localDirection();
1117 auto cscsegLEP = cscSeg.localPositionError();
1118 auto cscsegLED = cscSeg.localDirectionError();
1119
1120 GEMCSC_CSCSegm_LPx->Fill(cscsegLP.x());
1121 GEMCSC_CSCSegm_LPy->Fill(cscsegLP.y());
1122 GEMCSC_CSCSegm_LPEx->Fill(sqrt(cscsegLEP.xx()));
1123 GEMCSC_CSCSegm_LPEy->Fill(sqrt(cscsegLEP.yy()));
1124
1125 GEMCSC_CSCSegm_LDx->Fill(cscsegLD.x());
1126 GEMCSC_CSCSegm_LDy->Fill(cscsegLD.y());
1127 GEMCSC_CSCSegm_LDEx->Fill(sqrt(cscsegLED.xx()));
1128 GEMCSC_CSCSegm_LDEy->Fill(sqrt(cscsegLED.yy()));
1129
1130 GEMCSC_CSCSegm_LPEy_vs_ndof->Fill(cscsegLEP.yy(), cscSeg.degreesOfFreedom());
1131 GEMCSC_CSCSegm_LDEy_vs_ndof->Fill(cscsegLED.yy(), cscSeg.degreesOfFreedom());
1132
1133 CSC_fitchi2->Fill(cscSeg.chi2() / cscSeg.degreesOfFreedom());
1134
1135
1136 for (auto rh = cscrhs.begin(); rh != cscrhs.end(); rh++) {
1137
1138 CSCDetId cscrhId = (CSCDetId)(*rh).cscDetId();
1139 const CSCLayer* cscrhRef = cscGeom_->layer(cscrhId);
1140
1141 auto cscrhLP = rh->localPosition();
1142 auto cscrhLEP = rh->localPositionError();
1143 auto cscrhGP = cscrhRef->toGlobal(cscrhLP);
1144 auto cscrhLP_inSegmRef = cscChamber->toLocal(cscrhGP);
1145 float xe = gemcscsegLP.x() + gemcscsegLD.x() * cscrhLP_inSegmRef.z() / gemcscsegLD.z();
1146 float ye = gemcscsegLP.y() + gemcscsegLD.y() * cscrhLP_inSegmRef.z() / gemcscsegLD.z();
1147 float ze = cscrhLP_inSegmRef.z();
1148 LocalPoint extrPoint(xe, ye, ze);
1149
1150
1151 auto extSegm = cscrhRef->toLocal(cscChamber->toGlobal(extrPoint));
1152
1153 GEMCSC_Residuals_x->Fill(cscrhLP.x() - extSegm.x());
1154 GEMCSC_Residuals_y->Fill(cscrhLP.y() - extSegm.y());
1155 GEMCSC_Pool_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1156 GEMCSC_Pool_y->Fill((cscrhLP.y() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1157 GEMCSC_Residuals_csc_x->Fill(cscrhLP.x() - extSegm.x());
1158 GEMCSC_Residuals_csc_y->Fill(cscrhLP.y() - extSegm.y());
1159 GEMCSC_Pool_csc_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1160 GEMCSC_Pool_csc_y->Fill((cscrhLP.y() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1161
1162 CSCDetId id((*rh).geographicalId());
1163 int chamber = id.chamber();
1164 if (chamber % 2 != 0) {
1165
1166 GEMCSC_Residuals_csc_odd_x->Fill(cscrhLP.x() - extSegm.x());
1167 GEMCSC_Residuals_csc_odd_y->Fill(cscrhLP.y() - extSegm.y());
1168 GEMCSC_Pool_csc_odd_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1169 GEMCSC_Pool_csc_odd_y->Fill((cscrhLP.y() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1170 } else {
1171 GEMCSC_Residuals_csc_even_x->Fill(cscrhLP.x() - extSegm.x());
1172 GEMCSC_Residuals_csc_even_y->Fill(cscrhLP.y() - extSegm.y());
1173 GEMCSC_Pool_csc_even_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1174 GEMCSC_Pool_csc_even_y->Fill((cscrhLP.y() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1175 }
1176
1177 switch (cscrhId.layer()) {
1178 case 1:
1179 GEMCSC_Residuals_cscl1_x->Fill(cscrhLP.x() - extSegm.x());
1180 GEMCSC_Residuals_cscl1_y->Fill(cscrhLP.y() - extSegm.y());
1181 GEMCSC_Pool_cscl1_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1182 GEMCSC_Pool_cscl1_y->Fill((cscrhLP.x() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1183 break;
1184 case 2:
1185 GEMCSC_Residuals_cscl2_x->Fill(cscrhLP.x() - extSegm.x());
1186 GEMCSC_Residuals_cscl2_y->Fill(cscrhLP.y() - extSegm.y());
1187 GEMCSC_Pool_cscl2_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1188 GEMCSC_Pool_cscl2_y->Fill((cscrhLP.x() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1189 break;
1190
1191 case 3:
1192 GEMCSC_Residuals_cscl3_x->Fill(cscrhLP.x() - extSegm.x());
1193 GEMCSC_Residuals_cscl3_y->Fill(cscrhLP.y() - extSegm.y());
1194 GEMCSC_Pool_cscl3_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1195 GEMCSC_Pool_cscl3_y->Fill((cscrhLP.x() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1196 break;
1197 case 4:
1198 GEMCSC_Residuals_cscl4_x->Fill(cscrhLP.x() - extSegm.x());
1199 GEMCSC_Residuals_cscl4_y->Fill(cscrhLP.y() - extSegm.y());
1200 GEMCSC_Pool_cscl4_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1201 GEMCSC_Pool_cscl4_y->Fill((cscrhLP.x() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1202 break;
1203 case 5:
1204 GEMCSC_Residuals_cscl5_x->Fill(cscrhLP.x() - extSegm.x());
1205 GEMCSC_Residuals_cscl5_y->Fill(cscrhLP.y() - extSegm.y());
1206 GEMCSC_Pool_cscl5_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1207 GEMCSC_Pool_cscl5_y->Fill((cscrhLP.x() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1208 break;
1209 case 6:
1210 GEMCSC_Residuals_cscl6_x->Fill(cscrhLP.x() - extSegm.x());
1211 GEMCSC_Residuals_cscl6_y->Fill(cscrhLP.y() - extSegm.y());
1212 GEMCSC_Pool_cscl6_x->Fill((cscrhLP.x() - extSegm.x()) / sqrt(cscrhLEP.xx()));
1213 GEMCSC_Pool_cscl6_y->Fill((cscrhLP.x() - extSegm.y()) / sqrt(cscrhLEP.yy()));
1214 break;
1215 default:
1216 std::cout << " Unphysical GEMCSC layer " << cscrhId << std::endl;
1217 }
1218 }
1219
1220
1221
1222 auto gemrhs = gemcscs->gemRecHits();
1223 GEMCSC_NumGEMRH->Fill(gemrhs.size());
1224 for (auto rh = gemrhs.begin(); rh != gemrhs.end(); rh++) {
1225 GEMDetId id((*rh).geographicalId());
1226 int chamber = id.chamber();
1227
1228
1229 auto gemrhId = rh->gemId();
1230 const GEMEtaPartition* gemrhRef = gemGeom->etaPartition(gemrhId);
1231 auto gemrhLP = rh->localPosition();
1232 auto gemrhLEP = rh->localPositionError();
1233 auto gemrhGP = gemrhRef->toGlobal(gemrhLP);
1234 auto gemrhLP_inSegmRef = cscChamber->toLocal(gemrhGP);
1235 float phi_rh = gemrhGP.phi();
1236 float theta_rh = gemrhGP.theta();
1237 float eta_rh = gemrhGP.eta();
1238 float xe = gemcscsegLP.x() + gemcscsegLD.x() * gemrhLP_inSegmRef.z() / gemcscsegLD.z();
1239 float ye = gemcscsegLP.y() + gemcscsegLD.y() * gemrhLP_inSegmRef.z() / gemcscsegLD.z();
1240 float ze = gemrhLP_inSegmRef.z();
1241 LocalPoint extrPoint(xe, ye, ze);
1242 float sigma_xe = sqrt(gemcscsegLEP.xx() + gemcscsegLED.xx() * gemrhLP_inSegmRef.z() * gemrhLP_inSegmRef.z());
1243 float sigma_ye = sqrt(gemcscsegLEP.yy() + gemcscsegLED.yy() * gemrhLP_inSegmRef.z() * gemrhLP_inSegmRef.z());
1244 auto extrPoinGP_fromSegmRef = cscChamber->toGlobal(extrPoint);
1245 float phi_ext = extrPoinGP_fromSegmRef.phi();
1246 float theta_ext = extrPoinGP_fromSegmRef.theta();
1247
1248 auto extSegm = gemrhRef->toLocal(cscChamber->toGlobal(extrPoint));
1249
1250 GEMCSC_Dphi_min_afterCut->Fill(phi_ext - phi_rh);
1251 GEMCSC_Dtheta_min_afterCut->Fill((theta_ext - theta_rh));
1252 GEMCSC_DR_min_afterCut->Fill((theta_ext - theta_rh) * (theta_ext - theta_rh) +
1253 (phi_ext - phi_rh) * (phi_ext - phi_rh));
1254
1255 switch (gemrhId.layer()) {
1256 case 1:
1257 GEMCSC_SSegm_xe_l1->Fill(xe);
1258 GEMCSC_SSegm_ye_l1->Fill(ye);
1259 GEMCSC_SSegm_ze_l1->Fill(ze);
1260 GEMCSC_SSegm_sigmaxe_l1->Fill(sigma_xe);
1261 GEMCSC_SSegm_sigmaye_l1->Fill(sigma_ye);
1262 GEMCSC_Dphi_min_afterCut_l1->Fill((phi_ext - phi_rh));
1263 if (chamber % 2 != 0) {
1264 GEMCSC_Dphi_min_afterCut_l1_odd->Fill((phi_ext - phi_rh));
1265 GEMCSC_Dphi_min_afterCut_odd->Fill((phi_ext - phi_rh));
1266 GEMCSC_SSegm_xe_l1_odd->Fill(xe);
1267 GEMCSC_SSegm_ye_l1_odd->Fill(ye);
1268 GEMCSC_SSegm_ze_l1_odd->Fill(ze);
1269 GEMCSC_SSegm_sigmaxe_l1_odd->Fill(sigma_xe);
1270 GEMCSC_SSegm_sigmaye_l1_odd->Fill(sigma_ye);
1271 } else {
1272 GEMCSC_Dphi_min_afterCut_l1_even->Fill((phi_ext - phi_rh));
1273 GEMCSC_Dphi_min_afterCut_even->Fill((phi_ext - phi_rh));
1274 GEMCSC_SSegm_xe_l1_even->Fill(xe);
1275 GEMCSC_SSegm_ye_l1_even->Fill(ye);
1276 GEMCSC_SSegm_ze_l1_even->Fill(ze);
1277 GEMCSC_SSegm_sigmaxe_l1_even->Fill(sigma_xe);
1278 GEMCSC_SSegm_sigmaye_l1_even->Fill(sigma_ye);
1279 }
1280
1281 break;
1282 case 2:
1283 GEMCSC_SSegm_xe_l2->Fill(xe);
1284 GEMCSC_SSegm_ye_l2->Fill(ye);
1285 GEMCSC_SSegm_ze_l2->Fill(ze);
1286 GEMCSC_SSegm_sigmaxe_l2->Fill(sigma_xe);
1287 GEMCSC_SSegm_sigmaye_l2->Fill(sigma_ye);
1288 GEMCSC_Dphi_min_afterCut_l2->Fill((phi_ext - phi_rh));
1289 if (chamber % 2 != 0) {
1290 GEMCSC_Dphi_min_afterCut_l2_odd->Fill((phi_ext - phi_rh));
1291 GEMCSC_Dphi_min_afterCut_odd->Fill((phi_ext - phi_rh));
1292 GEMCSC_SSegm_xe_l2_odd->Fill(xe);
1293 GEMCSC_SSegm_ye_l2_odd->Fill(ye);
1294 GEMCSC_SSegm_ze_l2_odd->Fill(ze);
1295 GEMCSC_SSegm_sigmaxe_l2_odd->Fill(sigma_xe);
1296 GEMCSC_SSegm_sigmaye_l2_odd->Fill(sigma_ye);
1297 } else {
1298 GEMCSC_Dphi_min_afterCut_l2_even->Fill((phi_ext - phi_rh));
1299 GEMCSC_Dphi_min_afterCut_even->Fill((phi_ext - phi_rh));
1300 GEMCSC_SSegm_xe_l2_even->Fill(xe);
1301 GEMCSC_SSegm_ye_l2_even->Fill(ye);
1302 GEMCSC_SSegm_ze_l2_even->Fill(ze);
1303 GEMCSC_SSegm_sigmaxe_l2_even->Fill(sigma_xe);
1304 GEMCSC_SSegm_sigmaye_l2_even->Fill(sigma_ye);
1305 }
1306
1307 break;
1308 default:
1309 std::cout << " Unphysical GEMCSC layer " << gemrhId << std::endl;
1310 }
1311
1312 GEMCSC_Residuals_x->Fill(gemrhLP.x() - extSegm.x());
1313 GEMCSC_Residuals_y->Fill(gemrhLP.y() - extSegm.y());
1314 GEMCSC_Pool_x->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx()));
1315 GEMCSC_Pool_y->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy()));
1316 GEMCSC_Residuals_gem_x->Fill(gemrhLP.x() - extSegm.x());
1317 GEMCSC_Residuals_gem_y->Fill(gemrhLP.y() - extSegm.y());
1318 GEMCSC_Pool_gem_x->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx()));
1319 GEMCSC_Pool_gem_y->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy()));
1320 GEMCSC_Pool_gem_x_newE->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx() + sigma_xe * sigma_xe));
1321 GEMCSC_Pool_gem_y_newE->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy() + sigma_ye * sigma_ye));
1322
1323 if (eta_rh > 0) {
1324 GEMCSC_Pool_gem_x_newE_mp->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx() + sigma_xe * sigma_xe));
1325 GEMCSC_Pool_gem_y_newE_mp->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy() + sigma_ye * sigma_ye));
1326 }
1327 if (eta_rh < 0) {
1328 GEMCSC_Pool_gem_x_newE_mm->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx() + sigma_xe * sigma_xe));
1329 GEMCSC_Pool_gem_y_newE_mm->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy() + sigma_ye * sigma_ye));
1330 }
1331
1332 if (chamber % 2 != 0) {
1333 GEMCSC_Residuals_gem_odd_x->Fill(gemrhLP.x() - extSegm.x());
1334 GEMCSC_Residuals_gem_odd_y->Fill(gemrhLP.y() - extSegm.y());
1335 GEMCSC_Pool_gem_odd_x->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx()));
1336 GEMCSC_Pool_gem_odd_y->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy()));
1337 GEMCSC_Pool_gem_odd_x_newE->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx() + sigma_xe * sigma_xe));
1338 GEMCSC_Pool_gem_odd_y_newE->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy() + sigma_ye * sigma_ye));
1339 if (eta_rh > 0) {
1340 GEMCSC_Pool_gem_odd_x_newE_mp->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx() + sigma_xe * sigma_xe));
1341 GEMCSC_Pool_gem_odd_y_newE_mp->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy() + sigma_ye * sigma_ye));
1342 }
1343 if (eta_rh < 0) {
1344 GEMCSC_Pool_gem_odd_x_newE_mm->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx() + sigma_xe * sigma_xe));
1345 GEMCSC_Pool_gem_odd_y_newE_mm->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy() + sigma_ye * sigma_ye));
1346 }
1347 } else {
1348 GEMCSC_Residuals_gem_even_x->Fill(gemrhLP.x() - extSegm.x());
1349 GEMCSC_Residuals_gem_even_y->Fill(gemrhLP.y() - extSegm.y());
1350 GEMCSC_Pool_gem_even_x->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx()));
1351 GEMCSC_Pool_gem_even_y->Fill((gemrhLP.y() - extSegm.y()) / sqrt(gemrhLEP.yy()));
1352 }
1353
1354 switch (gemrhId.layer()) {
1355 case 1:
1356 GEMCSC_Residuals_geml1_x->Fill(gemrhLP.x() - extSegm.x());
1357 GEMCSC_Residuals_geml1_y->Fill(gemrhLP.y() - extSegm.y());
1358 GEMCSC_Pool_geml1_x->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx()));
1359 GEMCSC_Pool_geml1_y->Fill((gemrhLP.x() - extSegm.y()) / sqrt(gemrhLEP.yy()));
1360 break;
1361 case 2:
1362 GEMCSC_Residuals_geml2_x->Fill(gemrhLP.x() - extSegm.x());
1363 GEMCSC_Residuals_geml2_y->Fill(gemrhLP.y() - extSegm.y());
1364 GEMCSC_Pool_geml2_x->Fill((gemrhLP.x() - extSegm.x()) / sqrt(gemrhLEP.xx()));
1365 GEMCSC_Pool_geml2_y->Fill((gemrhLP.x() - extSegm.y()) / sqrt(gemrhLEP.yy()));
1366 break;
1367 default:
1368 std::cout << " Unphysical GEMCSC layer " << gemrhId << std::endl;
1369 }
1370
1371 float xe_csc = cscsegLP.x() + cscsegLD.x() * gemrhLP_inSegmRef.z() / cscsegLD.z();
1372 float ye_csc = cscsegLP.y() + cscsegLD.y() * gemrhLP_inSegmRef.z() / cscsegLD.z();
1373 float ze_csc = gemrhLP_inSegmRef.z();
1374 LocalPoint extrPoint_csc(xe_csc, ye_csc, ze_csc);
1375 float sigma_xe_csc = sqrt(cscsegLEP.xx() + cscsegLED.xx() * gemrhLP_inSegmRef.z() * gemrhLP_inSegmRef.z());
1376 float sigma_ye_csc = sqrt(cscsegLEP.yy() + cscsegLED.yy() * gemrhLP_inSegmRef.z() * gemrhLP_inSegmRef.z());
1377 auto extrPoinGP_csc_fromSegmRef = cscChamber->toGlobal(extrPoint_csc);
1378 float phi_ext_csc = extrPoinGP_csc_fromSegmRef.phi();
1379 float theta_ext_csc = extrPoinGP_csc_fromSegmRef.theta();
1380
1381
1382
1383 GEMCSC_Dphi_cscS_min_afterCut->Fill((phi_ext_csc - phi_rh));
1384 GEMCSC_Dtheta_cscS_min_afterCut->Fill((theta_ext_csc - theta_rh));
1385 GEMCSC_DR_cscS_min_afterCut->Fill((theta_ext_csc - theta_rh) * (theta_ext_csc - theta_rh) +
1386 (phi_ext_csc - phi_rh) * (phi_ext_csc - phi_rh));
1387 if (chamber % 2 != 0) {
1388 GEMCSC_Dphi_cscS_min_afterCut_odd->Fill((phi_ext_csc - phi_rh));
1389 GEMCSC_Dtheta_cscS_min_afterCut_odd->Fill((theta_ext_csc - theta_rh));
1390 switch (gemrhId.roll()) {
1391 case 1:
1392 GEMCSC_Dphi_cscS_min_afterCut_odd_r1->Fill((phi_ext_csc - phi_rh));
1393 break;
1394 case 2:
1395 GEMCSC_Dphi_cscS_min_afterCut_odd_r2->Fill((phi_ext_csc - phi_rh));
1396 break;
1397 case 3:
1398 GEMCSC_Dphi_cscS_min_afterCut_odd_r3->Fill((phi_ext_csc - phi_rh));
1399 break;
1400 case 4:
1401 GEMCSC_Dphi_cscS_min_afterCut_odd_r4->Fill((phi_ext_csc - phi_rh));
1402 break;
1403 case 5:
1404 GEMCSC_Dphi_cscS_min_afterCut_odd_r5->Fill((phi_ext_csc - phi_rh));
1405 break;
1406 case 6:
1407 GEMCSC_Dphi_cscS_min_afterCut_odd_r6->Fill((phi_ext_csc - phi_rh));
1408 break;
1409 case 7:
1410 GEMCSC_Dphi_cscS_min_afterCut_odd_r7->Fill((phi_ext_csc - phi_rh));
1411 break;
1412 case 8:
1413 GEMCSC_Dphi_cscS_min_afterCut_odd_r8->Fill((phi_ext_csc - phi_rh));
1414 break;
1415 default:
1416 std::cout << " Unphysical GEM roll " << gemrhId << std::endl;
1417 }
1418 } else {
1419 GEMCSC_Dtheta_cscS_min_afterCut_even->Fill((theta_ext_csc - theta_rh));
1420 GEMCSC_Dphi_cscS_min_afterCut_even->Fill((phi_ext_csc - phi_rh));
1421 }
1422
1423 switch (gemrhId.layer()) {
1424 case 1:
1425 GEMCSC_CSCSegm_xe_l1->Fill(xe_csc);
1426 GEMCSC_CSCSegm_ye_l1->Fill(ye_csc);
1427 GEMCSC_CSCSegm_ze_l1->Fill(ze_csc);
1428 GEMCSC_CSCSegm_sigmaxe_l1->Fill(sigma_xe_csc);
1429 GEMCSC_CSCSegm_sigmaye_l1->Fill(sigma_ye_csc);
1430 GEMCSC_Dphi_cscS_min_afterCut_l1->Fill((phi_ext_csc - phi_rh));
1431 if (chamber % 2 != 0) {
1432 GEMCSC_Dphi_cscS_min_afterCut_l1_odd->Fill((phi_ext_csc - phi_rh));
1433 GEMCSC_CSCSegm_xe_l1_odd->Fill(xe_csc);
1434 GEMCSC_CSCSegm_ye_l1_odd->Fill(ye_csc);
1435 GEMCSC_CSCSegm_ze_l1_odd->Fill(ze_csc);
1436 GEMCSC_CSCSegm_sigmaxe_l1_odd->Fill(sigma_xe_csc);
1437 GEMCSC_CSCSegm_sigmaye_l1_odd->Fill(sigma_ye_csc);
1438 } else {
1439 GEMCSC_Dphi_cscS_min_afterCut_l1_even->Fill((phi_ext_csc - phi_rh));
1440 GEMCSC_CSCSegm_xe_l1_even->Fill(xe_csc);
1441 GEMCSC_CSCSegm_ye_l1_even->Fill(ye_csc);
1442 GEMCSC_CSCSegm_ze_l1_even->Fill(ze_csc);
1443 GEMCSC_CSCSegm_sigmaxe_l1_even->Fill(sigma_xe_csc);
1444 GEMCSC_CSCSegm_sigmaye_l1_even->Fill(sigma_ye_csc);
1445 }
1446
1447 break;
1448 case 2:
1449 GEMCSC_CSCSegm_xe_l2->Fill(xe_csc);
1450 GEMCSC_CSCSegm_ye_l2->Fill(ye_csc);
1451 GEMCSC_CSCSegm_ze_l2->Fill(ze_csc);
1452 GEMCSC_CSCSegm_sigmaxe_l2->Fill(sigma_xe_csc);
1453 GEMCSC_CSCSegm_sigmaye_l2->Fill(sigma_ye_csc);
1454
1455 GEMCSC_Dphi_cscS_min_afterCut_l2->Fill((phi_ext_csc - phi_rh));
1456 if (chamber % 2 != 0) {
1457 GEMCSC_Dphi_cscS_min_afterCut_l2_odd->Fill((phi_ext_csc - phi_rh));
1458 GEMCSC_CSCSegm_xe_l2_odd->Fill(xe_csc);
1459 GEMCSC_CSCSegm_ye_l2_odd->Fill(ye_csc);
1460 GEMCSC_CSCSegm_ze_l2_odd->Fill(ze_csc);
1461 GEMCSC_CSCSegm_sigmaxe_l2_odd->Fill(sigma_xe_csc);
1462 GEMCSC_CSCSegm_sigmaye_l2_odd->Fill(sigma_ye_csc);
1463 } else {
1464 GEMCSC_Dphi_cscS_min_afterCut_l2_even->Fill((phi_ext_csc - phi_rh));
1465 GEMCSC_CSCSegm_xe_l2_even->Fill(xe_csc);
1466 GEMCSC_CSCSegm_ye_l2_even->Fill(ye_csc);
1467 GEMCSC_CSCSegm_ze_l2_even->Fill(ze_csc);
1468 GEMCSC_CSCSegm_sigmaxe_l2_even->Fill(sigma_xe_csc);
1469 GEMCSC_CSCSegm_sigmaye_l2_even->Fill(sigma_ye_csc);
1470 }
1471
1472 break;
1473 default:
1474 std::cout << " Unphysical GEMCSC layer " << gemrhId << std::endl;
1475 }
1476
1477 int Nsimhit = 0;
1478 edm::PSimHitContainer selGEMSimHit = SimHitMatched(rh, gemGeom, iEvent);
1479
1480 for (edm::PSimHitContainer::const_iterator itHit = selGEMSimHit.begin(); itHit != selGEMSimHit.end(); ++itHit) {
1481 Nsimhit++;
1482 if (Nsimhit > 1)
1483 continue;
1484
1485
1486 LocalPoint gemshLP = itHit->localPosition();
1487 GlobalPoint gemshGP(gemGeom->idToDet(itHit->detUnitId())->surface().toGlobal(gemshLP));
1488
1489 auto gemshLP_inSegmRef = cscChamber->toLocal(gemshGP);
1490
1491
1492
1493
1494
1495 float phi_sh = gemshGP.phi();
1496 float theta_sh = gemshGP.theta();
1497
1498
1499 float xe_sh = gemcscsegLP.x() + gemcscsegLD.x() * gemshLP_inSegmRef.z() / gemcscsegLD.z();
1500 float ye_sh = gemcscsegLP.y() + gemcscsegLD.y() * gemshLP_inSegmRef.z() / gemcscsegLD.z();
1501 float ze_sh = gemshLP_inSegmRef.z();
1502 LocalPoint extrPoint_sh(xe_sh, ye_sh, ze_sh);
1503
1504
1505 float sigma_xe_sh = sqrt(gemcscsegLEP.xx() + gemcscsegLED.xx() * gemshLP_inSegmRef.z() * gemshLP_inSegmRef.z());
1506 float sigma_ye_sh = sqrt(gemcscsegLEP.yy() + gemcscsegLED.yy() * gemshLP_inSegmRef.z() * gemshLP_inSegmRef.z());
1507 auto extSegm_sh = gemrhRef->toLocal(cscChamber->toGlobal(extrPoint_sh));
1508 auto extrPoinGP_fromSegmRef_sh = cscChamber->toGlobal(extrPoint_sh);
1509 float phi_ext_sh = extrPoinGP_fromSegmRef_sh.phi();
1510 float theta_ext_sh = extrPoinGP_fromSegmRef_sh.theta();
1511
1512 float dxdz = (gemshLP_inSegmRef.x() - cscsegLP.x()) / gemshLP_inSegmRef.z();
1513 float dydz = (gemshLP_inSegmRef.y() - cscsegLP.y()) / gemshLP_inSegmRef.z();
1514 float sigma_dxdz = cscsegLEP.xx() / (gemshLP_inSegmRef.z() * gemshLP_inSegmRef.z());
1515 float sigma_dydz = cscsegLEP.yy() / (gemshLP_inSegmRef.z() * gemshLP_inSegmRef.z());
1516 SIMGEMCSC_SSegm_LDx->Fill(dxdz);
1517 SIMGEMCSC_SSegm_LDy->Fill(dydz);
1518 SIMGEMCSC_SSegm_LDEx->Fill(sigma_dxdz);
1519 SIMGEMCSC_SSegm_LDEy->Fill(sigma_dydz);
1520
1521 float xe_csc_sh = cscsegLP.x() + cscsegLD.x() * gemshLP_inSegmRef.z() / cscsegLD.z();
1522 float ye_csc_sh = cscsegLP.y() + cscsegLD.y() * gemshLP_inSegmRef.z() / cscsegLD.z();
1523 float ze_csc_sh = gemshLP_inSegmRef.z();
1524 LocalPoint extrPoint_csc_sh(xe_csc_sh, ye_csc_sh, ze_csc_sh);
1525
1526
1527 auto extrPoinGP_csc_fromSegmRef_sh = cscChamber->toGlobal(extrPoint_csc_sh);
1528 float phi_ext_csc_sh = extrPoinGP_csc_fromSegmRef_sh.phi();
1529 float theta_ext_csc_sh = extrPoinGP_csc_fromSegmRef_sh.theta();
1530
1531 SIMGEMCSC_Dphi_cscS_min_afterCut->Fill((phi_ext_csc_sh - phi_sh));
1532 SIMGEMCSC_Dtheta_cscS_min_afterCut->Fill((theta_ext_csc_sh - theta_sh));
1533 SIMGEMCSC_Dphi_SS_min_afterCut->Fill((phi_ext_sh - phi_sh));
1534 SIMGEMCSC_Dtheta_SS_min_afterCut->Fill((theta_ext_sh - theta_sh));
1535
1536 SIMGEMCSC_Residuals_gem_x->Fill(gemshLP.x() - extSegm_sh.x());
1537 SIMGEMCSC_Residuals_gem_y->Fill(gemshLP.y() - extSegm_sh.y());
1538 SIMGEMCSC_Pool_gem_x_newE->Fill((gemshLP.x() - extSegm_sh.x()) / sqrt(sigma_xe_sh * sigma_xe_sh));
1539 SIMGEMCSC_Pool_gem_y_newE->Fill((gemshLP.y() - extSegm_sh.y()) / sqrt(sigma_ye_sh * sigma_ye_sh));
1540
1541 SIMGEMCSC_Residuals_gem_rhsh_x->Fill(gemshLP.x() - gemrhLP.x());
1542 SIMGEMCSC_Residuals_gem_rhsh_y->Fill(gemshLP.y() - gemrhLP.y());
1543 SIMGEMCSC_Pool_gem_rhsh_x_newE->Fill((gemshLP.x() - gemrhLP.x()) / sqrt(gemrhLEP.xx()));
1544 SIMGEMCSC_Pool_gem_rhsh_y_newE->Fill((gemshLP.y() - gemrhLP.y()) / sqrt(gemrhLEP.yy()));
1545
1546 if (chamber % 2 != 0) {
1547 SIMGEMCSC_Residuals_gem_odd_x->Fill(gemshLP.x() - extSegm_sh.x());
1548 SIMGEMCSC_Residuals_gem_odd_y->Fill(gemshLP.y() - extSegm_sh.y());
1549 SIMGEMCSC_Pool_gem_x_newE_odd->Fill((gemshLP.x() - extSegm_sh.x()) / sqrt(sigma_xe_sh * sigma_xe_sh));
1550 SIMGEMCSC_Pool_gem_y_newE_odd->Fill((gemshLP.y() - extSegm_sh.y()) / sqrt(sigma_ye_sh * sigma_ye_sh));
1551 SIMGEMCSC_Dphi_cscS_min_afterCut_odd->Fill((phi_ext_csc_sh - phi_sh));
1552 SIMGEMCSC_Dtheta_cscS_min_afterCut_odd->Fill((theta_ext_csc_sh - theta_sh));
1553 SIMGEMCSC_Dphi_SS_min_afterCut_odd->Fill((phi_ext_sh - phi_sh));
1554 SIMGEMCSC_Dtheta_SS_min_afterCut_odd->Fill((theta_ext_sh - theta_sh));
1555 SIMGEMCSC_theta_cscSsh_vs_ndof_odd->Fill((theta_ext_csc_sh - theta_sh), cscSeg.degreesOfFreedom());
1556
1557 } else {
1558 SIMGEMCSC_Residuals_gem_even_x->Fill(gemshLP.x() - extSegm_sh.x());
1559 SIMGEMCSC_Residuals_gem_even_y->Fill(gemshLP.y() - extSegm_sh.y());
1560 SIMGEMCSC_Pool_gem_x_newE_even->Fill((gemshLP.x() - extSegm_sh.x()) / sqrt(sigma_xe_sh * sigma_xe_sh));
1561 SIMGEMCSC_Pool_gem_y_newE_even->Fill((gemshLP.y() - extSegm_sh.y()) / sqrt(sigma_ye_sh * sigma_ye_sh));
1562 SIMGEMCSC_Dphi_cscS_min_afterCut_even->Fill((phi_ext_csc_sh - phi_sh));
1563 SIMGEMCSC_Dtheta_cscS_min_afterCut_even->Fill((theta_ext_csc_sh - theta_sh));
1564 SIMGEMCSC_Dphi_SS_min_afterCut_even->Fill((phi_ext_sh - phi_sh));
1565 SIMGEMCSC_Dtheta_SS_min_afterCut_even->Fill((theta_ext_sh - theta_sh));
1566 SIMGEMCSC_theta_cscSsh_vs_ndof_even->Fill((theta_ext_csc_sh - theta_sh), cscSeg.degreesOfFreedom());
1567 }
1568
1569 }
1570
1571 }
1572
1573
1574 auto gemcscrhs = gemcscs->recHits();
1575 for (auto rh = gemcscrhs.begin(); rh != gemcscrhs.end(); rh++) {
1576
1577 DetId d = DetId((*rh)->rawId());
1578 if (d.subdetId() == MuonSubdetId::CSC) {
1579 std::cout << "CSC found" << std::endl;
1580
1581
1582 CSCDetId id(d);
1583
1584
1585 int station = id.station();
1586 int ring = id.ring();
1587
1588
1589
1590 std::cout << "CSC Region"
1591 << " Station " << station << " ring " << ring << std::endl;
1592
1593 }
1594
1595 else if (d.subdetId() == MuonSubdetId::GEM) {
1596
1597
1598
1599 GEMDetId id(d);
1600 int region = id.region();
1601 int layer = id.layer();
1602 int station = id.station();
1603 int ring = id.ring();
1604 int chamber = id.chamber();
1605 int roll = id.roll();
1606
1607 std::cout << "GEM Region" << region << " Station " << station << " ring " << ring << " layer " << layer
1608 << " chamber " << chamber << " roll " << roll << std::endl;
1609 }
1610 }
1611
1612 auto gemcscsegGD = cscChamber->toGlobal(gemcscs->localPosition());
1613 for (simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack) {
1614 double simEta = (*simTrack).momentum().eta();
1615 double simPhi = (*simTrack).momentum().phi();
1616 double dR = sqrt(pow((simEta - gemcscsegGD.eta()), 2) + pow((simPhi - gemcscsegGD.phi()), 2));
1617 if (dR > 0.1)
1618 continue;
1619 }
1620
1621 }
1622
1623 std::cout << "------------------------------------------------------------------------------" << std::endl;
1624 std::cout << "------------------------------------------------------------------------------" << std::endl;
1625 }
1626
1627
1628
1629
1630
1631 edm::PSimHitContainer TestGEMCSCSegmentAnalyzer::SimHitMatched(std::vector<GEMRecHit>::const_iterator recHit,
1632 edm::ESHandle<GEMGeometry> gemGeom,
1633 const Event& iEvent) {
1634 edm::PSimHitContainer selectedGEMHits;
1635
1636 GEMDetId id((*recHit).geographicalId());
1637
1638 int region = id.region();
1639 int layer = id.layer();
1640 int station = id.station();
1641 int chamber = id.chamber();
1642 int roll = id.roll();
1643
1644 int cls = recHit->clusterSize();
1645 int firstStrip = recHit->firstClusterStrip();
1646
1647 edm::Handle<edm::PSimHitContainer> GEMHits;
1648 iEvent.getByToken(GEMSimHit_Token, GEMHits);
1649
1650
1651
1652 for (edm::PSimHitContainer::const_iterator itHit = GEMHits->begin(); itHit != GEMHits->end(); ++itHit) {
1653 if (!(abs(itHit->particleType()) == 13))
1654 continue;
1655 GEMDetId idGem = GEMDetId(itHit->detUnitId());
1656 int region_sim = idGem.region();
1657 int layer_sim = idGem.layer();
1658 int station_sim = idGem.station();
1659 int chamber_sim = idGem.chamber();
1660 int roll_sim = idGem.roll();
1661
1662 LocalPoint lp = itHit->entryPoint();
1663
1664 float strip_sim = gemGeom->etaPartition(idGem)->strip(lp);
1665 if (region != region_sim)
1666 continue;
1667 if (layer != layer_sim)
1668 continue;
1669 if (station != station_sim)
1670 continue;
1671 if (chamber != chamber_sim)
1672 continue;
1673 if (roll != roll_sim)
1674 continue;
1675 for (int i = firstStrip; i < (firstStrip + cls); i++) {
1676 if (abs(strip_sim - i) < 1) {
1677 selectedGEMHits.push_back(*itHit);
1678 }
1679 }
1680 }
1681
1682 return selectedGEMHits;
1683 }
1684
1685
1686 void TestGEMCSCSegmentAnalyzer::beginJob() {}
1687
1688
1689 void TestGEMCSCSegmentAnalyzer::endJob() {}
1690
1691
1692 void TestGEMCSCSegmentAnalyzer::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) {
1693
1694
1695 }
1696
1697
1698 DEFINE_FWK_MODULE(TestGEMCSCSegmentAnalyzer);