CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
helper::MuonCollectionStoreManager Struct Reference

#include <MuonSelector.h>

Public Types

typedef reco::MuonCollection collection
 

Public Member Functions

template<typename I >
void cloneAndStore (const I &begin, const I &end, edm::Event &evt)
 Method to clone tracks, track extras and their hits and clusters. typename I = this is an interator over a Muon collection, **I needs to dereference into a Muon. More...
 
bool cloneClusters ()
 
 MuonCollectionStoreManager (const edm::Handle< reco::MuonCollection > &)
 
edm::OrphanHandle< reco::MuonCollectionput (edm::Event &evt)
 Put tracks, track extras and hits+clusters into the event. More...
 
void setCloneClusters (bool w)
 
size_t size () const
 Get the size. More...
 

Private Member Functions

bool clusterRefsOK (const reco::Track &track) const
 Check if all references to silicon strip/pixel clusters are available. More...
 
void processMuon (const reco::Muon &mu)
 Process a single muon. More...
 

Private Attributes

bool cloneClusters_
 Clone clusters, or not? Default: true. More...
 
ClusterStorer clusterStorer_
 
size_t hidx_
 
size_t higbdx_
 
size_t hisadx_
 
size_t id_
 
size_t idx_
 
size_t igbd_
 
size_t igbdx_
 
size_t isad_
 
size_t isadx_
 
TrackingRecHitRefProd rGBHits_
 
reco::TrackExtraRefProd rGBTrackExtras_
 
reco::TrackRefProd rGBTracks_
 
TrackingRecHitRefProd rHits_
 
reco::MuonRefProd rMuons_
 
TrackingRecHitRefProd rSAHits_
 
reco::TrackExtraRefProd rSATrackExtras_
 
reco::TrackRefProd rSATracks_
 
reco::TrackExtraRefProd rTrackExtras_
 
reco::TrackRefProd rTracks_
 
std::unique_ptr< reco::TrackCollectionselGlobalMuonTracks_
 
std::unique_ptr< reco::TrackExtraCollectionselGlobalMuonTracksExtras_
 
std::unique_ptr< TrackingRecHitCollectionselGlobalMuonTracksHits_
 
std::unique_ptr< reco::MuonCollectionselMuons_
 
std::unique_ptr< edmNew::DetSetVector< SiPixelCluster > > selPixelClusters_
 
std::unique_ptr< reco::TrackCollectionselStandAloneTracks_
 
std::unique_ptr< reco::TrackExtraCollectionselStandAloneTracksExtras_
 
std::unique_ptr< TrackingRecHitCollectionselStandAloneTracksHits_
 
std::unique_ptr< edmNew::DetSetVector< SiStripCluster > > selStripClusters_
 
std::unique_ptr< reco::TrackCollectionselTracks_
 
std::unique_ptr< reco::TrackExtraCollectionselTracksExtras_
 
std::unique_ptr< TrackingRecHitCollectionselTracksHits_
 

Detailed Description

Definition at line 29 of file MuonSelector.h.

Member Typedef Documentation

Definition at line 31 of file MuonSelector.h.

Constructor & Destructor Documentation

helper::MuonCollectionStoreManager::MuonCollectionStoreManager ( const edm::Handle< reco::MuonCollection > &  )

Definition at line 18 of file MuonSelector.cc.

References processMuon().

