CMS 3D CMS Logo

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

#include <RecoTracker/DebugTools/plugins/TestOutliers.cc>

Inheritance diagram for TestOutliers:
edm::one::EDAnalyzer< edm::one::WatchRuns > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 TestOutliers (const edm::ParameterSet &)
 
 ~TestOutliers () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns >
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginRun (edm::Run const &run, const edm::EventSetup &) override
 
void endJob () override
 
void endRun (edm::Run const &run, const edm::EventSetup &) override
 

Private Attributes

TH1F * badcluster
 
TH1F * badhittype
 
TH1F * badlayer
 
TH1F * badprocess
 
TH1F * countOldT
 
TH1F * countOutA
 
TH1F * countOutT
 
TH1F * deltahits
 
TH1F * deltahitsAssocGained
 
TH1F * deltahitsAssocLost
 
TH1F * deltahitsNO
 
TH1F * deltahitsOK
 
TH1F * energyLoss
 
TH1F * energyLossMax
 
TH1F * energyLossRatio
 
TFile * file
 
TH1F * gainedhits
 
TH1F * gainedhits2
 
TH1F * goodbadhits
 
TH1F * goodbadmerged
 
TH1F * goodbadmergedGained
 
TH1F * goodbadmergedLost
 
TH1F * goodcluster
 
TH1F * goodhittype
 
TH1F * goodhittype_clgteq4
 
TH1F * goodhittype_cllt4
 
TH1F * goodhittype_simvecbig
 
TH1F * goodhittype_simvecsmall
 
TH1F * goodlayer
 
TH1F * goodlayer_clgteq4
 
TH1F * goodlayer_cllt4
 
TH1F * goodlayer_simvecbig
 
TH1F * goodlayer_simvecsmall
 
TH1F * goodpix_clustersize
 
TH1F * goodpix_simvecsize
 
TH1F * goodpixgteq4_simvecsize
 
TH1F * goodpixlt4_simvecsize
 
TH1F * goodprj_clustersize
 
TH1F * goodprj_simvecsize
 
TH1F * goodprjgteq4_simvecsize
 
TH1F * goodprjlt4_simvecsize
 
TH1F * goodprocess
 
TH1F * goodst1_clustersize
 
TH1F * goodst1_simvecsize
 
TH1F * goodst1gteq4_simvecsize
 
TH1F * goodst1lt4_simvecsize
 
TH1F * goodst2_clustersize
 
TH1F * goodst2_simvecsize
 
TH1F * goodst2gteq4_simvecsize
 
TH1F * goodst2lt4_simvecsize
 
TH1F * histoD0Old
 
TH1F * histoD0Out
 
TH1F * histoDzOld
 
TH1F * histoDzOut
 
TH1F * histoLambdaOld
 
TH1F * histoLambdaOut
 
TH1F * histoPhiOld
 
TH1F * histoPhiOut
 
TH1F * histoPtOld
 
TH1F * histoPtOut
 
TH1F * histoQoverpOld
 
TH1F * histoQoverpOut
 
TH1F * hitsPerTrackAssocGained
 
TH1F * hitsPerTrackAssocLost
 
TH1F * hitsPerTrackGained
 
TH1F * hitsPerTrackLost
 
TH1F * mergedcluster
 
TH1F * mergedhittype
 
TH1F * mergedlayer
 
TH1F * mergedPull
 
TH1F * nOfTrackIds
 
TH1F * okcutsOld
 
TH1F * okcutsOut
 
std::string out
 
TH2F * posxy
 
TH2F * poszr
 
TH1F * probXbad
 
TH1F * probXdelta
 
TH1F * probXgood
 
TH1F * probXnoshare
 
TH1F * probXshared
 
TH1F * probYbad
 
TH1F * probYdelta
 
TH1F * probYgood
 
TH1F * probYnoshare
 
TH1F * probYshared
 
TH1F * process
 
TH1F * sizeOld
 
TH1F * sizeOldT
 
TH1F * sizeOut
 
TH1F * sizeOutT
 
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociatortheAssociatorOldToken
 
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociatortheAssociatorOutToken
 
edm::ESHandle< TrackerGeometrytheG
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtheGToken
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordtheMFToken
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtheTopoToken
 
edm::InputTag tpTags_
 
TrackerHitAssociator::Config trackerHitAssociatorConfig_
 
TH1F * tracks
 
edm::InputTag trackTagsOld_
 
edm::InputTag trackTagsOut_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 54 of file TestOutliers.cc.

Constructor & Destructor Documentation

◆ TestOutliers()

TestOutliers::TestOutliers ( const edm::ParameterSet iConfig)
explicit

Definition at line 126 of file TestOutliers.cc.

References edm::BeginRun, and LogTrace.

127  : trackTagsOut_(iConfig.getUntrackedParameter<edm::InputTag>("tracksOut")),
128  trackTagsOld_(iConfig.getUntrackedParameter<edm::InputTag>("tracksOld")),
131  theAssociatorOldToken(consumes<reco::TrackToTrackingParticleAssociator>(
132  iConfig.getUntrackedParameter<edm::InputTag>("TrackAssociatorByHitsOld"))),
133  theAssociatorOutToken(consumes<reco::TrackToTrackingParticleAssociator>(
134  iConfig.getUntrackedParameter<edm::InputTag>("TrackAssociatorByHitsOut"))),
135  theGToken(esConsumes<edm::Transition::BeginRun>()),
138  out(iConfig.getParameter<std::string>("out")) {
139  LogTrace("TestOutliers") << "constructor";
140  // ParameterSet cuts = iConfig.getParameter<ParameterSet>("RecoTracksCuts");
141  // selectRecoTracks = RecoTrackSelector(cuts.getParameter<double>("ptMin"),
142  // cuts.getParameter<double>("minRapidity"),
143  // cuts.getParameter<double>("maxRapidity"),
144  // cuts.getParameter<double>("tip"),
145  // cuts.getParameter<double>("lip"),
146  // cuts.getParameter<int>("minHit"),
147  // cuts.getParameter<double>("maxChi2"));
148 
149  LogTrace("TestOutliers") << "end constructor";
150 }
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > theAssociatorOutToken
Definition: TestOutliers.cc:71
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > theGToken
Definition: TestOutliers.cc:72
#define LogTrace(id)
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > theAssociatorOldToken
Definition: TestOutliers.cc:70
T getUntrackedParameter(std::string const &, T const &) const
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theTopoToken
Definition: TestOutliers.cc:74
std::string out
Definition: TestOutliers.cc:76
edm::InputTag trackTagsOut_
Definition: TestOutliers.cc:66
edm::InputTag tpTags_
Definition: TestOutliers.cc:68
TrackerHitAssociator::Config trackerHitAssociatorConfig_
Definition: TestOutliers.cc:69
edm::InputTag trackTagsOld_
Definition: TestOutliers.cc:67
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theMFToken
Definition: TestOutliers.cc:75

◆ ~TestOutliers()

TestOutliers::~TestOutliers ( )
override

Definition at line 152 of file TestOutliers.cc.

152  {
153  // do anything here that needs to be done at desctruction time
154  // (e.g. close files, deallocate resources etc.)
155 }

Member Function Documentation

◆ analyze()

void TestOutliers::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 162 of file TestOutliers.cc.

References funct::abs(), reco::TrackToTrackingParticleAssociator::associateRecoToSim(), badcluster, badhittype, badlayer, badprocess, pwdgSkimBPark_cfi::beamSpot, TrajectoryStateClosestToPoint::charge(), reco::TrackBase::charge(), funct::cos(), submitPVResolutionJobs::count, countOldT, countOutA, countOutT, reco::TrackBase::d0(), reco::TrackBase::d0Error(), dumpMFGeometry_cfg::delta, deltahits, deltahitsAssocGained, deltahitsAssocLost, deltahitsNO, deltahitsOK, reco::TrackBase::dsz(), reco::TrackBase::dxy(), reco::TrackBase::dz(), reco::TrackBase::dzError(), edm::AssociationMap< Tag >::end(), energyLoss, energyLossMax, energyLossRatio, reco::TrackBase::eta(), spr::find(), edm::AssociationMap< Tag >::find(), dqmdumpme::first, gainedhits, gainedhits2, edm::RefToBase< T >::get(), edm::Ref< C, T, F >::get(), edm::EventSetup::getHandle(), goodbadhits, goodbadmerged, goodbadmergedGained, goodbadmergedLost, goodcluster, goodhittype, goodhittype_clgteq4, goodhittype_cllt4, goodhittype_simvecbig, goodhittype_simvecsmall, goodlayer, goodlayer_clgteq4, goodlayer_cllt4, goodlayer_simvecbig, goodlayer_simvecsmall, goodpix_clustersize, goodpix_simvecsize, goodpixgteq4_simvecsize, goodpixlt4_simvecsize, goodprj_clustersize, goodprj_simvecsize, goodprjgteq4_simvecsize, goodprjlt4_simvecsize, goodprocess, goodst1_clustersize, goodst1_simvecsize, goodst1gteq4_simvecsize, goodst1lt4_simvecsize, goodst2_clustersize, goodst2_simvecsize, goodst2gteq4_simvecsize, goodst2lt4_simvecsize, histoD0Old, histoD0Out, histoDzOld, histoDzOut, histoLambdaOld, histoLambdaOut, histoPhiOld, histoPhiOut, histoPtOld, histoPtOut, histoQoverpOld, histoQoverpOut, TrackQuality_cff::hitAssociator, hitsPerTrackAssocGained, hitsPerTrackAssocLost, hitsPerTrackGained, hitsPerTrackLost, TrackerGeometry::idToDet(), iEvent, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, dqmiolumiharvest::j, findQualityFiles::jj, dqmdumpme::k, reco::TrackBase::lambda(), TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, M_PI, makeMuonMisalignmentScenario::matrix, mergedcluster, mergedhittype, mergedlayer, mergedPull, CoreSimTrack::momentum(), FreeTrajectoryState::momentum(), nOfTrackIds, reco::TrackBase::normalizedChi2(), reco::TrackBase::numberOfValidHits(), AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::phi(), reco::TrackBase::phiError(), FreeTrajectoryState::position(), posxy, poszr, SiPixelRecHit::probabilityX(), SiPixelRecHit::probabilityY(), probXbad, probXdelta, probXgood, probXnoshare, probXshared, probYbad, probYdelta, probYgood, probYnoshare, probYshared, process, PSimHit::processType(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), reco::TrackBase::pt(), reco::TrackBase::ptError(), reco::TrackBase::qoverp(), reco::TrackBase::qoverpError(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), reco::Track::seedRef(), funct::sin(), edm::AssociationMap< Tag >::size(), sizeOld, sizeOldT, sizeOut, sizeOutT, TrackingRecHit::some, jetUpdater_cfi::sort, mathSSE::sqrt(), theAssociatorOldToken, theAssociatorOutToken, theG, theGToken, theMFToken, TrajectoryStateClosestToPoint::theState(), reco::TrackBase::thetaError(), theTopoToken, createJobs::tmp, GeomDet::toGlobal(), tpTags_, trackerHitAssociatorConfig_, tracks, trackTagsOld_, trackTagsOut_, ErrorFrameTransformer::transform(), findQualityFiles::v, trackerHitRTTI::vector, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

