CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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::MuonCollection
put (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::auto_ptr
< reco::TrackCollection
selGlobalMuonTracks_
 
std::auto_ptr
< reco::TrackExtraCollection
selGlobalMuonTracksExtras_
 
std::auto_ptr
< TrackingRecHitCollection
selGlobalMuonTracksHits_
 
std::auto_ptr
< reco::MuonCollection
selMuons_
 
std::auto_ptr
< edmNew::DetSetVector
< SiPixelCluster > > 
selPixelClusters_
 
std::auto_ptr
< reco::TrackCollection
selStandAloneTracks_
 
std::auto_ptr
< reco::TrackExtraCollection
selStandAloneTracksExtras_
 
std::auto_ptr
< TrackingRecHitCollection
selStandAloneTracksHits_
 
std::auto_ptr
< edmNew::DetSetVector
< SiStripCluster > > 
selStripClusters_
 
std::auto_ptr
< reco::TrackCollection
selTracks_
 
std::auto_ptr
< reco::TrackExtraCollection
selTracksExtras_
 
std::auto_ptr
< TrackingRecHitCollection
selTracksHits_
 

Detailed Description

Definition at line 28 of file MuonSelector.h.

Member Typedef Documentation

Definition at line 30 of file MuonSelector.h.

Constructor & Destructor Documentation

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

Definition at line 18 of file MuonSelector.cc.

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:87
std::auto_ptr< edmNew::DetSetVector< SiPixelCluster > > selPixelClusters_
Definition: MuonSelector.h:75
std::auto_ptr< reco::TrackCollection > selTracks_
Definition: MuonSelector.h:65
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:10
std::auto_ptr< reco::TrackCollection > selStandAloneTracks_
Definition: MuonSelector.h:71
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
bool cloneClusters_
Clone clusters, or not? Default: true.
Definition: MuonSelector.h:98
reco::TrackExtraRefProd rTrackExtras_
Definition: MuonSelector.h:79
std::auto_ptr< TrackingRecHitCollection > selGlobalMuonTracksHits_
Definition: MuonSelector.h:70
TrackingRecHitRefProd rSAHits_
Definition: MuonSelector.h:88
std::auto_ptr< reco::TrackExtraCollection > selStandAloneTracksExtras_
Definition: MuonSelector.h:72
std::auto_ptr< reco::TrackExtraCollection > selGlobalMuonTracksExtras_
Definition: MuonSelector.h:69
std::auto_ptr< edmNew::DetSetVector< SiStripCluster > > selStripClusters_
Definition: MuonSelector.h:74
TrackingRecHitRefProd rHits_
Definition: MuonSelector.h:80
TrackingRecHitRefProd rGBHits_
Definition: MuonSelector.h:84
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:9
reco::TrackExtraRefProd rGBTrackExtras_
Definition: MuonSelector.h:83
std::auto_ptr< TrackingRecHitCollection > selTracksHits_
Definition: MuonSelector.h:67
std::auto_ptr< reco::MuonCollection > selMuons_
Definition: MuonSelector.h:64
std::auto_ptr< reco::TrackExtraCollection > selTracksExtras_
Definition: MuonSelector.h:66
std::auto_ptr< reco::TrackCollection > selGlobalMuonTracks_
Definition: MuonSelector.h:68
std::auto_ptr< TrackingRecHitCollection > selStandAloneTracksHits_
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 112 of file MuonSelector.h.

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

113  {
114  using namespace reco;
115  rHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>("TrackerOnly");
116  rGBHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>("GlobalMuon");
117  rSAHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>("StandAlone");
118  rTrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>("TrackerOnly");
119  rGBTrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>("GlobalMuon");
120  rSATrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>("StandAlone");
121  rTracks_ = evt.template getRefBeforePut<TrackCollection>("TrackerOnly");
122  rGBTracks_ = evt.template getRefBeforePut<TrackCollection>("GlobalMuon");
123  rSATracks_ = evt.template getRefBeforePut<TrackCollection>("StandAlone");
124  rMuons_ = evt.template getRefBeforePut<MuonCollection>("SelectedMuons");
125  //--- New: save clusters too
127  = evt.template getRefBeforePut<edmNew::DetSetVector<SiStripCluster> >();
128 
130  = evt.template getRefBeforePut<edmNew::DetSetVector<SiPixelCluster> >();
131 
132  id_=0; igbd_=0; isad_=0;
133  idx_ = 0; igbdx_=0; isadx_=0;
134  hidx_=0; higbdx_=0; hisadx_=0;
136 
137  for( I i = begin; i != end; ++ i ) {
138  const Muon & mu = * * i;
139  //--- Clone this track, and store references aside
140  processMuon( mu );
141  }
142  //--- Clone the clusters and fixup refs
144  *selStripClusters_, rStripClusters);
145  }
reco::TrackExtraRefProd rSATrackExtras_
Definition: MuonSelector.h:87
int i
Definition: DBlmapReader.cc:9
std::auto_ptr< edmNew::DetSetVector< SiPixelCluster > > selPixelClusters_
Definition: MuonSelector.h:75
reco::TrackExtraRefProd rTrackExtras_
Definition: MuonSelector.h:79
TrackingRecHitRefProd rSAHits_
Definition: MuonSelector.h:88
void processMuon(const reco::Muon &mu)
Process a single muon.
Definition: MuonSelector.cc:49
const std::complex< double > I
Definition: I.h:8
std::auto_ptr< edmNew::DetSetVector< SiStripCluster > > selStripClusters_
Definition: MuonSelector.h:74
TrackingRecHitRefProd rHits_
Definition: MuonSelector.h:80
const int mu
Definition: Constants.h:23
#define end
Definition: vmac.h:38
TrackingRecHitRefProd rGBHits_
Definition: MuonSelector.h:84
reco::TrackExtraRefProd rGBTrackExtras_
Definition: MuonSelector.h:83
void clear()
clear records
#define begin
Definition: vmac.h:31
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 40 of file MuonSelector.h.