19  :
32  rMuons_(),
37  id_(0), igbd_(0), isad_(0), idx_(0), igbdx_(0),
38  isadx_(0), hidx_(0), higbdx_(0), hisadx_(0),
39  cloneClusters_ (true)
40  {
41  }
reco::TrackExtraRefProd rSATrackExtras_
Definition: MuonSelector.h:88
std::unique_ptr< reco::MuonCollection > selMuons_
Definition: MuonSelector.h:65
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
std::unique_ptr< reco::TrackExtraCollection > selTracksExtras_
Definition: MuonSelector.h:67
std::unique_ptr< reco::TrackCollection > selStandAloneTracks_
Definition: MuonSelector.h:72
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
bool cloneClusters_
Clone clusters, or not? Default: true.
Definition: MuonSelector.h:99
reco::TrackExtraRefProd rTrackExtras_
Definition: MuonSelector.h:80
std::unique_ptr< edmNew::DetSetVector< SiStripCluster > > selStripClusters_
Definition: MuonSelector.h:75
TrackingRecHitRefProd rSAHits_
Definition: MuonSelector.h:89
TrackingRecHitRefProd rHits_
Definition: MuonSelector.h:81
std::unique_ptr< edmNew::DetSetVector< SiPixelCluster > > selPixelClusters_
Definition: MuonSelector.h:76
std::unique_ptr< reco::TrackCollection > selTracks_
Definition: MuonSelector.h:66
std::unique_ptr< TrackingRecHitCollection > selGlobalMuonTracksHits_
Definition: MuonSelector.h:71
TrackingRecHitRefProd rGBHits_
Definition: MuonSelector.h:85
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:11
reco::TrackExtraRefProd rGBTrackExtras_
Definition: MuonSelector.h:84
std::unique_ptr< TrackingRecHitCollection > selTracksHits_
Definition: MuonSelector.h:68
std::unique_ptr< TrackingRecHitCollection > selStandAloneTracksHits_
Definition: MuonSelector.h:74
std::unique_ptr< reco::TrackCollection > selGlobalMuonTracks_
Definition: MuonSelector.h:69
std::unique_ptr< reco::TrackExtraCollection > selGlobalMuonTracksExtras_
Definition: MuonSelector.h:70
std::unique_ptr< reco::TrackExtraCollection > selStandAloneTracksExtras_
Definition: MuonSelector.h:73

Member Function Documentation

template<typename I >
void helper::MuonCollectionStoreManager::cloneAndStore ( const I &  begin,
const I &  end,
edm::Event evt 
)

Method to clone tracks, track extras and their hits and clusters. typename I = this is an interator over a Muon collection, **I needs to dereference into a Muon.

Definition at line 113 of file MuonSelector.h.

References helper::ClusterStorer::clear(), clusterStorer_, end, hidx_, higbdx_, hisadx_, Exhume::I, mps_fire::i, id_, idx_, igbd_, igbdx_, isad_, isadx_, RPCpg::mu, helper::ClusterStorer::processAllClusters(), processMuon(), rGBHits_, rGBTrackExtras_, rGBTracks_, rHits_, rMuons_, rSAHits_, rSATrackExtras_, rSATracks_, rTrackExtras_, rTracks_, selPixelClusters_, and selStripClusters_.

Referenced by size().

