CMS 3D CMS Logo

IsolatedPixelTrackCandidateL1TProducer.cc
Go to the documentation of this file.
1 #include <vector>
2 #include <memory>
3 #include <algorithm>
4 #include <cmath>
5 
6 // Class header file
9 // Framework
15 
16 // Math
17 #include "Math/GenVector/VectorUtil.h"
18 #include "Math/GenVector/PxPyPzE4D.h"
20 
21 //magF
23 
24 //for ECAL geometry
28 
29 //#define EDM_ML_DEBUG
30 
32  : tok_hlt_(consumes<trigger::TriggerFilterObjectWithRefs>(config.getParameter<edm::InputTag>("L1GTSeedLabel"))),
33  tok_l1_(consumes<l1t::TauBxCollection>(config.getParameter<edm::InputTag>("L1eTauJetsSource"))),
34  tok_vert_(consumes<reco::VertexCollection>(config.getParameter<edm::InputTag>("VertexLabel"))),
35  toks_pix_(
36  edm::vector_transform(config.getParameter<std::vector<edm::InputTag> >("PixelTracksSources"),
37  [this](edm::InputTag const& tag) { return consumes<reco::TrackCollection>(tag); })),
38  tok_bFieldH_(esConsumes<MagneticField, IdealMagneticFieldRecord, edm::Transition::BeginRun>()),
39  tok_geom_(esConsumes<CaloGeometry, CaloGeometryRecord, edm::Transition::BeginRun>()),
40  bfield_(config.getParameter<std::string>("MagFieldRecordName")),
41  prelimCone_(config.getParameter<double>("ExtrapolationConeSize")),
42  pixelIsolationConeSizeAtEC_(config.getParameter<double>("PixelIsolationConeSizeAtEC")),
43  vtxCutSeed_(config.getParameter<double>("MaxVtxDXYSeed")),
44  vtxCutIsol_(config.getParameter<double>("MaxVtxDXYIsol")),
45  tauAssocCone_(config.getParameter<double>("tauAssociationCone")),
46  tauUnbiasCone_(config.getParameter<double>("tauUnbiasCone")),
47  minPTrackValue_(config.getParameter<double>("minPTrack")),
48  maxPForIsolationValue_(config.getParameter<double>("maxPTrackForIsolation")),
49  ebEtaBoundary_(config.getParameter<double>("EBEtaBoundary")),
50  rEB_(-1),
51  zEE_(-1),
52  bfVal_(0) {
53  // Register the product
54  produces<reco::IsolatedPixelTrackCandidateCollection>();
55 }
56 
58 
61  std::vector<edm::InputTag> tracksrc = {edm::InputTag("hltPixelTracks")};
62  desc.add<edm::InputTag>("L1eTauJetsSource", edm::InputTag("hltGtStage2Digis", "Tau"));
63  desc.add<double>("tauAssociationCone", 0.0);
64  desc.add<double>("tauUnbiasCone", 1.2);
65  desc.add<std::vector<edm::InputTag> >("PixelTracksSources", tracksrc);
66  desc.add<double>("ExtrapolationConeSize", 1.0);
67  desc.add<double>("PixelIsolationConeSizeAtEC", 40);
68  desc.add<edm::InputTag>("L1GTSeedLabel", edm::InputTag("hltL1sV0SingleJet60"));
69  desc.add<double>("MaxVtxDXYSeed", 101.0);
70  desc.add<double>("MaxVtxDXYIsol", 101.0);
71  desc.add<edm::InputTag>("VertexLabel", edm::InputTag("hltTrimmedPixelVertices"));
72  desc.add<std::string>("MagFieldRecordName", "VolumeBasedMagneticField");
73  desc.add<double>("minPTrack", 5.0);
74  desc.add<double>("maxPTrackForIsolation", 3.0);
75  desc.add<double>("EBEtaBoundary", 1.479);
76  descriptions.add("isolPixelTrackProdL1T", desc);
77 }
78 
80  const CaloGeometry* pG = &theEventSetup.getData(tok_geom_);
81 
82  const double rad(dynamic_cast<const EcalBarrelGeometry*>(pG->getSubdetectorGeometry(DetId::Ecal, EcalBarrel))
83  ->avgRadiusXYFrontFaceCenter());
84  const double zz(dynamic_cast<const EcalEndcapGeometry*>(pG->getSubdetectorGeometry(DetId::Ecal, EcalEndcap))
85  ->avgAbsZFrontFaceCenter());
86 
87  rEB_ = rad;
88  zEE_ = zz;
89 
90  const MagneticField* vbfField = &theEventSetup.getData(tok_bFieldH_);
91  const VolumeBasedMagneticField* vbfCPtr = dynamic_cast<const VolumeBasedMagneticField*>(&(*vbfField));
92  GlobalVector BField = vbfCPtr->inTesla(GlobalPoint(0, 0, 0));
93  bfVal_ = BField.mag();
94 #ifdef EDM_ML_DEBUG
95  edm::LogVerbatim("IsoTrack") << "rEB " << rEB_ << " zEE " << zEE_ << " B " << bfVal_;
96 #endif
97 }
98 
100  auto trackCollection = std::make_unique<reco::IsolatedPixelTrackCandidateCollection>();
101 
102  //create vector of refs from input collections
103  std::vector<reco::TrackRef> pixelTrackRefs;
104 
105  for (unsigned int iPix = 0; iPix < toks_pix_.size(); iPix++) {
107  theEvent.getByToken(toks_pix_[iPix], iPixCol);
108  for (reco::TrackCollection::const_iterator pit = iPixCol->begin(); pit != iPixCol->end(); pit++) {
109  pixelTrackRefs.push_back(reco::TrackRef(iPixCol, pit - iPixCol->begin()));
110  }
111  }
112 
114  theEvent.getByToken(tok_l1_, l1eTauJets);
115 
117  theEvent.getByToken(tok_vert_, pVert);
118 
119  double ptTriggered = -10;
120  double etaTriggered = -100;
121  double phiTriggered = -100;
122 
124  theEvent.getByToken(tok_hlt_, l1trigobj);
125 
126  std::vector<edm::Ref<l1t::TauBxCollection> > l1tauobjref;
127  std::vector<edm::Ref<l1t::JetBxCollection> > l1jetobjref;
128 
129  // l1trigobj->getObjects(trigger::TriggerTau, l1tauobjref);
130  l1trigobj->getObjects(trigger::TriggerL1Tau, l1tauobjref);
131  // l1trigobj->getObjects(trigger::TriggerJet, l1jetobjref);
132  l1trigobj->getObjects(trigger::TriggerL1Jet, l1jetobjref);
133 
134  for (const auto& p : l1tauobjref) {
135  if (p->pt() > ptTriggered) {
136  ptTriggered = p->pt();
137  phiTriggered = p->phi();
138  etaTriggered = p->eta();
139  }
140  }
141  for (const auto& p : l1jetobjref) {
142  if (p->pt() > ptTriggered) {
143  ptTriggered = p->pt();
144  phiTriggered = p->phi();
145  etaTriggered = p->eta();
146  }
147  }
148 #ifdef EDM_ML_DEBUG
149  edm::LogVerbatim("IsoTrack") << "Sizes " << l1tauobjref.size() << ":" << l1jetobjref.size() << " Trig " << ptTriggered
150  << ":" << etaTriggered << ":" << phiTriggered;
151 #endif
152  double drMaxL1Track_ = tauAssocCone_;
153  int ntr = 0;
154  std::vector<seedAtEC> VecSeedsatEC;
155  //loop to select isolated tracks
156  for (unsigned iS = 0; iS < pixelTrackRefs.size(); iS++) {
157  bool vtxMatch = false;
158  //associate to vertex (in Z)
159  reco::VertexCollection::const_iterator vitSel;
160  double minDZ = 1000;
161  bool found(false);
162  for (reco::VertexCollection::const_iterator vit = pVert->begin(); vit != pVert->end(); vit++) {
163  if (std::abs(pixelTrackRefs[iS]->dz(vit->position())) < minDZ) {
164  minDZ = std::abs(pixelTrackRefs[iS]->dz(vit->position()));
165  vitSel = vit;
166  found = true;
167  }
168  }
169  //cut on dYX:
170  if (found) {
171  if (std::abs(pixelTrackRefs[iS]->dxy(vitSel->position())) < vtxCutSeed_)
172  vtxMatch = true;
173  } else {
174  vtxMatch = true;
175  }
176 #ifdef EDM_ML_DEBUG
177  edm::LogVerbatim("IsoTrack") << "minZD " << minDZ << " Found " << found << ":" << vtxMatch;
178 #endif
179  //select tracks not matched to triggered L1 jet
180  double R = reco::deltaR(etaTriggered, phiTriggered, pixelTrackRefs[iS]->eta(), pixelTrackRefs[iS]->phi());
181 #ifdef EDM_ML_DEBUG
182  edm::LogVerbatim("IsoTrack") << "Distance to L1 " << R << ":" << tauUnbiasCone_ << " Result "
183  << (R < tauUnbiasCone_);
184 #endif
185  if (R < tauUnbiasCone_)
186  continue;
187 
188  //check taujet matching
189  bool tmatch = false;
191  for (l1t::TauBxCollection::const_iterator tj = l1eTauJets->begin(); tj != l1eTauJets->end(); tj++) {
192  if (reco::deltaR(pixelTrackRefs[iS]->momentum().eta(),
193  pixelTrackRefs[iS]->momentum().phi(),
194  tj->momentum().eta(),
195  tj->momentum().phi()) > drMaxL1Track_)
196  continue;
197  selj = tj;
198  tmatch = true;
199  } //loop over L1 tau
200 #ifdef EDM_ML_DEBUG
201  edm::LogVerbatim("IsoTrack") << "tMatch " << tmatch;
202 #endif
203  //propagate seed track to ECAL surface:
204  std::pair<double, double> seedCooAtEC;
205  // in case vertex is found:
206  if (found)
207  seedCooAtEC = GetEtaPhiAtEcal(pixelTrackRefs[iS]->eta(),
208  pixelTrackRefs[iS]->phi(),
209  pixelTrackRefs[iS]->pt(),
210  pixelTrackRefs[iS]->charge(),
211  vitSel->z());
212  //in case vertex is not found:
213  else
214  seedCooAtEC = GetEtaPhiAtEcal(pixelTrackRefs[iS]->eta(),
215  pixelTrackRefs[iS]->phi(),
216  pixelTrackRefs[iS]->pt(),
217  pixelTrackRefs[iS]->charge(),
218  0);
219  seedAtEC seed(iS, (tmatch || vtxMatch), seedCooAtEC.first, seedCooAtEC.second);
220  VecSeedsatEC.push_back(seed);
221 #ifdef EDM_ML_DEBUG
222  edm::LogVerbatim("IsoTrack") << "Seed " << seedCooAtEC.first << seedCooAtEC.second;
223 #endif
224  }
225  for (unsigned int i = 0; i < VecSeedsatEC.size(); i++) {
226  unsigned int iSeed = VecSeedsatEC[i].index;
227  if (!VecSeedsatEC[i].ok)
228  continue;
229  if (pixelTrackRefs[iSeed]->p() < minPTrackValue_)
230  continue;
232  for (l1t::TauBxCollection::const_iterator tj = l1eTauJets->begin(); tj != l1eTauJets->end(); tj++) {
233  if (reco::deltaR(pixelTrackRefs[iSeed]->momentum().eta(),
234  pixelTrackRefs[iSeed]->momentum().phi(),
235  tj->momentum().eta(),
236  tj->momentum().phi()) > drMaxL1Track_)
237  continue;
238  selj = tj;
239  } //loop over L1 tau
240  double maxP = 0;
241  double sumP = 0;
242  for (unsigned int j = 0; j < VecSeedsatEC.size(); j++) {
243  if (i == j)
244  continue;
245  unsigned int iSurr = VecSeedsatEC[j].index;
246  //define preliminary cone around seed track impact point from which tracks will be extrapolated:
247  if (reco::deltaR(pixelTrackRefs[iSeed]->eta(),
248  pixelTrackRefs[iSeed]->phi(),
249  pixelTrackRefs[iSurr]->eta(),
250  pixelTrackRefs[iSurr]->phi()) > prelimCone_)
251  continue;
252  double minDZ2(1000);
253  bool found(false);
254  reco::VertexCollection::const_iterator vitSel2;
255  for (reco::VertexCollection::const_iterator vit = pVert->begin(); vit != pVert->end(); vit++) {
256  if (std::abs(pixelTrackRefs[iSurr]->dz(vit->position())) < minDZ2) {
257  minDZ2 = std::abs(pixelTrackRefs[iSurr]->dz(vit->position()));
258  vitSel2 = vit;
259  found = true;
260  }
261  }
262  //cut ot dXY:
263  if (found && std::abs(pixelTrackRefs[iSurr]->dxy(vitSel2->position())) > vtxCutIsol_)
264  continue;
265  //calculate distance at ECAL surface and update isolation:
266  if (getDistInCM(VecSeedsatEC[i].eta, VecSeedsatEC[i].phi, VecSeedsatEC[j].eta, VecSeedsatEC[j].phi) <
268  sumP += pixelTrackRefs[iSurr]->p();
269  if (pixelTrackRefs[iSurr]->p() > maxP)
270  maxP = pixelTrackRefs[iSurr]->p();
271  }
272  }
275  pixelTrackRefs[iSeed], l1t::TauRef(l1eTauJets, selj - l1eTauJets->begin()), maxP, sumP);
276  newCandidate.setEtaPhiEcal(VecSeedsatEC[i].eta, VecSeedsatEC[i].phi);
277  trackCollection->push_back(newCandidate);
278  ntr++;
279  }
280  }
281 #ifdef EDM_ML_DEBUG
282  edm::LogVerbatim("IsoTrack") << "Number of Isolated Track " << ntr;
283 #endif
284  // put the product in the event
285  theEvent.put(std::move(trackCollection));
286 }
287 
288 double IsolatedPixelTrackCandidateL1TProducer::getDistInCM(double eta1, double phi1, double eta2, double phi2) {
289  double Rec;
290  double theta1 = 2 * atan(exp(-eta1));
291  double theta2 = 2 * atan(exp(-eta2));
292  if (std::abs(eta1) < 1.479)
293  Rec = rEB_; //radius of ECAL barrel
294  else if (std::abs(eta1) > 1.479 && std::abs(eta1) < 7.0)
295  Rec = tan(theta1) * zEE_; //distance from IP to ECAL endcap
296  else
297  return 1000;
298 
299  //|vect| times tg of acos(scalar product)
300  double angle =
301  acos((sin(theta1) * sin(theta2) * (sin(phi1) * sin(phi2) + cos(phi1) * cos(phi2)) + cos(theta1) * cos(theta2)));
302  if (angle < M_PI_2)
303  return std::abs((Rec / sin(theta1)) * tan(angle));
304  else
305  return 1000;
306 }
307 
309  double etaIP, double phiIP, double pT, int charge, double vtxZ) {
310  double deltaPhi = 0;
311  double etaEC = 100;
312  double phiEC = 100;
313 
314  double Rcurv = 9999999;
315  if (bfVal_ != 0)
316  Rcurv = pT * 33.3 * 100 / (bfVal_ * 10); //r(m)=pT(GeV)*33.3/B(kG)
317 
318  double ecDist = zEE_; //distance to ECAL andcap from IP (cm), 317 - ecal (not preshower), preshower -300
319  double ecRad = rEB_; //radius of ECAL barrel (cm)
320  double theta = 2 * atan(exp(-etaIP));
321  double zNew = 0;
322  if (theta > M_PI_2)
323  theta = M_PI - theta;
324  if (std::abs(etaIP) < ebEtaBoundary_) {
325  if ((0.5 * ecRad / Rcurv) > 1) {
326  etaEC = 10000;
327  deltaPhi = 0;
328  } else {
329  deltaPhi = -charge * asin(0.5 * ecRad / Rcurv);
330  double alpha1 = 2 * asin(0.5 * ecRad / Rcurv);
331  double z = ecRad / tan(theta);
332  if (etaIP > 0)
333  zNew = z * (Rcurv * alpha1) / ecRad + vtxZ; //new z-coordinate of track
334  else
335  zNew = -z * (Rcurv * alpha1) / ecRad + vtxZ; //new z-coordinate of track
336  double zAbs = std::abs(zNew);
337  if (zAbs < ecDist) {
338  etaEC = -log(tan(0.5 * atan(ecRad / zAbs)));
339  deltaPhi = -charge * asin(0.5 * ecRad / Rcurv);
340  }
341  if (zAbs > ecDist) {
342  zAbs = (std::abs(etaIP) / etaIP) * ecDist;
343  double Zflight = std::abs(zAbs - vtxZ);
344  double alpha = (Zflight * ecRad) / (z * Rcurv);
345  double Rec = 2 * Rcurv * sin(alpha / 2);
346  deltaPhi = -charge * alpha / 2;
347  etaEC = -log(tan(0.5 * atan(Rec / ecDist)));
348  }
349  }
350  } else {
351  zNew = (std::abs(etaIP) / etaIP) * ecDist;
352  double Zflight = std::abs(zNew - vtxZ);
353  double Rvirt = std::abs(Zflight * tan(theta));
354  double Rec = 2 * Rcurv * sin(Rvirt / (2 * Rcurv));
355  deltaPhi = -(charge) * (Rvirt / (2 * Rcurv));
356  etaEC = -log(tan(0.5 * atan(Rec / ecDist)));
357  }
358 
359  if (zNew < 0)
360  etaEC = -etaEC;
361  phiEC = phiIP + deltaPhi;
362 
363  if (phiEC < -M_PI)
364  phiEC += M_2_PI;
365  if (phiEC > M_PI)
366  phiEC -= M_2_PI;
367 
368  std::pair<double, double> retVal(etaEC, phiEC);
369  return retVal;
370 }
Vector3DBase
Definition: Vector3DBase.h:8
IsolatedPixelTrackCandidateL1TProducer::maxPForIsolationValue_
const double maxPForIsolationValue_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:86
Handle.h
mps_fire.i
i
Definition: mps_fire.py:428
geometryCSVtoXML.zz
zz
Definition: geometryCSVtoXML.py:19
EcalBarrelGeometry.h
MessageLogger.h
IsolatedPixelTrackCandidateL1TProducer::bfVal_
double bfVal_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:92
IsolatedPixelTrackCandidateL1TProducer::seedAtEC
Definition: IsolatedPixelTrackCandidateL1TProducer.h:64
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
edm::Run
Definition: Run.h:45
BXVector::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: BXVector.h:18
edm
HLT enums.
Definition: AlignableModifier.h:19
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
IsolatedPixelTrackCandidateL1TProducer::tok_bFieldH_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_bFieldH_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:75
IsolatedPixelTrackCandidateL1TProducer::tok_l1_
const edm::EDGetTokenT< l1t::TauBxCollection > tok_l1_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:72
VolumeBasedMagneticField
Definition: VolumeBasedMagneticField.h:18
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
alpha
float alpha
Definition: AMPTWrapper.h:105
IsolatedPixelTrackCandidateL1TProducer::IsolatedPixelTrackCandidateL1TProducer
IsolatedPixelTrackCandidateL1TProducer(const edm::ParameterSet &ps)
Definition: IsolatedPixelTrackCandidateL1TProducer.cc:31
reco::IsolatedPixelTrackCandidate
Definition: IsolatedPixelTrackCandidate.h:23
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
ProducerES_cfi.BField
BField
Definition: ProducerES_cfi.py:83
watchdog.const
const
Definition: watchdog.py:83
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::Handle< reco::TrackCollection >
trigger::TriggerRefsCollections::getObjects
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
Definition: TriggerRefsCollections.h:590
EcalBarrel
Definition: EcalSubdetector.h:10
IsolatedPixelTrackCandidateL1TProducer::tauUnbiasCone_
const double tauUnbiasCone_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:84
IsolatedPixelTrackCandidateL1TProducer::tok_vert_
const edm::EDGetTokenT< reco::VertexCollection > tok_vert_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:73
edm::Ref< TrackCollection >
IsolatedPixelTrackCandidateL1TProducer.h
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
fileCollector.seed
seed
Definition: fileCollector.py:127
config
Definition: config.py:1
VolumeBasedMagneticField::inTesla
GlobalVector inTesla(const GlobalPoint &g) const override
Field value ad specified global point, in Tesla.
Definition: VolumeBasedMagneticField.cc:40
CaloGeometry
Definition: CaloGeometry.h:21
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
RecoMuonValidator_cfi.maxP
maxP
Definition: RecoMuonValidator_cfi.py:34
IsolatedPixelTrackCandidateL1TProducer::vtxCutIsol_
const double vtxCutIsol_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:82
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
PVValHelper::eta
Definition: PVValidationHelpers.h:70
PVValHelper::pT
Definition: PVValidationHelpers.h:71
HLT_FULL_cff.eta2
eta2
Definition: HLT_FULL_cff.py:9542
DDAxes::z
VolumeBasedMagneticField.h
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:535
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
ParameterSetDescription.h
BXVector::begin
const_iterator begin(int bx) const
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::vector_transform
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
Definition: transform.h:11
EcalEndcap
Definition: EcalSubdetector.h:10
HLT_FULL_cff.eta1
eta1
Definition: HLT_FULL_cff.py:9541
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
IsolatedPixelTrackCandidateL1TProducer::rEB_
double rEB_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:90
IsolatedPixelTrackCandidateL1TProducer::produce
void produce(edm::Event &evt, const edm::EventSetup &es) override
Definition: IsolatedPixelTrackCandidateL1TProducer.cc:99
CaloSubdetectorGeometry.h
BXVector::end
const_iterator end(int bx) const
edm::ParameterSet
Definition: ParameterSet.h:47
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
trigger::TriggerL1Tau
Definition: TriggerTypeDefs.h:49
deltaR.h
l1t
delete x;
Definition: CaloConfig.h:22
EcalEndcapGeometry.h
reco::IsolatedPixelTrackCandidate::setEtaPhiEcal
void setEtaPhiEcal(double eta, double phi)
eta, phi at ECAL surface
Definition: IsolatedPixelTrackCandidate.h:161
IsolatedPixelTrackCandidateL1TProducer::tauAssocCone_
const double tauAssocCone_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:83
IsolatedPixelTrackCandidateL1TProducer::prelimCone_
const double prelimCone_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:79
l1t::TauBxCollection
BXVector< Tau > TauBxCollection
Definition: Tau.h:10
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
trigger::TriggerL1Jet
Definition: TriggerTypeDefs.h:48
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
IsolatedPixelTrackCandidateL1TProducer::tok_hlt_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_hlt_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:71
IsolatedPixelTrackCandidateL1TProducer::~IsolatedPixelTrackCandidateL1TProducer
~IsolatedPixelTrackCandidateL1TProducer() override
Definition: IsolatedPixelTrackCandidateL1TProducer.cc:57
IsolatedPixelTrackCandidateL1TProducer::tok_geom_
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:76
edm::EventSetup
Definition: EventSetup.h:58
DetId::Ecal
Definition: DetId.h:27
IsolatedPixelTrackCandidateL1TProducer::pixelIsolationConeSizeAtEC_
const double pixelIsolationConeSizeAtEC_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:80
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
DDAxes::phi
IsolatedPixelTrackCandidateL1TProducer::getDistInCM
double getDistInCM(double eta1, double phi1, double eta2, double phi2)
Definition: IsolatedPixelTrackCandidateL1TProducer.cc:288
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
IsolatedPixelTrackCandidateL1TProducer::ebEtaBoundary_
const double ebEtaBoundary_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:87
PVValHelper::dxy
Definition: PVValidationHelpers.h:48
PVValHelper::dz
Definition: PVValidationHelpers.h:51
IsolatedPixelTrackCandidateL1TProducer::vtxCutSeed_
const double vtxCutSeed_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:81
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
IsolatedPixelTrackCandidateL1TProducer::GetEtaPhiAtEcal
std::pair< double, double > GetEtaPhiAtEcal(double etaIP, double phiIP, double pT, int charge, double vtxZ)
Definition: IsolatedPixelTrackCandidateL1TProducer.cc:308
transform.h
angle
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
reco::deltaR
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
Exception.h
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
IsolatedPixelTrackCandidateL1TProducer::toks_pix_
const std::vector< edm::EDGetTokenT< reco::TrackCollection > > toks_pix_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:74
trigger
Definition: HLTPrescaleTableCond.h:8
M_PI_2
#define M_PI_2
Definition: CSCGattiFunction.cc:6
IsolatedPixelTrackCandidateL1TProducer::zEE_
double zEE_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:91
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
IsolatedPixelTrackCandidateL1TProducer::beginRun
void beginRun(const edm::Run &, const edm::EventSetup &) override
Definition: IsolatedPixelTrackCandidateL1TProducer.cc:79
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
SiPixelMonitorTrack_cfi.tracksrc
tracksrc
Definition: SiPixelMonitorTrack_cfi.py:12
edm::Event
Definition: Event.h:73
MagneticField
Definition: MagneticField.h:19
dttmaxenums::R
Definition: DTTMax.h:29
IsolatedPixelTrackCandidateFwd.h
edm::InputTag
Definition: InputTag.h:15
IsolatedPixelTrackCandidateL1TProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: IsolatedPixelTrackCandidateL1TProducer.cc:59
IsolatedPixelTrackCandidateL1TProducer::minPTrackValue_
const double minPTrackValue_
Definition: IsolatedPixelTrackCandidateL1TProducer.h:85