References cloneClusters_.

Referenced by processMuon(), and put().

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

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

Definition at line 153 of file MuonSelector.cc.

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

Referenced by processMuon().

154  {
155 
156  for (trackingRecHit_iterator hitIt = track.recHitsBegin(); hitIt != track.recHitsEnd(); ++hitIt) {
157  const TrackingRecHit &hit = **hitIt;
158  if (!hit.isValid() || hit.geographicalId().det() != DetId::Tracker) continue;
159 
160  // So we are in the tracker - now check hit types and availability of cluster refs:
161  const std::type_info &hit_type = typeid(hit);
162  if (hit_type == typeid(SiPixelRecHit)) {
163  if (!static_cast<const SiPixelRecHit &>(hit).cluster().isAvailable()) return false;
164  } else if (hit_type == typeid(SiStripRecHit2D)) {
165  if (!static_cast<const SiStripRecHit2D &>(hit).cluster().isAvailable()) return false;
166  } else if (hit_type == typeid(SiStripRecHit1D)) {
167  if (!static_cast<const SiStripRecHit1D &>(hit).cluster().isAvailable()) return false;
168  } else if (hit_type == typeid(SiStripMatchedRecHit2D)) {
169  const SiStripMatchedRecHit2D &mHit = static_cast<const SiStripMatchedRecHit2D &>(hit);
170  if (!mHit.monoHit().cluster().isAvailable()) return false;
171  if (!mHit.stereoHit().cluster().isAvailable()) return false;
172  } else if (hit_type == typeid(ProjectedSiStripRecHit2D)) {
173  const ProjectedSiStripRecHit2D &pHit = static_cast<const ProjectedSiStripRecHit2D &>(hit);
174  if (!pHit.originalHit().cluster().isAvailable()) return false;
175  } else {
176  // std::cout << "| It is a " << hit_type.name() << " hit !?" << std::endl;
177  // Do nothing. We might end up here for FastSim hits.
178  } // end 'switch' on hit type
179  }
180 
181  // No tracker hit with bad cluster found, so all fine:
182  return true;
183  }
bool isAvailable() const
Definition: Ref.h:276
ClusterRef cluster() const
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:63
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:37
const SiStripRecHit2D & originalHit() const
Our base class.
Definition: SiPixelRecHit.h:22
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:65
void helper::MuonCollectionStoreManager::processMuon ( const reco::Muon mu)
private