114  {
115  using namespace reco;
116  rHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>("TrackerOnly");
117  rGBHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>("GlobalMuon");
118  rSAHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>("StandAlone");
119  rTrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>("TrackerOnly");
120  rGBTrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>("GlobalMuon");
121  rSATrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>("StandAlone");
122  rTracks_ = evt.template getRefBeforePut<TrackCollection>("TrackerOnly");
123  rGBTracks_ = evt.template getRefBeforePut<TrackCollection>("GlobalMuon");
124  rSATracks_ = evt.template getRefBeforePut<TrackCollection>("StandAlone");
125  rMuons_ = evt.template getRefBeforePut<MuonCollection>("SelectedMuons");
126  //--- New: save clusters too
128  = evt.template getRefBeforePut<edmNew::DetSetVector<SiStripCluster> >();
129 
131  = evt.template getRefBeforePut<edmNew::DetSetVector<SiPixelCluster> >();
132 
133  id_=0; igbd_=0; isad_=0;
134  idx_ = 0; igbdx_=0; isadx_=0;
135  hidx_=0; higbdx_=0; hisadx_=0;
137 
138  for( I i = begin; i != end; ++ i ) {
139  const Muon & mu = * * i;
140  //--- Clone this track, and store references aside
141  processMuon( mu );
142  }
143  //--- Clone the clusters and fixup refs
145  *selStripClusters_, rStripClusters);
146  }
reco::TrackExtraRefProd rSATrackExtras_
Definition: MuonSelector.h:88
reco::TrackExtraRefProd rTrackExtras_
Definition: MuonSelector.h:80
std::unique_ptr< edmNew::DetSetVector< SiStripCluster > > selStripClusters_
Definition: MuonSelector.h:75
TrackingRecHitRefProd rSAHits_
Definition: MuonSelector.h:89
Definition: Muon.py:1
void processMuon(const reco::Muon &mu)
Process a single muon.
Definition: MuonSelector.cc:49
const std::complex< double > I
Definition: I.h:8
TrackingRecHitRefProd rHits_
Definition: MuonSelector.h:81
const int mu
Definition: Constants.h:22
#define end
Definition: vmac.h:37
std::unique_ptr< edmNew::DetSetVector< SiPixelCluster > > selPixelClusters_
Definition: MuonSelector.h:76
TrackingRecHitRefProd rGBHits_
Definition: MuonSelector.h:85
reco::TrackExtraRefProd rGBTrackExtras_
Definition: MuonSelector.h:84
void clear()
clear records
fixed size matrix
#define begin
Definition: vmac.h:30
void processAllClusters(edmNew::DetSetVector< SiPixelCluster > &pixelDsvToFill, edm::RefProd< edmNew::DetSetVector< SiPixelCluster > > refPixelClusters, edmNew::DetSetVector< SiStripCluster > &stripDsvToFill, edm::RefProd< edmNew::DetSetVector< SiStripCluster > > refStripClusters)
bool helper::MuonCollectionStoreManager::cloneClusters ( )
inline

