CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
< DTRecSegment4DCollection
recHits4DToken_
 
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 ( const edm::ParameterSet pset)

Constructor.

Definition at line 22 of file DTSegment4DT0Corrector.cc.

References gather_cfg::cout, debug, edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().

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 }
T getUntrackedParameter(std::string const &, T const &) const
DTSegmentUpdator * theUpdator
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
tuple cout
Definition: gather_cfg.py:144
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_
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
tuple cout
Definition: gather_cfg.py:144

Member Function Documentation

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 edm::OwnVector< T, P >::begin(), DTRecSegment4D::clone(), gather_cfg::cout, debug, edm::OwnVector< T, P >::end(), eostools::move(), edm::OwnVector< T, P >::push_back(), sistrip::SpyUtilities::range(), and mps_fire::result.

45  {
46  // Get the 4D Segment from the event
48  event.getByToken(recHits4DToken_, all4DSegments);
49 
50  // Percolate the setup
51  theUpdator->setES(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
const uint16_t range(const Frame &aFrame)
tuple result
Definition: mps_fire.py:311
iterator begin()
Definition: OwnVector.h:280
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
void push_back(D *&d)
Definition: OwnVector.h:326
void setES(const edm::EventSetup &setup)
set the setup
def move
Definition: eostools.py:511
iterator end()
Definition: OwnVector.h:285
tuple cout
Definition: gather_cfg.py:144
void update(DTRecSegment4D *seg, const bool calcT0, bool allow3par) const
recompute hits position and refit the segment4D
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_

Member Data Documentation

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

Definition at line 38 of file DTSegment4DT0Corrector.h.

DTSegmentUpdator* DTSegment4DT0Corrector::theUpdator
private

Definition at line 41 of file DTSegment4DT0Corrector.h.