1717TrackToTrackComparisonHists::TrackToTrackComparisonHists (const edm::ParameterSet& iConfig)
1818 : monitoredTrackInputTag_(iConfig.getParameter<edm::InputTag>(" monitoredTrack" )),
1919 referenceTrackInputTag_(iConfig.getParameter<edm::InputTag>(" referenceTrack" )),
20+ isCosmics_(iConfig.getParameter<bool >(" isCosmics" )),
2021 topDirName_(iConfig.getParameter<std::string>(" topDirName" )),
2122 dRmin_(iConfig.getParameter<double >(" dRmin" )),
2223 pTCutForPlateau_(iConfig.getParameter<double >(" pTCutForPlateau" )),
@@ -119,15 +120,17 @@ void TrackToTrackComparisonHists::analyze(const edm::Event& iEvent, const edm::E
119120
120121 edm::Handle<reco::VertexCollection> referencePVHandle;
121122 iEvent.getByToken (referencePVToken_, referencePVHandle);
122- if (!referencePVHandle.isValid ()) {
123+ if (!referencePVHandle.isValid () && !isCosmics_ ) {
123124 edm::LogError (" TrackToTrackComparisonHists" ) << " referencePVHandle not found, skipping event" ;
124125 return ;
125126 }
126- if (referencePVHandle->empty ()) {
127+ if (referencePVHandle->empty () && !isCosmics_ ) {
127128 edm::LogInfo (" TrackToTrackComparisonHists" ) << " referencePVHandle->size is 0 " ;
128129 return ;
129130 }
130- reco::Vertex referencePV = referencePVHandle->at (0 );
131+ reco::Vertex referencePV = isCosmics_
132+ ? reco::Vertex (referenceBS.position (), referenceBS.rotatedCovariance3D (), 0 ., 0 ., 0 )
133+ : referencePVHandle->at (0 );
131134
132135 //
133136 // Get Monitored Track Info
@@ -151,15 +154,18 @@ void TrackToTrackComparisonHists::analyze(const edm::Event& iEvent, const edm::E
151154
152155 edm::Handle<reco::VertexCollection> monitoredPVHandle;
153156 iEvent.getByToken (monitoredPVToken_, monitoredPVHandle);
154- if (!monitoredPVHandle.isValid ()) {
155- edm::LogError (" TrackToTrackComparisonHists" ) << " monitoredPVHandle not found, skipping event" ;
157+ if (!monitoredPVHandle.isValid () && !isCosmics_) {
158+ edm::LogError (" TrackToTrackComparisonHists" )
159+ << " monitoredPVHandle not found, skipping event isCosmics value:" << isCosmics_;
156160 return ;
157161 }
158- if (monitoredPVHandle->empty ()) {
162+ if (monitoredPVHandle->empty () && !isCosmics_ ) {
159163 edm::LogInfo (" TrackToTrackComparisonHists" ) << " monitoredPVHandle->size is 0 " ;
160164 return ;
161165 }
162- reco::Vertex monitoredPV = monitoredPVHandle->at (0 );
166+ reco::Vertex monitoredPV = isCosmics_
167+ ? reco::Vertex (monitoredBS.position (), monitoredBS.rotatedCovariance3D (), 0 ., 0 ., 0 )
168+ : monitoredPVHandle->at (0 );
163169
164170 edm::LogInfo (" TrackToTrackComparisonHists" )
165171 << " analyzing " << monitoredTrackInputTag_.process () << " :" << monitoredTrackInputTag_.label () << " :"
@@ -306,6 +312,7 @@ void TrackToTrackComparisonHists::fillDescriptions(edm::ConfigurationDescription
306312 edm::ParameterSetDescription desc;
307313
308314 desc.add <bool >(" requireValidHLTPaths" , true );
315+ desc.add <bool >(" isCosmics" , false );
309316
310317 desc.add <edm::InputTag>(" monitoredTrack" , edm::InputTag (" hltMergedTracks" ));
311318 desc.add <edm::InputTag>(" monitoredBeamSpot" , edm::InputTag (" hltOnlineBeamSpot" ));
0 commit comments