Use these to turn off/on the cloning of clusters. The default is to clone them. To not clone (and save space in a quick local job, do: setCloneClusters(false);

Definition at line 41 of file MuonSelector.h.

References cloneClusters_.

Referenced by processMuon(), and put().

41 {return cloneClusters_ ; }
bool cloneClusters_
Clone clusters, or not? Default: true.
Definition: MuonSelector.h:99
bool helper::MuonCollectionStoreManager::clusterRefsOK ( const reco::Track track) const
private

Check if all references to silicon strip/pixel clusters are available.

Definition at line 164 of file MuonSelector.cc.

References SiStripRecHit2D::cluster(), DetId::det(), TrackingRecHit::geographicalId(), edm::Ref< C, T, F >::isAvailable(), TrackingRecHit::isValid(), SiStripMatchedRecHit2D::monoHit(), ProjectedSiStripRecHit2D::originalHit(), put(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), SiStripMatchedRecHit2D::stereoHit(), and DetId::Tracker.

Referenced by processMuon().

165  {
166 
167  for (trackingRecHit_iterator hitIt = track.recHitsBegin(); hitIt != track.recHitsEnd(); ++hitIt) {
168  const TrackingRecHit &hit = **hitIt;
169  if (!hit.isValid() || hit.geographicalId().det() != DetId::Tracker) continue;
170 
171  // So we are in the tracker - now check hit types and availability of cluster refs:
172  const std::type_info &hit_type = typeid(hit);
173  if (hit_type == typeid(SiPixelRecHit)) {
174  if (!static_cast<const SiPixelRecHit &>(hit).cluster().isAvailable()) return false;
175  } else if (hit_type == typeid(SiStripRecHit2D)) {
176  if (!static_cast<const SiStripRecHit2D &>(hit).cluster().isAvailable()) return false;
177  } else if (hit_type == typeid(SiStripRecHit1D)) {
178  if (!static_cast<const SiStripRecHit1D &>(hit).cluster().isAvailable()) return false;
179  } else if (hit_type == typeid(SiStripMatchedRecHit2D)) {
180  const SiStripMatchedRecHit2D &mHit = static_cast<const SiStripMatchedRecHit2D &>(hit);
181  if (!mHit.monoHit().cluster().isAvailable()) return false;
182  if (!mHit.stereoHit().cluster().isAvailable()) return false;
183  } else if (hit_type == typeid(ProjectedSiStripRecHit2D)) {
184  const ProjectedSiStripRecHit2D &pHit = static_cast<const ProjectedSiStripRecHit2D &>(hit);
185  if (!pHit.originalHit().cluster().isAvailable()) return false;
186  } else {
187  // std::cout << "| It is a " << hit_type.name() << " hit !?" << std::endl;
188  // Do nothing. We might end up here for FastSim hits.
189  } // end 'switch' on hit type
190  }
191 
192  // No tracker hit with bad cluster found, so all fine:
193  return true;
194  }
bool isAvailable() const
Definition: Ref.h:576
ClusterRef cluster() const
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:104
SiStripRecHit2D originalHit() const
SiStripRecHit2D stereoHit() const
bool isValid() const
SiStripRecHit2D monoHit() const
DetId geographicalId() const
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
Our base class.
Definition: SiPixelRecHit.h:23
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:109
void helper::MuonCollectionStoreManager::processMuon ( const reco::Muon mu)
private

Process a single muon.

Definition at line 49 of file MuonSelector.cc.

References helper::ClusterStorer::addCluster(), cloneClusters(), clusterRefsOK(), clusterStorer_, reco::Muon::combinedMuon(), reco::Muon::globalTrack(), hidx_, higbdx_, hisadx_, id_, idx_, igbd_, igbdx_, reco::Track::innerDetId(), reco::Track::innerMomentum(), reco::Track::innerOk(), reco::Track::innerPosition(), reco::Track::innerStateCovariance(), reco::Muon::innerTrack(), isad_, isadx_, edm::Ref< C, T, F >::isNonnull(), TrackingRecHit::isValid(), configurableAnalysis::Muon, reco::Track::outerDetId(), reco::Track::outerMomentum(), reco::Track::outerOk(), reco::Track::outerPosition(), reco::Track::outerStateCovariance(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), rGBHits_, rGBTrackExtras_, rGBTracks_, rHits_, rSAHits_, rSATrackExtras_, rSATracks_, rTrackExtras_, rTracks_, reco::Track::seedDirection(), selGlobalMuonTracks_, selGlobalMuonTracksExtras_, selGlobalMuonTracksHits_, selMuons_, selStandAloneTracks_, selStandAloneTracksExtras_, selStandAloneTracksHits_, selTracks_, selTracksExtras_, selTracksHits_, reco::Track::setExtra(), reco::TrackExtraBase::setHits(), reco::Muon::standAloneMuon(), reco::Muon::track(), and DetId::Tracker.

Referenced by cloneAndStore(), and MuonCollectionStoreManager().

50  {
51  if (this->cloneClusters()
52  && ( (mu.globalTrack().isNonnull() && !this->clusterRefsOK(*mu.globalTrack()))
53  || (mu.innerTrack() .isNonnull() && !this->clusterRefsOK(*mu.innerTrack() ))
54  // || (mu.outerTrack(). isNonnull() && !this->clusterRefsOK(*mu.outerTrack() ))
55  )) { // outer track is muon only and has no strip clusters...
56  // At least until CMSSW_2_1_8, global muon track reconstruction assigns wrong hits in
57  // case of a track from iterative tracking. These hits are fetched from Trajectories
58  // instead of from Tracks and therefore reference temporary cluster collections.
59  // As a hack we skip these muons here - they can anyway not be refitted.
60  edm::LogError("BadRef") << "@SUB=MuonCollectionStoreManager::processMuon"
61  << "Skip muon: One of its tracks references "
62  << "non-available clusters!";
63  return;
64  }
65 
66  selMuons_->push_back( Muon( mu ) );
67  // only tracker Muon Track
68  selMuons_->back().setInnerTrack( TrackRef( rTracks_, id_ ++ ) );
69  TrackRef trkRef = mu.track();
70  if(trkRef.isNonnull()){
71 
72  selTracks_->push_back(Track( *trkRef) );
73 
74  Track & trk= selTracks_->back();
75 
76  selTracksExtras_->push_back( TrackExtra( trk.outerPosition(), trk.outerMomentum(), trk.outerOk(),
77  trk.innerPosition(), trk.innerMomentum(), trk.innerOk(),
78  trk.outerStateCovariance(), trk.outerDetId(),
79  trk.innerStateCovariance(), trk.innerDetId(),
80  trk.seedDirection() ) );
81 
82  TrackExtra & tx = selTracksExtras_->back();
83 
84  auto const firstHitIndex = hidx_;
85  unsigned int nHitsAdded = 0;
86  for( trackingRecHit_iterator hit = trk.recHitsBegin(); hit != trk.recHitsEnd();
87  ++ hit, ++ hidx_) {
88  selTracksHits_->push_back( (*hit)->clone() );
89  TrackingRecHit * newHit = & (selTracksHits_->back());
90  ++nHitsAdded;
91  if (cloneClusters() && newHit->isValid()
92  && ((*hit)->geographicalId().det() == DetId::Tracker)) {
94  }
95  } // end of for loop over tracking rec hits on this track
96  tx.setHits( rHits_, firstHitIndex, nHitsAdded );
97 
99 
100  }// TO trkRef.isNonnull
101 
102 
103  // global Muon Track
104  selMuons_->back().setGlobalTrack( TrackRef( rGBTracks_, igbd_ ++ ) );
105  trkRef = mu.combinedMuon();
106  if(trkRef.isNonnull()){
107  selGlobalMuonTracks_->push_back(Track( *trkRef) );
108  Track & trk = selGlobalMuonTracks_->back();
109 
111  trk.innerPosition(), trk.innerMomentum(), trk.innerOk(),
112  trk.outerStateCovariance(), trk.outerDetId(),
113  trk.innerStateCovariance(), trk.innerDetId(), trk.seedDirection() ) );
114  TrackExtra & tx = selGlobalMuonTracksExtras_->back();
115  auto const firstHitIndex = higbdx_;
116  unsigned int nHitsAdded = 0;
117  for( trackingRecHit_iterator hit = trk.recHitsBegin(); hit != trk.recHitsEnd();
118  ++ hit, ++ higbdx_) {
119  selGlobalMuonTracksHits_->push_back( (*hit)->clone() );
120  TrackingRecHit * newHit = & (selGlobalMuonTracksHits_->back());
121  ++nHitsAdded;
122  if (cloneClusters() && newHit->isValid()
123  && ((*hit)->geographicalId().det() == DetId::Tracker)) {
125  }
126 
127  }
128  tx.setHits( rGBHits_, firstHitIndex, nHitsAdded );
129 
131 
132  } // GB trkRef.isNonnull()
133 
134  // stand alone Muon Track
135  selMuons_->back().setOuterTrack( TrackRef( rSATracks_, isad_ ++ ) );
136  trkRef = mu.standAloneMuon();
137  if(trkRef.isNonnull()){
138  selStandAloneTracks_->push_back(Track( *trkRef) );
139  Track & trk = selStandAloneTracks_->back();
140 
142  trk.innerPosition(), trk.innerMomentum(), trk.innerOk(),
143  trk.outerStateCovariance(), trk.outerDetId(),
144  trk.innerStateCovariance(), trk.innerDetId(), trk.seedDirection() ) );
145  TrackExtra & tx = selStandAloneTracksExtras_->back();
146  auto const firstHitIndex = hisadx_;
147  unsigned int nHitsAdded = 0;
148  for( trackingRecHit_iterator hit = trk.recHitsBegin(); hit != trk.recHitsEnd(); ++ hit ) {
149  selStandAloneTracksHits_->push_back( (*hit)->clone() );
150  ++nHitsAdded;
151  hisadx_ ++;
152  }
153  tx.setHits( rSAHits_, firstHitIndex, nHitsAdded );
155 
156  } // SA trkRef.isNonnull()
157  }// end of track, and function
reco::TrackExtraRefProd rSATrackExtras_
Definition: MuonSelector.h:88
std::unique_ptr< reco::MuonCollection > selMuons_
Definition: MuonSelector.h:65
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
virtual TrackRef innerTrack() const
Definition: Muon.h:48
void setHits(TrackingRecHitRefProd const &prod, unsigned firstH, unsigned int nH)
virtual TrackRef track() const
reference to a Track
Definition: Muon.h:49
bool innerOk() const
return true if the innermost hit is valid
Definition: Track.h:50
edm::Ref< TrackExtraCollection > TrackExtraRef
persistent reference to a TrackExtra
Definition: TrackExtraFwd.h:17
std::unique_ptr< reco::TrackExtraCollection > selTracksExtras_
Definition: MuonSelector.h:67
void addCluster(TrackingRecHitCollection &hits, size_t index)
add cluster of newHit to list (throws if hit is of unknown type)
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:65
std::unique_ptr< reco::TrackCollection > selStandAloneTracks_
Definition: MuonSelector.h:72
reco::TrackExtraRefProd rTrackExtras_
Definition: MuonSelector.h:80
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:55
TrackingRecHitRefProd rSAHits_
Definition: MuonSelector.h:89
CovarianceMatrix outerStateCovariance() const
outermost trajectory state curvilinear errors
Definition: Track.h:75
unsigned int outerDetId() const
DetId of the detector on which surface the outermost state is located.
Definition: Track.h:94
TrackingRecHitRefProd rHits_
Definition: MuonSelector.h:81
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:104
std::unique_ptr< reco::TrackCollection > selTracks_
Definition: MuonSelector.h:66
std::unique_ptr< TrackingRecHitCollection > selGlobalMuonTracksHits_
Definition: MuonSelector.h:71
TrackingRecHitRefProd rGBHits_
Definition: MuonSelector.h:85
void setExtra(const TrackExtraRef &ref)
set reference to "extra" object
Definition: Track.h:184
virtual TrackRef combinedMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:55
const math::XYZVector & outerMomentum() const
momentum vector at the outermost hit position
Definition: Track.h:70
bool outerOk() const
return true if the outermost hit is valid
Definition: Track.h:45
const PropagationDirection & seedDirection() const
direction of how the hits were sorted in the original seed
Definition: Track.h:204
reco::TrackExtraRefProd rGBTrackExtras_
Definition: MuonSelector.h:84
std::unique_ptr< TrackingRecHitCollection > selTracksHits_
Definition: MuonSelector.h:68
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
CovarianceMatrix innerStateCovariance() const
innermost trajectory state curvilinear errors
Definition: Track.h:80
bool isValid() const
std::unique_ptr< TrackingRecHitCollection > selStandAloneTracksHits_
Definition: MuonSelector.h:74
std::unique_ptr< reco::TrackCollection > selGlobalMuonTracks_
Definition: MuonSelector.h:69
std::unique_ptr< reco::TrackExtraCollection > selGlobalMuonTracksExtras_
Definition: MuonSelector.h:70
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:60
std::unique_ptr< reco::TrackExtraCollection > selStandAloneTracksExtras_
Definition: MuonSelector.h:73
unsigned int innerDetId() const
DetId of the detector on which surface the innermost state is located.
Definition: Track.h:99
bool clusterRefsOK(const reco::Track &track) const
Check if all references to silicon strip/pixel clusters are available.
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:54
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:109
virtual TrackRef standAloneMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:52
edm::OrphanHandle< reco::MuonCollection > helper::MuonCollectionStoreManager::put ( edm::Event evt)

