From 025f3c6215e01f239b73a7d8cca03200d043b855 Mon Sep 17 00:00:00 2001 From: groselli <> Date: Mon, 23 Jun 2008 14:25:16 +0000 Subject: [PATCH] Efficiency from track extrapolation --- .../interface/RPCEfficiencyFromTrack.h | 9 +- .../src/RPCBookDetUnitTrackEff.cc | 54 +-- .../src/RPCEfficiencyFromTrack.cc | 457 ++++-------------- 3 files changed, 120 insertions(+), 400 deletions(-) diff --git a/DQM/RPCMonitorDigi/interface/RPCEfficiencyFromTrack.h b/DQM/RPCMonitorDigi/interface/RPCEfficiencyFromTrack.h index c11f1173c1d62..e8199bcc39cba 100644 --- a/DQM/RPCMonitorDigi/interface/RPCEfficiencyFromTrack.h +++ b/DQM/RPCMonitorDigi/interface/RPCEfficiencyFromTrack.h @@ -48,7 +48,7 @@ class RPCEfficiencyFromTrack : public edm::EDAnalyzer { virtual void analyze(const edm::Event&, const edm::EventSetup&); virtual void endJob() ; typedef std::vector Trajectories; - std::map bookDetUnitTrackEff(RPCDetId & detId); + std::map bookDetUnitTrackEff(RPCDetId & detId, const edm::EventSetup & iSetup); private: @@ -65,13 +65,6 @@ class RPCEfficiencyFromTrack : public edm::EDAnalyzer { int EffSaveRootFileEventsInterval; int DTTrigValue; - TH1F* EXPGlob1; TH1F* EXPGlob2; TH1F* EXPGlob3; TH1F* EXPGlob4; TH1F* EXPGlob5; - TH1F* RPCGlob1; TH1F* RPCGlob2; TH1F* RPCGlob3; TH1F* RPCGlob4; TH1F* RPCGlob5; - - - TH2F* ExtrapErrorG;TH2F* ExtrapErrorN; - TH1F* chisquareEff;TH1F* chisquareNoEff; - TH1F* ChiEff; int wh; bool cosmic; diff --git a/DQM/RPCMonitorDigi/src/RPCBookDetUnitTrackEff.cc b/DQM/RPCMonitorDigi/src/RPCBookDetUnitTrackEff.cc index 4ecfce7ffdb74..eb5a2c8f45e67 100755 --- a/DQM/RPCMonitorDigi/src/RPCBookDetUnitTrackEff.cc +++ b/DQM/RPCMonitorDigi/src/RPCBookDetUnitTrackEff.cc @@ -15,13 +15,14 @@ #include #include - #include #include "DQM/RPCMonitorDigi/interface/RPCEfficiencyFromTrack.h" #include "Geometry/RPCGeometry/interface/RPCGeomServ.h" #include "DQMServices/Core/interface/MonitorElement.h" +#include +#include "Geometry/Records/interface/MuonGeometryRecord.h" -std::map RPCEfficiencyFromTrack::bookDetUnitTrackEff(RPCDetId & detId) { +std::map RPCEfficiencyFromTrack::bookDetUnitTrackEff(RPCDetId & detId, const edm::EventSetup & iSetup) { std::map meMap; std::string regionName; @@ -42,9 +43,26 @@ std::map RPCEfficiencyFromTrack::bookDetUnitTrackE dbe->setCurrentFolder(folder); + + int strips = 0; double lastvalue = 0.; + + + + + edm::ESHandle rpcgeo; + iSetup.get().get(rpcgeo); + + const RPCRoll * rpcRoll = rpcgeo->roll(detId); + strips = rpcRoll->nstrips(); + + if(strips == 0 ) strips = 1; + lastvalue=(double)strips+0.5; + + RPCGeomServ RPCname(detId); std::string nameRoll = RPCname.name(); + char detUnitLabel[128]; char layerLabel[128]; @@ -57,39 +75,19 @@ std::map RPCEfficiencyFromTrack::bookDetUnitTrackE //Begin booking sprintf(meId,"ExpectedOccupancyFromTrack_%s",detUnitLabel); sprintf(meTitle,"ExpectedOccupancyFromTrack_for_%s",layerLabel); - meMap[meId] = dbe->book1D(meId, meTitle, 100, 0.5, 100.5); - - sprintf(meId,"RealDetectedOccupancy_%s",detUnitLabel); - sprintf(meTitle,"RealDetectedOccupancy_for_%s",layerLabel); - meMap[meId] = dbe->book1D(meId, meTitle, 100, 0.5, 100.5); + meMap[meId] = dbe->book1D(meId, meTitle, strips, 0.5, lastvalue); sprintf(meId,"RPCDataOccupancy_%s",detUnitLabel); sprintf(meTitle,"RPCDataOccupancy_for_%s",layerLabel); - meMap[meId] = dbe->book1D(meId, meTitle, 100, 0.5, 100.5); + meMap[meId] = dbe->book1D(meId, meTitle, strips, 0.5, lastvalue); sprintf(meId,"Residuals_%s",detUnitLabel); sprintf(meTitle,"Residuals_for_%s",layerLabel); - meMap[meId] = dbe->book1D(meId, meTitle, 100,-49.5, 49.); - - sprintf(meId,"LocalPull_%s",detUnitLabel); - sprintf(meTitle,"LocalPull_for_%s",layerLabel); - meMap[meId] = dbe->book1D(meId, meTitle, 100,-49.5, 49.); - - sprintf(meId,"Residuals_VS_RecPt_%s",detUnitLabel); - sprintf(meTitle,"Residuals_VS_RecPt_for_%s",layerLabel); - meMap[meId] = dbe->book2D(meId, meTitle, 100, 0.5, 100.5,100,-49.5,49.5); + meMap[meId] = dbe->book1D(meId, meTitle, 150,-49.5, 49.); sprintf(meId,"EfficienyFromTrackExtrapolation_%s",detUnitLabel); sprintf(meTitle,"EfficienyFromTrackExtrapolation_for_%s",layerLabel); - meMap[meId] = dbe->book1D(meId, meTitle, 100, 0.5, 100.5); - - sprintf(meId,"2DExtrapolation_%s",detUnitLabel); - sprintf(meTitle,"2DExtrapolation_for_%s",layerLabel); - meMap[meId] = dbe->book2D(meId, meTitle, 401, -200.5, 200.5,201,-100.5,100.5); - - sprintf(meId,"PredictedImpactPoint_%s",detUnitLabel); - sprintf(meTitle,"PredictedImpactPoint_for_%s",layerLabel); - meMap[meId] = dbe->book2D(meId, meTitle, 401, -200.5, 200.5,201,-100.5,100.5); + meMap[meId] = dbe->book1D(meId, meTitle, strips, 0.5, lastvalue); sprintf(meId,"ClusterSize_%s",detUnitLabel); sprintf(meTitle,"ClusterSize_for_%s",layerLabel); @@ -99,9 +97,5 @@ std::map RPCEfficiencyFromTrack::bookDetUnitTrackE sprintf(meTitle,"BunchX_for_%s",layerLabel); meMap[meId] = dbe->book1D(meId, meTitle,13,-6.5,6.5); - sprintf(meId,"Residuals_VS_CLsize_%s",detUnitLabel); - sprintf(meTitle,"Residuals_CLsize_for_%s",layerLabel); - meMap[meId] = dbe->book2D(meId, meTitle, 10, 0.5, 10.5,100,-49.5,49.5); - return meMap; } diff --git a/DQM/RPCMonitorDigi/src/RPCEfficiencyFromTrack.cc b/DQM/RPCMonitorDigi/src/RPCEfficiencyFromTrack.cc index 92cb527c43713..70028cdac05e7 100644 --- a/DQM/RPCMonitorDigi/src/RPCEfficiencyFromTrack.cc +++ b/DQM/RPCMonitorDigi/src/RPCEfficiencyFromTrack.cc @@ -59,7 +59,6 @@ #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTExtendedCand.h" #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h" - #include #include #include "TFile.h" @@ -74,11 +73,6 @@ using namespace edm; using namespace reco; using namespace std; -Double_t linearFX(Double_t *x, Double_t *par){ - Double_t y=0.; - y = par[0]*(*x) + par[1]; - return y; -} RPCEfficiencyFromTrack::RPCEfficiencyFromTrack(const edm::ParameterSet& iConfig){ @@ -111,30 +105,11 @@ RPCEfficiencyFromTrack::RPCEfficiencyFromTrack(const edm::ParameterSet& iConfig) GlobalRootLabel= iConfig.getUntrackedParameter("GlobalRootFileName","GlobalEfficiencyFromTrack.root"); fOutputFile = new TFile(GlobalRootLabel.c_str(), "RECREATE" ); - hRecPt = new TH1F("RecPt","ReconstructedPt",100,0.5,100.5); + hGlobalRes = new TH1F("GlobalResiduals","GlobalRPCResiduals",50,-15.,15.); hGlobalPull = new TH1F("GlobalPull","GlobalRPCPull",50,-15.,15.); histoMean = new TH1F("MeanEfficincy","MeanEfficiency_vs_Ch",60,20.5,120.5); - ExtrapErrorG = new TH2F("ExtrapErrorEffGood","Extrapolation Error Distribution for Efficiency cases",201,0.,100.,201,0.,100.); - ExtrapErrorN = new TH2F("ExtrapErrorNoEff","Extrapolation Error Distribution for No Efficiency cases",201,0.,100.,201,0.,100.); - - chisquareEff= new TH1F("chi2_Eff","Chi2 Distribution for Efficiency cases",200,0.,50.); - chisquareNoEff= new TH1F("chi2_NoEff","Chi2 Distribution for No Efficiency cases",200,0.,50.); - - EXPGlob1 = new TH1F("ExpW-2","Exp. vs. roll",210,0.5,210.5); - EXPGlob2 = new TH1F("ExpW-1","Exp. vs. roll",210,0.5,210.5); - EXPGlob3 = new TH1F("ExpW+0","Exp. vs. roll",210,0.5,210.5); - EXPGlob4 = new TH1F("ExpW+1","Exp. vs. roll",210,0.5,210.5); - EXPGlob5 = new TH1F("ExpW+2","Exp. vs. roll",210,0.5,210.5); - - RPCGlob1 = new TH1F("RpcW-2","Real. vs. roll",210,0.5,210.5); - RPCGlob2 = new TH1F("RpcW-1","Real. vs. roll",210,0.5,210.5); - RPCGlob3 = new TH1F("RpcW+0","Real. vs. roll",210,0.5,210.5); - RPCGlob4 = new TH1F("RpcW+1","Real. vs. roll",210,0.5,210.5); - RPCGlob5 = new TH1F("RpcW+2","Real. vs. roll",210,0.5,210.5); - - ChiEff = new TH1F("Eff_vs_Chi2","Eff. vs. Chi2",200,0.,50.); // get hold of back-end interface dbe = edm::Service().operator->(); @@ -148,27 +123,10 @@ RPCEfficiencyFromTrack::~RPCEfficiencyFromTrack(){ effres->close(); delete effres; - fOutputFile->WriteTObject(EXPGlob1); - fOutputFile->WriteTObject(EXPGlob2); - fOutputFile->WriteTObject(EXPGlob3); - fOutputFile->WriteTObject(EXPGlob4); - fOutputFile->WriteTObject(EXPGlob5); - - fOutputFile->WriteTObject(RPCGlob1); - fOutputFile->WriteTObject(RPCGlob2); - fOutputFile->WriteTObject(RPCGlob3); - fOutputFile->WriteTObject(RPCGlob4); - fOutputFile->WriteTObject(RPCGlob5); - - fOutputFile->WriteTObject(hRecPt); fOutputFile->WriteTObject(hGlobalRes); fOutputFile->WriteTObject(hGlobalPull); fOutputFile->WriteTObject(histoMean); - fOutputFile->WriteTObject(ExtrapErrorG); - fOutputFile->WriteTObject(ExtrapErrorN); - fOutputFile->WriteTObject(chisquareEff); - fOutputFile->WriteTObject(chisquareNoEff); - fOutputFile->WriteTObject(ChiEff); + fOutputFile->Close(); } @@ -211,7 +169,6 @@ void RPCEfficiencyFromTrack::analyze(const edm::Event& iEvent, const edm::EventS return; } - L1MuGMTReadoutCollection const* gmtrc = pCollection.product(); vector gmt_records = gmtrc->getRecords(); vector::const_iterator RRItr; @@ -229,12 +186,6 @@ void RPCEfficiencyFromTrack::analyze(const edm::Event& iEvent, const edm::EventS } } - edm::ESHandle dtGeo; - iSetup.get().get(dtGeo); - - edm::Handle all4DSegments; - iEvent.getByLabel("dt4DSegments", all4DSegments); - Handle staTracks; iEvent.getByLabel(TjInput, staTracks); @@ -244,20 +195,18 @@ void RPCEfficiencyFromTrack::analyze(const edm::Event& iEvent, const edm::EventS iSetup.get().get(thePropagatorName, prop); thePropagator = prop->clone(); thePropagator->setPropagationDirection(anyDirection); - - std::vector rollRec; - rollRec.clear(); - - if(staTracks->size()!=0 && nDTTF>DTTrigValue){ - std::cout<begin(); staTrack != staTracks->end(); ++staTrack){ - reco::TransientTrack track(*staTrack,&*theMGField,theTrackingGeometry); + std::map RPCstate; - rollRec.clear(); - if(track.numberOfValidHits()>0){ + if(staTracks->size()!=0 && nDTTF>DTTrigValue){ + for (staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack){ + reco::TransientTrack track(*staTrack,&*theMGField,theTrackingGeometry); + + RPCstate.clear(); + + if(track.numberOfValidHits()>20){ for (TrackingGeometry::DetContainer::const_iterator it=rpcGeo->dets().begin();itdets().end();it++){ if( dynamic_cast< RPCChamber* >( *it ) != 0 ){ RPCChamber* ch = dynamic_cast< RPCChamber* >( *it ); @@ -268,8 +217,7 @@ void RPCEfficiencyFromTrack::analyze(const edm::Event& iEvent, const edm::EventS const BoundPlane *rpcPlane = &((*itRoll)->surface()); //Barrel - if(MeasureBarrel==true && rollId.region()==0){ - + if(MeasureBarrel==true && rollId.region()==0){ const RectangularStripTopology* top_= dynamic_cast (&((*itRoll)->topology())); LocalPoint xmin = top_->localPosition(0.); LocalPoint xmax = top_->localPosition((float)(*itRoll)->nstrips()); @@ -284,9 +232,10 @@ void RPCEfficiencyFromTrack::analyze(const edm::Event& iEvent, const edm::EventS if(tsosAtRPC.isValid() && fabs(tsosAtRPC.localPosition().z()) < 0.01 && fabs(tsosAtRPC.localPosition().x()) < rsize - && fabs(tsosAtRPC.localPosition().y()) < stripl*0.5){ - - rollRec.push_back(rollId); + && fabs(tsosAtRPC.localPosition().y()) < stripl*0.5 + && tsosAtRPC.localError().positionError().xx()<1. + && tsosAtRPC.localError().positionError().yy()<1.){ + RPCstate[rollId]=tsosAtRPC; } } @@ -306,9 +255,10 @@ void RPCEfficiencyFromTrack::analyze(const edm::Event& iEvent, const edm::EventS if(tsosAtRPC.isValid() && fabs(tsosAtRPC.localPosition().z()) < 0.01 && fabs(tsosAtRPC.localPosition().x()) < rsize - && fabs(tsosAtRPC.localPosition().y()) < stripl*0.5){ - - rollRec.push_back(rollId); + && fabs(tsosAtRPC.localPosition().y()) < stripl*0.5 + && tsosAtRPC.localError().positionError().xx()<1. + && tsosAtRPC.localError().positionError().yy()<1.){ + RPCstate[rollId]=tsosAtRPC; } } } @@ -317,155 +267,103 @@ void RPCEfficiencyFromTrack::analyze(const edm::Event& iEvent, const edm::EventS } //Efficiency - for (std::vector::iterator iteraRoll = rollRec.begin();iteraRoll != rollRec.end(); iteraRoll++){ - const RPCRoll* rollasociated = rpcGeo->roll(*iteraRoll); - RPCDetId rollId = rollasociated->id(); - float rsize=0.; - float stripl=0.; - if(rollId.region()==0){ - const RectangularStripTopology* top_= dynamic_cast (&(rollasociated->topology())); - LocalPoint xmin = top_->localPosition(0.); - LocalPoint xmax = top_->localPosition((float)rollasociated->nstrips()); - rsize = fabs( xmax.x()-xmin.x() )*0.5; - stripl = top_->stripLength(); - } - if(rollId.region()!=0){ - const TrapezoidalStripTopology* top_= dynamic_cast (&(rollasociated->topology())); - LocalPoint xmin = top_->localPosition(0.); - LocalPoint xmax = top_->localPosition((float)rollasociated->nstrips()); - rsize = fabs( xmax.x()-xmin.x() )*0.5; - stripl = top_->stripLength(); - } - - const BoundPlane *rpcPlane = &(rollasociated->surface()); - TrajectoryStateClosestToPoint tcp=track.impactPointTSCP(); - const FreeTrajectoryState &fTS=tcp.theState(); - const FreeTrajectoryState *FreeState = &fTS; - TrajectoryStateOnSurface tsosAtRoll = thePropagator->propagate(*FreeState,*rpcPlane); - - - if(tsosAtRoll.isValid() - && fabs(tsosAtRoll.localPosition().z()) < 0.01 - && fabs(tsosAtRoll.localPosition().x()) < rsize - && fabs(tsosAtRoll.localPosition().y()) < stripl*0.5 - && tsosAtRoll.localError().positionError().xx()<1. - && tsosAtRoll.localError().positionError().yy()<1.){ + std::map::iterator irpc; + for (irpc=RPCstate.begin(); irpc!=RPCstate.end();irpc++){ + RPCDetId rollId=irpc->first; + const RPCRoll* rollasociated = rpcGeo->roll(rollId); + TrajectoryStateOnSurface tsosAtRoll = RPCstate[rollId]; - const float stripPredicted =rollasociated->strip(LocalPoint(tsosAtRoll.localPosition().x(),tsosAtRoll.localPosition().y(),0.)); - const float xextrap = tsosAtRoll.localPosition().x(); + const float stripPredicted =rollasociated->strip(LocalPoint(tsosAtRoll.localPosition().x(),tsosAtRoll.localPosition().y(),0.)); + const float xextrap = tsosAtRoll.localPosition().x(); - totalcounter[0]++; - buff=counter[0]; - buff[rollId]++; - counter[0]=buff; + totalcounter[0]++; + buff=counter[0]; + buff[rollId]++; + counter[0]=buff; - RPCGeomServ RPCname(rollId); - std::string nameRoll = RPCname.name(); + RPCGeomServ RPCname(rollId); + std::string nameRoll = RPCname.name(); - _idList.push_back(nameRoll); - char detUnitLabel[128]; - sprintf(detUnitLabel ,"%s",nameRoll.c_str()); - sprintf(layerLabel ,"%s",nameRoll.c_str()); - std::map >::iterator meItr = meCollection.find(nameRoll); - if (meItr == meCollection.end()){ - meCollection[nameRoll] = bookDetUnitTrackEff(rollId); - } - std::map meMap=meCollection[nameRoll]; - - sprintf(meIdTrack,"ExpectedOccupancyFromTrack_%s",detUnitLabel); - meMap[meIdTrack]->Fill(stripPredicted); - - sprintf(meIdRPC,"PredictedImpactPoint_%s",detUnitLabel); - meMap[meIdRPC]->Fill(tsosAtRoll.localPosition().x(),tsosAtRoll.localPosition().y()); + _idList.push_back(nameRoll); + char detUnitLabel[128]; + sprintf(detUnitLabel ,"%s",nameRoll.c_str()); + sprintf(layerLabel ,"%s",nameRoll.c_str()); + std::map >::iterator meItr = meCollection.find(nameRoll); + if (meItr == meCollection.end()){ + meCollection[nameRoll] = bookDetUnitTrackEff(rollId,iSetup); + } + std::map meMap=meCollection[nameRoll]; - Run=iEvent.id().run(); - aTime=iEvent.time().value(); + sprintf(meIdTrack,"ExpectedOccupancyFromTrack_%s",detUnitLabel); + meMap[meIdTrack]->Fill(stripPredicted); + + Run=iEvent.id().run(); + aTime=iEvent.time().value(); - RPCRecHitCollection::range rpcRecHitRange = rpcHits->get(rollasociated->id()); - RPCRecHitCollection::const_iterator recIt; + RPCRecHitCollection::range rpcRecHitRange = rpcHits->get(rollasociated->id()); + RPCRecHitCollection::const_iterator recIt; - float res=0.; + float res=0.; - for (recIt = rpcRecHitRange.first; recIt!=rpcRecHitRange.second; ++recIt){ - LocalPoint rhitlocal = (*recIt).localPosition(); - double rhitpos = rhitlocal.x(); - - LocalError RecError = (*recIt).localPositionError(); - double sigmaRec = RecError.xx(); - res = (double)(xextrap - rhitpos); + for (recIt = rpcRecHitRange.first; recIt!=rpcRecHitRange.second; ++recIt){ + LocalPoint rhitlocal = (*recIt).localPosition(); + double rhitpos = rhitlocal.x(); - sprintf(meIdRPC,"ClusterSize_%s",detUnitLabel); - meMap[meIdRPC]->Fill((*recIt).clusterSize()); + LocalError RecError = (*recIt).localPositionError(); + double sigmaRec = RecError.xx(); + res = (double)(xextrap - rhitpos); - sprintf(meIdRPC,"BunchX_%s",detUnitLabel); - meMap[meIdRPC]->Fill((*recIt).BunchX()); + sprintf(meIdRPC,"ClusterSize_%s",detUnitLabel); + meMap[meIdRPC]->Fill((*recIt).clusterSize()); - double rpcPull = res/sigmaRec; + sprintf(meIdRPC,"BunchX_%s",detUnitLabel); + meMap[meIdRPC]->Fill((*recIt).BunchX()); - sprintf(meIdRPC,"Residuals_%s",detUnitLabel); - meMap[meIdRPC]->Fill(res); + sprintf(meIdRPC,"Residuals_%s",detUnitLabel); + meMap[meIdRPC]->Fill(res); - sprintf(meIdRPC,"Residuals_VS_RecPt_%s",detUnitLabel); - meMap[meIdRPC]->Fill(tsosAtRoll.globalMomentum().perp(),res); - - sprintf(meIdRPC,"Residuals_VS_CLsize_%s",detUnitLabel); - meMap[meIdRPC]->Fill((*recIt).clusterSize(),res); - - sprintf(meIdRPC,"LocalPull_%s",detUnitLabel); - meMap[meIdRPC]->Fill(rpcPull); - - hGlobalRes->Fill(res); - hGlobalPull->Fill(res/sigmaRec); - hRecPt->Fill(tsosAtRoll.globalMomentum().perp()); - } + hGlobalRes->Fill(res); + hGlobalPull->Fill(res/sigmaRec); + } - int stripDetected=0; - bool anycoincidence=false; + int stripDetected=0; + bool anycoincidence=false; - RPCDigiCollection::Range rpcRangeDigi=rpcDigis->get(rollasociated->id()); - for (RPCDigiCollection::const_iterator digiIt = rpcRangeDigi.first;digiIt!=rpcRangeDigi.second;++digiIt){ - stripDetected=digiIt->strip(); - res = (float)(stripDetected) - stripPredicted; - if(fabs(res)get(rollasociated->id()); + for (RPCDigiCollection::const_iterator digiIt = rpcRangeDigi.first;digiIt!=rpcRangeDigi.second;++digiIt){ + stripDetected=digiIt->strip(); + res = (float)(stripDetected) - stripPredicted; + if(fabs(res)Fill(track.normalizedChi2()); - ExtrapErrorG->Fill(tsosAtRoll.localError().positionError().xx(),tsosAtRoll.localError().positionError().yy()); - - sprintf(meIdRPC,"2DExtrapolation_%s",detUnitLabel); - meMap[meIdRPC]->Fill(tsosAtRoll.localPosition().x(),tsosAtRoll.localPosition().y()); + if(anycoincidence==true){ - sprintf(meIdRPC,"RealDetectedOccupancy_%s",detUnitLabel); - meMap[meIdRPC]->Fill(stripDetected); + std::cout<<"Good Match "<<"\t"<<"Residuals = "<Fill(stripPredicted); + totalcounter[1]++; + buff=counter[1]; + buff[rollId]++; + counter[1]=buff; - }else if(anycoincidence==false){ + sprintf(meIdRPC,"RPCDataOccupancy_%s",detUnitLabel); + meMap[meIdRPC]->Fill(stripPredicted); + }else if(anycoincidence==false){ + if(res==0){ + std::cout<<"No Fired "<Fill(track.normalizedChi2()); - ExtrapErrorN->Fill(tsosAtRoll.localError().positionError().xx(),tsosAtRoll.localError().positionError().yy()); } + + totalcounter[2]++; + buff=counter[2]; + buff[rollId]++; + counter[2]=buff; } } } @@ -479,19 +377,7 @@ void RPCEfficiencyFromTrack::beginJob(const edm::EventSetup&){ } -void RPCEfficiencyFromTrack::endJob(){ - for(int a=0;a<200;a++){ - if(chisquareNoEff->GetBinContent(a)+chisquareEff->GetBinContent(a)!=0){ - double valNoEff=chisquareNoEff->GetBinContent(a); - double valEff=chisquareEff->GetBinContent(a); - double eff=valEff/(valEff+valNoEff); - float erreff = sqrt(eff*(1-eff)/(valEff+valNoEff)); - ChiEff->SetBinContent(a,eff*100.); - ChiEff->SetBinError(a,erreff*100.); - } - } - int index1=0,index2=0,index3=0,index4=0,index5=0; - +void RPCEfficiencyFromTrack::endJob(){ std::map pred = counter[0]; std::map obse = counter[1]; std::map reje = counter[2]; @@ -513,150 +399,6 @@ void RPCEfficiencyFromTrack::endJob(){ if(p!=0){ float ef = float(o)/float(p); float er = sqrt(ef*(1.-ef)/float(p)); - - if(id.region()==0 && id.ring()==-2){ - index1++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob1->SetBinContent(index1,float(o)); - RPCGlob1->GetXaxis()->SetBinLabel(index1,camera); - RPCGlob1->GetXaxis()->LabelsOption("v"); - - EXPGlob1->SetBinContent(index1,float(p)); - EXPGlob1->GetXaxis()->SetBinLabel(index1,camera); - EXPGlob1->GetXaxis()->LabelsOption("v"); - } - if(id.region()==0 && id.ring()==-1){ - index2++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob2->SetBinContent(index2,float(o)); - RPCGlob2->GetXaxis()->SetBinLabel(index2,camera); - RPCGlob2->GetXaxis()->LabelsOption("v"); - - EXPGlob2->SetBinContent(index2,float(p)); - EXPGlob2->GetXaxis()->SetBinLabel(index2,camera); - EXPGlob2->GetXaxis()->LabelsOption("v"); - } - if(id.region()==0 && id.ring()==0){ - index3++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob3->SetBinContent(index3,float(o)); - RPCGlob3->GetXaxis()->SetBinLabel(index3,camera); - RPCGlob3->GetXaxis()->LabelsOption("v"); - - EXPGlob3->SetBinContent(index3,float(p)); - EXPGlob3->GetXaxis()->SetBinLabel(index3,camera); - EXPGlob3->GetXaxis()->LabelsOption("v"); - } - if(id.region()==0 && id.ring()==1){ - index4++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob4->SetBinContent(index4,float(o)); - RPCGlob4->GetXaxis()->SetBinLabel(index4,camera); - RPCGlob4->GetXaxis()->LabelsOption("v"); - - EXPGlob4->SetBinContent(index4,float(p)); - EXPGlob4->GetXaxis()->SetBinLabel(index4,camera); - EXPGlob4->GetXaxis()->LabelsOption("v"); - } - if(id.region()==0 && id.ring()==2){ - index5++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob5->SetBinContent(index5,float(o)); - RPCGlob5->GetXaxis()->SetBinLabel(index5,camera); - RPCGlob5->GetXaxis()->LabelsOption("v"); - - EXPGlob5->SetBinContent(index5,float(p)); - EXPGlob5->GetXaxis()->SetBinLabel(index5,camera); - EXPGlob5->GetXaxis()->LabelsOption("v"); - } - - - if(id.region()==0 && id.ring()==-2){ - index1++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob1->SetBinContent(index1,float(o)); - RPCGlob1->GetXaxis()->SetBinLabel(index1,camera); - RPCGlob1->GetXaxis()->LabelsOption("v"); - - EXPGlob1->SetBinContent(index1,float(p)); - EXPGlob1->GetXaxis()->SetBinLabel(index1,camera); - EXPGlob1->GetXaxis()->LabelsOption("v"); - } - if(id.region()==0 && id.ring()==-1){ - index2++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob2->SetBinContent(index2,float(o)); - RPCGlob2->GetXaxis()->SetBinLabel(index2,camera); - RPCGlob2->GetXaxis()->LabelsOption("v"); - - EXPGlob2->SetBinContent(index2,float(p)); - EXPGlob2->GetXaxis()->SetBinLabel(index2,camera); - EXPGlob2->GetXaxis()->LabelsOption("v"); - } - if(id.region()==0 && id.ring()==0){ - index3++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob3->SetBinContent(index3,float(o)); - RPCGlob3->GetXaxis()->SetBinLabel(index3,camera); - RPCGlob3->GetXaxis()->LabelsOption("v"); - - EXPGlob3->SetBinContent(index3,float(p)); - EXPGlob3->GetXaxis()->SetBinLabel(index3,camera); - EXPGlob3->GetXaxis()->LabelsOption("v"); - } - if(id.region()==0 && id.ring()==1){ - index4++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob4->SetBinContent(index4,float(o)); - RPCGlob4->GetXaxis()->SetBinLabel(index4,camera); - RPCGlob4->GetXaxis()->LabelsOption("v"); - - EXPGlob4->SetBinContent(index4,float(p)); - EXPGlob4->GetXaxis()->SetBinLabel(index4,camera); - EXPGlob4->GetXaxis()->LabelsOption("v"); - } - if(id.region()==0 && id.ring()==2){ - index5++; - char cam[128]; - sprintf(cam,"%s",nameRoll.c_str()); - TString camera = (TString)cam; - - RPCGlob5->SetBinContent(index5,float(o)); - RPCGlob5->GetXaxis()->SetBinLabel(index5,camera); - RPCGlob5->GetXaxis()->LabelsOption("v"); - - EXPGlob5->SetBinContent(index5,float(p)); - EXPGlob5->GetXaxis()->SetBinLabel(index5,camera); - EXPGlob5->GetXaxis()->LabelsOption("v"); - } - if(ef>0.){ *effres << nameRoll <<"\t Eff = "<Fill(ef*100.); @@ -670,9 +412,7 @@ void RPCEfficiencyFromTrack::endJob(){ if(totalcounter[0]!=0){ float tote = float(totalcounter[1])/float(totalcounter[0]); float totr = sqrt(tote*(1.-tote)/float(totalcounter[0])); - std::cout <<"\n\n \t \t TOTAL EFFICIENCY \t Predicted "< meMap=meCollection[*meIt]; for(unsigned int i=1;i<=100;++i){