71 virtual void endJob() ;
151 if(produceEcalhits_){
155 if(produceBasicClusters_){
160 if(producePixelhits_){
167 reuseAny_ = !produceHFhits_ || !produceHFtowers_ || !produceBasicClusters_ || !produceEcalhits_ || !
produceZDChits_;
173 produces<reco::Centrality>();
196 using namespace reco;
210 std::auto_ptr<Centrality> creco(
new Centrality());
216 creco->etHFhitSumPlus_ = 0;
217 creco->etHFhitSumMinus_ = 0;
221 for(
size_t ihit = 0; ihit<hits->size(); ++ ihit){
222 const HFRecHit & rechit = (*hits)[ ihit ];
223 if(rechit.
id().
ieta() > 0 )
224 creco->etHFhitSumPlus_ += rechit.
energy();
225 if(rechit.
id().
ieta() < 0)
226 creco->etHFhitSumMinus_ += rechit.
energy();
229 creco->etHFhitSumMinus_ = inputCentrality->EtHFhitSumMinus();
230 creco->etHFhitSumPlus_ = inputCentrality->EtHFhitSumPlus();
234 creco->etHFtowerSumPlus_ = 0;
235 creco->etHFtowerSumMinus_ = 0;
236 creco->etMidRapiditySum_ = 0;
242 for(
size_t i = 0;
i<towers->size(); ++
i){
248 creco->etHFtowerSumPlus_ += tower.
pt();
251 creco->etHFtowerSumMinus_ += tower.
pt();
254 creco->etHFtowerSumMinus_ = inputCentrality->EtHFtowerSumMinus();
255 creco->etHFtowerSumPlus_ = inputCentrality->EtHFtowerSumPlus();
259 }
else creco->etMidRapiditySum_ = inputCentrality->EtMidRapiditySum();
262 creco->etHFtowerSumMinus_ = inputCentrality->EtHFtowerSumMinus();
263 creco->etHFtowerSumPlus_ = inputCentrality->EtHFtowerSumPlus();
264 creco->etMidRapiditySum_ = inputCentrality->EtMidRapiditySum();
268 creco->etEESumPlus_ = 0;
269 creco->etEESumMinus_ = 0;
274 for(
size_t i = 0;
i<clusters->size(); ++
i){
276 double eta = cluster.eta();
277 double tg = cluster.position().rho()/cluster.position().r();
278 double et = cluster.energy()*tg;
280 creco->etEESumPlus_ +=
et;
282 creco->etEESumMinus_ +=
et;
286 for(
size_t i = 0;
i<clusters->size(); ++
i){
288 double tg = cluster.position().rho()/cluster.position().r();
289 double et = cluster.energy()*tg;
290 creco->etEBSum_ +=
et;
293 creco->etEESumMinus_ = inputCentrality->EtEESumMinus();
294 creco->etEESumPlus_ = inputCentrality->EtEESumPlus();
295 creco->etEBSum_ = inputCentrality->EtEBSum();
299 creco->pixelMultiplicity_ = 0;
312 recHitIterator != recHitRange.
end(); ++recHitIterator) {
319 double abeta = fabs(rechitPos.eta());
320 int clusterSize = recHit->
cluster()->size();
321 if ( abeta < 0.5 && clusterSize < 1)
continue;
322 if ( abeta > 0.5 && abeta < 1 && clusterSize < 2)
continue;
323 if ( abeta > 1. && abeta < 1.5 && clusterSize < 3)
continue;
324 if ( abeta > 1.5 && abeta < 2. && clusterSize < 4)
continue;
325 if ( abeta > 2. && abeta < 2.5 && clusterSize < 6)
continue;
326 if ( abeta > 2.5 && abeta < 5 && clusterSize < 9)
continue;
331 creco->pixelMultiplicity_ = nPixel;
333 creco->pixelMultiplicity_ = inputCentrality->multiplicityPixel();
341 double trackCounter = 0;
342 double trackCounterEta = 0;
343 double trackCounterEtaPt = 0;
345 for(
unsigned int i = 0 ;
i < tracks->size(); ++
i){
357 creco->trackMultiplicity_ = nTracks;
358 creco->ntracksPtCut_ = trackCounter;
359 creco->ntracksEtaCut_ = trackCounterEta;
360 creco->ntracksEtaPtCut_ = trackCounterEtaPt;
363 creco->trackMultiplicity_ = inputCentrality->Ntracks();
364 creco->ntracksPtCut_= inputCentrality->NtracksPtCut();
365 creco->ntracksEtaCut_= inputCentrality->NtracksEtaCut();
366 creco->ntracksEtaPtCut_= inputCentrality->NtracksEtaPtCut();
372 int nPixelTracks = pixeltracks->size();
373 creco->nPixelTracks_ = nPixelTracks;
376 creco->nPixelTracks_ = inputCentrality->NpixelTracks();
380 creco->zdcSumPlus_ = 0;
381 creco->zdcSumMinus_ = 0;
386 for(
size_t ihit = 0; ihit<hits->size(); ++ ihit){
387 const ZDCRecHit & rechit = (*hits)[ ihit ];
389 creco->zdcSumPlus_ += rechit.
energy();
391 creco->zdcSumMinus_ += rechit.
energy();
394 creco->zdcSumPlus_ = -9;
395 creco->zdcSumMinus_ = -9;
398 creco->zdcSumMinus_ = inputCentrality->zdcSumMinus();
399 creco->zdcSumPlus_ = inputCentrality->zdcSumPlus();
reco::TrackBase::TrackQuality trackQuality_
T getParameter(std::string const &) const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator begin() const
edm::InputTag srcBasicClustersEB_
TrackQuality
track quality
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
int zside() const
get the z-side of the cell (1/-1)
const_iterator find(id_type i) const
virtual double eta() const
momentum pseudorapidity
virtual LocalPoint localPosition() const
const CaloGeometry * caloGeo_
double eta() const
pseudorapidity of momentum vector
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
virtual bool filter(edm::Event &, const edm::EventSetup &)
double pt() const
track transverse momentum
int ieta() const
get the cell ieta
const_iterator end() const
virtual const GeomDet * idToDet(DetId) const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
bool produceBasicClusters_
DEFINE_FWK_MODULE(CosmicTrackingParticleSelector)
static TrackQuality qualityByName(const std::string &name)
bool isHF(int etabin, int depth)
tuple filter
USE THIS FOR SKIMMED TRACKS process.p = cms.Path(process.hltLevel1GTSeed*process.skimming*process.offlineBeamSpot*process.TrackRefitter2) OTHERWISE USE THIS.
XYZVectorD XYZVector
spatial vector with cartesian internal representation
virtual double pt() const
transverse momentum
T const * product() const
T const * product() const
bool quality(const TrackQuality) const
Track quality.
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalPoint
point in global coordinate system
const TrackerGeometry * trackGeo_
edm::InputTag srcZDChits_
HcalZDCDetId id() const
get the id
HcalDetId id() const
get the id
DetId geographicalId() const
ClusterRef const & cluster() const
edm::InputTag srcBasicClustersEE_
edm::InputTag srcPixelhits_
edm::InputTag srcPixelTracks_