Put tracks, track extras and hits+clusters into the event.

Put Muons, tracks, track extras and hits+clusters into the event.

Definition at line 201 of file MuonSelector.cc.

References cloneClusters(), h, eostools::move(), edm::Event::put(), selGlobalMuonTracks_, selGlobalMuonTracksExtras_, selGlobalMuonTracksHits_, selMuons_, selPixelClusters_, selStandAloneTracks_, selStandAloneTracksExtras_, selStandAloneTracksHits_, selStripClusters_, selTracks_, selTracksExtras_, and selTracksHits_.

Referenced by clusterRefsOK(), and setCloneClusters().

201  {
203  h = evt.put(std::move(selMuons_), "SelectedMuons");
204  evt.put(std::move(selTracks_), "TrackerOnly");
205  evt.put(std::move(selTracksExtras_), "TrackerOnly");
206  evt.put(std::move(selTracksHits_),"TrackerOnly");
207  evt.put(std::move(selGlobalMuonTracks_),"GlobalMuon" );
208  evt.put(std::move(selGlobalMuonTracksExtras_),"GlobalMuon");
209  evt.put(std::move(selGlobalMuonTracksHits_),"GlobalMuon" );
210  evt.put(std::move(selStandAloneTracks_),"StandAlone");
211  evt.put(std::move(selStandAloneTracksExtras_),"StandAlone");
212  evt.put(std::move(selStandAloneTracksHits_),"StandAlone");
213  if (cloneClusters()) {
216  }
217  return h;
218 
219  }
std::unique_ptr< reco::MuonCollection > selMuons_
Definition: MuonSelector.h:65
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:122
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
std::unique_ptr< reco::TrackExtraCollection > selTracksExtras_
Definition: MuonSelector.h:67
std::unique_ptr< reco::TrackCollection > selStandAloneTracks_
Definition: MuonSelector.h:72
std::unique_ptr< edmNew::DetSetVector< SiStripCluster > > selStripClusters_
Definition: MuonSelector.h:75
std::unique_ptr< edmNew::DetSetVector< SiPixelCluster > > selPixelClusters_
Definition: MuonSelector.h:76
std::unique_ptr< reco::TrackCollection > selTracks_
Definition: MuonSelector.h:66
std::unique_ptr< TrackingRecHitCollection > selGlobalMuonTracksHits_
Definition: MuonSelector.h:71
std::unique_ptr< TrackingRecHitCollection > selTracksHits_
Definition: MuonSelector.h:68
std::unique_ptr< TrackingRecHitCollection > selStandAloneTracksHits_
Definition: MuonSelector.h:74
std::unique_ptr< reco::TrackCollection > selGlobalMuonTracks_
Definition: MuonSelector.h:69
std::unique_ptr< reco::TrackExtraCollection > selGlobalMuonTracksExtras_
Definition: MuonSelector.h:70
std::unique_ptr< reco::TrackExtraCollection > selStandAloneTracksExtras_
Definition: MuonSelector.h:73
def move(src, dest)
Definition: eostools.py:510
void helper::MuonCollectionStoreManager::setCloneClusters ( bool  w)
inline