Process a single muon.

Definition at line 49 of file MuonSelector.cc.

References reco::TrackExtraBase::add(), 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(), 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::Muon::standAloneMuon(), reco::Muon::track(), and DetId::Tracker.

Referenced by cloneAndStore().

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  for( trackingRecHit_iterator hit = trk.recHitsBegin(); hit != trk.recHitsEnd();
85  ++ hit, ++ hidx_) {
86  selTracksHits_->push_back( (*hit)->clone() );
87  TrackingRecHit * newHit = & (selTracksHits_->back());
89  if (cloneClusters() && newHit->isValid()
90  && ((*hit)->geographicalId().det() == DetId::Tracker)) {
92  }
93  } // end of for loop over tracking rec hits on this track
94 
96 
97  }// TO trkRef.isNonnull
98 
99 
100  // global Muon Track
101  selMuons_->back().setGlobalTrack( TrackRef( rGBTracks_, igbd_ ++ ) );
102  trkRef = mu.combinedMuon();
103  if(trkRef.isNonnull()){
104  selGlobalMuonTracks_->push_back(Track( *trkRef) );
105  Track & trk = selGlobalMuonTracks_->back();
106 
108  trk.innerPosition(), trk.innerMomentum(), trk.innerOk(),
109  trk.outerStateCovariance(), trk.outerDetId(),
110  trk.innerStateCovariance(), trk.innerDetId(), trk.seedDirection() ) );
111  TrackExtra & tx = selGlobalMuonTracksExtras_->back();
112  for( trackingRecHit_iterator hit = trk.recHitsBegin(); hit != trk.recHitsEnd();
113  ++ hit, ++ higbdx_) {
114  selGlobalMuonTracksHits_->push_back( (*hit)->clone() );
115  TrackingRecHit * newHit = & (selGlobalMuonTracksHits_->back());
117  if (cloneClusters() && newHit->isValid()
118  && ((*hit)->geographicalId().det() == DetId::Tracker)) {
120  }
121 
122  }
124 
125  } // GB trkRef.isNonnull()
126 
127  // stand alone Muon Track
128  selMuons_->back().setOuterTrack( TrackRef( rSATracks_, isad_ ++ ) );
129  trkRef = mu.standAloneMuon();
130  if(trkRef.isNonnull()){
131  selStandAloneTracks_->push_back(Track( *trkRef) );
132  Track & trk = selStandAloneTracks_->back();
133 
135  trk.innerPosition(), trk.innerMomentum(), trk.innerOk(),
136  trk.outerStateCovariance(), trk.outerDetId(),
137  trk.innerStateCovariance(), trk.innerDetId(), trk.seedDirection() ) );
138  TrackExtra & tx = selStandAloneTracksExtras_->back();
139  for( trackingRecHit_iterator hit = trk.recHitsBegin(); hit != trk.recHitsEnd(); ++ hit ) {
140  selStandAloneTracksHits_->push_back( (*hit)->clone() );
141  tx.add( TrackingRecHitRef( rSAHits_, hisadx_ ++ ) );
142  }
144 
145  } // SA trkRef.isNonnull()
146  }// end of track, and function
reco::TrackExtraRefProd rSATrackExtras_
Definition: MuonSelector.h:87
virtual TrackRef innerTrack() const
Definition: Muon.h:49
std::auto_ptr< reco::TrackCollection > selTracks_
Definition: MuonSelector.h:65
virtual TrackRef track() const
reference to a Track
Definition: Muon.h:50
bool innerOk() const
return true if the innermost hit is valid
Definition: Track.h:40
edm::Ref< TrackExtraCollection > TrackExtraRef
persistent reference to a TrackExtra
Definition: TrackExtraFwd.h:13
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:47
std::auto_ptr< reco::TrackCollection > selStandAloneTracks_
Definition: MuonSelector.h:71
reco::TrackExtraRefProd rTrackExtras_
Definition: MuonSelector.h:79
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:42
std::auto_ptr< TrackingRecHitCollection > selGlobalMuonTracksHits_
Definition: MuonSelector.h:70
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:250
TrackingRecHitRefProd rSAHits_
Definition: MuonSelector.h:88
std::auto_ptr< reco::TrackExtraCollection > selStandAloneTracksExtras_
Definition: MuonSelector.h:72
edm::Ref< TrackingRecHitCollection > TrackingRecHitRef
persistent reference to a TrackingRecHit
CovarianceMatrix outerStateCovariance() const
outermost trajectory state curvilinear errors
Definition: Track.h:51
unsigned int outerDetId() const
DetId of the detector on which surface the outermost state is located.
Definition: Track.h:59
std::auto_ptr< reco::TrackExtraCollection > selGlobalMuonTracksExtras_
Definition: MuonSelector.h:69
TrackingRecHitRefProd rHits_
Definition: MuonSelector.h:80
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:63
TrackingRecHitRefProd rGBHits_
Definition: MuonSelector.h:84
void setExtra(const TrackExtraRef &ref)
set reference to &quot;extra&quot; object
Definition: Track.h:95
virtual TrackRef combinedMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:56
const math::XYZVector & outerMomentum() const
momentum vector at the outermost hit position
Definition: Track.h:49
bool outerOk() const
return true if the outermost hit is valid
Definition: Track.h:38
reco::TrackExtraRefProd rGBTrackExtras_
Definition: MuonSelector.h:83
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:14
CovarianceMatrix innerStateCovariance() const
innermost trajectory state curvilinear errors
Definition: Track.h:53
bool isValid() const
void add(const TrackingRecHitRef &r)
add a reference to a RecHit
std::auto_ptr< TrackingRecHitCollection > selTracksHits_
Definition: MuonSelector.h:67
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:45
std::auto_ptr< reco::MuonCollection > selMuons_
Definition: MuonSelector.h:64
PropagationDirection seedDirection() const
direction of how the hits were sorted in the original seed
Definition: Track.h:105
std::auto_ptr< reco::TrackExtraCollection > selTracksExtras_
Definition: MuonSelector.h:66
std::auto_ptr< reco::TrackCollection > selGlobalMuonTracks_
Definition: MuonSelector.h:68
unsigned int innerDetId() const
DetId of the detector on which surface the innermost state is located.
Definition: Track.h:61
bool clusterRefsOK(const reco::Track &track) const
Check if all references to silicon strip/pixel clusters are available.
std::auto_ptr< TrackingRecHitCollection > selStandAloneTracksHits_
Definition: MuonSelector.h:73
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:55
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:65
virtual TrackRef standAloneMuon() const
reference to a stand-alone muon Track
Definition: Muon.h:53
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 190 of file MuonSelector.cc.

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

