Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-08-27 23:16:29

0001 // system includes
0002 #include <vector>
0003 #include <iostream>
0004 #include <cstdlib>
0005 #include <cstdio>
0006 
0007 // user includes
0008 #include "CommonTools/UtilAlgos/interface/TFileService.h"
0009 #include "DataFormats/Common/interface/Handle.h"
0010 #include "DataFormats/DetId/interface/DetIdCollection.h"
0011 #include "DataFormats/DetId/interface/DetIdVector.h"
0012 #include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementError.h"
0013 #include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementVector.h"
0014 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0015 #include "DataFormats/OnlineMetaData/interface/OnlineLuminosityRecord.h"
0016 #include "DataFormats/Scalers/interface/LumiScalers.h"
0017 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h"
0018 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h"
0019 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0020 #include "FWCore/Framework/interface/ESHandle.h"
0021 #include "FWCore/Framework/interface/Event.h"
0022 #include "FWCore/Framework/interface/EventSetup.h"
0023 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0025 #include "FWCore/ServiceRegistry/interface/Service.h"
0026 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0027 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0028 #include "MagneticField/Engine/interface/MagneticField.h"
0029 #include "RecoLocalTracker/ClusterParameterEstimator/interface/StripClusterParameterEstimator.h"
0030 #include "RecoLocalTracker/Records/interface/TkStripCPERecord.h"
0031 #include "RecoLocalTracker/SiStripClusterizer/interface/SiStripClusterInfo.h"
0032 #include "RecoTracker/Record/interface/CkfComponentsRecord.h"
0033 #include "RecoTracker/SingleTrackPattern/interface/CosmicTrajectoryBuilder.h"
0034 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h"
0035 #include "TrackingTools/KalmanUpdators/interface/KFUpdator.h"
0036 #include "TrackingTools/MaterialEffects/interface/PropagatorWithMaterial.h"
0037 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
0038 #include "TrackingTools/TrackFitters/interface/KFTrajectoryFitter.h"
0039 #include "TrackingTools/TrackFitters/interface/KFTrajectorySmoother.h"
0040 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h"
0041 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
0042 
0043 // ROOT includes
0044 #include "TRandom2.h"
0045 #include "TROOT.h"
0046 #include "TFile.h"
0047 #include "TH1F.h"
0048 #include "TH2F.h"
0049 #include "TTree.h"
0050 
0051 class TrackerTopology;
0052 
0053 class HitEff : public edm::one::EDAnalyzer<edm::one::SharedResources> {
0054 public:
0055   explicit HitEff(const edm::ParameterSet& conf);
0056   ~HitEff() override = default;
0057 
0058 private:
0059   void beginJob() override;
0060   void endJob() override;
0061   void analyze(const edm::Event& e, const edm::EventSetup& c) override;
0062 
0063   // ----------member data ---------------------------
0064 
0065   const edm::EDGetTokenT<LumiScalersCollection> scalerToken_;
0066   const edm::EDGetTokenT<OnlineLuminosityRecord> metaDataToken_;
0067   const edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > commonModeToken_;
0068 
0069   SiStripClusterInfo siStripClusterInfo_;
0070 
0071   bool addLumi_;
0072   bool addCommonMode_;
0073   bool cutOnTracks_;
0074   unsigned int trackMultiplicityCut_;
0075   bool useFirstMeas_;
0076   bool useLastMeas_;
0077   bool useAllHitsFromTracksWithMissingHits_;
0078   bool doMissingHitsRecovery_;
0079 
0080   const edm::EDGetTokenT<reco::TrackCollection> combinatorialTracks_token_;
0081   const edm::EDGetTokenT<std::vector<Trajectory> > trajectories_token_;
0082   const edm::EDGetTokenT<TrajTrackAssociationCollection> trajTrackAsso_token_;
0083   const edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > clusters_token_;
0084   const edm::EDGetTokenT<DetIdCollection> digisCol_token_;
0085   const edm::EDGetTokenT<DetIdVector> digisVec_token_;
0086   const edm::EDGetTokenT<MeasurementTrackerEvent> trackerEvent_token_;
0087 
0088   // ES tokens
0089 
0090   const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
0091   const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> geomToken_;
0092   const edm::ESGetToken<StripClusterParameterEstimator, TkStripCPERecord> cpeToken_;
0093   const edm::ESGetToken<SiStripQuality, SiStripQualityRcd> siStripQualityToken_;
0094   const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> magFieldToken_;
0095   const edm::ESGetToken<MeasurementTracker, CkfComponentsRecord> measurementTkToken_;
0096   const edm::ESGetToken<Chi2MeasurementEstimatorBase, TrackingComponentsRecord> chi2MeasurementEstimatorToken_;
0097   const edm::ESGetToken<Propagator, TrackingComponentsRecord> propagatorToken_;
0098 
0099   edm::ParameterSet conf_;
0100 
0101   TTree* traj;
0102   int events, EventTrackCKF;
0103 
0104   int compSettings;
0105   unsigned int layers;
0106   bool DEBUG;
0107   unsigned int whatlayer;
0108 
0109   std::vector<unsigned int> hitRecoveryCounters;
0110   std::vector<unsigned int> hitTotalCounters;
0111 // Tree declarations
0112 // Trajectory positions for modules included in the study
0113 #ifdef ExtendedCALIBTree
0114   float timeDT, timeDTErr;
0115   int timeDTDOF;
0116   float timeECAL, dedx;
0117   int dedxNOM;
0118   int nLostHits;
0119   float p, chi2;
0120 #endif
0121   int totalNbHits;
0122   std::vector<int> missHitPerLayer;
0123   float TrajGlbX, TrajGlbY, TrajGlbZ;
0124   float TrajLocX, TrajLocY, TrajLocAngleX, TrajLocAngleY;
0125   float TrajLocErrX, TrajLocErrY;
0126   float ClusterLocX, ClusterLocY, ClusterLocErrX, ClusterLocErrY, ClusterStoN;
0127   float ResX, ResXSig;
0128   unsigned int ModIsBad;
0129   unsigned int Id;
0130   unsigned int SiStripQualBad;
0131   bool withinAcceptance;
0132   bool highPurity;
0133   int nHits;
0134   float pT;
0135   unsigned int trajHitValid, run, event, bunchx;
0136   int tquality;
0137   float instLumi, PU;
0138   float commonMode;
0139 };
0140 
0141 //#endif