void MuonReader::readMuons() { for (unsigned int index = 0; index < energyReader.size(); index++) { double energy = energyReader.getVariableAt(index); double px = pxReader.getVariableAt(index); double py = pyReader.getVariableAt(index); double pz = pzReader.getVariableAt(index); MuonPointer muon(new Muon(energy, px, py, pz)); muon->setUsedAlgorithm(algorithm); muon->setCharge(chargeReader.getIntVariableAt(index)); muon->setEcalIsolation(ecalIsolationReader.getVariableAt(index)); muon->setHcalIsolation(hcalIsolationReader.getVariableAt(index)); muon->setTrackerIsolation(trackerIsolationReader.getVariableAt(index)); // muon->setRelTrkIsolation(relTrackIsolationReader_.getVariableAt(index)); muon->setPFRelIso03(PFRelIso03Reader_.getVariableAt(index)); muon->setPFRelIso04(PFRelIso04Reader_.getVariableAt(index)); muon->setPFRelIso03DeltaBeta(PFRelIso03DeltaBetaReader_.getVariableAt(index)); muon->setPFRelIso04DeltaBeta(PFRelIso04DeltaBetaReader_.getVariableAt(index)); muon->setsumChargedHadronPt03(sumChargedHadronPt03Reader_.getVariableAt(index)); muon->setsumNeutralHadronPt03(sumNeutralHadronPt03Reader_.getVariableAt(index)); muon->setsumPhotonPt03(sumPhotonPt03Reader_.getVariableAt(index)); muon->setsumPUPt03(sumPUPt03Reader_.getVariableAt(index)); muon->setsumChargedHadronPt04(sumChargedHadronPt04Reader_.getVariableAt(index)); muon->setsumNeutralHadronPt04(sumNeutralHadronPt04Reader_.getVariableAt(index)); muon->setsumPhotonPt04(sumPhotonPt04Reader_.getVariableAt(index)); muon->setsumPUPt04(sumPUPt04Reader_.getVariableAt(index)); muon->setD0(d0_PV_Reader.getVariableAt(index)); muon->setD0_wrtBeamSpot(d0_BS_Reader.getVariableAt(index)); muon->makeGlobal(isGlobalMuon.getBoolVariableAt(index)); muon->setTrackerMuon(isTrackerMuon.getBoolVariableAt(index)); muon->setZDistanceToPrimaryVertex(vertex_dist_z.getVariableAt(index)); muon->setNormalisedChi2(normalisedChi2.getVariableAt(index)); muon->setNumberOfValidHits(NumberOfValidHits.getIntVariableAt(index)); muon->setNumberOfValidMuonHits(NumberOfValidMuonHits.getIntVariableAt(index)); muon->setPixelLayersWithMeasurement(PixelLayersWithMeasurement.getIntVariableAt(index)); muon->setNumberOfMatchedStations(NumberOfMatchedStations.getIntVariableAt(index)); muon->setNumberOfMatches(NumberOfMatches.getIntVariableAt(index)); if (Globals::NTupleVersion >= 8) { muon->setPFMuon(isPFMuon.getBoolVariableAt(index)); muon->setTrackerLayersWithMeasurement(TrackerLayersWithMeasurement.getIntVariableAt(index)); muon->setNumberOfValidPixelHits(NumberOfValidPixelHits.getIntVariableAt(index)); } muons.push_back(muon); } }
void GlobalPositionRcdWrite::analyze(const edm::Event& evt, const edm::EventSetup& iSetup) { if (nEventCalls_ > 0) { std::cout << "Writing to DB to be done only once, " << "set 'untracked PSet maxEvents = {untracked int32 input = 1}'." << "(Your writing should be fine.)" << std::endl; return; } Alignments* globalPositions = new Alignments(); AlignTransform tracker(AlignTransform::Translation(m_tracker.getParameter<double>("x"), m_tracker.getParameter<double>("y"), m_tracker.getParameter<double>("z")), (m_useEulerAngles != true) ? this->toMatrix(m_tracker.getParameter<double>("alpha"), m_tracker.getParameter<double>("beta"), m_tracker.getParameter<double>("gamma")) : AlignTransform::EulerAngles(m_tracker.getParameter<double>("alpha"), m_tracker.getParameter<double>("beta"), m_tracker.getParameter<double>("gamma")), DetId(DetId::Tracker).rawId()); AlignTransform muon(AlignTransform::Translation(m_muon.getParameter<double>("x"), m_muon.getParameter<double>("y"), m_muon.getParameter<double>("z")), (m_useEulerAngles != true) ? this->toMatrix(m_muon.getParameter<double>("alpha"), m_muon.getParameter<double>("beta"), m_muon.getParameter<double>("gamma")) : AlignTransform::EulerAngles(m_muon.getParameter<double>("alpha"), m_muon.getParameter<double>("beta"), m_muon.getParameter<double>("gamma")), DetId(DetId::Muon).rawId()); AlignTransform ecal(AlignTransform::Translation(m_ecal.getParameter<double>("x"), m_ecal.getParameter<double>("y"), m_ecal.getParameter<double>("z")), (m_useEulerAngles != true) ? this->toMatrix(m_ecal.getParameter<double>("alpha"), m_ecal.getParameter<double>("beta"), m_ecal.getParameter<double>("gamma")) : AlignTransform::EulerAngles(m_ecal.getParameter<double>("alpha"), m_ecal.getParameter<double>("beta"), m_ecal.getParameter<double>("gamma")), DetId(DetId::Ecal).rawId()); AlignTransform hcal(AlignTransform::Translation(m_hcal.getParameter<double>("x"), m_hcal.getParameter<double>("y"), m_hcal.getParameter<double>("z")), (m_useEulerAngles != true) ? this->toMatrix(m_hcal.getParameter<double>("alpha"), m_hcal.getParameter<double>("beta"), m_hcal.getParameter<double>("gamma")) : AlignTransform::EulerAngles(m_hcal.getParameter<double>("alpha"), m_hcal.getParameter<double>("beta"), m_hcal.getParameter<double>("gamma")), DetId(DetId::Hcal).rawId()); AlignTransform calo(AlignTransform::Translation(m_calo.getParameter<double>("x"), m_calo.getParameter<double>("y"), m_calo.getParameter<double>("z")), (m_useEulerAngles != true) ? this->toMatrix(m_calo.getParameter<double>("alpha"), m_calo.getParameter<double>("beta"), m_calo.getParameter<double>("gamma")) : AlignTransform::EulerAngles(m_calo.getParameter<double>("alpha"), m_calo.getParameter<double>("beta"), m_calo.getParameter<double>("gamma")), DetId(DetId::Calo).rawId()); std::cout << "\nProvided rotation angles are interpreted as " << ((m_useEulerAngles != true) ? "rotations around X, Y and Z" : "Euler angles") << ".\n" << std::endl; std::cout << "Tracker (" << tracker.rawId() << ") at " << tracker.translation() << " " << tracker.rotation().eulerAngles() << std::endl; std::cout << tracker.rotation() << std::endl; std::cout << "Muon (" << muon.rawId() << ") at " << muon.translation() << " " << muon.rotation().eulerAngles() << std::endl; std::cout << muon.rotation() << std::endl; std::cout << "Ecal (" << ecal.rawId() << ") at " << ecal.translation() << " " << ecal.rotation().eulerAngles() << std::endl; std::cout << ecal.rotation() << std::endl; std::cout << "Hcal (" << hcal.rawId() << ") at " << hcal.translation() << " " << hcal.rotation().eulerAngles() << std::endl; std::cout << hcal.rotation() << std::endl; std::cout << "Calo (" << calo.rawId() << ") at " << calo.translation() << " " << calo.rotation().eulerAngles() << std::endl; std::cout << calo.rotation() << std::endl; globalPositions->m_align.push_back(tracker); globalPositions->m_align.push_back(muon); globalPositions->m_align.push_back(ecal); globalPositions->m_align.push_back(hcal); globalPositions->m_align.push_back(calo); std::cout << "Uploading to the database..." << std::endl; edm::Service<cond::service::PoolDBOutputService> poolDbService; if (!poolDbService.isAvailable()) throw cms::Exception("NotAvailable") << "PoolDBOutputService not available"; // if (poolDbService->isNewTagRequest("GlobalPositionRcd")) { // poolDbService->createNewIOV<Alignments>(&(*globalPositions), poolDbService->endOfTime(), "GlobalPositionRcd"); // } else { // poolDbService->appendSinceTime<Alignments>(&(*globalPositions), poolDbService->currentTime(), "GlobalPositionRcd"); // } poolDbService->writeOne<Alignments>(&(*globalPositions), poolDbService->currentTime(), //poolDbService->beginOfTime(), "GlobalPositionRcd"); std::cout << "done!" << std::endl; nEventCalls_++; }