CMS 3D CMS Logo

Stage1Layer2SingleTrackHI.cc
Go to the documentation of this file.
1 // Stage1Layer2SingleTrackHI.cc
2 // Authors: Michael Northup
3 // Alex Barbieri
4 //
5 // This is a special-purpose single-track seed trigger which uses the
6 // Tau channel to communicate with GT. Be wary of any naming scheme
7 // because we are masquerading as both a tau and track trigger when
8 // we are really just looking for the hottest region.
9 
10 
13 
17 
18 
20 
21 void findRegions(const std::vector<l1t::CaloRegion> * sr, std::vector<l1t::Tau> * t, const int etaMask);
22 
23 void l1t::Stage1Layer2SingleTrackHI::processEvent(const std::vector<l1t::CaloEmCand> & clusters,
24  const std::vector<l1t::CaloRegion> & regions,
25  std::vector<l1t::Tau> * isoTaus,
26  std::vector<l1t::Tau> * taus)
27 {
28  int etaMask = params_->tauRegionMask();
29 
30  std::vector<l1t::CaloRegion> subRegions;
31  std::vector<l1t::Tau> preGtEtaTaus;
32  std::vector<l1t::Tau> preGtTaus;
33  std::vector<l1t::Tau> unsortedTaus;
34 
35 
36  HICaloRingSubtraction(regions, &subRegions, params_);
37  findRegions(&subRegions, &preGtTaus, etaMask);
38  TauToGtPtScales(params_, &preGtTaus, &unsortedTaus);
39  SortTaus(&unsortedTaus, &preGtEtaTaus);
40  //SortTaus(preGtTaus, unsortedTaus);
41  //TauToGtPtScales(params_, unsortedTaus, preGtEtaTaus);
42  TauToGtEtaScales(params_, &preGtEtaTaus, taus);
43 
44  isoTaus->resize(4);
45  //taus->resize(4);
46 
47 }
48 
49 void findRegions(const std::vector<l1t::CaloRegion> * sr, std::vector<l1t::Tau> * t, const int etaMask)
50 {
51  for(std::vector<l1t::CaloRegion>::const_iterator region = sr->begin(); region != sr->end(); region++)
52  {
53  int tauEta = region->hwEta();
54  if(tauEta < 4 || tauEta > 17) continue; // taus CANNOT be in the forward region
55  if((etaMask & (1<<tauEta))>>tauEta) continue;
56 
57  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > TauLorentz(0,0,0,0);
58  l1t::Tau taucand(*&TauLorentz,region->hwPt(),region->hwEta(),region->hwPhi());
59 
60  t->push_back(taucand);
61  }
62 }
Definition: Tau.h:21
void SortTaus(std::vector< l1t::Tau > *input, std::vector< l1t::Tau > *output)
Stage1Layer2SingleTrackHI(CaloParamsHelper const *params)
CaloParamsHelper const *const params_
void findRegions(const std::vector< l1t::CaloRegion > *sr, std::vector< l1t::Tau > *t, const int etaMask)
void processEvent(const std::vector< l1t::CaloEmCand > &clusters, const std::vector< l1t::CaloRegion > &regions, std::vector< l1t::Tau > *isoTaus, std::vector< l1t::Tau > *taus) override
void TauToGtEtaScales(CaloParamsHelper const *params, const std::vector< l1t::Tau > *input, std::vector< l1t::Tau > *output)
void TauToGtPtScales(CaloParamsHelper const *params, const std::vector< l1t::Tau > *input, std::vector< l1t::Tau > *output)
void HICaloRingSubtraction(const std::vector< l1t::CaloRegion > &regions, std::vector< l1t::CaloRegion > *subRegions, CaloParamsHelper const *params)
------------— For heavy ion ----------------------------------—