Go to the documentation of this file. 1 #ifndef RecoLocalMuon_CSCEfficiency_H
2 #define RecoLocalMuon_CSCEfficiency_H
58 #include "CLHEP/Matrix/Vector.h"
59 #include "CLHEP/Vector/ThreeVector.h"
78 #define SQR(x) ((x) * (x))
82 #define NumCh (LastCh - FirstCh + 1)
180 std::vector<std::pair<std::pair<int, float>,
int> >
allWG[2][4][4][
NumCh][6];
227 CLHEP::Hep3Vector &
p3,
228 CLHEP::Hep3Vector &r3,
233 const CLHEP::Hep3Vector &r3,
241 std::vector<float> &posZY);
242 double extrapolate1D(
double initPosition,
double initDirection,
double parameterOfTheLine);
243 double lineParameter(
double initZPosition,
double destZPosition,
double initZDirection);
246 void chooseDirection(CLHEP::Hep3Vector &innerPosition, CLHEP::Hep3Vector &outerPosition);
TrajectoryStateOnSurface propagate(FreeTrajectoryState &ftsStart, const BoundPlane &bp)
MuonServiceProxy * theService
edm::EDGetTokenT< CSCCLCTDigiCollection > cl_token
TH1F * InefficientALCT_dydz
TH1F * InefficientALCT_momTheta
TH1F * InefficientCLCT_momPhi
bool recSimHitEfficiency(CSCDetId &id, FreeTrajectoryState &ftsChamber)
edm::EDGetTokenT< edm::PSimHitContainer > sh_token
bool inSensitiveLocalRegion(double xLocal, double yLocal, int station, int ring)
void chamberCandidates(int station, int ring, float phi, std::vector< int > &coupleOfChambers)
edm::EDGetTokenT< CSCRecHit2DCollection > rh_token
std::vector< std::pair< LocalPoint, int > > allSimhits[2][4][4][(36 - 1+1)][6]
edm::EDGetTokenT< edm::View< reco::Track > > tk_token
bool stripWire_Efficiencies(CSCDetId &cscDetId, FreeTrajectoryState &ftsChamber)
std::vector< TH1F * > Y_EfficientRecHits_inSegment
bool getAbsoluteEfficiency
CSCEfficiency(const edm::ParameterSet &pset)
Constructor.
edm::EDGetTokenT< CSCWireDigiCollection > wd_token
std::vector< int > pointToTriggers
bool allCLCT[2][4][4][(36 - 1+1)]
void returnTypes(CSCDetId &id, int &ec, int &st, int &rg, int &ch, int &secondRing)
struct CSCEfficiency::StationHistos StHist[2][4]
TH1F * StripWiresCorrelations
double lineParameter(double initZPosition, double destZPosition, double initZDirection)
void linearExtrapolation(GlobalPoint initialPosition, GlobalVector initialDirection, float zSurface, std::vector< float > &posZY)
std::vector< std::pair< LocalPoint, bool > > allRechits[2][4][4][(36 - 1+1)][6]
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
void fillDigiInfo(edm::Handle< CSCALCTDigiCollection > &alcts, edm::Handle< CSCCLCTDigiCollection > &clcts, edm::Handle< CSCCorrelatedLCTDigiCollection > &correlatedlcts, edm::Handle< CSCWireDigiCollection > &wires, edm::Handle< CSCStripDigiCollection > &strips, edm::Handle< edm::PSimHitContainer > &simhits, edm::Handle< CSCRecHit2DCollection > &rechits, edm::Handle< CSCSegmentCollection > &segments, edm::ESHandle< CSCGeometry > &cscGeom)
TH1F * EfficientCLCT_momPhi
TH1F * EfficientALCT_dydz
struct CSCEfficiency::ChamberHistos ChHist[2][4][3][36 - 1+1]
FreeTrajectoryState getFromCLHEP(const CLHEP::Hep3Vector &p3, const CLHEP::Hep3Vector &r3, int charge, const AlgebraicSymMatrix66 &cov, const MagneticField *field)
void fillLCT_info(edm::Handle< CSCALCTDigiCollection > &alcts, edm::Handle< CSCCLCTDigiCollection > &clcts, edm::Handle< CSCCorrelatedLCTDigiCollection > &correlatedlcts)
std::vector< std::pair< LocalPoint, LocalVector > > allSegments[2][4][4][(36 - 1+1)]
TH1F * InefficientCLCT_dxdz
TH2F * EfficientSegments_XY
TH1F * EfficientRechits_good
TH1F * InefficientSingleHits
bool allCorrLCT[2][4][4][(36 - 1+1)]
void fillSimhit_info(edm::Handle< edm::PSimHitContainer > &simHits)
const Propagator * propagator(std::string propagatorName) const
TH1F * EfficientRechits_inSegment
bool emptyChambers[2][4][4][(36 - 1+1)]
std::vector< std::string > myTriggers
double extrapolate1D(double initPosition, double initDirection, double parameterOfTheLine)
TH1F * EfficientWireGroups
double distanceFromDeadZone
std::vector< TH1F * > Phi_InefficientRecHits_inSegment
TH1F * EfficientSegments_eta
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > geomToken_
std::vector< TH1F * > Phi_EfficientRecHits_inSegment
void fillWG_info(edm::Handle< CSCWireDigiCollection > &wires, edm::ESHandle< CSCGeometry > &cscGeom)
void chooseDirection(CLHEP::Hep3Vector &innerPosition, CLHEP::Hep3Vector &outerPosition)
bool applyTrigger(edm::Handle< edm::TriggerResults > &hltR, const edm::TriggerNames &triggerNames)
unsigned int printout_NEvents
void getFromFTS(const FreeTrajectoryState &fts, CLHEP::Hep3Vector &p3, CLHEP::Hep3Vector &r3, int &charge, AlgebraicSymMatrix66 &cov)
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > co_token
edm::EDGetTokenT< edm::TriggerResults > ht_token
std::vector< std::pair< int, float > > allStrips[2][4][4][(36 - 1+1)][6]
void fillRechitsSegments_info(edm::Handle< CSCRecHit2DCollection > &rechits, edm::Handle< CSCSegmentCollection > &segments, edm::ESHandle< CSCGeometry > &cscGeom)
bool recHitSegment_Efficiencies(CSCDetId &cscDetId, const CSCChamber *cscChamber, FreeTrajectoryState &ftsChamber)
bool checkLocal(double yLocal, double yBoundary, int station, int ring)
TH1F * digiAppearanceCount
edm::EDGetTokenT< CSCSegmentCollection > se_token
std::vector< TH1F * > Y_InefficientRecHits_inSegment
void fillStrips_info(edm::Handle< CSCStripDigiCollection > &strips)
unsigned int minTrackHits
TH1F * EfficientALCT_momTheta
TH1F * EfficientCLCT_dxdz
~CSCEfficiency() override
Destructor.
bool efficienciesPerChamber(CSCDetId &id, const CSCChamber *cscChamber, FreeTrajectoryState &ftsChamber)
bool filter(edm::Event &event, const edm::EventSetup &eventSetup) override
void ringCandidates(int station, float absEta, std::map< std::string, bool > &chamberTypes)
strips
#turn off noise in all subdetectors simHcalUnsuppressedDigis.doNoise = False mix.digitizers....
std::vector< std::pair< std::pair< int, float >, int > > allWG[2][4][4][(36 - 1+1)][6]
edm::EDGetTokenT< CSCALCTDigiCollection > al_token
edm::EDGetTokenT< CSCStripDigiCollection > sd_token
bool allALCT[2][4][4][(36 - 1+1)]
TH2F * InefficientSegments_XY