162  {
163  //Retrieve tracker topology from geometry
165 
166  theG = iSetup.getHandle(theGToken);
168 
169  using namespace edm;
170  using namespace std;
171  using reco::TrackCollection;
172 
173  LogTrace("TestOutliers") << "analyze event #" << iEvent.id();
174 
176  iEvent.getByLabel(trackTagsOut_, tracksOut);
178  iEvent.getByLabel(trackTagsOld_, tracksOld);
180  iEvent.getByLabel(tpTags_, tps);
182  iEvent.getByLabel("offlineBeamSpot", beamSpot);
183 
185 
187  iEvent.getByToken(theAssociatorOldToken, hAssociatorOld);
188  const reco::TrackToTrackingParticleAssociator *theAssociatorOld = hAssociatorOld.product();
189 
191  iEvent.getByToken(theAssociatorOutToken, hAssociatorOut);
192  const reco::TrackToTrackingParticleAssociator *theAssociatorOut = hAssociatorOut.product();
193 
194  reco::RecoToSimCollection recSimCollOut = theAssociatorOut->associateRecoToSim(tracksOut, tps);
195  reco::RecoToSimCollection recSimCollOld = theAssociatorOld->associateRecoToSim(tracksOld, tps);
196  sizeOut->Fill(recSimCollOut.size());
197  sizeOld->Fill(recSimCollOld.size());
198  sizeOutT->Fill(tracksOut->size());
199  sizeOldT->Fill(tracksOld->size());
200 
201  LogTrace("TestOutliers") << "tOld size=" << tracksOld->size() << " tOut size=" << tracksOut->size()
202  << " aOld size=" << recSimCollOld.size() << " aOut size=" << recSimCollOut.size();
203 
204 #if 0
205  LogTrace("TestOutliers") << "recSimCollOld.size()=" << recSimCollOld.size() ;
206  for(reco::TrackCollection::size_type j=0; j<tracksOld->size(); ++j){
207  reco::TrackRef trackOld(tracksOld, j);
208  //if ( !selectRecoTracks( *trackOld,beamSpot.product() ) ) continue;
209  LogTrace("TestOutliers") << "trackOld->pt()=" << trackOld->pt() << " trackOld->numberOfValidHits()=" << trackOld->numberOfValidHits();
210  std::vector<pair<TrackingParticleRef, double> > tpOld;
211  if(recSimCollOld.find(trackOld) != recSimCollOld.end()){
212  tpOld = recSimCollOld[trackOld];
213  if (tpOld.size()!=0) LogTrace("TestOutliers") << " associated" ;
214  else LogTrace("TestOutliers") << " NOT associated" ;
215  } else LogTrace("TestOutliers") << " NOT associated" ;
216  }
217  LogTrace("TestOutliers") << "recSimCollOut.size()=" << recSimCollOut.size() ;
218  for(reco::TrackCollection::size_type j=0; j<tracksOut->size(); ++j){
219  reco::TrackRef trackOut(tracksOut, j);
220  //if ( !selectRecoTracks( *trackOut,beamSpot.product() ) ) continue;
221  LogTrace("TestOutliers") << "trackOut->pt()=" << trackOut->pt() << " trackOut->numberOfValidHits()=" << trackOut->numberOfValidHits();
222  std::vector<pair<TrackingParticleRef, double> > tpOut;
223  if(recSimCollOut.find(trackOut) != recSimCollOut.end()){
224  tpOut = recSimCollOut[trackOut];
225  if (tpOut.size()!=0) LogTrace("TestOutliers") << " associated" ;
226  else LogTrace("TestOutliers") << " NOT associated" ;
227  } else LogTrace("TestOutliers") << " NOT associated" ;
228  }
229 #endif
230 
231  LogTrace("TestOutliers") << "tracksOut->size()=" << tracksOut->size();
232  LogTrace("TestOutliers") << "tracksOld->size()=" << tracksOld->size();
233 
234  std::vector<unsigned int> outused;
235  for (unsigned int j = 0; j < tracksOld->size(); ++j) {
236  countOldT->Fill(1);
237  edm::RefToBase<reco::Track> trackOld(tracksOld, j);
238  LogTrace("TestOutliers") << "now track old with id=" << j << " seed ref=" << trackOld->seedRef().get()
239  << " pt=" << trackOld->pt() << " eta=" << trackOld->eta()
240  << " chi2=" << trackOld->normalizedChi2()
241  << " tip= " << fabs(trackOld->dxy(beamSpot->position()))
242  << " lip= " << fabs(trackOld->dsz(beamSpot->position()));
243 
244  // if (i==tracksOut->size()) {
245  // if(recSimCollOld.find(trackOld) != recSimCollOld.end()){
246  // vector<pair<TrackingParticleRef, double> > tpOld;
247  // tpOld = recSimCollOld[trackOld];
248  // if (tpOld.size()!=0) {
249  // LogTrace("TestOutliers") <<"no match: old associated and out lost! old has #hits=" << trackOld->numberOfValidHits()
250  // << " and fraction=" << tpOld.begin()->second;
251  // if (tpOld.begin()->second>0.5) hitsPerTrackLost->Fill(trackOld->numberOfValidHits());
252  // }
253  // }
254  // continue;
255  // }
256 
257  std::vector<unsigned int> outtest; //all the out tracks with the same seed ref
258  for (unsigned int k = 0; k < tracksOut->size(); ++k) {
260  if (tmpOut->seedRef() == trackOld->seedRef()) {
261  outtest.push_back(k);
262  }
263  }
264 
266  if (outtest.size() == 1) { // if only one that's it
267  trackOut = edm::RefToBase<reco::Track>(tracksOut, outtest[0]);
268  LogTrace("TestOutliers") << "now track out with id=" << outtest[0] << " seed ref=" << trackOut->seedRef().get()
269  << " pt=" << trackOut->pt();
270  outused.push_back(outtest[0]);
271  } else if (outtest.size() > 1) { //if > 1 take the one that shares all the hits with the old track
272  for (unsigned int p = 0; p < outtest.size(); ++p) {
273  edm::RefToBase<reco::Track> tmpOut = edm::RefToBase<reco::Track>(tracksOut, outtest[p]);
274  bool allhits = true;
275  for (trackingRecHit_iterator itOut = tmpOut->recHitsBegin(); itOut != tmpOut->recHitsEnd(); itOut++) {
276  if ((*itOut)->isValid()) {
277  bool thishit = false;
278  for (trackingRecHit_iterator itOld = trackOld->recHitsBegin(); itOld != trackOld->recHitsEnd(); itOld++) {
279  if ((*itOld)->isValid()) {
280  const TrackingRecHit *kt = &(**itOld);
281  if ((*itOut)->sharesInput(kt, TrackingRecHit::some)) {
282  thishit = true;
283  break;
284  }
285  }
286  }
287  if (!thishit)
288  allhits = false;
289  }
290  }
291  if (allhits) {
292  trackOut = edm::RefToBase<reco::Track>(tracksOut, outtest[p]);
293  LogTrace("TestOutliers") << "now track out with id=" << outtest[p]
294  << " seed ref=" << trackOut->seedRef().get() << " pt=" << trackOut->pt();
295  outused.push_back(outtest[p]);
296  }
297  }
298  }
299 
300  if (outtest.empty() || trackOut.get() == nullptr) { //no out track found for the old track
301  if (recSimCollOld.find(trackOld) != recSimCollOld.end()) {
302  vector<pair<TrackingParticleRef, double> > tpOld;
303  tpOld = recSimCollOld[trackOld];
304  if (!tpOld.empty()) {
305  LogTrace("TestOutliers") << "no match: old associated and out lost! old has #hits="
306  << trackOld->numberOfValidHits() << " and fraction=" << tpOld.begin()->second;
307  if (tpOld.begin()->second > 0.5)
308  hitsPerTrackLost->Fill(trackOld->numberOfValidHits());
309  }
310  }
311  LogTrace("TestOutliers") << "...skip to next old track";
312  continue;
313  }
314 
315  //look if old and out are associated
316  LogTrace("TestOutliers") << "trackOut->seedRef()=" << trackOut->seedRef().get()
317  << " trackOld->seedRef()=" << trackOld->seedRef().get();
318  bool oldAssoc = recSimCollOld.find(trackOld) != recSimCollOld.end();
319  bool outAssoc = recSimCollOut.find(trackOut) != recSimCollOut.end();
320  LogTrace("TestOutliers") << "outAssoc=" << outAssoc << " oldAssoc=" << oldAssoc;
321 
322  // if ( trackOut->seedRef()!= trackOld->seedRef() ||
323  // (trackOut->seedRef() == trackOld->seedRef() && trackOut->numberOfValidHits()>trackOld->numberOfValidHits()) ) {
324  // LogTrace("TestOutliers") <<"out and old tracks does not match...";
325  // LogTrace("TestOutliers") <<"old has #hits=" << trackOld->numberOfValidHits();
326  // std::vector<pair<TrackingParticleRef, double> > tpOld;
327  // if(recSimCollOld.find(trackOld) != recSimCollOld.end()) {
328  // tpOld = recSimCollOld[trackOld];
329  // if (tpOld.size()!=0) {
330  // LogTrace("TestOutliers") <<"old was associated with fraction=" << tpOld.begin()->second;
331  // if (tpOld.begin()->second>0.5) hitsPerTrackLost->Fill(trackOld->numberOfValidHits());
332  // }
333  // }
334  // LogTrace("TestOutliers") <<"...skip to next old track";
335  // continue;
336  // }
337  // //++i;
338  countOutT->Fill(1);
339 
340  //if ( !selectRecoTracks( *trackOld,beamSpot.product() ) ) continue;//no more cuts
341 
342  tracks->Fill(0); //FIXME
343 
345  TrackingParticleRef tprOut;
346  TrackingParticleRef tprOld;
347  double fracOut;
348  std::vector<unsigned int> tpids;
349  std::vector<std::pair<TrackingParticleRef, double> > tpOut;
350  std::vector<pair<TrackingParticleRef, double> > tpOld;
351  //contare outliers delle tracce che erano associate e non lo sono piu!!!!
352 
353  if (outAssoc) { //save the ids od the tp associate to the out track
354  tpOut = recSimCollOut[trackOut];
355  if (!tpOut.empty()) {
356  countOutA->Fill(1);
357  tprOut = tpOut.begin()->first;
358  fracOut = tpOut.begin()->second;
359  for (TrackingParticle::g4t_iterator g4T = tprOut->g4Track_begin(); g4T != tprOut->g4Track_end(); ++g4T) {
360  tpids.push_back(g4T->trackId());
361  }
362  }
363  }
364 
365  if (oldAssoc) { //save the ids od the tp associate to the old track
366  tpOld = recSimCollOld[trackOld];
367  if (!tpOld.empty()) {
368  tprOld = tpOld.begin()->first;
369  // LogTrace("TestOutliers") <<"old associated and out not! old has #hits=" << trackOld->numberOfValidHits()
370  // << " and fraction=" << tpOld.begin()->second;
371  // if (tpOld.begin()->second>0.5) hitsPerTrackLost->Fill(trackOld->numberOfValidHits());//deve essere un plot diverso tipo LostAssoc
372  if (tpOut.empty()) {
373  for (TrackingParticle::g4t_iterator g4T = tprOld->g4Track_begin(); g4T != tprOld->g4Track_end(); ++g4T) {
374  tpids.push_back(g4T->trackId());
375  }
376  }
377  }
378  }
379 
380  if (tprOut.get() != nullptr || tprOld.get() != nullptr) { //at least one of the tracks has to be associated
381 
382  tpr = tprOut.get() != nullptr ? tprOut : tprOld;
383 
384  const SimTrack *assocTrack = &(*tpr->g4Track_begin());
385 
386  //if ( trackOut->numberOfValidHits() < trackOld->numberOfValidHits() ) {
387  if (trackOut->numberOfValidHits() != trackOld->numberOfValidHits() ||
388  !(*trackOut->recHitsBegin())->sharesInput((*trackOld->recHitsBegin()), TrackingRecHit::some) ||
389  !(*(trackOut->recHitsEnd() - 1))
390  ->sharesInput(
391  (*(trackOld->recHitsEnd() - 1)),
393  some)) { //there are outliers if the number of valid hits is != or if the first and last hit does not match
394  LogTrace("TestOutliers") << "outliers for track with #hits=" << trackOut->numberOfValidHits();
395  tracks->Fill(1);
396  LogTrace("TestOutliers")
397  << "Out->pt=" << trackOut->pt() << " Old->pt=" << trackOld->pt() << " tp->pt="
398  << sqrt(tpr->momentum().perp2())
399  //<< " trackOut->ptError()=" << trackOut->ptError() << " trackOld->ptError()=" << trackOld->ptError()
400  << " Old->validHits=" << trackOld->numberOfValidHits() << " Out->validHits="
401  << trackOut->numberOfValidHits()
402  /*<< " fracOld=" << fracOld*/
403  << " fracOut=" << fracOut << " deltaHits=" << trackOld->numberOfValidHits() - trackOut->numberOfValidHits();
404 
405  //compute all the track parameters
406  double PtPullOut = (trackOut->pt() - sqrt(tpr->momentum().perp2())) / trackOut->ptError();
407  double PtPullOld = (trackOld->pt() - sqrt(tpr->momentum().perp2())) / trackOld->ptError();
408  histoPtOut->Fill(PtPullOut);
409  histoPtOld->Fill(PtPullOld);
410 
411  //LogTrace("TestOutliers") << "MagneticField";
412  FreeTrajectoryState ftsAtProduction(
413  GlobalPoint(tpr->vertex().x(), tpr->vertex().y(), tpr->vertex().z()),
414  GlobalVector(assocTrack->momentum().x(), assocTrack->momentum().y(), assocTrack->momentum().z()),
415  TrackCharge(trackOld->charge()),
416  theMF.product());
417  TSCPBuilderNoMaterial tscpBuilder;
418  TrajectoryStateClosestToPoint tsAtClosestApproach =
419  tscpBuilder(ftsAtProduction, GlobalPoint(0, 0, 0)); //as in TrackProducerAlgorithm
420  GlobalPoint v = tsAtClosestApproach.theState().position();
421  GlobalVector p = tsAtClosestApproach.theState().momentum();
422 
423  //LogTrace("TestOutliers") << "qoverpSim";
424  double qoverpSim = tsAtClosestApproach.charge() / p.mag();
425  double lambdaSim = M_PI / 2 - p.theta();
426  double phiSim = p.phi();
427  double dxySim = (-v.x() * sin(p.phi()) + v.y() * cos(p.phi()));
428  double dszSim = v.z() * p.perp() / p.mag() - (v.x() * p.x() + v.y() * p.y()) / p.perp() * p.z() / p.mag();
429  double d0Sim = -dxySim;
430  double dzSim = dszSim * p.mag() / p.perp();
431 
432  //LogTrace("TestOutliers") << "qoverpPullOut";
433  double qoverpPullOut = (trackOut->qoverp() - qoverpSim) / trackOut->qoverpError();
434  double qoverpPullOld = (trackOld->qoverp() - qoverpSim) / trackOld->qoverpError();
435  double lambdaPullOut = (trackOut->lambda() - lambdaSim) / trackOut->thetaError();
436  double lambdaPullOld = (trackOld->lambda() - lambdaSim) / trackOld->thetaError();
437  double phi0PullOut = (trackOut->phi() - phiSim) / trackOut->phiError();
438  double phi0PullOld = (trackOld->phi() - phiSim) / trackOld->phiError();
439  double d0PullOut = (trackOut->d0() - d0Sim) / trackOut->d0Error();
440  double d0PullOld = (trackOld->d0() - d0Sim) / trackOld->d0Error();
441  double dzPullOut = (trackOut->dz() - dzSim) / trackOut->dzError();
442  double dzPullOld = (trackOld->dz() - dzSim) / trackOld->dzError();
443 
444  //LogTrace("TestOutliers") << "histoQoverpOut";
445  histoQoverpOut->Fill(qoverpPullOut);
446  histoQoverpOld->Fill(qoverpPullOld);
447  histoPhiOut->Fill(phi0PullOut);
448  histoPhiOld->Fill(phi0PullOld);
449  histoD0Out->Fill(d0PullOut);
450  histoD0Old->Fill(d0PullOld);
451  histoDzOut->Fill(dzPullOut);
452  histoDzOld->Fill(dzPullOld);
453  histoLambdaOut->Fill(lambdaPullOut);
454  histoLambdaOld->Fill(lambdaPullOld);
455 
456  //delta number of valid hits
457  LogTrace("TestOutliers") << "deltahits=" << trackOld->numberOfValidHits() - trackOut->numberOfValidHits();
458  deltahits->Fill(trackOld->numberOfValidHits() - trackOut->numberOfValidHits());
459 
460  if (tprOut.get() != nullptr && tprOld.get() == nullptr) { //out associated and old not: gained track
461  if (!tpOld.empty() && tpOld.begin()->second <= 0.5) {
462  deltahitsAssocGained->Fill(trackOld->numberOfValidHits() - trackOut->numberOfValidHits());
463  hitsPerTrackAssocGained->Fill(trackOut->numberOfValidHits());
464  LogTrace("TestOutliers") << "a) gained (assoc) track out #hits==" << trackOut->numberOfValidHits()
465  << " old #hits=" << trackOld->numberOfValidHits();
466  } else {
467  deltahitsAssocGained->Fill(trackOld->numberOfValidHits() - trackOut->numberOfValidHits());
468  hitsPerTrackAssocGained->Fill(trackOut->numberOfValidHits());
469  LogTrace("TestOutliers") << "b) gained (assoc) track out #hits==" << trackOut->numberOfValidHits()
470  << " old #hits=" << trackOld->numberOfValidHits();
471  }
472  } else if (tprOut.get() == nullptr && tprOld.get() != nullptr) { //old associated and out not: lost track
473  LogTrace("TestOutliers") << "old associated and out not! old has #hits=" << trackOld->numberOfValidHits()
474  << " and fraction=" << tpOld.begin()->second;
475  if (tpOld.begin()->second > 0.5) {
476  hitsPerTrackAssocLost->Fill(trackOld->numberOfValidHits());
477  deltahitsAssocLost->Fill(trackOld->numberOfValidHits() - trackOut->numberOfValidHits());
478  }
479  }
480 
481  if (fabs(PtPullOut) < fabs(PtPullOld))
482  deltahitsOK->Fill(trackOld->numberOfValidHits() - trackOut->numberOfValidHits());
483  else
484  deltahitsNO->Fill(trackOld->numberOfValidHits() - trackOut->numberOfValidHits());
485 
486  //LogTrace("TestOutliers") << "RecoTrackSelector";
487  //if (selectRecoTracks(*trackOut,beamSpot.product())) okcutsOut->Fill(1); else okcutsOut->Fill(0);
488  //if (selectRecoTracks(*trackOld,beamSpot.product())) okcutsOld->Fill(1); else okcutsOld->Fill(0);
489 
490  LogTrace("TestOutliers") << "track old";
491  for (trackingRecHit_iterator itOld = trackOld->recHitsBegin(); itOld != trackOld->recHitsEnd(); itOld++) {
492  LogTrace("TestOutliers") << (*itOld)->isValid() << " " << (*itOld)->geographicalId().rawId();
493  }
494  LogTrace("TestOutliers") << "track out";
495  for (trackingRecHit_iterator itOut = trackOut->recHitsBegin(); itOut != trackOut->recHitsEnd(); itOut++) {
496  LogTrace("TestOutliers") << (*itOut)->isValid() << " " << (*itOut)->geographicalId().rawId();
497  }
498  //LogTrace("TestOutliers") << "itOut";
499 
500  vector<pair<int, trackingRecHit_iterator> > gainedlostoutliers;
501  //look for gained hits
502  for (trackingRecHit_iterator itOut = trackOut->recHitsBegin(); itOut != trackOut->recHitsEnd(); itOut++) {
503  bool gained = true;
504  if ((*itOut)->isValid()) {
505  for (trackingRecHit_iterator itOld = trackOld->recHitsBegin(); itOld != trackOld->recHitsEnd(); itOld++) {
506  if ((*itOld)->geographicalId().rawId() == (*itOut)->geographicalId().rawId())
507  gained = false;
508  }
509  if (gained) {
510  gainedlostoutliers.push_back(pair<int, trackingRecHit_iterator>(1, itOut));
511  LogTrace("TestOutliers") << "broken trajectory during old fit... gained hit "
512  << (*itOut)->geographicalId().rawId();
513  gainedhits->Fill(1);
514  }
515  }
516  }
517 
518  //look for outliers and lost hits
519  for (trackingRecHit_iterator itOld = trackOld->recHitsBegin(); itOld != trackOld->recHitsEnd(); itOld++) {
520  bool outlier = false;
521  bool lost = true;
522 
523  for (trackingRecHit_iterator itOut = trackOut->recHitsBegin(); itOut != trackOut->recHitsEnd(); itOut++) {
524  if ((*itOld)->geographicalId().rawId() == (*itOut)->geographicalId().rawId()) {
525  lost = false;
526  if ((*itOld)->isValid() && !(*itOut)->isValid() &&
527  (*itOld)->geographicalId().rawId() == (*itOut)->geographicalId().rawId()) {
528  LogTrace("TestOutliers") << (*itOld)->isValid() << " " << (*itOut)->isValid() << " "
529  << (*itOld)->geographicalId().rawId() << " "
530  << (*itOut)->geographicalId().rawId();
531  outlier = true;
532  }
533  }
534  }
535  if (lost)
536  gainedlostoutliers.push_back(pair<int, trackingRecHit_iterator>(2, itOld));
537  if (lost)
538  LogTrace("TestOutliers") << "lost";
539  else if (outlier)
540  gainedlostoutliers.push_back(pair<int, trackingRecHit_iterator>(3, itOld));
541  }
542 
543  for (std::vector<pair<int, trackingRecHit_iterator> >::iterator it = gainedlostoutliers.begin();
544  it != gainedlostoutliers.end();
545  ++it) {
546  LogTrace("TestOutliers") << "type of processed hit:" << it->first;
547  trackingRecHit_iterator itHit = it->second;
548  bool gained = false;
549  bool lost = false;
550  bool outlier = false;
551  if (it->first == 1)
552  gained = true;
553  else if (it->first == 2)
554  lost = true;
555  else if (it->first == 3)
556  outlier = true;
557 
558  if (outlier || lost || gained) {
559  //if (1) {
560 
561  if (lost && (*itHit)->isValid() == false) {
562  goodbadmergedLost->Fill(0);
563  LogTrace("TestOutliers") << "lost invalid";
564  continue;
565  } else if (gained && (*itHit)->isValid() == false) {
566  goodbadmergedGained->Fill(0);
567  LogTrace("TestOutliers") << "gained invalid";
568  continue;
569  }
570 
571  //LogTrace("TestOutliers") << "vector<SimHitIdpr>";
572  //look if the hit comes from a correct sim track
573  std::vector<SimHitIdpr> simTrackIds = hitAssociator.associateHitId(**itHit);
574  bool goodhit = false;
575  for (size_t j = 0; j < simTrackIds.size(); j++) {
576  for (size_t jj = 0; jj < tpids.size(); jj++) {
577  if (simTrackIds[j].first == tpids[jj])
578  goodhit = true;
579  break;
580  }
581  }
582 
583  //find what kind of hit is it
584  int clustersize = 0;
585  int hittypeval = 0;
586  int layerval = 0;
587  if (dynamic_cast<const SiPixelRecHit *>(&**itHit)) {
588  LogTrace("TestOutliers") << "SiPixelRecHit";
589  clustersize = ((const SiPixelRecHit *)(&**itHit))->cluster()->size();
590  hittypeval = 1;
591  } else if (dynamic_cast<const SiStripRecHit2D *>(&**itHit)) {
592  LogTrace("TestOutliers") << "SiStripRecHit2D";
593  clustersize = ((const SiStripRecHit2D *)(&**itHit))->cluster()->amplitudes().size();
594  hittypeval = 2;
595  } else if (dynamic_cast<const SiStripMatchedRecHit2D *>(&**itHit)) {
596  LogTrace("TestOutliers") << "SiStripMatchedRecHit2D";
597  int clsize1 = ((const SiStripMatchedRecHit2D *)(&**itHit))->monoCluster().amplitudes().size();
598  int clsize2 = ((const SiStripMatchedRecHit2D *)(&**itHit))->stereoCluster().amplitudes().size();
599  if (clsize1 > clsize2)
600  clustersize = clsize1;
601  else
602  clustersize = clsize2;
603  hittypeval = 3;
604  } else if (dynamic_cast<const ProjectedSiStripRecHit2D *>(&**itHit)) {
605  LogTrace("TestOutliers") << "ProjectedSiStripRecHit2D";
606  clustersize =
607  ((const ProjectedSiStripRecHit2D *)(&**itHit))->originalHit().cluster()->amplitudes().size();
608  hittypeval = 4;
609  }
610 
611  //find the layer of the hit
612  int subdetId = (*itHit)->geographicalId().subdetId();
613  DetId id = (*itHit)->geographicalId();
614  int layerId = tTopo->layer(id);
615  layerval = subdetId * 10 + layerId;
616 
617  //LogTrace("TestOutliers") << "gpos";
618  GlobalPoint gpos = theG->idToDet((*itHit)->geographicalId())->surface().toGlobal((*itHit)->localPosition());
619 
620  //get the vector of sim hit associated and choose the one with the largest energy loss
621  //double delta = 99999;
622  //LocalPoint rhitLPv = (*itHit)->localPosition();
623  //vector<PSimHit> assSimHits = hitAssociator.associateHit(**itHit);
624  //if (assSimHits.size()==0) continue;
625  //PSimHit shit;
626  //for(std::vector<PSimHit>::const_iterator m=assSimHits.begin(); m<assSimHits.end(); m++){
627  //if ((m->localPosition()-rhitLPv).mag()<delta) {
628  // shit=*m;
629  // delta = (m->localPosition()-rhitLPv).mag();
630  // }
631  //}
632  //LogTrace("TestOutliers") << "energyLoss_";
633  double energyLoss_ = 0.;
634  unsigned int monoId = 0;
635  std::vector<double> energyLossM;
636  std::vector<double> energyLossS;
637  std::vector<PSimHit> assSimHits = hitAssociator.associateHit(**itHit);
638  if (assSimHits.empty())
639  continue;
640  PSimHit shit;
641  std::vector<unsigned int> trackIds;
642  energyLossS.clear();
643  energyLossM.clear();
644  //LogTrace("TestOutliers") << "energyLossM";
645  for (std::vector<PSimHit>::const_iterator m = assSimHits.begin(); m < assSimHits.end(); m++) {
646  if (outlier)
647  energyLoss->Fill(m->energyLoss());
648  unsigned int tId = m->trackId();
649  if (find(trackIds.begin(), trackIds.end(), tId) == trackIds.end())
650  trackIds.push_back(tId);
651  LogTrace("TestOutliers") << "id=" << tId;
652  if (m->energyLoss() > energyLoss_) {
653  shit = *m;
654  energyLoss_ = m->energyLoss();
655  }
656  if (hittypeval == 3) {
657  if (monoId == 0)
658  monoId = m->detUnitId();
659  if (monoId == m->detUnitId()) {
660  energyLossM.push_back(m->energyLoss());
661  } else {
662  energyLossS.push_back(m->energyLoss());
663  }
664  //std::cout << "detUnitId=" << m->detUnitId() << " trackId=" << m->trackId() << " energyLoss=" << m->energyLoss() << std::endl;
665  } else {
666  energyLossM.push_back(m->energyLoss());
667  }
668  }
669  unsigned int nIds = trackIds.size();
670 
671  if (outlier) {
672  goodbadhits->Fill(goodhit);
673  posxy->Fill(fabs(gpos.x()), fabs(gpos.y()));
674  poszr->Fill(fabs(gpos.z()), sqrt(gpos.x() * gpos.x() + gpos.y() * gpos.y()));
675  process->Fill(shit.processType());
676  energyLossMax->Fill(energyLoss_);
677  }
678 
679  //look if the hit is shared and if is produced only by ionization processes
680  bool shared = true;
681  bool ioniOnly = true;
682  unsigned int idc = 0;
683  for (size_t jj = 0; jj < tpids.size(); jj++) {
684  idc += std::count(trackIds.begin(), trackIds.end(), tpids[jj]);
685  }
686  if (idc == trackIds.size()) {
687  shared = false;
688  }
689  for (std::vector<PSimHit>::const_iterator m = assSimHits.begin() + 1; m < assSimHits.end(); m++) {
690  if ((m->processType() != 7 && m->processType() != 8 && m->processType() != 9) &&
691  abs(m->particleType()) != 11) {
692  ioniOnly = false;
693  break;
694  }
695  }
696  if (ioniOnly && !shared) {
697  LogTrace("TestOutliers") << "delta";
698  }
699 
700  if (goodhit) {
701  if (outlier) {
702  goodprocess->Fill(shit.processType());
703  if (clustersize >= 4) {
704  goodhittype_clgteq4->Fill(hittypeval);
705  goodlayer_clgteq4->Fill(layerval);
706  } else {
707  goodhittype_cllt4->Fill(hittypeval);
708  goodlayer_cllt4->Fill(layerval);
709  }
710  //LogTrace("TestOutliers") << "hittypeval && clustersize";
711  if (hittypeval == 1 && clustersize >= 4)
712  goodpixgteq4_simvecsize->Fill(assSimHits.size());
713  if (hittypeval == 1 && clustersize < 4)
714  goodpixlt4_simvecsize->Fill(assSimHits.size());
715  if (hittypeval == 2 && clustersize >= 4)
716  goodst1gteq4_simvecsize->Fill(assSimHits.size());
717  if (hittypeval == 2 && clustersize < 4)
718  goodst1lt4_simvecsize->Fill(assSimHits.size());
719  if (hittypeval == 3 && clustersize >= 4)
720  goodst2gteq4_simvecsize->Fill(assSimHits.size());
721  if (hittypeval == 3 && clustersize < 4)
722  goodst2lt4_simvecsize->Fill(assSimHits.size());
723  if (hittypeval == 4 && clustersize >= 4)
724  goodprjgteq4_simvecsize->Fill(assSimHits.size());
725  if (hittypeval == 4 && clustersize < 4)
726  goodprjlt4_simvecsize->Fill(assSimHits.size());
727 
728  //LogTrace("TestOutliers") << "hittypeval";
729  if (hittypeval == 1)
730  goodpix_clustersize->Fill(clustersize);
731  if (hittypeval == 2)
732  goodst1_clustersize->Fill(clustersize);
733  if (hittypeval == 3)
734  goodst2_clustersize->Fill(clustersize);
735  if (hittypeval == 4)
736  goodprj_clustersize->Fill(clustersize);
737  if (hittypeval == 1)
738  goodpix_simvecsize->Fill(assSimHits.size());
739  if (hittypeval == 2)
740  goodst1_simvecsize->Fill(assSimHits.size());
741  if (hittypeval == 3)
742  goodst2_simvecsize->Fill(assSimHits.size());
743  if (hittypeval == 4)
744  goodprj_simvecsize->Fill(assSimHits.size());
745 
746  //LogTrace("TestOutliers") << "nOfTrackIds";
747  nOfTrackIds->Fill(nIds);
748  if (hittypeval != 3) {
749  if (energyLossM.size() > 1) {
750  sort(energyLossM.begin(), energyLossM.end(), greater<double>());
751  energyLossRatio->Fill(energyLossM[1] / energyLossM[0]);
752  }
753  } else {
754  //LogTrace("TestOutliers") << "hittypeval==3";
755  if (energyLossM.size() > 1 && energyLossS.size() <= 1) {
756  sort(energyLossM.begin(), energyLossM.end(), greater<double>());
757  energyLossRatio->Fill(energyLossM[1] / energyLossM[0]);
758  } else if (energyLossS.size() > 1 && energyLossM.size() <= 1) {
759  sort(energyLossS.begin(), energyLossS.end(), greater<double>());
760  energyLossRatio->Fill(energyLossS[1] / energyLossS[0]);
761  } else if (energyLossS.size() > 1 && energyLossM.size() > 1) {
762  sort(energyLossM.begin(), energyLossM.end(), greater<double>());
763  sort(energyLossS.begin(), energyLossS.end(), greater<double>());
764  energyLossM[1] / energyLossM[0] > energyLossS[1] / energyLossS[0]
765  ? energyLossRatio->Fill(energyLossM[1] / energyLossM[0])
766  : energyLossRatio->Fill(energyLossS[1] / energyLossS[0]);
767  }
768  }
769 
770  LogTrace("TestOutliers") << "before merged";
771  const SiStripMatchedRecHit2D *tmp = dynamic_cast<const SiStripMatchedRecHit2D *>(&**itHit);
772  LogTrace("TestOutliers") << "tmp=" << tmp;
773  LogTrace("TestOutliers") << "assSimHits.size()=" << assSimHits.size();
774  if ((assSimHits.size() > 1 && tmp == nullptr) || (assSimHits.size() > 2 && tmp != nullptr)) {
775  //std::cout << "MERGED HIT" << std::endl;
776  //LogTrace("TestOutliers") << "merged";
777  mergedlayer->Fill(layerval);
778  mergedcluster->Fill(clustersize);
779  mergedhittype->Fill(hittypeval);
780 
781  for (std::vector<PSimHit>::const_iterator m = assSimHits.begin(); m < assSimHits.end(); m++) {
782  unsigned int tId = m->trackId();
783  LogTrace("TestOutliers") << "component with id=" << tId << " eLoss=" << m->energyLoss()
784  << " proc=" << m->processType() << " part=" << m->particleType();
785  if (find(tpids.begin(), tpids.end(), tId) == tpids.end())
786  continue;
787  if (m->processType() == 2) {
788  //GlobalPoint gpos = theG->idToDet((*itHit)->geographicalId())->surface().toGlobal((*itHit)->localPosition());
789  //GlobalPoint gpr = rhit->globalPosition();
791  .transform((*itHit)->localPositionError(),
792  theG->idToDet((*itHit)->geographicalId())->surface())
793  .matrix();
794  //AlgebraicSymMatrix ger = rhit->globalPositionError().matrix();
795  GlobalPoint gps =
796  theG->idToDet((*itHit)->geographicalId())->surface().toGlobal(m->localPosition());
797  //LogTrace("TestOutliers") << gpr << " " << gps << " " << ger;
798  ROOT::Math::SVector<double, 3> delta;
799  delta[0] = gpos.x() - gps.x();
800  delta[1] = gpos.y() - gps.y();
801  delta[2] = gpos.z() - gps.z();
802  LogTrace("TestOutliers") << delta << " " << ger;
803  double mpull = sqrt(delta[0] * delta[0] / ger[0][0] + delta[1] * delta[1] / ger[1][1] +
804  delta[2] * delta[2] / ger[2][2]);
805  LogTrace("TestOutliers") << "hit pull=" << mpull; //ger.similarity(delta);
806  mergedPull->Fill(mpull);
807  }
808  }
809  LogTrace("TestOutliers") << "end merged";
810  } else { //not merged=>good
811  //LogTrace("TestOutliers") << "goodlayer";
812  goodlayer->Fill(layerval);
813  goodcluster->Fill(clustersize);
814  goodhittype->Fill(hittypeval);
815  }
816  } //if (outlier)
817 
818  const SiPixelRecHit *pix = dynamic_cast<const SiPixelRecHit *>(&**itHit);
819  if ((hittypeval != 3 && assSimHits.size() < 2) || (hittypeval == 3 && assSimHits.size() < 3)) {
820  if (outlier) {
821  goodhittype_simvecsmall->Fill(hittypeval);
822  goodlayer_simvecsmall->Fill(layerval);
823  goodbadmerged->Fill(1);
824  if (pix) {
825  probXgood->Fill(pix->probabilityX());
826  probYgood->Fill(pix->probabilityY());
827  }
828  LogTrace("TestOutliers") << "out good";
829  } else if (lost) {
830  goodbadmergedLost->Fill(1);
831  LogTrace("TestOutliers") << "lost good";
832  } else if (gained) {
833  goodbadmergedGained->Fill(1);
834  LogTrace("TestOutliers") << "gained good";
835  }
836  LogTrace("TestOutliers") << "good";
837  } else {
838  if (outlier) {
839  goodhittype_simvecbig->Fill(hittypeval);
840  goodlayer_simvecbig->Fill(layerval);
841  if (ioniOnly && !shared) {
842  goodbadmerged->Fill(3);
843  if (pix) {
844  probXdelta->Fill(pix->probabilityX());
845  probYdelta->Fill(pix->probabilityY());
846  }
847  } else if (!ioniOnly && !shared) {
848  goodbadmerged->Fill(4);
849  if (pix) {
850  probXnoshare->Fill(pix->probabilityX());
851  probYnoshare->Fill(pix->probabilityY());
852  }
853  } else {
854  goodbadmerged->Fill(5);
855  if (pix) {
856  probXshared->Fill(pix->probabilityX());
857  probYshared->Fill(pix->probabilityY());
858  }
859  }
860  LogTrace("TestOutliers") << "out merged, ioniOnly=" << ioniOnly << " shared=" << shared;
861  } else if (lost) {
862  if (ioniOnly && !shared)
863  goodbadmergedLost->Fill(3);
864  else if (!ioniOnly && !shared)
865  goodbadmergedLost->Fill(4);
866  else
867  goodbadmergedLost->Fill(5);
868  LogTrace("TestOutliers") << "lost merged, ioniOnly=" << ioniOnly << " shared=" << shared;
869  } else if (gained) {
870  if (ioniOnly && !shared)
871  goodbadmergedGained->Fill(3);
872  else if (!ioniOnly && !shared)
873  goodbadmergedGained->Fill(4);
874  else
875  goodbadmergedGained->Fill(5);
876  LogTrace("TestOutliers") << "gained merged, ioniOnly=" << ioniOnly << " shared=" << shared;
877  }
878  LogTrace("TestOutliers") << "merged, ioniOnly=" << ioniOnly << " shared=" << shared;
879  }
880  } //if (goodhit)
881  else { //badhit
882  //LogTrace("TestOutliers") << "badhit";
883  if (outlier) {
884  badcluster->Fill(clustersize);
885  badhittype->Fill(hittypeval);
886  badlayer->Fill(layerval);
887  badprocess->Fill(shit.processType());
888  goodbadmerged->Fill(2);
889  const SiPixelRecHit *pix = dynamic_cast<const SiPixelRecHit *>(&**itHit);
890  if (pix) {
891  probXbad->Fill(pix->probabilityX());
892  probYbad->Fill(pix->probabilityY());
893  }
894  LogTrace("TestOutliers") << "out bad";
895  } else if (lost) {
896  goodbadmergedLost->Fill(2);
897  LogTrace("TestOutliers") << "lost bad";
898  } else if (gained) {
899  goodbadmergedGained->Fill(2);
900  LogTrace("TestOutliers") << "gained bad";
901  }
902  LogTrace("TestOutliers") << "bad";
903  }
904  }
905  }
906  }
907  //else if ( trackOut->numberOfValidHits() > trackOld->numberOfValidHits() ) {
908  else if (false) {
909  LogTrace("TestOutliers") << "outliers for track with #hits=" << trackOut->numberOfValidHits();
910  tracks->Fill(1);
911  LogTrace("TestOutliers")
912  << "Out->pt=" << trackOut->pt() << " Old->pt=" << trackOld->pt() << " tp->pt="
913  << sqrt(tpr->momentum().perp2())
914  //<< " trackOut->ptError()=" << trackOut->ptError() << " trackOld->ptError()=" << trackOld->ptError()
915  << " Old->validHits=" << trackOld->numberOfValidHits() << " Out->validHits="
916  << trackOut->numberOfValidHits()
917  /*<< " fracOld=" << fracOld*/
918  << " fracOut=" << fracOut << " deltaHits=" << trackOld->numberOfValidHits() - trackOut->numberOfValidHits();
919  LogTrace("TestOutliers") << "track with gained hits";
920  gainedhits2->Fill(trackOut->numberOfValidHits() - trackOld->numberOfValidHits());
921  } else {
922  LogTrace("TestOutliers") << "no outliers for track with #hits=" << trackOut->numberOfValidHits();
923  }
924  }
925  LogTrace("TestOutliers") << "end track old #" << j;
926  }
927 
928  for (unsigned int k = 0; k < tracksOut->size(); ++k) {
929  if (find(outused.begin(), outused.end(), k) == outused.end()) {
930  edm::RefToBase<reco::Track> trackOut(tracksOut, k);
931  bool outAssoc = recSimCollOut.find(trackOut) != recSimCollOut.end();
932  if (outAssoc) {
933  hitsPerTrackGained->Fill(trackOut->numberOfValidHits());
934  LogTrace("TestOutliers") << "gained track out id=" << k << " #hits==" << trackOut->numberOfValidHits();
935  }
936  }
937  }
938 }
TH1F * histoLambdaOut
Definition: TestOutliers.cc:83
double qoverp() const
q / p
Definition: TrackBase.h:599
TH1F * hitsPerTrackGained
Definition: TestOutliers.cc:84
static GlobalError transform(const LocalError &le, const Surface &surf)
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > theAssociatorOutToken
Definition: TestOutliers.cc:71
TH1F * goodhittype_cllt4
Definition: TestOutliers.cc:88
TH1F * mergedcluster
double lambda() const
Lambda angle.
Definition: TrackBase.h:605
TH1F * histoDzOld
Definition: TestOutliers.cc:82
TH1F * goodprj_clustersize
Definition: TestOutliers.cc:98
TH1F * probXshared
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
double qoverpError() const
error on signed transverse curvature
Definition: TrackBase.h:732
TH1F * goodpixlt4_simvecsize
Definition: TestOutliers.cc:91
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:754
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
TH1F * goodhittype
Definition: TestOutliers.cc:88
TH1F * histoQoverpOut
Definition: TestOutliers.cc:79
T z() const
Definition: PV3DBase.h:61
float probabilityX() const
Definition: SiPixelRecHit.h:82
TH1F * hitsPerTrackAssocLost
Definition: TestOutliers.cc:84
TH1F * goodst1_simvecsize
TH1F * goodst2lt4_simvecsize
Definition: TestOutliers.cc:93
TH1F * goodbadmergedLost
TH1F * goodst1gteq4_simvecsize
Definition: TestOutliers.cc:92
TH1F * goodprj_simvecsize
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
T const * product() const
Definition: Handle.h:70
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
double thetaError() const
error on theta
Definition: TrackBase.h:757
TH1F * deltahitsNO
Definition: TestOutliers.cc:84
TH1F * energyLossRatio
const edm::RefToBase< TrajectorySeed > & seedRef() const
Definition: Track.h:155
TH1F * histoPtOut
Definition: TestOutliers.cc:78
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > theGToken
Definition: TestOutliers.cc:72
uint16_t size_type
TH1F * hitsPerTrackAssocGained
Definition: TestOutliers.cc:84
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
TH1F * process
Definition: TestOutliers.cc:87
const_iterator find(const key_type &k) const
find element with specified reference key
TH1F * goodst2_simvecsize
unsigned int layer(const DetId &id) const
#define LogTrace(id)
TH1F * probYdelta
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > theAssociatorOldToken
Definition: TestOutliers.cc:70
TH1F * energyLossMax
TH1F * probYgood
TH1F * badhittype
Definition: TestOutliers.cc:88
const_iterator end() const
last iterator over the map (read only)
GlobalPoint position() const
TH1F * goodlayer_clgteq4
Definition: TestOutliers.cc:88
size_type size() const
map size
TH1F * mergedhittype
double pt() const
track transverse momentum
Definition: TrackBase.h:637
int TrackCharge
Definition: TrackCharge.h:4
TH1F * energyLoss
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
TH1F * deltahits
Definition: TestOutliers.cc:84
TH1F * histoD0Old
Definition: TestOutliers.cc:81
TH1F * probYshared
TH1F * goodprocess
Definition: TestOutliers.cc:87
TH1F * goodhittype_simvecsmall
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:622
int iEvent
Definition: GenABIO.cc:224
T const * product() const
Definition: ESHandle.h:86
TH1F * goodpix_clustersize
Definition: TestOutliers.cc:95
TH1F * goodprjgteq4_simvecsize
Definition: TestOutliers.cc:94
TH1F * badlayer
Definition: TestOutliers.cc:88
TH1F * goodst1_clustersize
Definition: TestOutliers.cc:96
TH1F * goodpixgteq4_simvecsize
Definition: TestOutliers.cc:91
TH1F * histoPhiOld
Definition: TestOutliers.cc:80
TH1F * badcluster
Definition: TestOutliers.cc:87
TH1F * probXgood
TH1F * countOutA
double dzError() const
error on dz
Definition: TrackBase.h:778
TH1F * goodprjlt4_simvecsize
Definition: TestOutliers.cc:94
T sqrt(T t)
Definition: SSEVec.h:19
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theTopoToken
Definition: TestOutliers.cc:74
unsigned short processType() const
Definition: PSimHit.h:131
TH1F * goodpix_simvecsize
Definition: TestOutliers.cc:99
TH1F * goodlayer
Definition: TestOutliers.cc:88
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TH1F * badprocess
Definition: TestOutliers.cc:87
TH1F * histoPhiOut
Definition: TestOutliers.cc:80
GlobalVector momentum() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
TH1F * goodlayer_simvecsmall
TH1F * goodhittype_simvecbig
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:91
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
edm::InputTag trackTagsOut_
Definition: TestOutliers.cc:66
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:88
TH1F * probXnoshare
const TrackerGeomDet * idToDet(DetId) const override
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
#define M_PI
TH1F * probYnoshare
TH1F * mergedlayer
std::vector< SimTrack >::const_iterator g4t_iterator
TH1F * deltahitsOK
Definition: TestOutliers.cc:84
Definition: DetId.h:17
TH1F * goodst1lt4_simvecsize
Definition: TestOutliers.cc:92
TH1F * histoPtOld
Definition: TestOutliers.cc:78
TH1F * goodhittype_clgteq4
Definition: TestOutliers.cc:88
edm::InputTag tpTags_
Definition: TestOutliers.cc:68
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:611
TH1F * deltahitsAssocGained
Definition: TestOutliers.cc:84
TH1F * goodlayer_cllt4
Definition: TestOutliers.cc:88
const FreeTrajectoryState & theState() const
TH1F * histoDzOut
Definition: TestOutliers.cc:82
TH1F * probXdelta
TH1F * goodst2_clustersize
Definition: TestOutliers.cc:97
float probabilityY() const
Definition: SiPixelRecHit.h:83
TrackerHitAssociator::Config trackerHitAssociatorConfig_
Definition: TestOutliers.cc:69
TH1F * histoLambdaOld
Definition: TestOutliers.cc:83
HLT enums.
TH1F * countOldT
TH1F * countOutT
TH1F * goodst2gteq4_simvecsize
Definition: TestOutliers.cc:93
TH1F * goodcluster
Definition: TestOutliers.cc:87
TH1F * histoD0Out
Definition: TestOutliers.cc:81
edm::ESHandle< TrackerGeometry > theG
Definition: TestOutliers.cc:73
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
TH1F * mergedPull
TH1F * goodbadmerged
TH1F * deltahitsAssocLost
Definition: TestOutliers.cc:84
TH1F * goodlayer_simvecbig
TH1F * histoQoverpOld
Definition: TestOutliers.cc:79
TH1F * nOfTrackIds
edm::InputTag trackTagsOld_
Definition: TestOutliers.cc:67
TH1F * hitsPerTrackLost
Definition: TestOutliers.cc:84
TH1F * gainedhits
double d0Error() const
error on d0
Definition: TrackBase.h:772
double phiError() const
error on phi
Definition: TrackBase.h:766
tmp
align.sh
Definition: createJobs.py:716
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theMFToken
Definition: TestOutliers.cc:75
value_type const * get() const
Definition: RefToBase.h:211
TH1F * goodbadhits
Definition: TestOutliers.cc:87
Global3DVector GlobalVector
Definition: GlobalVector.h:10
TH1F * goodbadmergedGained
Our base class.
Definition: SiPixelRecHit.h:23
TH1F * gainedhits2

