Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport of "Update of some HLT filters for Egamma paths entering in 73X" #5964

Merged
merged 22 commits into from Nov 24, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
829b22f
backport of PR5772 to 72X
matteosan1 Oct 21, 2014
1cdcf33
update of 72X PR
matteosan1 Oct 23, 2014
8d75d11
razor hlt filters for run2 development in 72X
Oct 28, 2014
99866e9
Added the alphaT filter
Oct 29, 2014
db41711
added if clause using saveTags()
Oct 29, 2014
523f109
*make sure that ini file is written
smorovic Nov 4, 2014
f9c26e5
std::map --> std::vector
smorovic Nov 5, 2014
336b665
added configurable parameters maxAssocCaloE and maxAssocCaloEDeltaRSize
Nov 5, 2014
e30faa6
added configurable parameters maxAssocCaloE and maxAssocCaloEDeltaRSize
Nov 5, 2014
5ad12db
increased #cluster threshold for cosmic seed finder
threus Nov 5, 2014
fc3226e
Adding RunCache
avetisya Nov 5, 2014
c5d31c8
reverting additions to DaqDirector
smorovic Nov 5, 2014
d32b637
no json streams' output with 0 processed events
smorovic Nov 6, 2014
f67b05e
also make sure that delete is called with 0 events
smorovic Nov 6, 2014
50460a3
Merge pull request #6215 from jbrinson/721branch
cmsbuild Nov 7, 2014
8f801f9
Merge pull request #6203 from smorovic/jsonmon-fixes
cmsbuild Nov 7, 2014
29ce3c1
Merge pull request #6087 from aelwood/alphaT-HLTFilter-72X
cmsbuild Nov 7, 2014
ffefa4c
Merge pull request #6056 from jmduarte/razor-run2-hlt-72X
cmsbuild Nov 7, 2014
f65a9cd
Merge pull request #6216 from threus/onlineConfigFixSiStrip
cmsbuild Nov 7, 2014
42bdbcb
Merge pull request #6270 from mommsen/useValidTimeStampInAnyCase
davidlange6 Nov 7, 2014
efabdf3
Merged refs/pull/5964/head from repository cms-sw
matteosan1 Nov 10, 2014
7f11157
remove usage of HCAL electronic map
matteosan1 Nov 10, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 14 additions & 6 deletions Calibration/EcalAlCaRecoProducers/BuildFile.xml
@@ -1,19 +1,27 @@
<use name="FWCore/Framework"/>
<use name="FWCore/MessageLogger"/>
<use name="FWCore/PluginManager"/>
<use name="FWCore/ParameterSet"/>
<use name="DataFormats/Candidate"/>
<use name="DataFormats/EcalDigi"/>
<use name="DataFormats/EcalRecHit"/>
<use name="DataFormats/EgammaReco"/>
<use name="DataFormats/EgammaCandidates"/>
<use name="DataFormats/HLTReco"/>
<use name="DataFormats/RecoCandidate"/>
<use name="DataFormats/Math"/>
<use name="CalibFormats/SiStripObjects"/>
<use name="CalibCalorimetry/HcalAlgos"/>
<use name="CondFormats/EcalObjects"/>
<use name="CondFormats/DataRecord"/>
<use name="RecoLocalCalo/EcalRecAlgos"/>
<use name="CondFormats/HcalObjects"/>
<use name="CondFormats/SiPixelObjects"/>
<use name="Geometry/CaloGeometry"/>
<use name="Geometry/CaloTopology"/>
<use name="RecoEcal/EgammaClusterAlgos"/>
<use name="Geometry/EcalAlgo"/>
<use name="DataFormats/Math"/>
<use name="TrackingTools/TrackAssociator"/>
<use name="RecoEcal/EgammaClusterAlgos"/>
<use name="RecoEcal/EgammaCoreTools"/>
<use name="RecoLocalCalo/EcalRecAlgos"/>
<use name="TrackingTools/TrackAssociator"/>
<use name="clhep"/>
<use name="FWCore/PluginManager"/>
<use name="DataFormats/EgammaCandidates"/>
<flags EDM_PLUGIN="1"/>
@@ -0,0 +1,231 @@
#ifndef SelectedElectronFEDListProducer_h
#define SelectedFEDListProducer_h

