#include <DPGAnalysis/SiStripTools/src/MultiplicityTimeCorrelations.cc>
Public Member Functions | |
MultiplicityTimeCorrelations (const edm::ParameterSet &) | |
~MultiplicityTimeCorrelations () | |
Private Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
virtual void | beginJob () |
virtual void | beginRun (const edm::Run &, const edm::EventSetup &) |
virtual void | endJob () |
virtual void | endRun (const edm::Run &, const edm::EventSetup &) |
Private Attributes | |
edm::InputTag | _apvphasecoll |
std::map< unsigned int, int > | _binmax |
std::vector< int > | _dbxbins |
std::map< int, std::map < unsigned int, TH1F * > > | _dbxhistos |
DigiBXCorrHistogramMaker < EventWithHistory > | _digibxcorrhmevent |
EventWithHistoryFilter | _evfilter |
edm::InputTag | _hecollection |
int | _highorbit |
int | _loworbit |
int | _mindbx |
int | _mintrpltdbx |
edm::InputTag | _multiplicityMap |
std::map< unsigned int, std::string > | _subdets |
SiStripTKNumbers | _trnumb |
Description: <one line="" class="" summary>="">
Implementation: <Notes on="" implementation>="">
Definition at line 61 of file MultiplicityTimeCorrelations.cc.
MultiplicityTimeCorrelations::MultiplicityTimeCorrelations | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 117 of file MultiplicityTimeCorrelations.cc.
References _binmax, _dbxbins, _dbxhistos, _digibxcorrhmevent, _evfilter, _hecollection, _mindbx, _mintrpltdbx, _subdets, _trnumb, edm::ParameterSet::addUntrackedParameter(), newFWLiteAna::bin, DigiBXCorrHistogramMaker< T >::book(), edm::ParameterSet::getUntrackedParameter(), reco_calib_source_client_cfg::labels, LogDebug, TFileDirectory::make(), SiStripTKNumbers::nstrips(), and EventWithHistoryFilter::set().
: _digibxcorrhmevent(iConfig), _evfilter(), _hecollection(iConfig.getParameter<edm::InputTag>("historyProduct")), _apvphasecoll(iConfig.getParameter<edm::InputTag>("apvPhaseCollection")), _multiplicityMap(iConfig.getParameter<edm::InputTag>("multiplicityMap")), _subdets(), _binmax(), _loworbit(iConfig.getUntrackedParameter<int>("lowedgeOrbit")), _highorbit(iConfig.getUntrackedParameter<int>("highedgeOrbit")), _mindbx(iConfig.getUntrackedParameter<int>("minDBX")), _mintrpltdbx(iConfig.getUntrackedParameter<int>("minTripletDBX")), _trnumb(), _dbxbins(iConfig.getUntrackedParameter<std::vector<int> >("dbxBins")) { //now do what ever initialization is needed // configure the filter edm::ParameterSet filterConfig; filterConfig.addUntrackedParameter<edm::InputTag>("historyProduct",_hecollection); if(_mindbx>0) { std::vector<int> dbxrange; dbxrange.push_back(_mindbx+1); dbxrange.push_back(-1); filterConfig.addUntrackedParameter<std::vector<int> >("dbxRange",dbxrange); } if(_mintrpltdbx>0) { std::vector<int> dbxtrpltrange; dbxtrpltrange.push_back(_mintrpltdbx+1); dbxtrpltrange.push_back(-1); filterConfig.addUntrackedParameter<std::vector<int> >("dbxTripletRange",dbxtrpltrange); } _evfilter.set(filterConfig); // edm::Service<TFileService> tfserv; // create map of labels std::vector<edm::ParameterSet> wantedsubds(iConfig.getUntrackedParameter<std::vector<edm::ParameterSet> >("wantedSubDets")); for(std::vector<edm::ParameterSet>::iterator ps=wantedsubds.begin();ps!=wantedsubds.end();++ps) { _subdets[ps->getParameter<unsigned int>("detSelection")] = ps->getParameter<std::string>("detLabel"); _binmax[ps->getParameter<unsigned int>("detSelection")] = ps->getParameter<int>("binMax"); } std::map<int,std::string> labels; for(std::map<unsigned int,std::string>::const_iterator subd=_subdets.begin();subd!=_subdets.end();++subd) { labels[int(subd->first)] = subd->second; } // _digibxcorrhmevent.book("EventProcs",labels); TFileDirectory subdbxbin = tfserv->mkdir("DBXDebugging"); for(std::vector<int>::const_iterator bin=_dbxbins.begin();bin!=_dbxbins.end();bin++) { char hname[200]; char htitle[200]; edm::LogInfo("DBXHistosBinMaxValue") << "Setting bin max values"; for(std::map<unsigned int, std::string>::const_iterator subd=_subdets.begin();subd!=_subdets.end();++subd) { if(_binmax.find(subd->first)==_binmax.end()) { edm::LogVerbatim("DBXHistosNotConfiguredBinMax") << "Bin max for " << subd->second << " not configured: " << _trnumb.nstrips(int(subd->first)) << " used"; _binmax[subd->first] = _trnumb.nstrips(int(subd->first)); } edm::LogVerbatim("DBXHistosBinMaxValue") << "Bin max for " << subd->second << " is " << _binmax[subd->first]; sprintf(hname,"sumn%sdigi_%d",subd->second.c_str(),*bin); sprintf(htitle,"%s digi multiplicity at DBX = %d",subd->second.c_str(),*bin); LogDebug("DBXDebug") << "creating histogram " << hname << " " << htitle; _dbxhistos[*bin][subd->first]= subdbxbin.make<TH1F>(hname,htitle,1000,0.,_binmax[subd->first]/(20*1000)*1000); _dbxhistos[*bin][subd->first]->GetXaxis()->SetTitle("Number of Digis"); } /* sprintf(hname,"sumntkdigi_%d",*bin); sprintf(htitle,"TK digi multiplicity at DBX = %d",*bin); LogDebug("DBXDebug") << "creating histogram " << hname << " " << htitle; _dbxtkhistos[*bin]= subdbxbin.make<TH1F>(hname,htitle,1000,0.,_trnumb.nstrips(0)/(20*1000)*1000); _dbxtkhistos[*bin]->GetXaxis()->SetTitle("Number of Digis"); sprintf(hname,"sumntibdigi_%d",*bin); sprintf(htitle,"TIB digi multiplicity at DBX = %d",*bin); LogDebug("DBXDebug") << "creating histogram " << hname << " " << htitle; _dbxtibhistos[*bin]= subdbxbin.make<TH1F>(hname,htitle,1000,0.,_trnumb.nstrips(SiStripDetId::TIB)/(20*1000)*1000); _dbxtibhistos[*bin]->GetXaxis()->SetTitle("Number of Digis"); sprintf(hname,"sumntiddigi_%d",*bin); sprintf(htitle,"TID digi multiplicity at DBX = %d",*bin); LogDebug("DBXDebug") << "creating histogram " << hname << " " << htitle; _dbxtidhistos[*bin]= subdbxbin.make<TH1F>(hname,htitle,1000,0.,_trnumb.nstrips(SiStripDetId::TID)/(20*1000)*1000); _dbxtidhistos[*bin]->GetXaxis()->SetTitle("Number of Digis"); sprintf(hname,"sumntobdigi_%d",*bin); sprintf(htitle,"TOB digi multiplicity at DBX = %d",*bin); LogDebug("DBXDebug") << "creating histogram " << hname << " " << htitle; _dbxtobhistos[*bin]= subdbxbin.make<TH1F>(hname,htitle,1000,0.,_trnumb.nstrips(SiStripDetId::TOB)/(20*1000)*1000); _dbxtobhistos[*bin]->GetXaxis()->SetTitle("Number of Digis"); sprintf(hname,"sumntecdigi_%d",*bin); sprintf(htitle,"TEC digi multiplicity at DBX = %d",*bin); LogDebug("DBXDebug") << "creating histogram " << hname << " " << htitle; _dbxtechistos[*bin]= subdbxbin.make<TH1F>(hname,htitle,1000,0.,_trnumb.nstrips(SiStripDetId::TEC)/(20*1000)*1000); _dbxtechistos[*bin]->GetXaxis()->SetTitle("Number of Digis"); */ } }
MultiplicityTimeCorrelations::~MultiplicityTimeCorrelations | ( | ) |
Definition at line 235 of file MultiplicityTimeCorrelations.cc.
{ // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) }
void MultiplicityTimeCorrelations::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDAnalyzer.
Definition at line 250 of file MultiplicityTimeCorrelations.cc.
References _apvphasecoll, _dbxhistos, _digibxcorrhmevent, _evfilter, _hecollection, _highorbit, _loworbit, _multiplicityMap, _subdets, DigiBXCorrHistogramMaker< T >::fill(), edm::Event::getByLabel(), VarParsing::mult, edm::EventBase::orbitNumber(), and EventWithHistoryFilter::selected().
{ using namespace edm; // get Phase Handle<APVCyclePhaseCollection> apvphase; iEvent.getByLabel(_apvphasecoll,apvphase); // get HE Handle<EventWithHistory> he; iEvent.getByLabel(_hecollection,he); // check if the event is selected if((_loworbit < 0 || iEvent.orbitNumber() >= _loworbit) && (_highorbit < 0 || iEvent.orbitNumber() <= _highorbit)) { if(_evfilter.selected(iEvent,iSetup)) { //Compute digi multiplicity /* int ntkdigi=0; int ntibdigi=0; int ntiddigi=0; int ntobdigi=0; int ntecdigi=0; */ Handle<std::map<unsigned int, int> > mults; iEvent.getByLabel(_multiplicityMap,mults); // create map of digi multiplicity std::map<int,int> digimap; for(std::map<unsigned int, int>::const_iterator mult=mults->begin();mult!=mults->end();++mult) { if(_subdets.find(mult->first)!=_subdets.end()) digimap[int(mult->first)] = mult->second; } _digibxcorrhmevent.fill(*he,digimap,apvphase); // fill debug histos if(he->depth()!=0) { long long dbx = he->deltaBX(); if(_dbxhistos.find(dbx)!=_dbxhistos.end()) { for(std::map<unsigned int,int>::const_iterator ndigi=mults->begin();ndigi!=mults->end();++ndigi) { _dbxhistos[dbx][ndigi->first]->Fill(ndigi->second); } } if(_dbxhistos.find(-1)!=_dbxhistos.end()) { for(std::map<unsigned int,int>::const_iterator ndigi=mults->begin();ndigi!=mults->end();++ndigi) { _dbxhistos[-1][ndigi->first]->Fill(ndigi->second); } } /* if(_dbxtkhistos.find(dbx)!=_dbxtkhistos.end()) { _dbxtkhistos[dbx]->Fill(ntkdigi); } if(_dbxtkhistos.find(-1)!=_dbxtkhistos.end()) { _dbxtkhistos[-1]->Fill(ntkdigi); } if(_dbxtibhistos.find(dbx)!=_dbxtibhistos.end()) { _dbxtibhistos[dbx]->Fill(ntibdigi); } if(_dbxtibhistos.find(-1)!=_dbxtibhistos.end()) { _dbxtibhistos[-1]->Fill(ntibdigi); } if(_dbxtidhistos.find(dbx)!=_dbxtidhistos.end()) { _dbxtidhistos[dbx]->Fill(ntiddigi); } if(_dbxtidhistos.find(-1)!=_dbxtidhistos.end()) { _dbxtidhistos[-1]->Fill(ntiddigi); } if(_dbxtobhistos.find(dbx)!=_dbxtobhistos.end()) { _dbxtobhistos[dbx]->Fill(ntobdigi); } if(_dbxtobhistos.find(-1)!=_dbxtobhistos.end()) { _dbxtobhistos[-1]->Fill(ntobdigi); } if(_dbxtechistos.find(dbx)!=_dbxtechistos.end()) { _dbxtechistos[dbx]->Fill(ntecdigi); } if(_dbxtechistos.find(-1)!=_dbxtechistos.end()) { _dbxtechistos[-1]->Fill(ntecdigi); } */ } } } }
void MultiplicityTimeCorrelations::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 350 of file MultiplicityTimeCorrelations.cc.
References _highorbit, _loworbit, and LogDebug.
{ LogDebug("IntegerDebug") << " int max and min " << INT_MIN << " " << INT_MAX; LogDebug("IntegerDebug") << " uint max and min " << UINT_MAX; LogDebug("IntegerDebug") << " long max and min " << LONG_MIN << " " << LONG_MAX; LogDebug("IntegerDebug") << " ulong max and min " << ULONG_MAX; LogDebug("IntegerDebug") << " long long max and min " << LLONG_MIN << " " << LLONG_MAX; LogDebug("IntegerDebug") << " u long long max and min " << ULLONG_MAX; edm::LogInfo("MultiplicityTimeCorrelations") << " Correlation studies performed only in the orbit # range " << _loworbit << " " << _highorbit ; }
void MultiplicityTimeCorrelations::beginRun | ( | const edm::Run & | iRun, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 366 of file MultiplicityTimeCorrelations.cc.
References _digibxcorrhmevent, DigiBXCorrHistogramMaker< T >::beginRun(), and edm::RunBase::run().
{ _digibxcorrhmevent.beginRun(iRun.run()); }
void MultiplicityTimeCorrelations::endJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 377 of file MultiplicityTimeCorrelations.cc.
{ }
void MultiplicityTimeCorrelations::endRun | ( | const edm::Run & | iRun, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 373 of file MultiplicityTimeCorrelations.cc.
{ }
Definition at line 89 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze().
std::map<unsigned int, int> MultiplicityTimeCorrelations::_binmax [private] |
Definition at line 92 of file MultiplicityTimeCorrelations.cc.
Referenced by MultiplicityTimeCorrelations().
std::vector<int> MultiplicityTimeCorrelations::_dbxbins [private] |
Definition at line 102 of file MultiplicityTimeCorrelations.cc.
Referenced by MultiplicityTimeCorrelations().
std::map<int,std::map<unsigned int,TH1F*> > MultiplicityTimeCorrelations::_dbxhistos [private] |
Definition at line 79 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze(), and MultiplicityTimeCorrelations().
DigiBXCorrHistogramMaker<EventWithHistory> MultiplicityTimeCorrelations::_digibxcorrhmevent [private] |
Definition at line 76 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze(), beginRun(), and MultiplicityTimeCorrelations().
Definition at line 77 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze(), and MultiplicityTimeCorrelations().
Definition at line 88 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze(), and MultiplicityTimeCorrelations().
int MultiplicityTimeCorrelations::_highorbit [private] |
Definition at line 95 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze(), and beginJob().
int MultiplicityTimeCorrelations::_loworbit [private] |
Definition at line 94 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze(), and beginJob().
int MultiplicityTimeCorrelations::_mindbx [private] |
Definition at line 97 of file MultiplicityTimeCorrelations.cc.
Referenced by MultiplicityTimeCorrelations().
int MultiplicityTimeCorrelations::_mintrpltdbx [private] |
Definition at line 98 of file MultiplicityTimeCorrelations.cc.
Referenced by MultiplicityTimeCorrelations().
Definition at line 90 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze().
std::map<unsigned int, std::string> MultiplicityTimeCorrelations::_subdets [private] |
Definition at line 91 of file MultiplicityTimeCorrelations.cc.
Referenced by analyze(), and MultiplicityTimeCorrelations().
Definition at line 100 of file MultiplicityTimeCorrelations.cc.
Referenced by MultiplicityTimeCorrelations().