28 for ( std::vector<std::string>::iterator iParam = parameterNames.begin();
29 iParam != parameterNames.end(); iParam++ ){
34 const int kMaxMuon = 10000;
35 muonpt =
new float[kMaxMuon];
38 muonet =
new float[kMaxMuon];
39 muone =
new float[kMaxMuon];
45 muonD0 =
new float[kMaxMuon];
49 const int kMaxMuonL2 = 500;
65 const int kMaxMuonL3 = 500;
91 const int kMaxTrackerMuon = 500;
97 const int kMaxOniaPixel = 500;
106 const int kMaxTrackPixel = 500;
115 const int kMaxMuonL2NoVtx = 500;
129 const int kMaxDiMu = 500;
133 const int kMaxDiMuVtx = 500;
147 const int kMaxPfmuon = 10000;
152 pfmuone =
new float[kMaxPfmuon];
156 HltTree->Branch(
"NrecoMuon",&
nmuon,
"NrecoMuon/I");
157 HltTree->Branch(
"recoMuonPt",
muonpt,
"recoMuonPt[NrecoMuon]/F");
158 HltTree->Branch(
"recoMuonPhi",
muonphi,
"recoMuonPhi[NrecoMuon]/F");
159 HltTree->Branch(
"recoMuonEta",
muoneta,
"recoMuonEta[NrecoMuon]/F");
160 HltTree->Branch(
"recoMuonEt",
muonet,
"recoMuonEt[NrecoMuon]/F");
161 HltTree->Branch(
"recoMuonE",
muone,
"recoMuonE[NrecoMuon]/F");
162 HltTree->Branch(
"recoMuonChi2NDF",
muonchi2NDF,
"recoMuonChi2NDF[NrecoMuon]/F");
163 HltTree->Branch(
"recoMuonCharge",
muoncharge ,
"recoMuonCharge[NrecoMuon]/F");
164 HltTree->Branch(
"recoMuonTrkIsoR03",
muonTrkIsoR03 ,
"recoMuonTrkIsoR03[NrecoMuon]/F");
165 HltTree->Branch(
"recoMuonECalIsoR03",
muonECalIsoR03 ,
"recoMuonECalIsoR03[NrecoMuon]/F");
166 HltTree->Branch(
"recoMuonHCalIsoR03",
muonHCalIsoR03 ,
"recoMuonHCalIsoR03[NrecoMuon]/F");
167 HltTree->Branch(
"recoMuonD0",
muonD0 ,
"recoMuonD0[NrecoMuon]/F");
168 HltTree->Branch(
"recoMuonType",
muontype ,
"recoMuonType[NrecoMuon]/I");
169 HltTree->Branch(
"recoMuonNValidTrkHits",
muonNValidTrkHits,
"recoMuonNValidTrkHits[NrecoMuon]/I");
170 HltTree->Branch(
"recoMuonNValidMuonHits",
muonNValidMuonHits,
"recoMuonNValidMuonHits[NrecoMuon]/I");
172 HltTree->Branch(
"NohMuL2",&
nmu2cand,
"NohMuL2/I");
173 HltTree->Branch(
"ohMuL2Pt",
muonl2pt,
"ohMuL2Pt[NohMuL2]/F");
174 HltTree->Branch(
"ohMuL2Phi",
muonl2phi,
"ohMuL2Phi[NohMuL2]/F");
175 HltTree->Branch(
"ohMuL2Eta",
muonl2eta,
"ohMuL2Eta[NohMuL2]/F");
176 HltTree->Branch(
"ohMuL2Chg",
muonl2chg,
"ohMuL2Chg[NohMuL2]/I");
177 HltTree->Branch(
"ohMuL2PtErr",
muonl2pterr,
"ohMuL2PtErr[NohMuL2]/F");
178 HltTree->Branch(
"ohMuL2Iso",
muonl2iso,
"ohMuL2Iso[NohMuL2]/I");
179 HltTree->Branch(
"ohMuL2Dr",
muonl2dr,
"ohMuL2Dr[NohMuL2]/F");
180 HltTree->Branch(
"ohMuL2DrSign",
muonl2drsign,
"ohMuL2DrSign[NohMuL2]/F");
181 HltTree->Branch(
"ohMuL2Dz",
muonl2dz,
"ohMuL2Dz[NohMuL2]/F");
182 HltTree->Branch(
"ohMuL2VtxZ",
muonl2vtxz,
"ohMuL2VtxZ[NohMuL2]/F");
183 HltTree->Branch(
"ohMuL2Nhits",
muonl2nhits,
"ohMuL2Nhits[NohMuL2]/I");
184 HltTree->Branch(
"ohMuL2Nchambers",
muonl2nchambers,
"ohMuL2Nchambers[NohMuL2]/I");
185 HltTree->Branch(
"ohMuL2Nstat",
muonl2nstat,
"ohMuL2Nstat[NohMuL2]/I");
186 HltTree->Branch(
"ohMuL2NDtCscStat",
muonl2ndtcscstat,
"ohMuL2NDtCscStat[NohMuL2]/I");
187 HltTree->Branch(
"ohMuL2L1idx",
muonl21idx,
"ohMuL2L1idx[NohMuL2]/I");
188 HltTree->Branch(
"NohMuL3",&
nmu3cand,
"NohMuL3/I");
189 HltTree->Branch(
"ohMuL3Pt",
muonl3pt,
"ohMuL3Pt[NohMuL3]/F");
190 HltTree->Branch(
"ohMuL3Phi",
muonl3phi,
"ohMuL3Phi[NohMuL3]/F");
191 HltTree->Branch(
"ohMuL3Eta",
muonl3eta,
"ohMuL3Eta[NohMuL3]/F");
192 HltTree->Branch(
"ohMuL3Chg",
muonl3chg,
"ohMuL3Chg[NohMuL3]/I");
193 HltTree->Branch(
"ohMuL3PtErr",
muonl3pterr,
"ohMuL3PtErr[NohMuL3]/F");
194 HltTree->Branch(
"ohMuL3Iso",
muonl3iso,
"ohMuL3Iso[NohMuL3]/I");
195 HltTree->Branch(
"ohMuL3Trk10Iso",
muonl3trk10iso,
"ohMuL3Trk10Iso[NohMuL3]/I");
196 HltTree->Branch(
"ohMuL3Dr",
muonl3dr,
"ohMuL3Dr[NohMuL3]/F");
197 HltTree->Branch(
"ohMuL3Dz",
muonl3dz,
"ohMuL3Dz[NohMuL3]/F");
198 HltTree->Branch(
"ohMuL3VtxZ",
muonl3vtxz,
"ohMuL3VtxZ[NohMuL3]/F");
199 HltTree->Branch(
"ohMuL3Nhits",
muonl3nhits,
"ohMuL3Nhits[NohMuL3]/I");
200 HltTree->Branch(
"ohMuL3NormChi2",
muonl3normchi2,
"ohMuL3NormChi2[NohMuL3]/F");
201 HltTree->Branch(
"ohMuL3Npixelhits",
muonl3npixelhits,
"ohMuL3Npixelhits[NohMuL3]/I");
202 HltTree->Branch(
"ohMuL3Ntrackerhits",
muonl3ntrackerhits,
"ohMuL3Ntrackerhits[NohMuL3]/I");
203 HltTree->Branch(
"ohMuL3Nmuonhits",
muonl3nmuonhits,
"ohMuL3Nmuonhits[NohMuL3]/I");
204 HltTree->Branch(
"ohMuL3L2idx",
muonl32idx,
"ohMuL3L2idx[NohMuL3]/I");
205 HltTree->Branch(
"ohMuL3globalPt",
muonl3globalpt,
"ohMuL3globalPt[NohMuL3]/F");
206 HltTree->Branch(
"ohMuL3globalEta",
muonl3globaleta,
"ohMuL3globalEta[NohMuL3]/F");
207 HltTree->Branch(
"ohMuL3globalPhi",
muonl3globalphi,
"ohMuL3globalPhi[NohMuL3]/F");
208 HltTree->Branch(
"ohMuL3globalDr",
muonl3globaldr,
"ohMuL3globalDr[NohMuL3]/F");
209 HltTree->Branch(
"ohMuL3globalDrSign",
muonl3globaldrsign,
"ohMuL3globalDrSign[NohMuL3]/F");
210 HltTree->Branch(
"ohMuL3globalDz",
muonl3globaldz,
"ohMuL3globalDz[NohMuL3]/F");
211 HltTree->Branch(
"ohMuL3globalVtxZ",
muonl3globalvtxz,
"ohMuL3globalVtxZ[NohMuL3]/F");
212 HltTree->Branch(
"ohMuL3globalL2idx",
muonl3global2idx,
"ohMuL3globalL2idx[NohMuL3]/I");
215 HltTree->Branch(
"ohOniaPixelPt",
oniaPixelpt,
"ohOniaPixelPt[NohOniaPixel]/F");
216 HltTree->Branch(
"ohOniaPixelPhi",
oniaPixelphi,
"ohOniaPixelPhi[NohOniaPixel]/F");
217 HltTree->Branch(
"ohOniaPixelEta",
oniaPixeleta,
"ohOniaPixelEta[NohOniaPixel]/F");
218 HltTree->Branch(
"ohOniaPixelChg",
oniaPixelchg,
"ohOniaPixelChg[NohOniaPixel]/I");
219 HltTree->Branch(
"ohOniaPixelDr",
oniaPixeldr,
"ohOniaPixelDr[NohOniaPixel]/F");
220 HltTree->Branch(
"ohOniaPixelDz",
oniaPixeldz,
"ohOniaPixelDz[NohOniaPixel]/F");
221 HltTree->Branch(
"ohOniaPixelHits",
oniaPixelHits,
"ohOniaPixelHits[NohOniaPixel]/I");
222 HltTree->Branch(
"ohOniaPixelNormChi2",
oniaPixelNormChi2,
"ohOniaPixelNormChi2[NohOniaPixel]/F");
224 HltTree->Branch(
"ohOniaTrackPt",
oniaTrackpt,
"ohOniaTrackPt[NohOniaTrack]/F");
225 HltTree->Branch(
"ohOniaTrackPhi",
oniaTrackphi,
"ohOniaTrackPhi[NohOniaTrack]/F");
226 HltTree->Branch(
"ohOniaTrackEta",
oniaTracketa,
"ohOniaTrackEta[NohOniaTrack]/F");
227 HltTree->Branch(
"ohOniaTrackChg",
oniaTrackchg,
"ohOniaTrackChg[NohOniaTrack]/I");
228 HltTree->Branch(
"ohOniaTrackDr",
oniaTrackdr,
"ohOniaTrackDr[NohOniaTrack]/F");
229 HltTree->Branch(
"ohOniaTrackDz",
oniaTrackdz,
"ohOniaTrackDz[NohOniaTrack]/F");
230 HltTree->Branch(
"ohOniaTrackHits",
oniaTrackHits,
"ohOniaTrackHits[NohOniaTrack]/I");
231 HltTree->Branch(
"ohOniaTrackNormChi2",
oniaTrackNormChi2,
"ohOniaTrackNormChi2[NohOniaTrack]/F");
232 HltTree->Branch(
"NohMuL2NoVtx",&
nmu2cand,
"NohMuL2NoVtx/I");
233 HltTree->Branch(
"ohMuL2NoVtxPt",
muonl2novtxpt,
"ohMuL2NoVtxPt[NohMuL2NoVtx]/F");
234 HltTree->Branch(
"ohMuL2NoVtxPhi",
muonl2novtxphi,
"ohMuL2NoVtxPhi[NohMuL2NoVtx]/F");
235 HltTree->Branch(
"ohMuL2NoVtxEta",
muonl2novtxeta,
"ohMuL2NoVtxEta[NohMuL2NoVtx]/F");
236 HltTree->Branch(
"ohMuL2NoVtxChg",
muonl2novtxchg,
"ohMuL2NoVtxChg[NohMuL2NoVtx]/I");
237 HltTree->Branch(
"ohMuL2NoVtxPtErr",
muonl2novtxpterr,
"ohMuL2NoVtxPtErr[NohMuL2NoVtx]/F");
238 HltTree->Branch(
"ohMuL2NoVtxDr",
muonl2novtxdr,
"ohMuL2NoVtxDr[NohMuL2NoVtx]/F");
239 HltTree->Branch(
"ohMuL2NoVtxDrSign",
muonl2novtxdrsign,
"ohMuL2NoVtxDrSign[NohMuL2NoVtx]/F");
240 HltTree->Branch(
"ohMuL2NoVtxDz",
muonl2novtxdz,
"ohMuL2NoVtxDz[NohMuL2NoVtx]/F");
241 HltTree->Branch(
"ohMuL2NoVtxNhits",
muonl2novtxnhits,
"ohMuL2NoVtxNhits[NohMuL2NoVtx]/I");
242 HltTree->Branch(
"ohMuL2NoVtxNchambers",
muonl2novtxnchambers,
"ohMuL2NoVtxNchambers[NohMuL2NoVtx]/I");
243 HltTree->Branch(
"ohMuL2NoVtxNstat",
muonl2novtxnstat,
"ohMuL2NoVtxNstat[NohMuL2NoVtx]/I");
244 HltTree->Branch(
"ohMuL2NoVtxNDtCscStat",
muonl2novtxndtcscstat,
"ohMuL2NoVtxNDtCscStat[NohMuL2NoVtx]/I");
245 HltTree->Branch(
"ohMuL2NoVtxL1idx",
muonl2novtx1idx,
"ohMuL2NoVtxL1idx[NohMuL2NoVtx]/I");
246 HltTree->Branch(
"NohDiMu",&
nDiMu,
"NohDiMu/I");
247 HltTree->Branch(
"ohDiMuDCA",
dimudca,
"ohDiMuDCA[NohDiMu]/F");
248 HltTree->Branch(
"ohDiMu1st",
dimu1st,
"ohDiMu1st[NohDiMu]/I");
249 HltTree->Branch(
"ohDiMu2nd",
dimu2nd,
"ohDiMu2nd[NohDiMu]/I");
250 HltTree->Branch(
"NohDiMuVtx",&
nDiMuVtx,
"NohDiMuVtx/I");
251 HltTree->Branch(
"ohDiMuVtx1st",
dimuvtx1st,
"ohDiMuVtx1st[NohDiMuVtx]/I");
252 HltTree->Branch(
"ohDiMuVtx2nd",
dimuvtx2nd,
"ohDiMuVtx2nd[NohDiMuVtx]/I");
253 HltTree->Branch(
"ohDiMuVtxChi2",
dimuvtxchi2,
"ohDiMuVtxChi2[NohDiMuVtx]/F");
254 HltTree->Branch(
"ohDiMuVtxR",
dimuvtxr,
"ohDiMuVtxR[NohDiMuVtx]/F");
255 HltTree->Branch(
"ohDiMuVtxRSig",
dimuvtxrsig,
"ohDiMuVtxRSig[NohDiMuVtx]/F");
256 HltTree->Branch(
"ohDiMuVtxROverSig",
dimuvtxroversig,
"ohDiMuVtxROverSig[NohDiMuVtx]/F");
257 HltTree->Branch(
"ohDiMuVtxCosAlpha",
dimuvtxcosalpha,
"ohDiMuVtxCosAlpha[NohDiMuVtx]/F");
258 HltTree->Branch(
"ohDiMuVtxMu2DIpMax",
dimuvtxmu2dipmax,
"ohDiMuVtxMu2DIpMax[NohDiMuVtx]/F");
259 HltTree->Branch(
"ohDiMuVtxMu2DIpMin",
dimuvtxmu2dipmin,
"ohDiMuVtxMu2DIpMin[NohDiMuVtx]/F");
260 HltTree->Branch(
"ohDiMuVtxMu2DIpSigMax",
dimuvtxmu2dipsigmax,
"ohDiMuVtxMu2DIpSigMax[NohDiMuVtx]/F");
261 HltTree->Branch(
"ohDiMuVtxMu2DIpSigMin",
dimuvtxmu2dipsigmin,
"ohDiMuVtxMu2DIpSigMin[NohDiMuVtx]/F");
263 HltTree->Branch(
"ohTrackerMuonPt",
trackermuonpt,
"ohTrackerMuonPt[NohTrackerMuon]/F");
264 HltTree->Branch(
"ohTrackerMuonPhi",
trackermuonphi,
"ohTrackerMuonPhi[NohTrackerMuon]/F");
265 HltTree->Branch(
"ohTrackerMuonEta",
trackermuoneta,
"ohTrackerMuonEta[NohTrackerMuon]/F");
266 HltTree->Branch(
"ohTrackerMuonChg",
trackermuonchg,
"ohTrackerMuonChg[NohTrackerMuon]/I");
267 HltTree->Branch(
"ohTrackerMuonNhits",
trackermuonnhits,
"ohTrackerMuonNhits[NohTrackerMuon]/I");
269 HltTree->Branch(
"NpfMuon",&
npfmuon,
"NpfMuon/I");
270 HltTree->Branch(
"pfMuonPt",
pfmuonpt,
"pfMuonPt[NpfMuon]/F");
271 HltTree->Branch(
"pfMuonPhi",
pfmuonphi,
"pfMuonPhi[NpfMuon]/F");
272 HltTree->Branch(
"pfMuonEta",
pfmuoneta,
"pfMuonEta[NpfMuon]/F");
273 HltTree->Branch(
"pfMuonEt",
pfmuonet,
"pfMuonEt[NpfMuon]/F");
274 HltTree->Branch(
"pfMuonE",
pfmuone,
"pfMuonE[NpfMuon]/F");
275 HltTree->Branch(
"pfMuonCharge",
pfmuoncharge ,
"pfMuonCharge[NpfMuon]/F");
299 BSPosition = recoBeamSpotHandle->position();
301 recoBeamSpotHandle->position().y(),
302 recoBeamSpotHandle->position().z());
311 nmuon = mymuons.size();
312 typedef reco::MuonCollection::const_iterator muiter;
314 for (muiter
i=mymuons.begin();
i!=mymuons.end();
i++)
328 if (
i->globalTrack().isNonnull())
331 muonD0[imu] =
i->globalTrack()->dxy(BSPosition);
338 if (
i->innerTrack().isNonnull())
muonNValidTrkHits[imu] =
i->innerTrack()->numberOfValidHits();
341 if (
i->isGlobalMuon()!=0)
muonNValidMuonHits[imu] =
i->globalTrack()->hitPattern().numberOfValidMuonHits();
350 myMucands1 = * MuCands1;
360 myMucands2 = * MuCands2;
363 typedef reco::RecoChargedCandidateCollection::const_iterator cand;
365 for (cand
i=myMucands2.begin();
i!=myMucands2.end();
i++) {
376 muonl2dr[imu2c] = fabs(tk->dxy(BSPosition));
381 muonl2dz[imu2c] = tk->dz(BSPosition);
385 muonl2nstat[imu2c] = tk->hitPattern().muonStationsWithAnyHits();
386 muonl2ndtcscstat[imu2c] = tk->hitPattern().dtStationsWithAnyHits() + tk->hitPattern().cscStationsWithAnyHits();
394 double l2_err0 = tk->error(0);
395 double l2_abspar0 = fabs(tk->parameter(0));
411 if (isoMap2.isValid()){
425 typedef l1extra::L1MuonParticleCollection::const_iterator candl1;
426 for (candl1
j=myMucands1.begin();
j!=myMucands1.end();
j++) {
427 if((
j->pt() == l1->pt()) &&
428 (
j->eta() == l1->eta()) &&
429 (
j->phi() == l1->phi()) &&
430 (
j->gmtMuonCand().quality() == l1->gmtMuonCand().quality()))
437 else {imu1idx = -999;}
449 myMucands3 = * MuCands3;
452 typedef reco::RecoChargedCandidateCollection::const_iterator cand;
455 for (cand
i=myMucands3.begin();
i!=myMucands3.end();
i++) {
461 typedef reco::MuonTrackLinksCollection::const_iterator l3muon;
468 typedef reco::RecoChargedCandidateCollection::const_iterator candl2;
469 for (candl2
i=myMucands2.begin();
i!=myMucands2.end();
i++) {
471 if ( tkl2 == staTrack ) {
break;}
475 else {imu2idx = -999;}
490 muonl3dr[imu3c] = fabs( (- (candref->vx()-BSPosition.x()) * candref->py() + (candref->vy()-BSPosition.y()) * candref->px() ) / candref->pt() );
492 muonl3globaldrsign[imu3c] = ( tk->dxyError() > 0. ? muonl3globaldr[imu3c] / tk->dxyError() : -999. );
496 muonl3dz[imu3c] = (candref->vz()-BSPosition.z()) - ((candref->vx()-BSPosition.x())*candref->px()+(candref->vy()-BSPosition.y())*candref->py())/candref->pt() * candref->pz()/candref->pt();
499 muonl3vtxz[imu3c] = candref->vz() - ( candref->vx()*candref->px() + candref->vy()*candref->py() )/candref->pt() * candref->pz()/candref->pt();
512 double l3_err0 = tk->error(0);
513 double l3_abspar0 = fabs(tk->parameter(0));
535 if (isoMap3.isValid()){
542 if (isoTrk10Map3.isValid()){
550 int imu3c2nd = imu3c + 1;
552 for (cand
j=
i;
j!=myMucands3.end();
j++)
if (
i!=
j) {
559 ClosestApproachInRPhi cApp;
562 dimudca[idimuc] = cApp.distance();
581 myDimuvtxcands3 = * DiMuVtxCands3;
583 typedef reco::VertexCollection::const_iterator cand;
585 for (cand ivtx = myDimuvtxcands3.begin(); ivtx != myDimuvtxcands3.end(); ++ivtx) {
594 if(fabs(
muonl3pt[
j] - vertextkRef2->pt()) < 0.0001 && fabs(
muonl3eta[
j] - vertextkRef2->eta()) < 0.0001 && fabs(
muonl3phi[
j] - vertextkRef2->phi()) < 0.0001) dimuvtx2nd[idimu3c] =
j;
597 vertextkRef1->py() + vertextkRef2->py(),
600 GlobalPoint vtxPos (vpoint.x(), vpoint.y(), vpoint.z());
602 GlobalError vtxErr (verr.At(0,0),verr.At(1,0),verr.At(1,1),verr.At(2,0),verr.At(2,1),verr.At(2,2));
603 GlobalPoint vtxDisFromBS(-1*((vtxBS.x0() - vtxPos.x()) + (vtxPos.z() - vtxBS.z0())*vtxBS.dxdz()),
604 -1*((vtxBS.y0() - vtxPos.y()) + (vtxPos.z() - vtxBS.z0())*vtxBS.dydz()), 0.0);
605 dimuvtxr[idimu3c] = vtxDisFromBS.perp();
612 float mu1ipsig = -1.0;
613 float mu2ipsig = -1.0;
640 muNoVtxMucands2 = * MuNoVtxCands2;
643 typedef reco::RecoChargedCandidateCollection::const_iterator cand;
645 for (cand
i=muNoVtxMucands2.begin();
i!=muNoVtxMucands2.end();
i++) {
657 muonl2novtxndtcscstat[imu2c] = tk->hitPattern().dtStationsWithAnyHits() + tk->hitPattern().cscStationsWithAnyHits();
659 double l2_err0 = tk->error(0);
660 double l2_abspar0 = fabs(tk->parameter(0));
672 typedef l1extra::L1MuonParticleCollection::const_iterator candl1;
673 for (candl1
j=myMucands1.begin();
j!=myMucands1.end();
j++) {
674 if((
j->pt() == l1->pt()) &&
675 (
j->eta() == l1->eta()) &&
676 (
j->phi() == l1->phi()) &&
677 (
j->gmtMuonCand().quality() == l1->gmtMuonCand().quality()))
682 else {imu1idx = -999;}
694 if (oniaPixelCands.
isValid()) {
695 myOniaPixelCands = * oniaPixelCands;
698 typedef reco::RecoChargedCandidateCollection::const_iterator cand;
700 for (cand
i=myOniaPixelCands.begin();
i!=myOniaPixelCands.end();
i++) {
719 if (oniaTrackCands.
isValid()) {
720 myOniaTrackCands = * oniaTrackCands;
723 typedef reco::RecoChargedCandidateCollection::const_iterator cand;
725 for (cand
i=myOniaTrackCands.begin();
i!=myOniaTrackCands.end();
i++) {
746 for (
unsigned int i=0;
i<trkmucands->size(); ++
i ){
748 if (
muon.isTrackerMuon()) {
753 if ( !
muon.innerTrack().isNull() ){
767 mypfmuons = * pfMuon;
770 typedef reco::PFCandidateCollection::const_iterator muiter;
772 for (muiter
i=mypfmuons.begin();
i!=mypfmuons.end();
i++)
791 std::map<uint32_t,int> DTchambers;
792 std::map<uint32_t,int> CSCchambers;
795 if( !((*hit)->isValid()) )
continue;
797 DetId id = (*hit)->geographicalId();
803 if (DTchambers.find(index) == DTchambers.end()) {
804 DTchambers[
index] = 0;
814 if (CSCchambers.find(index) == CSCchambers.end()) {
815 CSCchambers[
index] = 0;
817 CSCchambers[
index]++;
827 for (std::map<uint32_t,int>::const_iterator iter = DTchambers.begin(); iter != DTchambers.end(); ++iter) {
828 if (iter->second >= minDThits) {
832 for (std::map<uint32_t,int>::const_iterator iter = CSCchambers.begin(); iter != CSCchambers.end(); ++iter) {
833 if (iter->second >= minCSChits) {
T getParameter(std::string const &) const
int * muonl2novtxndtcscstat
float * oniaPixelNormChi2
const PerigeeTrajectoryError & perigeeError() const
float * muonl3globaldrsign
TrajectoryStateClosestToPoint impactPointTSCP() const
const FreeTrajectoryState & theState() const
Global3DPoint GlobalPoint
edm::Ref< RecoChargedCandidateCollection > RecoChargedCandidateRef
reference to an object in a collection of RecoChargedCandidate objects
math::Error< dimension >::type Error
covariance error matrix (3x3)
std::vector< Vertex > VertexCollection
collection of Vertex objects
math::XYZPoint Point
point in the space
float * oniaTrackNormChi2
std::vector< Muon > MuonCollection
collection of Muon objects
void setup(const edm::ParameterSet &pSet, TTree *tree)
const PerigeeTrajectoryParameters & perigeeParameters() const
double transverseImpactParameter() const
float * dimuvtxmu2dipsigmin
math::XYZPoint Point
point in the space
std::vector< std::string > getParameterNames() const
Container::value_type value_type
double transverseImpactParameterError() const
int validChambers(const reco::TrackRef &track)
std::vector< RecoChargedCandidate > RecoChargedCandidateCollection
collectin of RecoChargedCandidate objects
void analyze(const edm::Handle< reco::MuonCollection > &muon, const edm::Handle< reco::PFCandidateCollection > &pfmuon, const edm::Handle< l1extra::L1MuonParticleCollection > &mucands1, const edm::Handle< reco::RecoChargedCandidateCollection > &mucands2, const edm::Handle< edm::ValueMap< bool > > &isoMap2, const edm::Handle< reco::RecoChargedCandidateCollection > &mucands3, const edm::Handle< edm::ValueMap< bool > > &isoMap3, const edm::Handle< edm::ValueMap< bool > > &isoTrk10Map3, const edm::Handle< reco::RecoChargedCandidateCollection > &oniaPixelCands, const edm::Handle< reco::RecoChargedCandidateCollection > &oniaTrackCands, const edm::Handle< reco::VertexCollection > &dimuvtxcands3, const edm::Handle< reco::RecoChargedCandidateCollection > &munovtxcands2, const edm::Handle< reco::MuonCollection > &trkmucands, const edm::ESHandle< MagneticField > &theMagField, const edm::Handle< reco::BeamSpot > &recoBeamSpotHandle, TTree *tree)
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
float * muonl2novtxdrsign
float * dimuvtxmu2dipsigmax
XYZVectorD XYZVector
spatial vector with cartesian internal representation
TrajectoryStateClosestToPoint trajectoryStateClosestToPoint(const GlobalPoint &point) const
int * muonl2novtxnchambers
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>