#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
#include <fstream>
#include "TLorentzVector.h"
#include "TVector3.h"
#include <ostream>
#include <memory>
#include <stdint.h>

// common
#include "DataFormats/Common/interface/Handle.h"
// egamma objects
#include "DataFormats/EgammaReco/interface/SuperCluster.h"
#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
#include "DataFormats/EgammaReco/interface/PreshowerCluster.h"
#include "DataFormats/EgammaReco/interface/PreshowerClusterFwd.h"
#include "DataFormats/RecoCandidate/interface/RecoEcalCandidate.h"
#include "DataFormats/RecoCandidate/interface/RecoEcalCandidateFwd.h"
#include "DataFormats/EgammaCandidates/interface/Electron.h"
#include "DataFormats/EgammaCandidates/interface/ElectronFwd.h"
#include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
// raw data
#include "DataFormats/FEDRawData/interface/FEDRawData.h"
#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
#include "DataFormats/FEDRawData/interface/FEDNumbering.h"
// detector id
#include "DataFormats/HcalDetId/interface/HcalDetId.h"
#include "DataFormats/HcalDetId/interface/HcalElectronicsId.h"
#include "DataFormats/SiStripDetId/interface/SiStripDetId.h"
// Math
#include "DataFormats/Math/interface/normalizedPhi.h"
// Hcal rec hit
#include "DataFormats/ParticleFlowReco/interface/PFRecHit.h"
#include "DataFormats/ParticleFlowReco/interface/PFRecHitFwd.h"
#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
#include "DataFormats/CaloRecHit/interface/CaloRecHit.h"
#include "DataFormats/TrackingRecHit/interface/TrackingRecHitFwd.h"
// Geometry
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
#include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h"
#include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h"
#include "Geometry/EcalMapping/interface/EcalMappingRcd.h"
#include "Geometry/EcalAlgo/interface/EcalPreshowerGeometry.h"
#include "Geometry/Records/interface/IdealGeometryRecord.h"
#include "Geometry/Records/interface/CaloGeometryRecord.h"
#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
#include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h"
#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
// strip geometry
#include "CalibFormats/SiStripObjects/interface/SiStripRegionCabling.h"
#include "CalibFormats/SiStripObjects/interface/SiStripDetCabling.h"
#include "CalibTracker/Records/interface/SiStripDetCablingRcd.h"
#include "CalibTracker/Records/interface/SiStripRegionCablingRcd.h"
// FW core
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/ESTransientHandle.h"
// Message logger
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
// Strip and pixel
#include "CondFormats/SiStripObjects/interface/SiStripFedCabling.h"
#include "CondFormats/SiStripObjects/interface/FedChannelConnection.h"
#include "CondFormats/SiPixelObjects/interface/SiPixelFedCablingMap.h"
#include "CondFormats/SiPixelObjects/interface/SiPixelFedCabling.h"
#include "CondFormats/SiPixelObjects/interface/CablingPathToDetUnit.h"
#include "CondFormats/SiPixelObjects/interface/SiPixelFrameConverter.h"
#include "CondFormats/SiPixelObjects/interface/GlobalPixel.h"
#include "CondFormats/SiPixelObjects/interface/LocalPixel.h"
#include "CondFormats/SiPixelObjects/interface/ElectronicIndex.h"
#include "CondFormats/SiPixelObjects/interface/DetectorIndex.h"
#include "CondFormats/DataRecord/interface/SiPixelFedCablingMapRcd.h"
#include "CondFormats/SiPixelObjects/interface/SiPixelFedCablingTree.h"