190  {
192  h = evt.put( selMuons_ , "SelectedMuons");
193  evt.put( selTracks_ , "TrackerOnly");
194  evt.put( selTracksExtras_ , "TrackerOnly");
195  evt.put( selTracksHits_ ,"TrackerOnly");
196  evt.put( selGlobalMuonTracks_,"GlobalMuon" );
197  evt.put( selGlobalMuonTracksExtras_ ,"GlobalMuon");
198  evt.put( selGlobalMuonTracksHits_,"GlobalMuon" );
199  evt.put( selStandAloneTracks_ ,"StandAlone");
200  evt.put( selStandAloneTracksExtras_ ,"StandAlone");
201  evt.put( selStandAloneTracksHits_ ,"StandAlone");
202  if (cloneClusters()) {
203  evt.put( selStripClusters_ );
204  evt.put( selPixelClusters_ );
205  }
206  return h;
207 
208  }
std::auto_ptr< edmNew::DetSetVector< SiPixelCluster > > selPixelClusters_
Definition: MuonSelector.h:75
std::auto_ptr< reco::TrackCollection > selTracks_
Definition: MuonSelector.h:65
std::auto_ptr< reco::TrackCollection > selStandAloneTracks_
Definition: MuonSelector.h:71
std::auto_ptr< TrackingRecHitCollection > selGlobalMuonTracksHits_
Definition: MuonSelector.h:70
std::auto_ptr< reco::TrackExtraCollection > selStandAloneTracksExtras_
Definition: MuonSelector.h:72
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
std::auto_ptr< reco::TrackExtraCollection > selGlobalMuonTracksExtras_
Definition: MuonSelector.h:69
std::auto_ptr< edmNew::DetSetVector< SiStripCluster > > selStripClusters_
Definition: MuonSelector.h:74
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
std::auto_ptr< TrackingRecHitCollection > selTracksHits_
Definition: MuonSelector.h:67
std::auto_ptr< reco::MuonCollection > selMuons_
Definition: MuonSelector.h:64
std::auto_ptr< reco::TrackExtraCollection > selTracksExtras_
Definition: MuonSelector.h:66
std::auto_ptr< reco::TrackCollection > selGlobalMuonTracks_
Definition: MuonSelector.h:68
std::auto_ptr< TrackingRecHitCollection > selStandAloneTracksHits_
Definition: MuonSelector.h:73
void helper::MuonCollectionStoreManager::setCloneClusters ( bool  w)
inline

