CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
TotemRPLocalTrackFitter Class Reference

Fits tracks trough a single RP. More...

Inheritance diagram for TotemRPLocalTrackFitter:
edm::stream::EDProducer<>

Public Member Functions

void produce (edm::Event &e, const edm::EventSetup &c) override
 
 TotemRPLocalTrackFitter (const edm::ParameterSet &conf)
 
 ~TotemRPLocalTrackFitter () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &)
 

Private Attributes

TotemRPLocalTrackFitterAlgorithm fitter_
 The instance of the fitter module. More...
 
edm::ESWatcher< VeryForwardRealGeometryRecordgeometryWatcher
 A watcher to detect geometry changes. More...
 
edm::EDGetTokenT< edm::DetSetVector< TotemRPUVPattern > > patternCollectionToken
 
edm::InputTag tagUVPattern
 Selection of the pattern-recognition module. More...
 
int verbosity_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Fits tracks trough a single RP.

Definition at line 34 of file TotemRPLocalTrackFitter.cc.

Constructor & Destructor Documentation

◆ TotemRPLocalTrackFitter()

TotemRPLocalTrackFitter::TotemRPLocalTrackFitter ( const edm::ParameterSet conf)
explicit

Definition at line 66 of file TotemRPLocalTrackFitter.cc.

67  : verbosity_(conf.getParameter<int>("verbosity")), fitter_(conf) {
68  tagUVPattern = conf.getParameter<edm::InputTag>("tagUVPattern");
69  patternCollectionToken = consumes<DetSetVector<TotemRPUVPattern>>(tagUVPattern);
70 
71  produces<DetSetVector<TotemRPLocalTrack>>();
72 }

References edm::ParameterSet::getParameter(), patternCollectionToken, and tagUVPattern.

◆ ~TotemRPLocalTrackFitter()

TotemRPLocalTrackFitter::~TotemRPLocalTrackFitter ( )
inlineoverride

Definition at line 44 of file TotemRPLocalTrackFitter.cc.

Member Function Documentation

◆ fillDescriptions()

void TotemRPLocalTrackFitter::fillDescriptions ( edm::ConfigurationDescriptions descr)
static

Definition at line 178 of file TotemRPLocalTrackFitter.cc.