// Hcal objects
#include "CondFormats/HcalObjects/interface/HcalChannelQuality.h"
#include "CondFormats/DataRecord/interface/HcalChannelQualityRcd.h"
#include "CondFormats/HcalObjects/interface/HcalElectronicsMap.h"
#include "CalibFormats/HcalObjects/interface/HcalDbService.h"
#include "CalibFormats/HcalObjects/interface/HcalDbRecord.h"

using namespace std;

// Pixel region class
class PixelRegion {
public:
PixelRegion(math::XYZVector & momentum, float dphi = 0.5, float deta = 0.5, float maxz = 24.0){
vector = momentum;
dPhi = dphi ;
dEta = deta ;
maxZ = maxz ;
cosphi = vector.x()/vector.rho();
sinphi = vector.y()/vector.rho();
atantheta = vector.z()/vector.rho();
}

math::XYZVector vector;
float dPhi,dEta,maxZ;
float cosphi, sinphi, atantheta;
};

// Pixel module class
class PixelModule{
public:

PixelModule() {}
PixelModule(float phi, float eta) : Phi(phi), Eta(eta), x(0.), y(0.), z(0.), DetId(0), Fed(0) {}
bool operator < (const PixelModule& m) const {
if(Phi < m.Phi) return true;
if(Phi == m.Phi && Eta < m.Eta) return true;
if(Phi == m.Phi && Eta == m.Eta && DetId < m.DetId) return true;
return false;
}

float Phi,Eta;
float x, y, z;
unsigned int DetId;
unsigned int Fed;

};


// main class
template<typename TEle, typename TCand>
class SelectedElectronFEDListProducer : public edm::EDProducer {

public:

explicit SelectedElectronFEDListProducer( const edm::ParameterSet &);
virtual ~SelectedElectronFEDListProducer();

protected:

virtual void beginJob() ;
virtual void endJob() ;
virtual void produce(edm::Event&, const edm::EventSetup&);

private:

typedef std::vector<TEle> TEleColl ;
typedef std::vector<TCand> TCandColl ;

public:

void pixelFedDump( std::vector<PixelModule>::const_iterator & itDn,
std::vector<PixelModule>::const_iterator & itUp,
const PixelRegion & region);

private:

// input parameter of the producer
std::vector<edm::InputTag> recoEcalCandidateTags_ ;
std::vector<edm::InputTag> electronTags_ ;
edm::InputTag beamSpotTag_ ;
edm::InputTag rawDataTag_ ;

std::vector<int> isGsfElectronCollection_ ;
std::vector<int> addThisSelectedFEDs_ ;

edm::InputTag HBHERecHitTag_;

edm::FileInPath ESLookupTable_ ;

bool dumpSelectedEcalFed_ ;
bool dumpSelectedSiStripFed_ ;
bool dumpSelectedSiPixelFed_ ;
bool dumpSelectedHCALFed_;
bool dumpAllEcalFed_ ;
bool dumpAllTrackerFed_;
bool dumpAllHCALFed_;

double dRStripRegion_ ;
double dPhiPixelRegion_;
double dEtaPixelRegion_;
double maxZPixelRegion_;
double dRHcalRegion_;

std::string outputLabelModule_ ;

// Token for the input collection
edm::EDGetTokenT<FEDRawDataCollection> rawDataToken_ ;
edm::EDGetTokenT<reco::BeamSpot> beamSpotToken_ ;
edm::EDGetTokenT<HBHERecHitCollection> hbheRecHitToken_;
std::vector<edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> > recoEcalCandidateToken_ ;
std::vector<edm::EDGetTokenT<TEleColl> > electronToken_;

// used inside the producer
uint32_t eventCounter_ ;
math::XYZVector beamSpotPosition_;

// internal info for ES geometry
int ES_fedId_[2][2][40][40];

// fed list and output raw data
std::vector<uint32_t> fedList_ ;

// get the raw data
FEDRawDataCollection* RawDataCollection_ ;
// get calo geomentry and electronic map
const EcalElectronicsMapping* TheMapping_ ;
const CaloGeometry* geometry_ ;
const CaloSubdetectorGeometry *geometryES_ ;

// get pixel geometry and electronic map
std::unique_ptr<SiPixelFedCablingTree> PixelCabling_;
std::vector<PixelModule> pixelModuleVector_ ;

// get strip geometry and electronic map
const SiStripRegionCabling* StripRegionCabling_;
SiStripRegionCabling::Cabling cabling_ ;
std::pair<double,double> regionDimension_ ;

// get hcal geometry and electronic map
const HcalElectronicsMap* hcalReadoutMap_;

};