Definition at line 42 of file MuonSelector.h.

References cloneClusters_, put(), and w.

42 { cloneClusters_ = w; }
const double w
Definition: UKUtility.cc:23
bool cloneClusters_
Clone clusters, or not? Default: true.
Definition: MuonSelector.h:99
size_t helper::MuonCollectionStoreManager::size ( void  ) const
inline

Get the size.

Definition at line 52 of file MuonSelector.h.

References begin, cloneAndStore(), end, Exhume::I, and selMuons_.

Referenced by ntupleDataFormat._Collection::__iter__(), and ntupleDataFormat._Collection::__len__().

52 { return selMuons_->size(); }
std::unique_ptr< reco::MuonCollection > selMuons_
Definition: MuonSelector.h:65

Member Data Documentation

bool helper::MuonCollectionStoreManager::cloneClusters_
private

Clone clusters, or not? Default: true.

Definition at line 99 of file MuonSelector.h.

Referenced by cloneClusters(), and setCloneClusters().

ClusterStorer helper::MuonCollectionStoreManager::clusterStorer_
private

Helper to treat copies of selected clusters and make the hits refer to the output cluster collections:

Definition at line 93 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::hidx_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::higbdx_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::hisadx_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::id_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::idx_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::igbd_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::igbdx_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::isad_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::isadx_
private