178  {
180 
181  desc.add<edm::InputTag>("tagUVPattern", edm::InputTag("totemRPUVPatternFinder"))
182  ->setComment("input U-V patterns collection to retrieve");
183  desc.add<int>("verbosity", 0);
184 
185  descr.add("totemRPLocalTrackFitter", desc);
186 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLT_2018_cff::InputTag.

◆ produce()

void TotemRPLocalTrackFitter::produce ( edm::Event e,
const edm::EventSetup c 
)
override

Definition at line 76 of file TotemRPLocalTrackFitter.cc.

76  {
77  if (verbosity_ > 5)
78  LogVerbatim("TotemRPLocalTrackFitter") << ">> TotemRPLocalTrackFitter::produce";
79 
80  // get geometry
83 
85  fitter_.reset();
86 
87  // get input
89  e.getByToken(patternCollectionToken, input);
90 
91  // run fit for each RP
93 
94  for (const auto &rpv : *input) {
95  CTPPSDetId rpId(rpv.detId());
96 
97  // is U-V association unique?
98  unsigned int n_U = 0, n_V = 0;
99  unsigned int idx_U = 0, idx_V = 0;
100  for (unsigned int pi = 0; pi < rpv.size(); pi++) {
101  const TotemRPUVPattern &pattern = rpv[pi];
102 
103  // here it would make sense to skip non-fittable patterns, but to keep the logic
104  // equivalent to version 7_0_4, nothing is skipped
105  /*
106  if (pattern.fittable() == false)
107  continue;
108  */
109 
110  switch (pattern.projection()) {
112  n_U++;
113  idx_U = pi;
114  break;
115 
117  n_V++;
118  idx_V = pi;
119  break;
120 
121  default:
122  break;
123  }
124  }
125 
126  if (n_U != 1 || n_V != 1) {
127  if (verbosity_)
128  LogVerbatim("TotemRPLocalTrackFitter")
129  << ">> TotemRPLocalTrackFitter::produce > Impossible to combine U and V patterns in RP " << rpId
130  << " (n_U=" << n_U << ", n_V=" << n_V << ").";
131 
132  continue;
133  }
134 
135  // again, to follow the logic from version 7_0_4, skip the non-fittable patterns here
136  if (!rpv[idx_U].fittable() || !rpv[idx_V].fittable())
137  continue;
138 
139  // combine U and V hits
141  for (auto &ids : rpv[idx_U].hits()) {
142  auto &ods = hits.find_or_insert(ids.detId());
143  for (auto &h : ids)
144  ods.push_back(h);
145  }
146 
147  for (auto &ids : rpv[idx_V].hits()) {
148  auto &ods = hits.find_or_insert(ids.detId());
149  for (auto &h : ids)
150  ods.push_back(h);
151  }
152 
153  // run fit
154  double z0 = geometry->rpTranslation(rpId).z();
155 
158 
159  DetSet<TotemRPLocalTrack> &ds = output.find_or_insert(rpId);
160  ds.push_back(track);
161 
162  if (verbosity_ > 5) {
163  unsigned int n_hits = 0;
164  for (auto &hds : track.hits())
165  n_hits += hds.size();
166 
167  LogVerbatim("TotemRPLocalTrackFitter")
168  << " track in RP " << rpId << ": valid = " << track.isValid() << ", hits = " << n_hits;
169  }
170  }
171 
172  // save results
173  e.put(make_unique<DetSetVector<TotemRPLocalTrack>>(output));
174 }

References edm::ESWatcher< T >::check(), MillePedeFileConverter_cfg::e, fitter_, TotemRPLocalTrackFitterAlgorithm::fitTrack(), geometry, geometryWatcher, get, hfClusterShapes_cfi::hits, input, convertSQLitetoXML_cfg::output, topSingleLeptonDQM_PU_cfi::pattern, patternCollectionToken, pi, TotemRPUVPattern::projU, TotemRPUVPattern::projV, edm::DetSet< T >::push_back(), TotemRPLocalTrackFitterAlgorithm::reset(), year_2016_postTS2_cff::rpId, singleTopDQM_cfi::setup, HLT_2018_cff::track, verbosity_, and HLTMuonOfflineAnalyzer_cfi::z0.

Member Data Documentation

◆ fitter_

TotemRPLocalTrackFitterAlgorithm TotemRPLocalTrackFitter::fitter_
private

The instance of the fitter module.

Definition at line 61 of file TotemRPLocalTrackFitter.cc.

Referenced by produce().

◆ geometryWatcher

edm::ESWatcher<VeryForwardRealGeometryRecord> TotemRPLocalTrackFitter::geometryWatcher
private

A watcher to detect geometry changes.

Definition at line 58 of file TotemRPLocalTrackFitter.cc.

Referenced by produce().

◆ patternCollectionToken

edm::EDGetTokenT<edm::DetSetVector<TotemRPUVPattern> > TotemRPLocalTrackFitter::patternCollectionToken
private

Definition at line 55 of file TotemRPLocalTrackFitter.cc.

Referenced by produce(), and TotemRPLocalTrackFitter().

◆ tagUVPattern

edm::InputTag TotemRPLocalTrackFitter::tagUVPattern
private

Selection of the pattern-recognition module.

Definition at line 53 of file TotemRPLocalTrackFitter.cc.

Referenced by TotemRPLocalTrackFitter().

◆ verbosity_

int TotemRPLocalTrackFitter::verbosity_
private

Definition at line 50 of file TotemRPLocalTrackFitter.cc.

Referenced by produce().

TotemRPUVPattern::projV
Definition: TotemRPUVPattern.h:34
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
VeryForwardRealGeometryRecord
Event setup record containing the real (actual) geometry information.
Definition: VeryForwardRealGeometryRecord.h:22
edm::DetSet::push_back
void push_back(const T &t)
Definition: DetSet.h:66
edm::DetSetVector
Definition: DetSetVector.h:61
geometry
ESHandle< TrackerGeometry > geometry
Definition: TkLasBeamFitter.cc:200
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
input
static const std::string input
Definition: EdmProvDump.cc:48
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
edm::DetSet
Definition: DetSet.h:23
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
TotemRPLocalTrackFitterAlgorithm::fitTrack
bool fitTrack(const edm::DetSetVector< TotemRPRecHit > &hits, double z_0, const CTPPSGeometry &tot_geom, TotemRPLocalTrack &fitted_track)
performs the track fit, returns true if successful
Definition: TotemRPLocalTrackFitterAlgorithm.cc:63
geometry
Definition: geometry.py:1
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
year_2016_postTS2_cff.rpId
rpId
Definition: year_2016_postTS2_cff.py:23
edm::Handle
Definition: AssociativeIterator.h:50
TotemRPLocalTrackFitter::geometryWatcher
edm::ESWatcher< VeryForwardRealGeometryRecord > geometryWatcher
A watcher to detect geometry changes.
Definition: TotemRPLocalTrackFitter.cc:58
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
h
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
edm::ESHandle
Definition: DTSurvey.h:22
TotemRPLocalTrackFitterAlgorithm::reset
void reset()
Resets the reconstruction-data cache.
Definition: TotemRPLocalTrackFitterAlgorithm.cc:26
HLTMuonOfflineAnalyzer_cfi.z0
z0
Definition: HLTMuonOfflineAnalyzer_cfi.py:98
TotemRPUVPattern
A linear pattern in U or V projection. The intercept b is taken at the middle of a RP: (geometry->Get...
Definition: TotemRPUVPattern.h:22
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
CTPPSDetId
Base class for CTPPS detector IDs.
Definition: CTPPSDetId.h:31
edm::LogVerbatim
Definition: MessageLogger.h:297
topSingleLeptonDQM_PU_cfi.pattern
pattern
Definition: topSingleLeptonDQM_PU_cfi.py:39
get
#define get
TotemRPLocalTrackFitter::fitter_
TotemRPLocalTrackFitterAlgorithm fitter_
The instance of the fitter module.
Definition: TotemRPLocalTrackFitter.cc:61
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
TotemRPLocalTrackFitter::tagUVPattern
edm::InputTag tagUVPattern
Selection of the pattern-recognition module.
Definition: TotemRPLocalTrackFitter.cc:53
TotemRPLocalTrack
A track fit through a single RP.
Definition: TotemRPLocalTrack.h:31
TotemRPUVPattern::projU
Definition: TotemRPUVPattern.h:34
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
pi
const Double_t pi
Definition: trackSplitPlot.h:36
TotemRPLocalTrackFitter::patternCollectionToken
edm::EDGetTokenT< edm::DetSetVector< TotemRPUVPattern > > patternCollectionToken
Definition: TotemRPLocalTrackFitter.cc:55
edm::InputTag
Definition: InputTag.h:15
TotemRPLocalTrackFitter::verbosity_
int verbosity_
Definition: TotemRPLocalTrackFitter.cc:50
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37