#include <BeamHaloAnalyzer.h>
Definition at line 153 of file BeamHaloAnalyzer.h.
BeamHaloAnalyzer::BeamHaloAnalyzer | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 20 of file BeamHaloAnalyzer.cc.
References edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), MuonSegmentMatcher_cff::MuonSegmentMatcher, MuonServiceProxy_cff::MuonServiceProxy, dbtoconf::out, and OutputFileName.
{ OutputFileName = iConfig.getParameter<std::string>("OutputFile"); TextFileName = iConfig.getParameter<std::string>("TextFile"); if(TextFileName.size()) out = new ofstream(TextFileName.c_str() ); if( iConfig.exists("StandardDQM") ) // If StandardDQM == true , coarse binning is used on selected (important) histograms StandardDQM = iConfig.getParameter<bool>("StandardDQM"); else StandardDQM = false; //Get Input Tags //Digi Level IT_L1MuGMTReadout = iConfig.getParameter<edm::InputTag>("L1MuGMTReadoutLabel"); //RecHit Level IT_CSCRecHit = iConfig.getParameter<edm::InputTag>("CSCRecHitLabel"); IT_EBRecHit = iConfig.getParameter<edm::InputTag>("EBRecHitLabel"); IT_EERecHit = iConfig.getParameter<edm::InputTag>("EERecHitLabel"); IT_ESRecHit = iConfig.getParameter<edm::InputTag>("ESRecHitLabel"); IT_HBHERecHit = iConfig.getParameter<edm::InputTag>("HBHERecHitLabel"); IT_HFRecHit = iConfig.getParameter<edm::InputTag>("HFRecHitLabel"); IT_HORecHit = iConfig.getParameter<edm::InputTag>("HORecHitLabel"); //Higher Level Reco IT_CSCSegment = iConfig.getParameter<edm::InputTag>("CSCSegmentLabel"); IT_CosmicStandAloneMuon = iConfig.getParameter<edm::InputTag>("CosmicStandAloneMuonLabel"); IT_BeamHaloMuon = iConfig.getParameter<edm::InputTag>("BeamHaloMuonLabel"); IT_CollisionMuon = iConfig.getParameter<edm::InputTag>("CollisionMuonLabel"); IT_CollisionStandAloneMuon = iConfig.getParameter<edm::InputTag>("CollisionStandAloneMuonLabel"); IT_met = iConfig.getParameter<edm::InputTag>("metLabel"); IT_CaloTower = iConfig.getParameter<edm::InputTag>("CaloTowerLabel"); IT_SuperCluster = iConfig.getParameter<edm::InputTag>("SuperClusterLabel"); IT_Photon = iConfig.getParameter<edm::InputTag>("PhotonLabel") ; //Halo Data IT_CSCHaloData = iConfig.getParameter<edm::InputTag> ("CSCHaloDataLabel"); IT_EcalHaloData = iConfig.getParameter<edm::InputTag>("EcalHaloDataLabel"); IT_HcalHaloData = iConfig.getParameter<edm::InputTag>("HcalHaloDataLabel"); IT_GlobalHaloData = iConfig.getParameter<edm::InputTag>("GlobalHaloDataLabel"); IT_BeamHaloSummary = iConfig.getParameter<edm::InputTag>("BeamHaloSummaryLabel"); FolderName = iConfig.getParameter<std::string>("folderName"); DumpMET = iConfig.getParameter<double>("DumpMET"); //Muon to Segment Matching edm::ParameterSet serviceParameters = iConfig.getParameter<edm::ParameterSet>("ServiceParameters"); TheService = new MuonServiceProxy(serviceParameters); edm::ParameterSet matchParameters = iConfig.getParameter<edm::ParameterSet>("MatchParameters"); TheMatcher = new MuonSegmentMatcher(matchParameters, TheService); }
BeamHaloAnalyzer::~BeamHaloAnalyzer | ( | ) |
Definition at line 880 of file BeamHaloAnalyzer.cc.
{ }
void BeamHaloAnalyzer::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDAnalyzer.
Definition at line 303 of file BeamHaloAnalyzer.cc.
References angle(), reco::HaloData::both, edm::EventBase::bunchCrossing(), CSC(), CSCDetId, reco::CSCHaloData::CSCHaloHLTAccept(), reco::BeamHaloSummary::CSCLooseHaloId(), reco::BeamHaloSummary::CSCTightHaloId(), reco::GlobalHaloData::DeltaMEx(), reco::GlobalHaloData::DeltaMEy(), reco::BeamHaloSummary::EcalLooseHaloId(), reco::BeamHaloSummary::EcalTightHaloId(), CSCDetId::endcap(), PV3DBase< T, PVType, FrameType >::eta(), edm::EventID::event(), HcalObjRepresent::Fill(), reco::MuonTimeExtra::freeInverseBeta(), edm::EventSetup::get(), edm::Event::getByLabel(), reco::GlobalHaloData::GetCorrectedCaloMET(), reco::CSCHaloData::GetCSCTrackImpactPositions(), reco::GlobalHaloData::GetMatchedEcalPhiWedges(), reco::GlobalHaloData::GetMatchedHcalPhiWedges(), reco::HcalHaloData::GetPhiWedges(), reco::EcalHaloData::GetPhiWedges(), reco::CSCHaloData::GetSegmentsInBothEndcaps(), reco::EcalHaloData::GetShowerShapesAngle(), reco::EcalHaloData::GetShowerShapesRoundness(), reco::EcalHaloData::GetSuperClusters(), reco::CSCHaloData::GetTracks(), reco::BeamHaloSummary::GlobalLooseHaloId(), reco::BeamHaloSummary::GlobalTightHaloId(), reco::BeamHaloSummary::HcalLooseHaloId(), reco::BeamHaloSummary::HcalTightHaloId(), i, edm::EventBase::id(), HcalDetId::iphi(), edm::HandleBase::isValid(), j, reco::BeamHaloSummary::LooseId(), edm::EventBase::luminosityBlock(), reco::HaloData::minus, DetId::Muon, n, reco::CSCHaloData::NFlatHaloSegments(), reco::CSCHaloData::NOutOfTimeHits(), reco::CSCHaloData::NOutOfTimeTriggers(), reco::CSCHaloData::NTracksSmallBeta(), reco::CSCHaloData::NTracksSmallBetaAndSmalldT(), reco::CSCHaloData::NTracksSmalldT(), reco::CSCHaloData::NumberOfHaloTracks(), reco::CSCHaloData::NumberOfHaloTriggers(), reco::CSCHaloData::NumberOfOutOfTimeTriggers(), dbtoconf::out, PV3DBase< T, PVType, FrameType >::phi(), Phi_To_iPhi(), reco::HaloData::plus, edm::Handle< T >::product(), reco::LeafCandidate::pt(), alignCSCRings::r, edm::Event::run(), edm::RefVector< C, T, F >::size(), reco::MET::sumEt(), GeomDet::surface(), reco::BeamHaloSummary::TightId(), cond::rpcobgas::time, Surface::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), and z.
{ EventID TheEvent = iEvent.id(); int BXN = iEvent.bunchCrossing() ; bool Dump = TextFileName.size(); int TheEventNumber = TheEvent.event(); int Lumi = iEvent.luminosityBlock(); int Run = iEvent.run(); //Get CSC Geometry edm::ESHandle<CSCGeometry> TheCSCGeometry; iSetup.get<MuonGeometryRecord>().get(TheCSCGeometry); //Get CaloGeometry edm::ESHandle<CaloGeometry> TheCaloGeometry; iSetup.get<CaloGeometryRecord>().get(TheCaloGeometry); //Get Stand-alone Muons from Cosmic Muon Reconstruction edm::Handle< reco::MuonCollection > TheCosmics; iEvent.getByLabel(IT_CosmicStandAloneMuon, TheCosmics); edm::Handle<reco::MuonTimeExtraMap> TheCSCTimeMap; iEvent.getByLabel(IT_CosmicStandAloneMuon.label(),"csc",TheCSCTimeMap); bool CSCTrackPlus = false; bool CSCTrackMinus = false; int imucount=0; if( TheCosmics.isValid() ) { for( reco::MuonCollection::const_iterator iMuon = TheCosmics->begin() ; iMuon != TheCosmics->end() ; iMuon++, imucount++ ) { reco::TrackRef Track = iMuon->outerTrack(); if(!Track) continue; if( !CSCTrackPlus || !CSCTrackMinus ) { if( Track->eta() > 0 || Track->outerPosition().z() > 0 || Track->innerPosition().z() > 0 ) CSCTrackPlus = true ; else if( Track->eta() < 0 || Track->outerPosition().z() < 0 || Track->innerPosition().z() < 0) CSCTrackMinus = true; } float innermost_phi = 0.; float outermost_phi = 0.; float innermost_z = 99999.; float outermost_z = 0.; float innermost_eta = 0.; float outermost_eta = 0.; float innermost_x =0.; float innermost_y =0.; float innermost_r =0.; for(unsigned int j = 0 ; j < Track->extra()->recHits().size(); j++ ) { edm::Ref<TrackingRecHitCollection> hit( Track->extra()->recHits(), j ); DetId TheDetUnitId(hit->geographicalId()); if( TheDetUnitId.det() != DetId::Muon ) continue; if( TheDetUnitId.subdetId() != MuonSubdetId::CSC ) continue; const GeomDetUnit *TheUnit = TheCSCGeometry->idToDetUnit(TheDetUnitId); LocalPoint TheLocalPosition = hit->localPosition(); const BoundPlane& TheSurface = TheUnit->surface(); const GlobalPoint TheGlobalPosition = TheSurface.toGlobal(TheLocalPosition); float z = TheGlobalPosition.z(); if( TMath::Abs(z) < innermost_z ) { innermost_phi = TheGlobalPosition.phi(); innermost_eta = TheGlobalPosition.eta(); innermost_z = TheGlobalPosition.z(); innermost_x = TheGlobalPosition.x(); innermost_y = TheGlobalPosition.y(); innermost_r = TMath::Sqrt( innermost_x*innermost_x + innermost_y*innermost_y ); } if( TMath::Abs(z) > outermost_z) { outermost_phi = TheGlobalPosition.phi() ; outermost_eta = TheGlobalPosition.eta() ; outermost_z = TheGlobalPosition.z(); } } float dphi = TMath::Abs( outermost_phi - innermost_phi ); float deta = TMath::Abs( outermost_eta - innermost_eta ); hExtra_CSCTrackInnerOuterDPhi -> Fill( dphi ); hExtra_CSCTrackInnerOuterDEta -> Fill( deta ); hExtra_CSCTrackChi2Ndof -> Fill(Track->normalizedChi2() ); hExtra_CSCTrackNHits -> Fill(Track->numberOfValidHits() ); hExtra_InnerMostTrackHitR ->Fill(innermost_r); hExtra_InnerMostTrackHitPhi ->Fill(innermost_phi); if( !StandardDQM ) { hExtra_InnerMostTrackHitXY ->Fill(innermost_x, innermost_y); hExtra_InnerMostTrackHitiPhi ->Fill(Phi_To_iPhi(innermost_phi)); if(innermost_z > 0 ) hExtra_InnerMostTrackHitRPlusZ ->Fill(innermost_z, innermost_r); else hExtra_InnerMostTrackHitRMinusZ ->Fill(innermost_z, innermost_r); } std::vector<const CSCSegment*> MatchedSegments = TheMatcher->matchCSC(*Track,iEvent); // Find the inner and outer segments separately in case they don't agree completely with recHits // Plan for the possibility segments in both endcaps float InnerSegmentTime[2] = {0,0}; float OuterSegmentTime[2] = {0,0}; float innermost_seg_z[2] = {1500,1500}; float outermost_seg_z[2] = {0,0}; for (std::vector<const CSCSegment*>::const_iterator segment =MatchedSegments.begin(); segment != MatchedSegments.end(); ++segment) { CSCDetId TheCSCDetId((*segment)->cscDetId()); const CSCChamber* TheCSCChamber = TheCSCGeometry->chamber(TheCSCDetId); LocalPoint TheLocalPosition = (*segment)->localPosition(); const GlobalPoint TheGlobalPosition = TheCSCChamber->toGlobal(TheLocalPosition); float z = TheGlobalPosition.z(); int TheEndcap = TheCSCDetId.endcap(); if( TMath::Abs(z) < innermost_seg_z[TheEndcap-1] ) { innermost_seg_z[TheEndcap-1] = TMath::Abs(z); InnerSegmentTime[TheEndcap-1] = (*segment)->time(); } if( TMath::Abs(z) > outermost_seg_z[TheEndcap-1] ) { outermost_seg_z[TheEndcap-1] = TMath::Abs(z); OuterSegmentTime[TheEndcap-1] = (*segment)->time(); } } float dT_Segment = 0; // default safe value, looks like collision muon if( innermost_seg_z[0] < outermost_seg_z[0]) // two segments in ME+ dT_Segment = OuterSegmentTime[0]-InnerSegmentTime[0]; if( innermost_seg_z[1] < outermost_seg_z[1]) // two segments in ME- { // replace the measurement if there weren't segments in ME+ or // if the track in ME- has timing more consistent with an incoming particle if (dT_Segment == 0.0 || OuterSegmentTime[1]-InnerSegmentTime[1] < dT_Segment) dT_Segment = OuterSegmentTime[1]-InnerSegmentTime[1] ; } hCSCHaloData_SegmentdT->Fill(dT_Segment); // Analyze the MuonTimeExtra information reco::MuonRef muonR(TheCosmics,imucount); if (TheCSCTimeMap.isValid()){ const reco::MuonTimeExtraMap & timeMapCSC = *TheCSCTimeMap; reco::MuonTimeExtra timecsc = timeMapCSC[muonR]; float freeInverseBeta = timecsc.freeInverseBeta(); hCSCHaloData_FreeInverseBeta->Fill(freeInverseBeta); hCSCHaloData_FreeInverseBetaVsSegmentdT->Fill(dT_Segment,freeInverseBeta); } } } //Get CSC Segments edm::Handle<CSCSegmentCollection> TheCSCSegments; iEvent.getByLabel(IT_CSCSegment, TheCSCSegments); // Group segments according to endcaps std::vector< CSCSegment> vCSCSegments_Plus; std::vector< CSCSegment> vCSCSegments_Minus; bool CSCSegmentPlus = false; bool CSCSegmentMinus=false; if( TheCSCSegments.isValid() ) { for(CSCSegmentCollection::const_iterator iSegment = TheCSCSegments->begin(); iSegment != TheCSCSegments->end(); iSegment++) { const std::vector<CSCRecHit2D> vCSCRecHits = iSegment->specificRecHits(); CSCDetId iDetId = (CSCDetId)(*iSegment).cscDetId(); if ( iDetId.endcap() == 1 ) vCSCSegments_Plus.push_back( *iSegment ); else vCSCSegments_Minus.push_back( *iSegment ); } } // Are there segments on the plus/minus side? if( vCSCSegments_Plus.size() ) CSCSegmentPlus = true; if( vCSCSegments_Minus.size() ) CSCSegmentMinus = true; //Get CSC RecHits Handle<CSCRecHit2DCollection> TheCSCRecHits; iEvent.getByLabel(IT_CSCRecHit, TheCSCRecHits); bool CSCRecHitPlus = false; bool CSCRecHitMinus = false; if( TheCSCRecHits.isValid() ) { for(CSCRecHit2DCollection::const_iterator iCSCRecHit = TheCSCRecHits->begin(); iCSCRecHit != TheCSCRecHits->end(); iCSCRecHit++ ) { DetId TheDetUnitId(iCSCRecHit->geographicalId()); const GeomDetUnit *TheUnit = (*TheCSCGeometry).idToDetUnit(TheDetUnitId); LocalPoint TheLocalPosition = iCSCRecHit->localPosition(); const BoundPlane& TheSurface = TheUnit->surface(); GlobalPoint TheGlobalPosition = TheSurface.toGlobal(TheLocalPosition); //Are there hits on the plus/minus side? if ( TheGlobalPosition.z() > 0 ) CSCRecHitPlus = true; else CSCRecHitMinus = true; } } //Get EB RecHits edm::Handle<EBRecHitCollection> TheEBRecHits; iEvent.getByLabel(IT_EBRecHit, TheEBRecHits); int EBHits=0; if( TheEBRecHits.isValid() ) { for( EBRecHitCollection::const_iterator iEBRecHit = TheEBRecHits->begin() ; iEBRecHit != TheEBRecHits->end(); iEBRecHit++) { if( iEBRecHit->energy() < 0.5 ) continue; DetId id = DetId( iEBRecHit->id() ) ; EBDetId EcalId ( id.rawId() ); int ieta = EcalId.ieta() ; if(!StandardDQM) hExtra_EcalToF ->Fill(ieta, iEBRecHit->time() ); EBHits++; } } //Get HB/HE RecHits edm::Handle<HBHERecHitCollection> TheHBHERecHits; iEvent.getByLabel(IT_HBHERecHit, TheHBHERecHits); if( TheHBHERecHits.isValid() ) { for( HBHERecHitCollection::const_iterator iHBHERecHit = TheHBHERecHits->begin(); iHBHERecHit != TheHBHERecHits->end(); iHBHERecHit++) { if( iHBHERecHit->energy() < 1.) continue; HcalDetId id = HcalDetId( iHBHERecHit->id() ); if(!StandardDQM) hExtra_HcalToF->Fill( id.ieta(), iHBHERecHit->time() ) ; } } //Get MET edm::Handle< reco::CaloMETCollection > TheCaloMET; iEvent.getByLabel(IT_met, TheCaloMET); //Get CSCHaloData edm::Handle<reco::CSCHaloData> TheCSCDataHandle; iEvent.getByLabel(IT_CSCHaloData,TheCSCDataHandle); int TheHaloOrigin = 0; if (TheCSCDataHandle.isValid()) { const CSCHaloData CSCData = (*TheCSCDataHandle.product()); if( CSCData.NumberOfOutOfTimeTriggers(HaloData::plus) && !CSCData.NumberOfOutOfTimeTriggers(HaloData::minus) ) TheHaloOrigin = 1; else if ( CSCData.NumberOfOutOfTimeTriggers(HaloData::minus) && !CSCData.NumberOfOutOfTimeTriggers(HaloData::plus)) TheHaloOrigin = -1 ; for( std::vector<GlobalPoint>::const_iterator i=CSCData.GetCSCTrackImpactPositions().begin(); i != CSCData.GetCSCTrackImpactPositions().end() ; i++ ) { float r = TMath::Sqrt( i->x()*i->x() + i->y()*i->y() ); if( !StandardDQM ) { hCSCHaloData_InnerMostTrackHitXY->Fill( i->x(), i->y() ); hCSCHaloData_InnerMostTrackHitiPhi ->Fill( Phi_To_iPhi( i->phi())); if( i->z() > 0 ) hCSCHaloData_InnerMostTrackHitRPlusZ ->Fill(i->z(), r) ; else hCSCHaloData_InnerMostTrackHitRMinusZ ->Fill(i->z(), r) ; } hCSCHaloData_InnerMostTrackHitR ->Fill(r); hCSCHaloData_InnerMostTrackHitPhi ->Fill( i->phi()); } hCSCHaloData_L1HaloTriggersMEPlus -> Fill ( CSCData.NumberOfHaloTriggers(HaloData::plus) ); hCSCHaloData_L1HaloTriggersMEMinus -> Fill ( CSCData.NumberOfHaloTriggers(HaloData::minus)); hCSCHaloData_L1HaloTriggers -> Fill ( CSCData.NumberOfHaloTriggers(HaloData::both)); hCSCHaloData_HLHaloTriggers -> Fill ( CSCData.CSCHaloHLTAccept()); hCSCHaloData_TrackMultiplicityMEPlus ->Fill ( CSCData.NumberOfHaloTracks(HaloData::plus) ); hCSCHaloData_TrackMultiplicityMEMinus ->Fill ( CSCData.NumberOfHaloTracks(HaloData::minus) ); hCSCHaloData_TrackMultiplicity->Fill( CSCData.GetTracks().size() ); hCSCHaloData_NOutOfTimeTriggersMEPlus->Fill( CSCData.NOutOfTimeTriggers(HaloData::plus) ); hCSCHaloData_NOutOfTimeTriggersMEMinus->Fill( CSCData.NOutOfTimeTriggers(HaloData::minus) ); hCSCHaloData_NOutOfTimeTriggers->Fill( CSCData.NOutOfTimeTriggers(HaloData::both) ); hCSCHaloData_NOutOfTimeHits->Fill( CSCData.NOutOfTimeHits() ); hCSCHaloData_NOutOfTimeTriggersvsL1HaloExists->Fill( CSCData.NOutOfTimeTriggers(HaloData::both), CSCData.NumberOfHaloTriggers(HaloData::both) >0 ); hCSCHaloData_NTracksSmalldT ->Fill( CSCData.NTracksSmalldT() ); hCSCHaloData_NTracksSmallBeta ->Fill( CSCData.NTracksSmallBeta() ); hCSCHaloData_NTracksSmallBetaAndSmalldT->Fill( CSCData.NTracksSmallBetaAndSmalldT()); hCSCHaloData_NTracksSmalldTvsNHaloTracks->Fill( CSCData.GetTracks().size(), CSCData.NTracksSmalldT() ); // MLR hCSCHaloData_NFlatHaloSegments->Fill(CSCData.NFlatHaloSegments()); hCSCHaloData_SegmentsInBothEndcaps->Fill(CSCData.GetSegmentsInBothEndcaps()); if (CSCData.GetSegmentsInBothEndcaps()) hCSCHaloData_NFlatSegmentsInBothEndcaps->Fill(CSCData.NFlatHaloSegments()); // End MLR } //Get EcalHaloData edm::Handle<reco::EcalHaloData> TheEcalHaloData; iEvent.getByLabel(IT_EcalHaloData, TheEcalHaloData ); if( TheEcalHaloData.isValid() ) { const EcalHaloData EcalData = (*TheEcalHaloData.product()); std::vector<PhiWedge> EcalWedges = EcalData.GetPhiWedges(); for(std::vector<PhiWedge>::const_iterator iWedge = EcalWedges.begin() ; iWedge != EcalWedges.end(); iWedge ++ ) { if(!StandardDQM ) { hEcalHaloData_PhiWedgeEnergy->Fill( iWedge->Energy() ); hEcalHaloData_PhiWedgeMinTime ->Fill( iWedge->MinTime() ); hEcalHaloData_PhiWedgeMaxTime ->Fill( iWedge->MaxTime() ); hEcalHaloData_PhiWedgeMinVsMaxTime->Fill(iWedge->MinTime() , iWedge->MaxTime() ) ; hEcalHaloData_PhiWedgePlusZDirectionConfidence->Fill( iWedge->PlusZDirectionConfidence() ); hEcalHaloData_PhiWedgeiPhi->Fill(iWedge->iPhi() ) ; } hEcalHaloData_PhiWedgeZDirectionConfidence ->Fill( iWedge->ZDirectionConfidence() ); hEcalHaloData_PhiWedgeConstituents->Fill( iWedge->NumberOfConstituents() ) ; } hEcalHaloData_PhiWedgeMultiplicity->Fill( EcalWedges.size() ); edm::ValueMap<float> vm_Angle = EcalData.GetShowerShapesAngle(); edm::ValueMap<float> vm_Roundness = EcalData.GetShowerShapesRoundness(); //Access selected SuperClusters for(unsigned int n = 0 ; n < EcalData.GetSuperClusters().size() ; n++ ) { edm::Ref<SuperClusterCollection> cluster(EcalData.GetSuperClusters(), n ); float angle = vm_Angle[cluster]; float roundness = vm_Roundness[cluster]; hEcalHaloData_SuperClusterShowerShapes->Fill(angle, roundness); hEcalHaloData_SuperClusterNHits->Fill( cluster->size() ); hEcalHaloData_SuperClusterEnergy->Fill(cluster->energy() ); if(!StandardDQM) { hEcalHaloData_SuperClusterPhiVsEta->Fill(cluster->eta() ,cluster->phi() ); } } } //Get HcalHaloData edm::Handle<reco::HcalHaloData> TheHcalHaloData; iEvent.getByLabel(IT_HcalHaloData ,TheHcalHaloData ); if( TheHcalHaloData.isValid( ) ) { const HcalHaloData HcalData = (*TheHcalHaloData.product()); std::vector<PhiWedge> HcalWedges = HcalData.GetPhiWedges(); hHcalHaloData_PhiWedgeMultiplicity ->Fill( HcalWedges.size() ); for(std::vector<PhiWedge>::const_iterator iWedge = HcalWedges.begin() ; iWedge != HcalWedges.end(); iWedge ++ ) { if( !StandardDQM ) { hHcalHaloData_PhiWedgeEnergy ->Fill( iWedge->Energy() ); hHcalHaloData_PhiWedgeMinTime ->Fill( iWedge->MinTime() ); hHcalHaloData_PhiWedgeMaxTime ->Fill( iWedge->MaxTime() ); hHcalHaloData_PhiWedgePlusZDirectionConfidence ->Fill( iWedge->PlusZDirectionConfidence() ); hHcalHaloData_PhiWedgeMinVsMaxTime ->Fill( iWedge->MinTime() , iWedge->MaxTime() ); hHcalHaloData_PhiWedgeiPhi ->Fill( iWedge->iPhi() ); } hHcalHaloData_PhiWedgeConstituents ->Fill( iWedge->NumberOfConstituents() ); hHcalHaloData_PhiWedgeZDirectionConfidence ->Fill( iWedge->ZDirectionConfidence() ); } } if(!StandardDQM) { //Get GlobalHaloData edm::Handle<reco::GlobalHaloData> TheGlobalHaloData; iEvent.getByLabel(IT_GlobalHaloData, TheGlobalHaloData ); if( TheGlobalHaloData.isValid() ) { const GlobalHaloData GlobalData =(*TheGlobalHaloData.product()); if( TheCaloMET.isValid() ) { // Get Raw Uncorrected CaloMET const CaloMETCollection *calometcol = TheCaloMET.product(); const CaloMET *RawMET = &(calometcol->front()); // Get BeamHalo Corrected CaloMET const CaloMET CorrectedMET = GlobalData.GetCorrectedCaloMET(*RawMET); hGlobalHaloData_MExCorrection ->Fill( GlobalData.DeltaMEx() ); hGlobalHaloData_MEyCorrection ->Fill( GlobalData.DeltaMEy() ); hGlobalHaloData_HaloCorrectedMET->Fill(CorrectedMET.pt() ); hGlobalHaloData_RawMETMinusHaloCorrectedMET ->Fill( RawMET->pt() - CorrectedMET.pt() ); if( RawMET->sumEt() ) hGlobalHaloData_RawMETOverSumEt ->Fill( RawMET->pt() / RawMET->sumEt() ); } // Get Matched Hcal Phi Wedges std::vector<PhiWedge> HcalWedges = GlobalData.GetMatchedHcalPhiWedges(); hGlobalHaloData_MatchedHcalPhiWedgeMultiplicity ->Fill(HcalWedges.size()); // Loop over Matched Hcal Phi Wedges for( std::vector<PhiWedge>::const_iterator iWedge = HcalWedges.begin() ; iWedge != HcalWedges.end() ; iWedge ++ ) { hGlobalHaloData_MatchedHcalPhiWedgeEnergy ->Fill( iWedge->Energy() ); hGlobalHaloData_MatchedHcalPhiWedgeConstituents ->Fill( iWedge->NumberOfConstituents()); hGlobalHaloData_MatchedHcalPhiWedgeiPhi ->Fill( iWedge->iPhi() ); hGlobalHaloData_MatchedHcalPhiWedgeMinTime ->Fill( iWedge->MinTime() ); hGlobalHaloData_MatchedHcalPhiWedgeMaxTime ->Fill( iWedge->MaxTime() ); hGlobalHaloData_MatchedHcalPhiWedgeZDirectionConfidence ->Fill( iWedge->ZDirectionConfidence() ) ; if( TheHBHERecHits.isValid() ) { for( HBHERecHitCollection::const_iterator iHBHERecHit = TheHBHERecHits->begin(); iHBHERecHit != TheHBHERecHits->end(); iHBHERecHit++) { HcalDetId id = HcalDetId( iHBHERecHit->id() ) ; int iphi = id.iphi() ; if( iphi != iWedge->iPhi() ) continue; if( iHBHERecHit->energy() < 1.0) continue; // Otherwise there are thousands of hits per event (even with negative energies) float time = iHBHERecHit->time(); int ieta = id.ieta(); hExtra_HcalToF_HaloId ->Fill( ieta, time ); } } } // Get Matched Hcal Phi Wedges std::vector<PhiWedge> EcalWedges = GlobalData.GetMatchedEcalPhiWedges(); hGlobalHaloData_MatchedEcalPhiWedgeMultiplicity ->Fill(EcalWedges.size()); for( std::vector<PhiWedge>::const_iterator iWedge = EcalWedges.begin() ; iWedge != EcalWedges.end() ; iWedge ++ ) { hGlobalHaloData_MatchedEcalPhiWedgeEnergy ->Fill(iWedge->Energy()); hGlobalHaloData_MatchedEcalPhiWedgeConstituents ->Fill(iWedge->NumberOfConstituents()); hGlobalHaloData_MatchedEcalPhiWedgeiPhi ->Fill(iWedge->iPhi()); hGlobalHaloData_MatchedEcalPhiWedgeMinTime ->Fill(iWedge->MinTime()); hGlobalHaloData_MatchedEcalPhiWedgeMaxTime ->Fill(iWedge->MaxTime()); hGlobalHaloData_MatchedEcalPhiWedgeZDirectionConfidence ->Fill( iWedge->ZDirectionConfidence() ) ; if( TheEBRecHits.isValid() ) { for( EBRecHitCollection::const_iterator iEBRecHit = TheEBRecHits->begin() ; iEBRecHit != TheEBRecHits->end(); iEBRecHit++ ) { if( iEBRecHit->energy() < 0.5 ) continue; DetId id = DetId( iEBRecHit->id() ) ; EBDetId EcalId ( id.rawId() ); int iPhi = EcalId.iphi() ; iPhi = (iPhi-1)/5 + 1; if( iPhi != iWedge->iPhi() ) continue; hExtra_EcalToF_HaloId ->Fill(EcalId.ieta(), iEBRecHit->time() ); } } } } } // Get BeamHaloSummary edm::Handle<BeamHaloSummary> TheBeamHaloSummary ; iEvent.getByLabel(IT_BeamHaloSummary, TheBeamHaloSummary) ; if( TheBeamHaloSummary.isValid() ) { const BeamHaloSummary TheSummary = (*TheBeamHaloSummary.product() ); if( TheSummary.CSCLooseHaloId() ) { hBeamHaloSummary_Id ->Fill(1); if(!StandardDQM) hBeamHaloSummary_BXN -> Fill( 1, BXN ); if(Dump)*out << std::setw(15) << "CSCLoose" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15) << TheEventNumber << std::endl; } if( TheSummary.CSCTightHaloId() ) { hBeamHaloSummary_Id ->Fill(2); if(!StandardDQM)hBeamHaloSummary_BXN -> Fill( 2, BXN ); } if( TheSummary.EcalLooseHaloId() ) { hBeamHaloSummary_Id ->Fill(3); if(!StandardDQM) hBeamHaloSummary_BXN -> Fill( 3, BXN ); if(Dump) *out << std::setw(15) << "EcalLoose" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15) << TheEventNumber << std::endl; } if( TheSummary.EcalTightHaloId() ) { hBeamHaloSummary_Id ->Fill(4); if(!StandardDQM)hBeamHaloSummary_BXN -> Fill( 4, BXN ); } if( TheSummary.HcalLooseHaloId() ) { hBeamHaloSummary_Id ->Fill(5); if(!StandardDQM) hBeamHaloSummary_BXN -> Fill( 5, BXN ); if(Dump) *out << std::setw(15) << "HcalLoose" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15) << TheEventNumber << std::endl; } if( TheSummary.HcalTightHaloId() ) { hBeamHaloSummary_Id ->Fill(6); if(!StandardDQM)hBeamHaloSummary_BXN -> Fill( 6, BXN ); } if( TheSummary.GlobalLooseHaloId()) { hBeamHaloSummary_Id ->Fill(7); if(!StandardDQM)hBeamHaloSummary_BXN -> Fill( 7, BXN ); if(Dump) *out << std::setw(15) << "GlobalLoose" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15) << TheEventNumber << std::endl; } if( TheSummary.GlobalTightHaloId() ) { hBeamHaloSummary_Id ->Fill(8); if(!StandardDQM)hBeamHaloSummary_BXN -> Fill( 8, BXN ); } if( TheSummary.LooseId() ) { hBeamHaloSummary_Id ->Fill(9); if(!StandardDQM)hBeamHaloSummary_BXN -> Fill( 9, BXN ); } if( TheSummary.TightId() ) { hBeamHaloSummary_Id ->Fill(10); if(!StandardDQM)hBeamHaloSummary_BXN -> Fill( 10, BXN ); } if( !TheSummary.EcalLooseHaloId() && !TheSummary.HcalLooseHaloId() && !TheSummary.CSCLooseHaloId() && !TheSummary.GlobalLooseHaloId() ) { hBeamHaloSummary_Id ->Fill(11); if(!StandardDQM)hBeamHaloSummary_BXN -> Fill( 11, BXN ); } } if( TheCaloMET.isValid() ) { const CaloMETCollection *calometcol = TheCaloMET.product(); const CaloMET *calomet = &(calometcol->front()); if( calomet->pt() > DumpMET ) if(Dump) *out << std::setw(15) << "HighMET" << std::setw(15) << Run << std::setw(15) << Lumi << std::setw(15) << TheEventNumber << std::endl; //Fill CSC Activity Plot if( calomet->pt() > 15.0 ) { if( TheHaloOrigin > 0 ) { if( CSCTrackPlus && CSCTrackMinus ) hExtra_CSCActivityWithMET->Fill(1,1); else if( CSCTrackPlus && CSCSegmentMinus) hExtra_CSCActivityWithMET->Fill(1,2); else if( CSCTrackPlus && CSCRecHitMinus ) hExtra_CSCActivityWithMET->Fill(1,3); else if( CSCTrackPlus ) hExtra_CSCActivityWithMET->Fill(1,4); else if( CSCSegmentPlus && CSCTrackMinus ) hExtra_CSCActivityWithMET->Fill(2,1); else if( CSCSegmentPlus && CSCSegmentMinus ) hExtra_CSCActivityWithMET-> Fill(2,2); else if( CSCSegmentPlus && CSCRecHitMinus ) hExtra_CSCActivityWithMET-> Fill(2,3); else if( CSCSegmentPlus ) hExtra_CSCActivityWithMET->Fill(2,4 ); else if( CSCRecHitPlus && CSCTrackMinus ) hExtra_CSCActivityWithMET->Fill(3,1); else if( CSCRecHitPlus && CSCSegmentMinus ) hExtra_CSCActivityWithMET->Fill(3,2); else if( CSCRecHitPlus && CSCRecHitMinus ) hExtra_CSCActivityWithMET->Fill(3,3); else if( CSCRecHitPlus ) hExtra_CSCActivityWithMET->Fill(3,4); else hExtra_CSCActivityWithMET->Fill(4,4); } else if( TheHaloOrigin < 0 ) { if( CSCTrackMinus && CSCTrackPlus ) hExtra_CSCActivityWithMET->Fill(1,1); else if( CSCTrackMinus && CSCSegmentPlus) hExtra_CSCActivityWithMET->Fill(1,2); else if( CSCTrackMinus && CSCRecHitPlus ) hExtra_CSCActivityWithMET->Fill(1,3); else if( CSCTrackMinus ) hExtra_CSCActivityWithMET->Fill(1,4); else if( CSCSegmentMinus && CSCTrackPlus) hExtra_CSCActivityWithMET->Fill(2,1); else if( CSCSegmentMinus && CSCSegmentPlus ) hExtra_CSCActivityWithMET->Fill(2,2 ); else if( CSCSegmentMinus && CSCRecHitPlus ) hExtra_CSCActivityWithMET->Fill(2,3); else if( CSCSegmentMinus ) hExtra_CSCActivityWithMET->Fill(2,4); else if( CSCRecHitMinus && CSCTrackPlus ) hExtra_CSCActivityWithMET->Fill(3,1 ); else if( CSCRecHitMinus && CSCSegmentPlus ) hExtra_CSCActivityWithMET->Fill(3,2 ); else if( CSCRecHitMinus && CSCRecHitPlus ) hExtra_CSCActivityWithMET->Fill(3,3); else if( CSCRecHitMinus ) hExtra_CSCActivityWithMET->Fill(3,4); else hExtra_CSCActivityWithMET->Fill(4,4); } } } }
void BeamHaloAnalyzer::beginJob | ( | void | ) | [private, virtual] |
void BeamHaloAnalyzer::beginRun | ( | const edm::Run & | , |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 79 of file BeamHaloAnalyzer.cc.
References cppFunctionSkipper::operator.
{ dqm = edm::Service<DQMStore>().operator->(); if( dqm ) { // EcalHaloData dqm->setCurrentFolder(FolderName+"/EcalHaloData"); if(StandardDQM) { hEcalHaloData_PhiWedgeMultiplicity = dqm->book1D("EcalHaloData_PhiWedgeMultiplicity","",20, -0.5, 19.5); hEcalHaloData_PhiWedgeConstituents = dqm->book1D("EcalHaloData_PhiWedgeConstituents","",20,-0.5, 19.5); // hEcalHaloData_PhiWedgeiPhi = dqm->book1D("EcalHaloData_PhiWedgeiPhi","", 360, 0.5, 360.5) ; hEcalHaloData_PhiWedgeZDirectionConfidence = dqm->book1D("EcalHaloData_ZDirectionConfidence","", 120, -1.2, 1.2); hEcalHaloData_SuperClusterShowerShapes = dqm->book2D("EcalHaloData_SuperClusterShowerShapes","", 30, 0, 3.2, 25,0.0, 2.0); hEcalHaloData_SuperClusterEnergy = dqm->book1D("EcalHaloData_SuperClusterEnergy","",50,-0.5,99.5); hEcalHaloData_SuperClusterNHits = dqm->book1D("EcalHaloData_SuperClusterNHits", "", 20, -0.5, 19.5); } else { hEcalHaloData_PhiWedgeMultiplicity = dqm->book1D("EcalHaloData_PhiWedgeMultiplicity","",20, -0.5, 19.5); hEcalHaloData_PhiWedgeEnergy = dqm->book1D("EcalHaloData_PhiWedgeEnergy","", 50,-0.5,199.5); hEcalHaloData_PhiWedgeConstituents = dqm->book1D("EcalHaloData_PhiWedgeConstituents","",20,-0.5, 19.5); hEcalHaloData_PhiWedgeMinTime = dqm->book1D("EcalHaloData_PhiWedgeMinTime","", 100, -225.0, 225.0); hEcalHaloData_PhiWedgeMaxTime = dqm->book1D("EcalHaloData_PhiWedgeMaxTime","", 100, -225.0, 225.0); hEcalHaloData_PhiWedgeiPhi = dqm->book1D("EcalHaloData_PhiWedgeiPhi","", 360, 0.5, 360.5) ; hEcalHaloData_PhiWedgePlusZDirectionConfidence = dqm->book1D("EcalHaloData_PlusZDirectionConfidence","", 50, 0., 1.0); hEcalHaloData_PhiWedgeZDirectionConfidence = dqm->book1D("EcalHaloData_ZDirectionConfidence","", 120, -1.2, 1.2); hEcalHaloData_PhiWedgeMinVsMaxTime = dqm->book2D("EcalHaloData_PhiWedgeMinVsMaxTime","", 50,-100.0, 100.0, 50, -100.0, 100.0); hEcalHaloData_SuperClusterShowerShapes = dqm->book2D("EcalHaloData_SuperClusterShowerShapes","", 30, 0, 3.2, 25,0.0, 2.0); hEcalHaloData_SuperClusterEnergy = dqm->book1D("EcalHaloData_SuperClusterEnergy","",100,-0.5,99.5); hEcalHaloData_SuperClusterNHits = dqm->book1D("EcalHaloData_SuperClusterNHits", "", 20, -0.5, 19.5); hEcalHaloData_SuperClusterPhiVsEta = dqm->book2D("EcalHaloData_SuperClusterPhiVsEta","",60, -3.0, 3.0, 60, -3.2, 3.2); } // HcalHaloData dqm->setCurrentFolder(FolderName+"/HcalHaloData"); if( StandardDQM ) { hHcalHaloData_PhiWedgeMultiplicity = dqm->book1D("HcalHaloData_PhiWedgeMultiplicity","", 20, -0.5, 19.5); hHcalHaloData_PhiWedgeConstituents = dqm->book1D("HcalHaloData_PhiWedgeConstituents","", 20,-0.5, 19.5); //hHcalHaloData_PhiWedgeiPhi = dqm->book1D("HcalHaloData_PhiWedgeiPhi","", 72, 0.5,72.5); hHcalHaloData_PhiWedgeZDirectionConfidence = dqm->book1D("HcalHaloData_ZDirectionConfidence","", 120, -1.2, 1.2); } else { hHcalHaloData_PhiWedgeMultiplicity = dqm->book1D("HcalHaloData_PhiWedgeMultiplicity","", 20, -0.5, 19.5); hHcalHaloData_PhiWedgeEnergy = dqm->book1D("HcalHaloData_PhiWedgeEnergy", "", 50,-0.5,199.5); hHcalHaloData_PhiWedgeConstituents = dqm->book1D("HcalHaloData_PhiWedgeConstituents","", 20,-0.5, 19.5); hHcalHaloData_PhiWedgeiPhi = dqm->book1D("HcalHaloData_PhiWedgeiPhi","", 72, 0.5,72.5); hHcalHaloData_PhiWedgeMinTime = dqm->book1D("HcalHaloData_PhiWedgeMinTime", "", 50, -100.0, 100.0); hHcalHaloData_PhiWedgeMaxTime = dqm->book1D("HcalHaloData_PhiWedgeMaxTime", "", 50, -100.0, 100.0); hHcalHaloData_PhiWedgePlusZDirectionConfidence = dqm->book1D("HcalHaloData_PlusZDirectionConfidence","", 50, 0., 1.0); hHcalHaloData_PhiWedgeZDirectionConfidence = dqm->book1D("HcalHaloData_ZDirectionConfidence","", 120, -1.2, 1.2); hHcalHaloData_PhiWedgeMinVsMaxTime = dqm->book2D("HcalHaloData_PhiWedgeMinVsMaxTime","" , 50,-100.0, 100.0, 50, -100.0, 100.0); } // CSCHaloData dqm->setCurrentFolder(FolderName+"/CSCHaloData"); if( StandardDQM ) { hCSCHaloData_TrackMultiplicity = dqm->book1D("CSCHaloData_TrackMultiplicity", "", 15, -0.5, 14.5); hCSCHaloData_TrackMultiplicityMEPlus = dqm->book1D("CSCHaloData_TrackMultiplicityMEPlus", "", 15, -0.5, 14.5); hCSCHaloData_TrackMultiplicityMEMinus = dqm->book1D("CSCHaloData_TrackMultiplicityMEMinus", "", 15, -0.5, 14.5); hCSCHaloData_InnerMostTrackHitR = dqm->book1D("CSCHaloData_InnerMostTrackHitR", "", 70, 99.5, 799.5); hCSCHaloData_InnerMostTrackHitPhi = dqm->book1D("CSCHaloData_InnerMostTrackHitPhi","", 60, -3.2, 3.2); hCSCHaloData_L1HaloTriggersMEPlus = dqm->book1D("CSCHaloData_L1HaloTriggersMEPlus", "", 10, -0.5, 9.5); hCSCHaloData_L1HaloTriggersMEMinus = dqm->book1D("CSCHaloData_L1HaloTriggersMEMinus", "" , 10, -0.5, 9.5); hCSCHaloData_L1HaloTriggers = dqm->book1D("CSCHaloData_L1HaloTriggers", "", 10, -0.5, 9.5); hCSCHaloData_HLHaloTriggers = dqm->book1D("CSCHaloData_HLHaloTriggers", "", 2, -0.5, 1.5); hCSCHaloData_NOutOfTimeTriggersvsL1HaloExists = dqm->book2D("CSCHaloData_NOutOfTimeTriggersvsL1HaloExists", "", 20, -0.5, 19.5, 2, -0.5, 1.5); hCSCHaloData_NOutOfTimeTriggersMEPlus = dqm->book1D("CSCHaloData_NOutOfTimeTriggersMEPlus", "", 20, -0.5, 19.5); hCSCHaloData_NOutOfTimeTriggersMEMinus = dqm->book1D("CSCHaloData_NOutOfTimeTriggersMEMinus", "", 20, -0.5, 19.5); hCSCHaloData_NOutOfTimeTriggers = dqm->book1D("CSCHaloData_NOutOfTimeTriggers", "", 20, -0.5, 19.5); hCSCHaloData_NOutOfTimeHits = dqm->book1D("CSCHaloData_NOutOfTimeHits", "", 60, -0.5, 59.5); hCSCHaloData_NTracksSmalldT = dqm->book1D("CSCHaloData_NTracksSmalldT", "", 15, -0.5, 14.5); hCSCHaloData_NTracksSmallBeta = dqm->book1D("CSCHaloData_NTracksSmallBeta", "", 15, -0.5, 14.5); hCSCHaloData_NTracksSmallBetaAndSmalldT = dqm->book1D("CSCHaloData_NTracksSmallBetaAndSmalldT", "", 15, -0.5, 14.5); hCSCHaloData_NTracksSmalldTvsNHaloTracks = dqm->book2D("CSCHaloData_NTracksSmalldTvsNHaloTracks","",15, -0.5, 14.5,15, -0.5, 14.5); hCSCHaloData_SegmentdT = dqm->book1D("CSCHaloData_SegmentdT","",100,-100,100); hCSCHaloData_FreeInverseBeta = dqm->book1D("CSCHaloData_FreeInverseBeta","",80,-4,4); hCSCHaloData_FreeInverseBetaVsSegmentdT = dqm->book2D("CSCHaloData_FreeInverseBetaVsSegmentdT","",100,-100,100,80,-4,4); // MLR hCSCHaloData_NFlatHaloSegments = dqm->book1D("CSCHaloData_NFlatHaloSegments","",20,0,20); hCSCHaloData_SegmentsInBothEndcaps = dqm->book1D("CSCHaloData_SegmentsInBothEndcaps","",2,0,2); hCSCHaloData_NFlatSegmentsInBothEndcaps = dqm->book1D("CSCHaloData_NFlatSegmentsInBothEndcaps","",20,0,20); // End MLR } else { hCSCHaloData_TrackMultiplicity = dqm->book1D("CSCHaloData_TrackMultiplicity", "", 15, -0.5, 14.5); hCSCHaloData_TrackMultiplicityMEPlus = dqm->book1D("CSCHaloData_TrackMultiplicityMEPlus", "", 15, -0.5, 14.5); hCSCHaloData_TrackMultiplicityMEMinus = dqm->book1D("CSCHaloData_TrackMultiplicityMEMinus", "", 15, -0.5, 14.5); hCSCHaloData_InnerMostTrackHitXY = dqm->book2D("CSCHaloData_InnerMostTrackHitXY","", 100,-700,700,100, -700,700); hCSCHaloData_InnerMostTrackHitR = dqm->book1D("CSCHaloData_InnerMostTrackHitR", "", 400, -0.5, 799.5); hCSCHaloData_InnerMostTrackHitRPlusZ = dqm->book2D("CSCHaloData_InnerMostTrackHitRPlusZ","", 400 , 400, 1200, 400, -0.5, 799.5 ); hCSCHaloData_InnerMostTrackHitRMinusZ = dqm->book2D("CSCHaloData_InnerMostTrackHitRMinusZ","", 400 , -1200, -400, 400, -0.5, 799.5 ); hCSCHaloData_InnerMostTrackHitiPhi = dqm->book1D("CSCHaloData_InnerMostTrackHitiPhi","", 72, 0.5, 72.5); hCSCHaloData_InnerMostTrackHitPhi = dqm->book1D("CSCHaloData_InnerMostTrackHitPhi","", 60, -3.2, 3.2); hCSCHaloData_L1HaloTriggersMEPlus = dqm->book1D("CSCHaloData_L1HaloTriggersMEPlus", "", 10, -0.5, 9.5); hCSCHaloData_L1HaloTriggersMEMinus = dqm->book1D("CSCHaloData_L1HaloTriggersMEMinus", "" , 10, -0.5, 9.5); hCSCHaloData_L1HaloTriggers = dqm->book1D("CSCHaloData_L1HaloTriggers", "", 10, -0.5, 9.5); hCSCHaloData_HLHaloTriggers = dqm->book1D("CSCHaloData_HLHaloTriggers", "", 2, -0.5, 1.5); hCSCHaloData_NOutOfTimeTriggersvsL1HaloExists = dqm->book2D("CSCHaloData_NOutOfTimeTriggersvsL1HaloExists", "", 20, -0.5, 19.5, 2, -0.5, 1.5); hCSCHaloData_NOutOfTimeTriggers = dqm->book1D("CSCHaloData_NOutOfTimeTriggers", "", 20, -0.5, 19.5); hCSCHaloData_NOutOfTimeHits = dqm->book1D("CSCHaloData_NOutOfTimeHits", "", 60, -0.5, 59.5); hCSCHaloData_NTracksSmalldT = dqm->book1D("CSCHaloData_NTracksSmalldT", "", 15, -0.5, 14.5); hCSCHaloData_NTracksSmallBeta = dqm->book1D("CSCHaloData_NTracksSmallBeta", "", 15, -0.5, 14.5); hCSCHaloData_NTracksSmallBetaAndSmalldT = dqm->book1D("CSCHaloData_NTracksSmallBetaAndSmalldT", "", 15, -0.5, 14.5); hCSCHaloData_NTracksSmalldTvsNHaloTracks = dqm->book2D("CSCHaloData_NTracksSmalldTvsNHaloTracks","",15, -0.5, 14.5,15, -0.5, 14.5); hCSCHaloData_SegmentdT = dqm->book1D("CSCHaloData_SegmentdT","",100,-100,100); hCSCHaloData_FreeInverseBeta = dqm->book1D("CSCHaloData_FreeInverseBeta","",80,-4,4); hCSCHaloData_FreeInverseBetaVsSegmentdT = dqm->book2D("CSCHaloData_FreeInverseBetaVsSegmentdT","",100,-100,100,80,-4,4); // MLR hCSCHaloData_NFlatHaloSegments = dqm->book1D("CSCHaloData_NFlatHaloSegments","",20,0,20); hCSCHaloData_SegmentsInBothEndcaps = dqm->book1D("CSCHaloData_SegmentsInBothEndcaps","",2,0,2); hCSCHaloData_NFlatSegmentsInBothEndcaps = dqm->book1D("CSCHaloData_NFlatSegmentsInBothEndcaps","",20,0,20); // End MLR } // GlobalHaloData dqm->setCurrentFolder(FolderName+"/GlobalHaloData"); if(!StandardDQM) { hGlobalHaloData_MExCorrection = dqm->book1D("GlobalHaloData_MExCorrection", "" , 200, -200., 200.); hGlobalHaloData_MEyCorrection = dqm->book1D("GlobalHaloData_MEyCorrection", "" , 200, -200., 200.); hGlobalHaloData_SumEtCorrection = dqm->book1D("GlobalHaloData_SumEtCorrection", "" , 200, -0.5, 399.5); hGlobalHaloData_HaloCorrectedMET = dqm->book1D("GlobalHaloData_HaloCorrectedMET", "" , 500, -0.5, 1999.5); hGlobalHaloData_RawMETMinusHaloCorrectedMET = dqm->book1D("GlobalHaloData_RawMETMinusHaloCorrectedMET","" , 250, -500., 500.); hGlobalHaloData_RawMETOverSumEt = dqm->book1D("GlobalHaloData_RawMETOverSumEt","" , 100, 0.0, 1.0); hGlobalHaloData_MatchedHcalPhiWedgeMultiplicity = dqm->book1D("GlobalHaloData_MatchedHcalPhiWedgeMultiplicity","", 15, -0.5, 14.5); hGlobalHaloData_MatchedHcalPhiWedgeEnergy = dqm->book1D("GlobalHaloData_MatchedHcalPhiWedgeEnergy", "", 50,-0.5,199.5); hGlobalHaloData_MatchedHcalPhiWedgeConstituents = dqm->book1D("GlobalHaloData_MatchedHcalPhiWedgeConstituents","", 20,-0.5, 19.5); hGlobalHaloData_MatchedHcalPhiWedgeiPhi = dqm->book1D("GlobalHaloData_MatchedHcalPhiWedgeiPhi","", 1, 0.5,72.5); hGlobalHaloData_MatchedHcalPhiWedgeMinTime = dqm->book1D("GlobalHaloData_MatchedHcalPhiWedgeMinTime", "", 50, -100.0, 100.0); hGlobalHaloData_MatchedHcalPhiWedgeMaxTime = dqm->book1D("GlobalHaloData_MatchedHcalPhiWedgeMaxTime", "", 50, -100.0, 100.0); hGlobalHaloData_MatchedHcalPhiWedgeZDirectionConfidence = dqm->book1D("GlobalHaloData_MatchedHcalPhiWedgeZDirectionConfidence","", 120, -1.2, 1.2); hGlobalHaloData_MatchedEcalPhiWedgeMultiplicity = dqm->book1D("GlobalHaloData_MatchedEcalPhiWedgeMultiplicity","", 15, -0.5, 14.5); hGlobalHaloData_MatchedEcalPhiWedgeEnergy = dqm->book1D("GlobalHaloData_MatchedEcalPhiWedgeEnergy", "", 50,-0.5,199.5); hGlobalHaloData_MatchedEcalPhiWedgeConstituents = dqm->book1D("GlobalHaloData_MatchedEcalPhiWedgeConstituents","", 20,-0.5, 19.5); hGlobalHaloData_MatchedEcalPhiWedgeiPhi = dqm->book1D("GlobalHaloData_MatchedEcalPhiWedgeiPhi","", 360, 0.5,360.5); hGlobalHaloData_MatchedEcalPhiWedgeMinTime = dqm->book1D("GlobalHaloData_MatchedEcalPhiWedgeMinTime", "", 50, -100.0, 100.0); hGlobalHaloData_MatchedEcalPhiWedgeMaxTime = dqm->book1D("GlobalHaloData_MatchedEcalPhiWedgeMaxTime", "", 50, -100.0, 100.0); hGlobalHaloData_MatchedEcalPhiWedgeZDirectionConfidence = dqm->book1D("GlobalHaloData_MatchedEcalPhiWedgeZDirectionConfidence","", 120, 1.2, 1.2); } // BeamHaloSummary dqm->setCurrentFolder(FolderName+"/BeamHaloSummary"); hBeamHaloSummary_Id = dqm->book1D("BeamHaloSumamry_Id", "", 11, 0.5,11.5); hBeamHaloSummary_Id ->setBinLabel(1,"CSC Loose"); hBeamHaloSummary_Id ->setBinLabel(2,"CSC Tight"); hBeamHaloSummary_Id ->setBinLabel(3,"Ecal Loose"); hBeamHaloSummary_Id ->setBinLabel(4,"Ecal Tight"); hBeamHaloSummary_Id ->setBinLabel(5,"Hcal Loose"); hBeamHaloSummary_Id ->setBinLabel(6,"Hcal Tight"); hBeamHaloSummary_Id ->setBinLabel(7,"Global Loose"); hBeamHaloSummary_Id ->setBinLabel(8,"Global Tight"); hBeamHaloSummary_Id ->setBinLabel(9,"Event Loose"); hBeamHaloSummary_Id ->setBinLabel(10,"Event Tight"); hBeamHaloSummary_Id ->setBinLabel(11,"Nothing"); if(!StandardDQM) { hBeamHaloSummary_BXN = dqm->book2D("BeamHaloSummary_BXN", "",11, 0.5, 11.5, 4000, -0.5,3999.5); hBeamHaloSummary_BXN ->setBinLabel(1,"CSC Loose"); hBeamHaloSummary_BXN ->setBinLabel(2,"CSC Tight"); hBeamHaloSummary_BXN ->setBinLabel(3,"Ecal Loose"); hBeamHaloSummary_BXN ->setBinLabel(4,"Ecal Tight"); hBeamHaloSummary_BXN ->setBinLabel(5,"Hcal Loose"); hBeamHaloSummary_BXN ->setBinLabel(6,"Hcal Tight"); hBeamHaloSummary_BXN ->setBinLabel(7,"Global Loose"); hBeamHaloSummary_BXN ->setBinLabel(8,"Global Tight"); hBeamHaloSummary_BXN ->setBinLabel(9,"Event Loose"); hBeamHaloSummary_BXN ->setBinLabel(10,"Event Tight"); hBeamHaloSummary_BXN ->setBinLabel(11,"Nothing"); } // Extra dqm->setCurrentFolder(FolderName+"/ExtraHaloData"); if(StandardDQM) { hExtra_CSCTrackInnerOuterDPhi = dqm->book1D("Extra_CSCTrackInnerOuterDPhi","", 30, 0, 3.2); hExtra_CSCTrackInnerOuterDEta = dqm->book1D("Extra_CSCTrackInnerOuterDEta","", 100, 0, 3.0 ); hExtra_CSCTrackChi2Ndof = dqm->book1D("Extra_CSCTrackChi2Ndof","", 25, 0, 10); hExtra_CSCTrackNHits = dqm->book1D("Extra_CSCTrackNHits","", 75,0, 75); hExtra_CSCActivityWithMET= dqm->book2D("Extra_CSCActivityWithMET", "", 4, 0.5, 4.5, 4, 0.5, 4.5); hExtra_CSCActivityWithMET->setBinLabel(1,"Track",1); hExtra_CSCActivityWithMET->setBinLabel(1,"Track",2); hExtra_CSCActivityWithMET->setBinLabel(2, "Segments",1); hExtra_CSCActivityWithMET->setBinLabel(2, "Segments",2); hExtra_CSCActivityWithMET->setBinLabel(3, "RecHits", 1); hExtra_CSCActivityWithMET->setBinLabel(3, "RecHits", 2); hExtra_CSCActivityWithMET->setBinLabel(4, "Nothing", 1); hExtra_CSCActivityWithMET->setBinLabel(4, "Nothing", 2); hExtra_InnerMostTrackHitR = dqm->book1D("Extra_InnerMostTrackHitR", "", 70, 99.5, 799.5); hExtra_InnerMostTrackHitPhi = dqm->book1D("Extra_InnerMostTrackHitPhi","", 60, -3.2, 3.2); } else { hExtra_CSCActivityWithMET= dqm->book2D("Extra_CSCActivityWithMET", "", 4, 0.5, 4.5, 4, 0.5, 4.5); hExtra_CSCActivityWithMET->setBinLabel(1,"Track",1); hExtra_CSCActivityWithMET->setBinLabel(1,"Track",2); hExtra_CSCActivityWithMET->setBinLabel(2, "Segments",1); hExtra_CSCActivityWithMET->setBinLabel(2, "Segments",2); hExtra_CSCActivityWithMET->setBinLabel(3, "RecHits", 1); hExtra_CSCActivityWithMET->setBinLabel(3, "RecHits", 2); hExtra_CSCActivityWithMET->setBinLabel(4, "Nothing", 1); hExtra_CSCActivityWithMET->setBinLabel(4, "Nothing", 2); hExtra_HcalToF = dqm->book2D("Extra_HcalToF","" , 83,-41.5,41.5 , 1000, -125., 125.); hExtra_HcalToF_HaloId = dqm->book2D("Extra_HcalToF_HaloId","", 83,-41.5,41.5 , 1000, -125., 125.); hExtra_EcalToF = dqm->book2D("Extra_EcalToF","", 171,-85.5,85.5 , 2000, -225., 225.); hExtra_EcalToF_HaloId = dqm->book2D("Extra_EcalToF_HaloId","", 171,-85.5,85.5 , 2000, -225., 225.); hExtra_CSCTrackInnerOuterDPhi = dqm->book1D("Extra_CSCTrackInnerOuterDPhi","", 30, 0, 3.2); hExtra_CSCTrackInnerOuterDEta = dqm->book1D("Extra_CSCTrackInnerOuterDEta","", 30, 0, 3.2); hExtra_CSCTrackChi2Ndof = dqm->book1D("Extra_CSCTrackChi2Ndof","", 100, 0, 10); hExtra_CSCTrackNHits = dqm->book1D("Extra_CSCTrackNHits","", 75,0, 75); hExtra_InnerMostTrackHitXY = dqm->book2D("Extra_InnerMostTrackHitXY","", 100,-700,700,100, -700,700); hExtra_InnerMostTrackHitR = dqm->book1D("Extra_InnerMostTrackHitR", "", 400, -0.5, 799.5); hExtra_InnerMostTrackHitRPlusZ = dqm->book2D("Extra_InnerMostTrackHitRPlusZ","", 400 , 400, 1200, 400, -0.5, 799.5 ); hExtra_InnerMostTrackHitRMinusZ = dqm->book2D("Extra_InnerMostTrackHitRMinusZ","", 400 , -1200, -400, 400, -0.5, 799.5 ); hExtra_InnerMostTrackHitiPhi = dqm->book1D("Extra_InnerMostTrackHitiPhi","", 72, 0.5, 72.5); hExtra_InnerMostTrackHitPhi = dqm->book1D("Extra_InnerMostTrackHitPhi","", 60, -3.2, 3.2); hExtra_BXN = dqm->book1D("Extra_BXN", "BXN Occupancy", 4000, 0.5, 4000.5); } } }
void BeamHaloAnalyzer::endJob | ( | void | ) | [private, virtual] |
virtual void BeamHaloAnalyzer::endRun | ( | const edm::Run & | , |
const edm::EventSetup & | |||
) | [inline, private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 164 of file BeamHaloAnalyzer.h.
References dqm, OutputFileName, and DQMStore::save().
{ if (OutputFileName!="") dqm->save(OutputFileName);}
DQMStore* BeamHaloAnalyzer::dqm [private] |
Definition at line 211 of file BeamHaloAnalyzer.h.
Referenced by endRun().
double BeamHaloAnalyzer::DumpMET [private] |
Definition at line 202 of file BeamHaloAnalyzer.h.
std::string BeamHaloAnalyzer::FolderName [private] |
Definition at line 199 of file BeamHaloAnalyzer.h.
Definition at line 296 of file BeamHaloAnalyzer.h.
Definition at line 294 of file BeamHaloAnalyzer.h.
Definition at line 264 of file BeamHaloAnalyzer.h.
Definition at line 265 of file BeamHaloAnalyzer.h.
Definition at line 247 of file BeamHaloAnalyzer.h.
Definition at line 261 of file BeamHaloAnalyzer.h.
Definition at line 243 of file BeamHaloAnalyzer.h.
Definition at line 242 of file BeamHaloAnalyzer.h.
Definition at line 260 of file BeamHaloAnalyzer.h.
Definition at line 259 of file BeamHaloAnalyzer.h.
Definition at line 258 of file BeamHaloAnalyzer.h.
Definition at line 246 of file BeamHaloAnalyzer.h.
Definition at line 245 of file BeamHaloAnalyzer.h.
Definition at line 244 of file BeamHaloAnalyzer.h.
Definition at line 268 of file BeamHaloAnalyzer.h.
Definition at line 270 of file BeamHaloAnalyzer.h.
Definition at line 252 of file BeamHaloAnalyzer.h.
Definition at line 251 of file BeamHaloAnalyzer.h.
Definition at line 250 of file BeamHaloAnalyzer.h.
Definition at line 249 of file BeamHaloAnalyzer.h.
Definition at line 248 of file BeamHaloAnalyzer.h.
Definition at line 254 of file BeamHaloAnalyzer.h.
Definition at line 255 of file BeamHaloAnalyzer.h.
Definition at line 253 of file BeamHaloAnalyzer.h.
Definition at line 256 of file BeamHaloAnalyzer.h.
Definition at line 263 of file BeamHaloAnalyzer.h.
Definition at line 269 of file BeamHaloAnalyzer.h.
Definition at line 239 of file BeamHaloAnalyzer.h.
Definition at line 241 of file BeamHaloAnalyzer.h.
Definition at line 240 of file BeamHaloAnalyzer.h.
Definition at line 214 of file BeamHaloAnalyzer.h.
Definition at line 220 of file BeamHaloAnalyzer.h.
Definition at line 223 of file BeamHaloAnalyzer.h.
Definition at line 222 of file BeamHaloAnalyzer.h.
Definition at line 221 of file BeamHaloAnalyzer.h.
Definition at line 225 of file BeamHaloAnalyzer.h.
Definition at line 213 of file BeamHaloAnalyzer.h.
Definition at line 224 of file BeamHaloAnalyzer.h.
Definition at line 215 of file BeamHaloAnalyzer.h.
Definition at line 217 of file BeamHaloAnalyzer.h.
Definition at line 218 of file BeamHaloAnalyzer.h.
Definition at line 226 of file BeamHaloAnalyzer.h.
Definition at line 216 of file BeamHaloAnalyzer.h.
MonitorElement* BeamHaloAnalyzer::hExtra_BXN [private] |
Definition at line 312 of file BeamHaloAnalyzer.h.
Definition at line 298 of file BeamHaloAnalyzer.h.
Definition at line 305 of file BeamHaloAnalyzer.h.
Definition at line 304 of file BeamHaloAnalyzer.h.
Definition at line 303 of file BeamHaloAnalyzer.h.
Definition at line 306 of file BeamHaloAnalyzer.h.
MonitorElement* BeamHaloAnalyzer::hExtra_EcalToF [private] |
Definition at line 301 of file BeamHaloAnalyzer.h.
Definition at line 302 of file BeamHaloAnalyzer.h.
MonitorElement* BeamHaloAnalyzer::hExtra_HcalToF [private] |
Definition at line 299 of file BeamHaloAnalyzer.h.
Definition at line 300 of file BeamHaloAnalyzer.h.
Definition at line 310 of file BeamHaloAnalyzer.h.
Definition at line 311 of file BeamHaloAnalyzer.h.
Definition at line 297 of file BeamHaloAnalyzer.h.
Definition at line 309 of file BeamHaloAnalyzer.h.
Definition at line 308 of file BeamHaloAnalyzer.h.
Definition at line 307 of file BeamHaloAnalyzer.h.
Definition at line 276 of file BeamHaloAnalyzer.h.
Definition at line 288 of file BeamHaloAnalyzer.h.
Definition at line 287 of file BeamHaloAnalyzer.h.
Definition at line 289 of file BeamHaloAnalyzer.h.
Definition at line 291 of file BeamHaloAnalyzer.h.
Definition at line 290 of file BeamHaloAnalyzer.h.
Definition at line 286 of file BeamHaloAnalyzer.h.
Definition at line 292 of file BeamHaloAnalyzer.h.
Definition at line 281 of file BeamHaloAnalyzer.h.
Definition at line 280 of file BeamHaloAnalyzer.h.
Definition at line 282 of file BeamHaloAnalyzer.h.
Definition at line 284 of file BeamHaloAnalyzer.h.
Definition at line 283 of file BeamHaloAnalyzer.h.
Definition at line 279 of file BeamHaloAnalyzer.h.
Definition at line 285 of file BeamHaloAnalyzer.h.
Definition at line 273 of file BeamHaloAnalyzer.h.
Definition at line 274 of file BeamHaloAnalyzer.h.
Definition at line 277 of file BeamHaloAnalyzer.h.
Definition at line 278 of file BeamHaloAnalyzer.h.
Definition at line 275 of file BeamHaloAnalyzer.h.
Definition at line 229 of file BeamHaloAnalyzer.h.
Definition at line 232 of file BeamHaloAnalyzer.h.
Definition at line 233 of file BeamHaloAnalyzer.h.
Definition at line 235 of file BeamHaloAnalyzer.h.
Definition at line 234 of file BeamHaloAnalyzer.h.
Definition at line 237 of file BeamHaloAnalyzer.h.
Definition at line 228 of file BeamHaloAnalyzer.h.
Definition at line 236 of file BeamHaloAnalyzer.h.
Definition at line 230 of file BeamHaloAnalyzer.h.
Definition at line 182 of file BeamHaloAnalyzer.h.
Definition at line 194 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_CaloTower [private] |
Definition at line 185 of file BeamHaloAnalyzer.h.
Definition at line 180 of file BeamHaloAnalyzer.h.
Definition at line 181 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_CosmicMuon [private] |
Definition at line 178 of file BeamHaloAnalyzer.h.
Definition at line 183 of file BeamHaloAnalyzer.h.
Definition at line 190 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_CSCRecHit [private] |
Definition at line 169 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_CSCSegment [private] |
Definition at line 179 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_EBRecHit [private] |
Definition at line 170 of file BeamHaloAnalyzer.h.
Definition at line 191 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_EERecHit [private] |
Definition at line 171 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_ESRecHit [private] |
Definition at line 172 of file BeamHaloAnalyzer.h.
Definition at line 193 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_HBHERecHit [private] |
Definition at line 173 of file BeamHaloAnalyzer.h.
Definition at line 192 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_HFRecHit [private] |
Definition at line 175 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_HORecHit [private] |
Definition at line 174 of file BeamHaloAnalyzer.h.
Definition at line 166 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_met [private] |
Definition at line 184 of file BeamHaloAnalyzer.h.
edm::InputTag BeamHaloAnalyzer::IT_Photon [private] |
Definition at line 187 of file BeamHaloAnalyzer.h.
Definition at line 186 of file BeamHaloAnalyzer.h.
ofstream* BeamHaloAnalyzer::out [private] |
Definition at line 201 of file BeamHaloAnalyzer.h.
std::string BeamHaloAnalyzer::OutputFileName [private] |
Definition at line 197 of file BeamHaloAnalyzer.h.
Referenced by endRun().
bool BeamHaloAnalyzer::StandardDQM [private] |
Definition at line 208 of file BeamHaloAnalyzer.h.
std::string BeamHaloAnalyzer::TextFileName [private] |
Definition at line 198 of file BeamHaloAnalyzer.h.
MuonSegmentMatcher* BeamHaloAnalyzer::TheMatcher [private] |
Definition at line 206 of file BeamHaloAnalyzer.h.
MuonServiceProxy* BeamHaloAnalyzer::TheService [private] |
Definition at line 205 of file BeamHaloAnalyzer.h.