Definition at line 96 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

TrackingRecHitRefProd helper::MuonCollectionStoreManager::rGBHits_
private

Definition at line 85 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

reco::TrackExtraRefProd helper::MuonCollectionStoreManager::rGBTrackExtras_
private

Definition at line 84 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

reco::TrackRefProd helper::MuonCollectionStoreManager::rGBTracks_
private

Definition at line 83 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

TrackingRecHitRefProd helper::MuonCollectionStoreManager::rHits_
private

Definition at line 81 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

reco::MuonRefProd helper::MuonCollectionStoreManager::rMuons_
private

Definition at line 78 of file MuonSelector.h.

Referenced by cloneAndStore().

TrackingRecHitRefProd helper::MuonCollectionStoreManager::rSAHits_
private

Definition at line 89 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

reco::TrackExtraRefProd helper::MuonCollectionStoreManager::rSATrackExtras_
private

Definition at line 88 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

reco::TrackRefProd helper::MuonCollectionStoreManager::rSATracks_
private

Definition at line 87 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

reco::TrackExtraRefProd helper::MuonCollectionStoreManager::rTrackExtras_
private

Definition at line 80 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

reco::TrackRefProd helper::MuonCollectionStoreManager::rTracks_
private

Definition at line 79 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

std::unique_ptr<reco::TrackCollection> helper::MuonCollectionStoreManager::selGlobalMuonTracks_
private