◆ beginRun()

void TestOutliers::beginRun ( edm::Run const &  run,
const edm::EventSetup es 
)
overrideprivate

Definition at line 941 of file TestOutliers.cc.

References badcluster, badhittype, badlayer, badprocess, countOldT, countOutA, countOutT, deltahits, deltahitsAssocGained, deltahitsAssocLost, deltahitsNO, deltahitsOK, energyLoss, energyLossMax, energyLossRatio, file, gainedhits, gainedhits2, goodbadhits, goodbadmerged, goodbadmergedGained, goodbadmergedLost, goodcluster, goodhittype, goodhittype_clgteq4, goodhittype_cllt4, goodhittype_simvecbig, goodhittype_simvecsmall, goodlayer, goodlayer_clgteq4, goodlayer_cllt4, goodlayer_simvecbig, goodlayer_simvecsmall, goodpix_clustersize, goodpix_simvecsize, goodpixgteq4_simvecsize, goodpixlt4_simvecsize, goodprj_clustersize, goodprj_simvecsize, goodprjgteq4_simvecsize, goodprjlt4_simvecsize, goodprocess, goodst1_clustersize, goodst1_simvecsize, goodst1gteq4_simvecsize, goodst1lt4_simvecsize, goodst2_clustersize, goodst2_simvecsize, goodst2gteq4_simvecsize, goodst2lt4_simvecsize, histoD0Old, histoD0Out, histoDzOld, histoDzOut, histoLambdaOld, histoLambdaOut, histoPhiOld, histoPhiOut, histoPtOld, histoPtOut, histoQoverpOld, histoQoverpOut, hitsPerTrackAssocGained, hitsPerTrackAssocLost, hitsPerTrackGained, hitsPerTrackLost, mergedcluster, mergedhittype, mergedlayer, mergedPull, nOfTrackIds, okcutsOld, okcutsOut, out, posxy, poszr, probXbad, probXdelta, probXgood, probXnoshare, probXshared, probYbad, probYdelta, probYgood, probYnoshare, probYshared, process, sizeOld, sizeOldT, sizeOut, sizeOutT, and tracks.