Definition at line 41 of file MuonSelector.h.

References cloneClusters_, and w().

41 { cloneClusters_ = w; }
bool cloneClusters_
Clone clusters, or not? Default: true.
Definition: MuonSelector.h:98
T w() const
size_t helper::MuonCollectionStoreManager::size ( void  ) const
inline

Get the size.

Definition at line 51 of file MuonSelector.h.

References selMuons_.

51 { return selMuons_->size(); }
std::auto_ptr< reco::MuonCollection > selMuons_
Definition: MuonSelector.h:64

Member Data Documentation

bool helper::MuonCollectionStoreManager::cloneClusters_
private

Clone clusters, or not? Default: true.

Definition at line 98 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 92 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::hidx_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::higbdx_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::hisadx_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::id_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::idx_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::igbd_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::igbdx_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::isad_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

size_t helper::MuonCollectionStoreManager::isadx_
private

Definition at line 95 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

TrackingRecHitRefProd helper::MuonCollectionStoreManager::rGBHits_
private

Definition at line 84 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

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

Definition at line 83 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

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

Definition at line 82 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

TrackingRecHitRefProd helper::MuonCollectionStoreManager::rHits_
private

Definition at line 80 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

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

Definition at line 77 of file MuonSelector.h.

Referenced by cloneAndStore().

TrackingRecHitRefProd helper::MuonCollectionStoreManager::rSAHits_
private

Definition at line 88 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

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

Definition at line 87 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

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

Definition at line 86 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

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

Definition at line 79 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

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

Definition at line 78 of file MuonSelector.h.

Referenced by cloneAndStore(), and processMuon().

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

Definition at line 68 of file MuonSelector.h.

Referenced by processMuon(), and put().

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

Definition at line 69 of file MuonSelector.h.

Referenced by processMuon(), and put().

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

Definition at line 70 of file MuonSelector.h.

Referenced by processMuon(), and put().

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

Definition at line 64 of file MuonSelector.h.

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

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

Definition at line 75 of file MuonSelector.h.

Referenced by cloneAndStore(), and put().

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

Definition at line 71 of file MuonSelector.h.

Referenced by processMuon(), and put().

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

Definition at line 72 of file MuonSelector.h.

Referenced by processMuon(), and put().

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

Definition at line 73 of file MuonSelector.h.

Referenced by processMuon(), and put().

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

Definition at line 74 of file MuonSelector.h.

Referenced by cloneAndStore(), and put().

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

Definition at line 65 of file MuonSelector.h.

Referenced by processMuon(), and put().

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

Definition at line 66 of file MuonSelector.h.

Referenced by processMuon(), and put().

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

Definition at line 67 of file MuonSelector.h.

Referenced by processMuon(), and put().