CMS 3D CMS Logo

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

#include <DTSegment4DT0Corrector.h>

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

Public Member Functions

 DTSegment4DT0Corrector (const edm::ParameterSet &)
 Constructor. More...
 
void produce (edm::Event &event, const edm::EventSetup &setup) override
 The method which produces the 4D rec segments corrected for t0 offset. More...
 
 ~DTSegment4DT0Corrector () override
 Destructor. More...
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

bool debug
 
edm::EDGetTokenT< DTRecSegment4DCollectionrecHits4DToken_
 
DTSegmentUpdatortheUpdator
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Builds the segments in the DT chambers.

Author
Mario Pelliccioni - INFN Torino pelli.nosp@m.cci@.nosp@m.cern..nosp@m.ch

Definition at line 20 of file DTSegment4DT0Corrector.h.

Constructor & Destructor Documentation

◆ DTSegment4DT0Corrector()

DTSegment4DT0Corrector::DTSegment4DT0Corrector ( const edm::ParameterSet pset)

Constructor.

Definition at line 22 of file DTSegment4DT0Corrector.cc.

References gather_cfg::cout, debug, and muonDTDigis_cfi::pset.

22  {
23  produces<DTRecSegment4DCollection>();
24 
25  // debug parameter
26  debug = pset.getUntrackedParameter<bool>("debug");
27 
28  if (debug)
29  cout << "[DTSegment4DT0Corrector] Constructor called" << endl;
30 
31  // the name of the 4D rec hits collection
32  recHits4DToken_ = consumes<DTRecSegment4DCollection>(pset.getParameter<InputTag>("recHits4DLabel"));
33 
34  // the updator
35  theUpdator = new DTSegmentUpdator(pset, consumesCollector());
36 }
DTSegmentUpdator * theUpdator
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_

◆ ~DTSegment4DT0Corrector()

DTSegment4DT0Corrector::~DTSegment4DT0Corrector ( )
override

Destructor.

Definition at line 39 of file DTSegment4DT0Corrector.cc.

References gather_cfg::cout, and debug.

39  {
40  if (debug)
41  cout << "[DTSegment4DT0Corrector] Destructor called" << endl;
42  delete theUpdator;
43 }
DTSegmentUpdator * theUpdator

Member Function Documentation

◆ produce()

void DTSegment4DT0Corrector::produce ( edm::Event event,
const edm::EventSetup setup 
)
override

The method which produces the 4D rec segments corrected for t0 offset.

Definition at line 45 of file DTSegment4DT0Corrector.cc.

References DTRecSegment4D::clone(), gather_cfg::cout, debug, eostools::move(), FastTimerService_cff::range, mps_fire::result, and singleTopDQM_cfi::setup.

45  {
46  // Get the 4D Segment from the event
48  event.getByToken(recHits4DToken_, all4DSegments);
49 
50  // Percolate the setup
52 
53  // Create the pointer to the collection which will store the rechits
54  auto segments4DCollection = std::make_unique<DTRecSegment4DCollection>();
55 
56  // Iterate over the input DTSegment4D
58 
59  if (debug)
60  cout << "[DTSegment4DT0Corrector] Starting to loop over segments" << endl;
61 
62  for (chamberId = all4DSegments->id_begin(); chamberId != all4DSegments->id_end(); ++chamberId) {
64 
65  // Get the range for the corresponding ChamerId
66  DTRecSegment4DCollection::range range = all4DSegments->get(*chamberId);
67 
68  // Loop over the rechits of this ChamberId
69  for (DTRecSegment4DCollection::const_iterator segment4D = range.first; segment4D != range.second; ++segment4D) {
70  DTRecSegment4D tmpseg = *segment4D;
71 
72  DTRecSegment4D* newSeg = tmpseg.clone();
73 
74  if (newSeg == nullptr)
75  continue;
76 
77  theUpdator->update(newSeg, true, false);
78  result.push_back(*newSeg);
79  }
80 
81  segments4DCollection->put(*chamberId, result.begin(), result.end());
82  }
83 
84  if (debug)
85  cout << "[DTSegment4DT0Corrector] Saving modified segments into the event" << endl;
86 
87  // Load the output in the Event
88  event.put(std::move(segments4DCollection));
89 }
DTRecSegment4D * clone() const override
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:50
DTSegmentUpdator * theUpdator
identifier iterator
Definition: RangeMap.h:130
void update(DTRecSegment4D *seg, const bool calcT0, bool allow3par) const
recompute hits position and refit the segment4D
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
void setES(const edm::EventSetup &setup)
set the setup
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

◆ debug

bool DTSegment4DT0Corrector::debug
private

◆ recHits4DToken_

edm::EDGetTokenT<DTRecSegment4DCollection> DTSegment4DT0Corrector::recHits4DToken_
private

Definition at line 38 of file DTSegment4DT0Corrector.h.

◆ theUpdator

DTSegmentUpdator* DTSegment4DT0Corrector::theUpdator
private

Definition at line 41 of file DTSegment4DT0Corrector.h.