941  {
942  const bool oldAddDir = TH1::AddDirectoryStatus();
943  TH1::AddDirectory(true);
944  file = new TFile(out.c_str(), "recreate");
945  histoPtOut = new TH1F("histoPtOut", "histoPtOut", 100, -10, 10);
946  histoPtOld = new TH1F("histoPtOld", "histoPtOld", 100, -10, 10);
947  histoQoverpOut = new TH1F("histoQoverpOut", "histoQoverpOut", 250, -25, 25);
948  histoQoverpOld = new TH1F("histoQoverpOld", "histoQoverpOld", 250, -25, 25);
949  histoPhiOut = new TH1F("histoPhiOut", "histoPhiOut", 250, -25, 25);
950  histoPhiOld = new TH1F("histoPhiOld", "histoPhiOld", 250, -25, 25);
951  histoD0Out = new TH1F("histoD0Out", "histoD0Out", 250, -25, 25);
952  histoD0Old = new TH1F("histoD0Old", "histoD0Old", 250, -25, 25);
953  histoDzOut = new TH1F("histoDzOut", "histoDzOut", 250, -25, 25);
954  histoDzOld = new TH1F("histoDzOld", "histoDzOld", 250, -25, 25);
955  histoLambdaOut = new TH1F("histoLambdaOut", "histoLambdaOut", 250, -25, 25);
956  histoLambdaOld = new TH1F("histoLambdaOld", "histoLambdaOld", 250, -25, 25);
957  deltahits = new TH1F("deltahits", "deltahits", 80, -40, 40);
958  deltahitsOK = new TH1F("deltahitsOK", "deltahitsOK", 20, 0, 20);
959  deltahitsNO = new TH1F("deltahitsNO", "deltahitsNO", 20, 0, 20);
960  okcutsOut = new TH1F("okcutsOut", "okcutsOut", 2, -0.5, 1.5);
961  okcutsOld = new TH1F("okcutsOld", "okcutsOld", 2, -0.5, 1.5);
962  tracks = new TH1F("tracks_", "tracks_", 2, -0.5, 1.5);
963  goodbadhits = new TH1F("goodbadhits", "goodbadhits", 2, -0.5, 1.5);
964  process = new TH1F("process", "process", 20, -0.5, 19.5);
965  goodcluster = new TH1F("goodcluster", "goodcluster", 40, -0.5, 39.5);
966  goodprocess = new TH1F("goodprocess", "goodprocess", 20, -0.5, 19.5);
967  badcluster = new TH1F("badcluster", "badcluster", 40, -0.5, 39.5);
968  badprocess = new TH1F("badprocess", "badprocess", 20, -0.5, 19.5);
969  goodhittype = new TH1F("goodhittype", "goodhittype", 5, -0.5, 4.5);
970  goodlayer = new TH1F("goodlayer", "goodlayer", 70, -0.5, 69.5);
971  goodhittype_clgteq4 = new TH1F("goodhittype_clgteq4", "goodhittype_clgteq4", 5, -0.5, 4.5);
972  goodlayer_clgteq4 = new TH1F("goodlayer_clgteq4", "goodlayer_clgteq4", 70, -0.5, 69.5);
973  goodhittype_cllt4 = new TH1F("goodhittype_cllt4", "goodhittype_cllt4", 5, -0.5, 4.5);
974  goodlayer_cllt4 = new TH1F("goodlayer_cllt4", "goodlayer_cllt4", 70, -0.5, 69.5);
975  badhittype = new TH1F("badhittype", "badhittype", 5, -0.5, 4.5);
976  badlayer = new TH1F("badlayer", "badlayer", 70, -0.5, 69.5);
977  posxy = new TH2F("posxy", "posxy", 1200, 0, 120, 1200, 0, 120);
978  poszr = new TH2F("poszr", "poszr", 3000, 0, 300, 1200, 0, 120);
979  goodpixgteq4_simvecsize = new TH1F("goodpixgteq4_simvecsize", "goodpixgteq4_simvecsize", 40, -0.5, 39.5);
980  goodpixlt4_simvecsize = new TH1F("goodpixlt4_simvecsize", "goodpixlt4_simvecsize", 40, -0.5, 39.5);
981  goodst1gteq4_simvecsize = new TH1F("goodst1gteq4_simvecsize", "goodst1gteq4_simvecsize", 40, -0.5, 39.5);
982  goodst1lt4_simvecsize = new TH1F("goodst1lt4_simvecsize", "goodst1lt4_simvecsize", 40, -0.5, 39.5);
983  goodst2gteq4_simvecsize = new TH1F("goodst2gteq4_simvecsize", "goodst2gteq4_simvecsize", 40, -0.5, 39.5);
984  goodst2lt4_simvecsize = new TH1F("goodst2lt4_simvecsize", "goodst2lt4_simvecsize", 40, -0.5, 39.5);
985  goodprjgteq4_simvecsize = new TH1F("goodprjgteq4_simvecsize", "goodprjgteq4_simvecsize", 40, -0.5, 39.5);
986  goodprjlt4_simvecsize = new TH1F("goodprjlt4_simvecsize", "goodprjlt4_simvecsize", 40, -0.5, 39.5);
987  goodpix_clustersize = new TH1F("goodpix_clustersize", "goodpix_clustersize", 40, -0.5, 39.5);
988  goodst1_clustersize = new TH1F("goodst1_clustersize", "goodst1_clustersize", 40, -0.5, 39.5);
989  goodst2_clustersize = new TH1F("goodst2_clustersize", "goodst2_clustersize", 40, -0.5, 39.5);
990  goodprj_clustersize = new TH1F("goodprj_clustersize", "goodprj_clustersize", 40, -0.5, 39.5);
991  goodpix_simvecsize = new TH1F("goodpix_simvecsize", "goodpix_simvecsize", 40, -0.5, 39.5);
992  goodst1_simvecsize = new TH1F("goodst1_simvecsize", "goodst1_simvecsize", 40, -0.5, 39.5);
993  goodst2_simvecsize = new TH1F("goodst2_simvecsize", "goodst2_simvecsize", 40, -0.5, 39.5);
994  goodprj_simvecsize = new TH1F("goodprj_simvecsize", "goodprj_simvecsize", 40, -0.5, 39.5);
995  goodhittype_simvecsmall = new TH1F("goodhittype_simvecsmall", "goodhittype_simvecsmall", 5, -0.5, 4.5);
996  goodlayer_simvecsmall = new TH1F("goodlayer_simvecsmall", "goodlayer_simvecsmall", 70, -0.5, 69.5);
997  goodhittype_simvecbig = new TH1F("goodhittype_simvecbig", "goodhittype_simvecbig", 5, -0.5, 4.5);
998  goodlayer_simvecbig = new TH1F("goodlayer_simvecbig", "goodlayer_simvecbig", 70, -0.5, 69.5);
999  goodbadmerged = new TH1F("goodbadmerged", "goodbadmerged", 5, 0.5, 5.5);
1000  goodbadmergedLost = new TH1F("goodbadmergedLost", "goodbadmergedLost", 5, 0.5, 5.5);
1001  goodbadmergedGained = new TH1F("goodbadmergedGained", "goodbadmergedGained", 5, 0.5, 5.5);
1002  energyLoss = new TH1F("energyLoss", "energyLoss", 1000, 0, 0.1);
1003  energyLossMax = new TH1F("energyLossMax", "energyLossMax", 1000, 0, 0.1);
1004  energyLossRatio = new TH1F("energyLossRatio", "energyLossRatio", 100, 0, 1);
1005  nOfTrackIds = new TH1F("nOfTrackIds", "nOfTrackIds", 10, 0, 10);
1006  mergedPull = new TH1F("mergedPull", "mergedPull", 100, 0, 10);
1007  mergedlayer = new TH1F("mergedlayer", "mergedlayer", 70, -0.5, 69.5);
1008  mergedhittype = new TH1F("mergedhittype", "mergedhittype", 5, -0.5, 4.5);
1009  mergedcluster = new TH1F("mergedcluster", "mergedcluster", 40, -0.5, 39.5);
1010  deltahitsAssocGained = new TH1F("deltahitsAssocGained", "deltahitsAssocGained", 80, -40, 40);
1011  deltahitsAssocLost = new TH1F("deltahitsAssocLost", "deltahitsAssocLost", 80, -40, 40);
1012  hitsPerTrackLost = new TH1F("hitsPerTrackLost", "hitsPerTrackLost", 40, -0.5, 39.5);
1013  hitsPerTrackAssocLost = new TH1F("hitsPerTrackAssocLost", "hitsPerTrackAssocLost", 40, -0.5, 39.5);
1014  hitsPerTrackGained = new TH1F("hitsPerTrackGained", "hitsPerTrackGained", 40, -0.5, 39.5);
1015  hitsPerTrackAssocGained = new TH1F("hitsPerTrackAssocGained", "hitsPerTrackAssocGained", 40, -0.5, 39.5);
1016  sizeOut = new TH1F("sizeOut", "sizeOut", 900, -0.5, 899.5);
1017  sizeOld = new TH1F("sizeOld", "sizeOld", 900, -0.5, 899.5);
1018  sizeOutT = new TH1F("sizeOutT", "sizeOutT", 900, -0.5, 899.5);
1019  sizeOldT = new TH1F("sizeOldT", "sizeOldT", 900, -0.5, 899.5);
1020  countOutA = new TH1F("countOutA", "countOutA", 2, 0, 2);
1021  countOutT = new TH1F("countOutT", "countOutT", 2, 0, 2);
1022  countOldT = new TH1F("countOldT", "countOldT", 2, 0, 2);
1023  gainedhits = new TH1F("gainedhits", "gainedhits", 2, 0, 2);
1024  gainedhits2 = new TH1F("gainedhits2", "gainedhits2", 30, -0.5, 29.5);
1025  probXgood = new TH1F("probXgood", "probXgood", 110, 0, 1.1);
1026  probXbad = new TH1F("probXbad", "probXbad", 110, 0, 1.1);
1027  probXdelta = new TH1F("probXdelta", "probXdelta", 110, 0, 1.1);
1028  probXshared = new TH1F("probXshared", "probXshared", 110, 0, 1.1);
1029  probXnoshare = new TH1F("probXnoshare", "probXnoshare", 110, 0, 1.1);
1030  probYgood = new TH1F("probYgood", "probYgood", 110, 0, 1.1);
1031  probYbad = new TH1F("probYbad", "probYbad", 110, 0, 1.1);
1032  probYdelta = new TH1F("probYdelta", "probYdelta", 110, 0, 1.1);
1033  probYshared = new TH1F("probYshared", "probYshared", 110, 0, 1.1);
1034  probYnoshare = new TH1F("probYnoshare", "probYnoshare", 110, 0, 1.1);
1035  TH1::AddDirectory(oldAddDir);
1036 }
TH1F * histoLambdaOut
Definition: TestOutliers.cc:83
TH1F * hitsPerTrackGained
Definition: TestOutliers.cc:84
TH1F * goodhittype_cllt4
Definition: TestOutliers.cc:88
TH1F * mergedcluster
TH1F * histoDzOld
Definition: TestOutliers.cc:82
TH1F * goodprj_clustersize
Definition: TestOutliers.cc:98
TH1F * probXshared
TH1F * goodpixlt4_simvecsize
Definition: TestOutliers.cc:91
TH1F * goodhittype
Definition: TestOutliers.cc:88
TH1F * histoQoverpOut
Definition: TestOutliers.cc:79
TH1F * hitsPerTrackAssocLost
Definition: TestOutliers.cc:84
TH1F * goodst1_simvecsize
TH1F * goodst2lt4_simvecsize
Definition: TestOutliers.cc:93
TH1F * goodbadmergedLost
TH1F * goodst1gteq4_simvecsize
Definition: TestOutliers.cc:92
TH1F * goodprj_simvecsize
TH1F * okcutsOut
Definition: TestOutliers.cc:86
TFile * file
Definition: TestOutliers.cc:77
TH1F * deltahitsNO
Definition: TestOutliers.cc:84
TH1F * energyLossRatio
TH1F * histoPtOut
Definition: TestOutliers.cc:78
TH1F * hitsPerTrackAssocGained
Definition: TestOutliers.cc:84
TH1F * process
Definition: TestOutliers.cc:87
TH1F * goodst2_simvecsize
TH1F * probYdelta
TH1F * energyLossMax
TH1F * probYgood
TH1F * badhittype
Definition: TestOutliers.cc:88
TH1F * goodlayer_clgteq4
Definition: TestOutliers.cc:88
TH1F * mergedhittype
TH1F * energyLoss
TH1F * deltahits
Definition: TestOutliers.cc:84
TH1F * histoD0Old
Definition: TestOutliers.cc:81
TH1F * probYshared
TH1F * goodprocess
Definition: TestOutliers.cc:87
TH1F * goodhittype_simvecsmall
TH1F * goodpix_clustersize
Definition: TestOutliers.cc:95
TH1F * goodprjgteq4_simvecsize
Definition: TestOutliers.cc:94
TH1F * badlayer
Definition: TestOutliers.cc:88
TH1F * goodst1_clustersize
Definition: TestOutliers.cc:96
TH1F * goodpixgteq4_simvecsize
Definition: TestOutliers.cc:91
TH1F * histoPhiOld
Definition: TestOutliers.cc:80
TH1F * badcluster
Definition: TestOutliers.cc:87
TH1F * probXgood
TH1F * countOutA
TH1F * goodprjlt4_simvecsize
Definition: TestOutliers.cc:94
TH1F * goodpix_simvecsize
Definition: TestOutliers.cc:99
TH1F * goodlayer
Definition: TestOutliers.cc:88
TH1F * badprocess
Definition: TestOutliers.cc:87
TH1F * histoPhiOut
Definition: TestOutliers.cc:80
std::string out
Definition: TestOutliers.cc:76
TH1F * goodlayer_simvecsmall
TH1F * goodhittype_simvecbig
TH1F * probXnoshare
TH1F * probYnoshare
TH1F * mergedlayer
TH1F * deltahitsOK
Definition: TestOutliers.cc:84
TH1F * goodst1lt4_simvecsize
Definition: TestOutliers.cc:92
TH1F * histoPtOld
Definition: TestOutliers.cc:78
TH1F * goodhittype_clgteq4
Definition: TestOutliers.cc:88
TH1F * deltahitsAssocGained
Definition: TestOutliers.cc:84
TH1F * goodlayer_cllt4
Definition: TestOutliers.cc:88
TH1F * histoDzOut
Definition: TestOutliers.cc:82
TH1F * probXdelta
TH1F * goodst2_clustersize
Definition: TestOutliers.cc:97
TH1F * histoLambdaOld
Definition: TestOutliers.cc:83
TH1F * countOldT
TH1F * countOutT
TH1F * goodst2gteq4_simvecsize
Definition: TestOutliers.cc:93
TH1F * goodcluster
Definition: TestOutliers.cc:87
TH1F * histoD0Out
Definition: TestOutliers.cc:81
TH1F * okcutsOld
Definition: TestOutliers.cc:86
TH1F * mergedPull
TH1F * goodbadmerged
TH1F * deltahitsAssocLost
Definition: TestOutliers.cc:84
TH1F * goodlayer_simvecbig
TH1F * histoQoverpOld
Definition: TestOutliers.cc:79
TH1F * nOfTrackIds
TH1F * hitsPerTrackLost
Definition: TestOutliers.cc:84
TH1F * gainedhits
TH1F * goodbadhits
Definition: TestOutliers.cc:87
TH1F * goodbadmergedGained
TH1F * gainedhits2