#endif
58 changes: 58 additions & 0 deletions Calibration/EcalAlCaRecoProducers/python/alcaElectronStream_cff.py
@@ -0,0 +1,58 @@
import FWCore.ParameterSet.Config as cms

triggerStreamResultsFilter = cms.EDFilter('TriggerResultsFilter',
hltResults = cms.InputTag('TriggerResults'), # HLT results - set to empty to ignore HLT
l1tResults = cms.InputTag(''), # L1 GT results - set to empty to ignore L1
l1tIgnoreMask = cms.bool(False), # use L1 mask
l1techIgnorePrescales = cms.bool(False), # read L1 technical bits from PSB#9, bypassing the prescales
daqPartitions = cms.uint32(0x01), # used by the definition of the L1 mask
throw = cms.bool(True), # throw exception on unknown trigger names
triggerConditions = cms.vstring(
'HLT_Ele27_eta2p1_WP85_Gsf_v1',
'HLT_Ele27_eta2p1_WP85_PFMET_MT50_Gsf_v1',
)
)



HLTselectedElectronFEDList = cms.EDProducer("selectedElectronFEDListProducerGsf",
recoEcalCandidateTags = cms.VInputTag("hltEle27eta2p1WP85PFMT50PFMTFilter","hltEle27WP85GsfTrackIsoFilter"),
electronTags = cms.VInputTag("hltEgammaGsfElectrons"),
isGsfElectronCollection = cms.vint32(True),
beamSpotTag = cms.InputTag("hltOnlineBeamSpot"),
rawDataTag = cms.InputTag("rawDataCollector"),
HBHERecHitTag = cms.InputTag("hltHbhereco"),
ESLookupTable = cms.string('EventFilter/ESDigiToRaw/data/ES_lookup_table.dat'),
dumpSelectedEcalFed = cms.bool(True),
dumpSelectedSiPixelFed = cms.bool(True),
dumpSelectedSiStripFed = cms.bool(True),
dumpSelectedHCALFed = cms.bool(True),
dumpAllEcalFed = cms.bool(False),
dumpAllHcalFed = cms.bool(False),
dumpAllTrackerFed = cms.bool(False),
dPhiPixelRegion = cms.double(0.3),
dEtaPixelRegion = cms.double(0.3),
maxZPixelRegion = cms.double(24.0),
dRStripRegion = cms.double(0.3),
dRHcalRegion = cms.double(0.5),
outputLabelModule = cms.string('StreamElectronRawFed'),
addThisSelectedFEDs = cms.vint32(812,813)
)


streamEvents = cms.untracked.PSet(
SelectEvents = cms.vstring('HLT_Ele27_eta2p1_WP85_Gsf_v1', 'HLT_Ele27_eta2p1_WP85_PFMET_MT50_Gsf_v1'),
outputCommands = cms.untracked.vstring('drop * ',
'keep edmTriggerResults_*_*_*',
'keep *_hltL1GtObjectMap_*_*',
'drop *_*_*_*SIM*',
'keep *_HLTselectedElectronFEDList_*StreamElectronRawFed*_*',
'keep *_*hltFixedGridRhoFastjetAllCaloForMuons*_*_*',
'keep *_*hltFixedGridRhoFastjetAll_*_*',
'keep *_*hltPixelVerticesElectrons*_*_*',
'keep *_*hltPixelVertices_*_*',
'keep *_*hltPFMETProducer_*_*')
)