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