◆ endJob()

void TestOutliers::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 1038 of file TestOutliers.cc.

References file, and LogTrace.

1038  {
1039  LogTrace("TestOutliers") << "TestOutliers::endJob";
1040  file->Write();
1041  LogTrace("TestOutliers") << "outfile written";
1042  file->Close();
1043  LogTrace("TestOutliers") << "oufile closed";
1044  LogTrace("TestOutliers") << "exiting TestOutliers::endJob";
1045 }
TFile * file
Definition: TestOutliers.cc:77
#define LogTrace(id)

◆ endRun()

void TestOutliers::endRun ( edm::Run const &  run,
const edm::EventSetup  
)
inlineoverrideprivate

Definition at line 62 of file TestOutliers.cc.

62 {}

Member Data Documentation

◆ badcluster

TH1F * TestOutliers::badcluster
private

Definition at line 87 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ badhittype

TH1F * TestOutliers::badhittype
private

Definition at line 88 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ badlayer

TH1F * TestOutliers::badlayer
private

Definition at line 88 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ badprocess

TH1F * TestOutliers::badprocess
private

Definition at line 87 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ countOldT

TH1F * TestOutliers::countOldT
private

Definition at line 108 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ countOutA

TH1F* TestOutliers::countOutA
private

Definition at line 108 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ countOutT