Definition at line 69 of file MuonSelector.h.

Referenced by processMuon(), and put().

std::unique_ptr<reco::TrackExtraCollection> helper::MuonCollectionStoreManager::selGlobalMuonTracksExtras_
private

Definition at line 70 of file MuonSelector.h.

Referenced by processMuon(), and put().

std::unique_ptr<TrackingRecHitCollection> helper::MuonCollectionStoreManager::selGlobalMuonTracksHits_
private

Definition at line 71 of file MuonSelector.h.

Referenced by processMuon(), and put().

std::unique_ptr<reco::MuonCollection> helper::MuonCollectionStoreManager::selMuons_
private

Definition at line 65 of file MuonSelector.h.

Referenced by processMuon(), put(), and size().

std::unique_ptr< edmNew::DetSetVector<SiPixelCluster> > helper::MuonCollectionStoreManager::selPixelClusters_
private

Definition at line 76 of file MuonSelector.h.

Referenced by cloneAndStore(), and put().

std::unique_ptr<reco::TrackCollection> helper::MuonCollectionStoreManager::selStandAloneTracks_
private

Definition at line 72 of file MuonSelector.h.

Referenced by processMuon(), and put().

std::unique_ptr<reco::TrackExtraCollection> helper::MuonCollectionStoreManager::selStandAloneTracksExtras_
private

Definition at line 73 of file MuonSelector.h.

Referenced by processMuon(), and put().

std::unique_ptr<TrackingRecHitCollection> helper::MuonCollectionStoreManager::selStandAloneTracksHits_
private

Definition at line 74 of file MuonSelector.h.

Referenced by processMuon(), and put().

std::unique_ptr< edmNew::DetSetVector<SiStripCluster> > helper::MuonCollectionStoreManager::selStripClusters_
private

Definition at line 75 of file MuonSelector.h.

Referenced by cloneAndStore(), and put().

std::unique_ptr<reco::TrackCollection> helper::MuonCollectionStoreManager::selTracks_
private

Definition at line 66 of file MuonSelector.h.

Referenced by processMuon(), and put().

std::unique_ptr<reco::TrackExtraCollection> helper::MuonCollectionStoreManager::selTracksExtras_
private

Definition at line 67 of file MuonSelector.h.

Referenced by processMuon(), and put().

std::unique_ptr<TrackingRecHitCollection> helper::MuonCollectionStoreManager::selTracksHits_
private

Definition at line 68 of file MuonSelector.h.

Referenced by processMuon(), and put().