TH1F * TestOutliers::countOutT
private

Definition at line 108 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ deltahits

TH1F* TestOutliers::deltahits
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ deltahitsAssocGained

TH1F * TestOutliers::deltahitsAssocGained
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ deltahitsAssocLost

TH1F * TestOutliers::deltahitsAssocLost
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ deltahitsNO

TH1F * TestOutliers::deltahitsNO
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ deltahitsOK

TH1F * TestOutliers::deltahitsOK
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ energyLoss

TH1F* TestOutliers::energyLoss
private

Definition at line 105 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ energyLossMax

TH1F * TestOutliers::energyLossMax
private

Definition at line 105 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ energyLossRatio

TH1F * TestOutliers::energyLossRatio
private

Definition at line 105 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ file

TFile* TestOutliers::file
private

Definition at line 77 of file TestOutliers.cc.

Referenced by beginRun(), and endJob().

◆ gainedhits

TH1F* TestOutliers::gainedhits
private

Definition at line 109 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ gainedhits2

TH1F * TestOutliers::gainedhits2
private

Definition at line 109 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodbadhits

TH1F * TestOutliers::goodbadhits
private

Definition at line 87 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodbadmerged

TH1F * TestOutliers::goodbadmerged
private

Definition at line 103 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodbadmergedGained

TH1F * TestOutliers::goodbadmergedGained
private

Definition at line 103 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodbadmergedLost

TH1F * TestOutliers::goodbadmergedLost
private

Definition at line 103 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodcluster

TH1F * TestOutliers::goodcluster
private

Definition at line 87 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodhittype

TH1F* TestOutliers::goodhittype
private

Definition at line 88 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodhittype_clgteq4

TH1F * TestOutliers::goodhittype_clgteq4
private

Definition at line 88 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodhittype_cllt4

TH1F * TestOutliers::goodhittype_cllt4
private

Definition at line 88 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodhittype_simvecbig

TH1F * TestOutliers::goodhittype_simvecbig
private

Definition at line 103 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodhittype_simvecsmall

TH1F* TestOutliers::goodhittype_simvecsmall
private

Definition at line 103 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodlayer

TH1F * TestOutliers::goodlayer
private

Definition at line 88 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodlayer_clgteq4

TH1F * TestOutliers::goodlayer_clgteq4
private

Definition at line 88 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodlayer_cllt4

TH1F * TestOutliers::goodlayer_cllt4
private

Definition at line 88 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodlayer_simvecbig

TH1F * TestOutliers::goodlayer_simvecbig
private

Definition at line 103 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodlayer_simvecsmall

TH1F * TestOutliers::goodlayer_simvecsmall
private

Definition at line 103 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodpix_clustersize

TH1F* TestOutliers::goodpix_clustersize
private

Definition at line 95 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodpix_simvecsize

TH1F* TestOutliers::goodpix_simvecsize
private

Definition at line 99 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodpixgteq4_simvecsize

TH1F* TestOutliers::goodpixgteq4_simvecsize
private

Definition at line 91 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodpixlt4_simvecsize

TH1F * TestOutliers::goodpixlt4_simvecsize
private

Definition at line 91 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodprj_clustersize

TH1F* TestOutliers::goodprj_clustersize
private

Definition at line 98 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodprj_simvecsize

TH1F* TestOutliers::goodprj_simvecsize
private

Definition at line 102 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodprjgteq4_simvecsize

TH1F* TestOutliers::goodprjgteq4_simvecsize
private

Definition at line 94 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodprjlt4_simvecsize

TH1F * TestOutliers::goodprjlt4_simvecsize
private

Definition at line 94 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodprocess

TH1F * TestOutliers::goodprocess
private

Definition at line 87 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodst1_clustersize

TH1F* TestOutliers::goodst1_clustersize
private

Definition at line 96 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodst1_simvecsize

TH1F* TestOutliers::goodst1_simvecsize
private

Definition at line 100 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodst1gteq4_simvecsize

TH1F* TestOutliers::goodst1gteq4_simvecsize
private

Definition at line 92 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodst1lt4_simvecsize

TH1F * TestOutliers::goodst1lt4_simvecsize
private

Definition at line 92 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodst2_clustersize

TH1F* TestOutliers::goodst2_clustersize
private

Definition at line 97 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodst2_simvecsize

TH1F* TestOutliers::goodst2_simvecsize
private

Definition at line 101 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodst2gteq4_simvecsize

TH1F* TestOutliers::goodst2gteq4_simvecsize
private

Definition at line 93 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ goodst2lt4_simvecsize

TH1F * TestOutliers::goodst2lt4_simvecsize
private

Definition at line 93 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoD0Old

TH1F * TestOutliers::histoD0Old
private

Definition at line 81 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoD0Out

TH1F* TestOutliers::histoD0Out
private

Definition at line 81 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoDzOld

TH1F * TestOutliers::histoDzOld
private

Definition at line 82 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoDzOut

TH1F* TestOutliers::histoDzOut
private

Definition at line 82 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoLambdaOld

TH1F * TestOutliers::histoLambdaOld
private

Definition at line 83 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoLambdaOut

TH1F* TestOutliers::histoLambdaOut
private

Definition at line 83 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoPhiOld

TH1F * TestOutliers::histoPhiOld
private

Definition at line 80 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoPhiOut

TH1F* TestOutliers::histoPhiOut
private

Definition at line 80 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoPtOld

TH1F * TestOutliers::histoPtOld
private

Definition at line 78 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoPtOut

TH1F* TestOutliers::histoPtOut
private

Definition at line 78 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoQoverpOld

TH1F * TestOutliers::histoQoverpOld
private

Definition at line 79 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ histoQoverpOut

TH1F* TestOutliers::histoQoverpOut
private

Definition at line 79 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ hitsPerTrackAssocGained

TH1F * TestOutliers::hitsPerTrackAssocGained
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ hitsPerTrackAssocLost

TH1F * TestOutliers::hitsPerTrackAssocLost
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ hitsPerTrackGained

TH1F * TestOutliers::hitsPerTrackGained
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ hitsPerTrackLost

TH1F * TestOutliers::hitsPerTrackLost
private

Definition at line 84 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ mergedcluster

TH1F * TestOutliers::mergedcluster
private

Definition at line 105 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ mergedhittype

TH1F * TestOutliers::mergedhittype
private

Definition at line 105 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ mergedlayer

TH1F * TestOutliers::mergedlayer
private

Definition at line 105 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ mergedPull

TH1F * TestOutliers::mergedPull
private

Definition at line 105 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ nOfTrackIds

TH1F * TestOutliers::nOfTrackIds
private

Definition at line 105 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ okcutsOld

TH1F * TestOutliers::okcutsOld
private

Definition at line 86 of file TestOutliers.cc.

Referenced by beginRun().

◆ okcutsOut

TH1F* TestOutliers::okcutsOut
private

Definition at line 86 of file TestOutliers.cc.

Referenced by beginRun().

◆ out

std::string TestOutliers::out
private

Definition at line 76 of file TestOutliers.cc.

Referenced by beginRun().

◆ posxy

TH2F* TestOutliers::posxy
private

Definition at line 90 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ poszr

TH2F * TestOutliers::poszr
private

Definition at line 90 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probXbad

TH1F * TestOutliers::probXbad
private

Definition at line 110 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probXdelta

TH1F * TestOutliers::probXdelta
private

Definition at line 110 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probXgood

TH1F* TestOutliers::probXgood
private

Definition at line 110 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probXnoshare

TH1F * TestOutliers::probXnoshare
private

Definition at line 110 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probXshared

TH1F * TestOutliers::probXshared
private

Definition at line 110 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probYbad

TH1F * TestOutliers::probYbad
private

Definition at line 111 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probYdelta

TH1F * TestOutliers::probYdelta
private

Definition at line 111 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probYgood

TH1F* TestOutliers::probYgood
private

Definition at line 111 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probYnoshare

TH1F * TestOutliers::probYnoshare
private

Definition at line 111 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ probYshared

TH1F * TestOutliers::probYshared
private

Definition at line 111 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ process

TH1F * TestOutliers::process
private

Definition at line 87 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ sizeOld

TH1F * TestOutliers::sizeOld
private

Definition at line 107 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ sizeOldT

TH1F * TestOutliers::sizeOldT
private

Definition at line 107 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ sizeOut

TH1F* TestOutliers::sizeOut
private

Definition at line 107 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ sizeOutT

TH1F * TestOutliers::sizeOutT
private

Definition at line 107 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ theAssociatorOldToken

edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator> TestOutliers::theAssociatorOldToken
private

Definition at line 70 of file TestOutliers.cc.

Referenced by analyze().

◆ theAssociatorOutToken

edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator> TestOutliers::theAssociatorOutToken
private

Definition at line 71 of file TestOutliers.cc.

Referenced by analyze().

◆ theG

edm::ESHandle<TrackerGeometry> TestOutliers::theG
private

Definition at line 73 of file TestOutliers.cc.

Referenced by analyze().

◆ theGToken

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> TestOutliers::theGToken
private

Definition at line 72 of file TestOutliers.cc.

Referenced by analyze().

◆ theMFToken

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> TestOutliers::theMFToken
private

Definition at line 75 of file TestOutliers.cc.

Referenced by analyze().

◆ theTopoToken

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> TestOutliers::theTopoToken
private

Definition at line 74 of file TestOutliers.cc.

Referenced by analyze().

◆ tpTags_

edm::InputTag TestOutliers::tpTags_
private

Definition at line 68 of file TestOutliers.cc.

Referenced by analyze().

◆ trackerHitAssociatorConfig_

TrackerHitAssociator::Config TestOutliers::trackerHitAssociatorConfig_
private

Definition at line 69 of file TestOutliers.cc.

Referenced by analyze().

◆ tracks

TH1F* TestOutliers::tracks
private

Definition at line 87 of file TestOutliers.cc.

Referenced by analyze(), and beginRun().

◆ trackTagsOld_

edm::InputTag TestOutliers::trackTagsOld_
private

Definition at line 67 of file TestOutliers.cc.

Referenced by analyze().

◆ trackTagsOut_

edm::InputTag TestOutliers::trackTagsOut_
private

Definition at line 66 of file TestOutliers.cc.

Referenced by analyze().