95 #include "TObjString.h" 104 #include <ext/hash_map> 108 using namespace reco;
112 #define MAX_VERTICES 1000 113 #define MAX_HSCPS 10000 114 #define MAX_GENS 10000 115 #define MAX_ECALCRYS 10 126 virtual void endJob()
override ;
143 bool Event_triggerL1Bits[192];
144 bool Event_triggerHLTBits[128];
145 bool Event_technicalBits[64];
267 m_gtReadoutRecordToken = consumes<L1GlobalTriggerReadoutRecord>(
InputTag(
"gtDigis"));
268 m_trToken = consumes<edm::TriggerResults>(
InputTag(
"TriggerResults"));
269 m_recoVertexToken = consumes<reco::VertexCollection>(
InputTag(
"offlinePrimaryVertices"));
270 m_genParticlesToken = mayConsume<GenParticleCollection>(
InputTag(
"genParticles"));
271 m_HSCPsToken = consumes<susybsm::HSCParticleCollection >(iConfig.
getParameter<
InputTag> (
"HSCParticles"));
276 std::cout <<
"######################################################" << endl;
277 std::cout <<
" USE OF THE HSCPTreeBuilder is deprecated! " << endl;
278 std::cout <<
"better to use the HSCParticle Producer and then FWLite" << endl;
279 std::cout <<
"######################################################" << endl;
291 TTree::SetMaxTreeSize(1000*Long64_t(2000000000));
292 MyTree = tfs->make<TTree> (
"HscpTree",
"HscpTree");
294 MyTree->Branch(
"Event_EventNumber" ,&Event_EventNumber ,
"Event_EventNumber/i");
295 MyTree->Branch(
"Event_RunNumber" ,&Event_RunNumber ,
"Event_RunNumber/i");
296 MyTree->Branch(
"Event_LumiSection" ,&Event_LumiSection ,
"Event_LumiSection/i");
297 MyTree->Branch(
"Event_BXCrossing" ,&Event_BXCrossing ,
"Event_BXCrossing/i");
298 MyTree->Branch(
"Event_Orbit" ,&Event_Orbit ,
"Event_Orbit/i");
299 MyTree->Branch(
"Event_Store" ,&Event_Store ,
"Event_Store/i");
300 MyTree->Branch(
"Event_Time" ,&Event_Time ,
"Event_Time/i");
301 MyTree->Branch(
"Event_PhysicsDeclared" ,&Event_PhysicsDeclared ,
"Event_PhysicsDeclared/O");
302 MyTree->Branch(
"Event_technicalBits" ,Event_technicalBits ,
"Event_technicalBits[64]/O");
303 MyTree->Branch(
"Event_triggerL1Bits" ,Event_triggerL1Bits ,
"Event_triggerL1Bits[192]/O");
304 MyTree->Branch(
"Event_triggerHLTBits" ,Event_triggerHLTBits ,
"Event_triggerHLTBits[128]/O");
305 MyTree->Branch(
"Event_BField" ,&Event_BField ,
"Event_BField/F");
307 if(reccordVertexInfo){
308 MyTree->Branch(
"NVertices" ,&NVertices ,
"NVertices/I");
309 MyTree->Branch(
"Vertex_x" ,Vertex_x ,
"Vertex_x[NVertices]/F");
310 MyTree->Branch(
"Vertex_y" ,Vertex_y ,
"Vertex_y[NVertices]/F");
311 MyTree->Branch(
"Vertex_z" ,Vertex_z ,
"Vertex_z[NVertices]/F");
312 MyTree->Branch(
"Vertex_x_err" ,Vertex_x_err ,
"Vertex_x_err[NVertices]/F");
313 MyTree->Branch(
"Vertex_y_err" ,Vertex_y_err ,
"Vertex_y_err[NVertices]/F");
314 MyTree->Branch(
"Vertex_z_err" ,Vertex_z_err ,
"Vertex_z_err[NVertices]/F");
315 MyTree->Branch(
"Vertex_TrackSize",Vertex_TrackSize,
"Vertex_TrackSize[NVertices]/I");
316 MyTree->Branch(
"Vertex_chi2" ,Vertex_chi2 ,
"Vertex_chi2[NVertices]/F");
317 MyTree->Branch(
"Vertex_ndof" ,Vertex_ndof ,
"Vertex_ndof[NVertices]/F");
318 MyTree->Branch(
"Vertex_isFake" ,Vertex_isFake ,
"Vertex_isFake[NVertices]/O");
321 MyTree->Branch(
"NHSCPs" ,&NHSCPs ,
"NHSCPs/I");
322 MyTree->Branch(
"Hscp_hasTrack" ,Hscp_hasTrack ,
"Hscp_hasTrack[NHSCPs]/O");
323 MyTree->Branch(
"Hscp_hasMuon" ,Hscp_hasMuon ,
"Hscp_hasMuon[NHSCPs]/O");
324 MyTree->Branch(
"Hscp_hasRpc" ,Hscp_hasRpc ,
"Hscp_hasRpc[NHSCPs]/O");
325 MyTree->Branch(
"Hscp_hasCalo" ,Hscp_hasCalo ,
"Hscp_hasCalo[NHSCPs]/O");
326 MyTree->Branch(
"Hscp_type" ,Hscp_type ,
"Hscp_type[NHSCPs]/I");
327 MyTree->Branch(
"Track_NOH" ,Track_NOH ,
"Track_NOH[NHSCPs]/I");
328 MyTree->Branch(
"Track_p" ,Track_p ,
"Track_p[NHSCPs]/F");
329 MyTree->Branch(
"Track_pt" ,Track_pt ,
"Track_pt[NHSCPs]/F");
330 MyTree->Branch(
"Track_pt_err" ,Track_pt_err ,
"Track_pt_err[NHSCPs]/F");
331 MyTree->Branch(
"Track_chi2" ,Track_chi2 ,
"Track_chi2[NHSCPs]/F");
332 MyTree->Branch(
"Track_ndof" ,Track_ndof ,
"Track_ndof[NHSCPs]/F");
333 MyTree->Branch(
"Track_eta" ,Track_eta ,
"Track_eta[NHSCPs]/F");
334 MyTree->Branch(
"Track_eta_err" ,Track_eta_err ,
"Track_eta_err[NHSCPs]/F");
335 MyTree->Branch(
"Track_phi" ,Track_phi ,
"Track_phi[NHSCPs]/F");
336 MyTree->Branch(
"Track_phi_err" ,Track_phi_err ,
"Track_phi_err[NHSCPs]/F");
337 MyTree->Branch(
"Track_d0" ,Track_d0 ,
"Track_d0[NHSCPs]/F");
338 MyTree->Branch(
"Track_dz" ,Track_dz ,
"Track_dz[NHSCPs]/F");
339 MyTree->Branch(
"Track_quality" ,Track_quality ,
"Track_quality[NHSCPs]/I");
340 MyTree->Branch(
"Track_charge" ,Track_charge ,
"Track_charge[NHSCPs]/I");
341 MyTree->Branch(
"Track_dEdxE1" ,Track_dEdxE1 ,
"Track_dEdxE1[NHSCPs]/F");
342 MyTree->Branch(
"Track_dEdxE1_NOS" ,Track_dEdxE1_NOS ,
"Track_dEdxE1_NOS[NHSCPs]/F");
343 MyTree->Branch(
"Track_dEdxE1_NOM" ,Track_dEdxE1_NOM ,
"Track_dEdxE1_NOM[NHSCPs]/I");
344 MyTree->Branch(
"Track_dEdxE2" ,Track_dEdxE2 ,
"Track_dEdxE2[NHSCPs]/F");
345 MyTree->Branch(
"Track_dEdxE2_NOS" ,Track_dEdxE2_NOS ,
"Track_dEdxE2_NOS[NHSCPs]/F");
346 MyTree->Branch(
"Track_dEdxE2_NOM" ,Track_dEdxE2_NOM ,
"Track_dEdxE2_NOM[NHSCPs]/I");
347 MyTree->Branch(
"Track_dEdxE3" ,Track_dEdxE3 ,
"Track_dEdxE3[NHSCPs]/F");
348 MyTree->Branch(
"Track_dEdxE3_NOS" ,Track_dEdxE3_NOS ,
"Track_dEdxE3_NOS[NHSCPs]/F");
349 MyTree->Branch(
"Track_dEdxE3_NOM" ,Track_dEdxE3_NOM ,
"Track_dEdxE3_NOM[NHSCPs]/I");
350 MyTree->Branch(
"Track_dEdxD1" ,Track_dEdxD1 ,
"Track_dEdxD1[NHSCPs]/F");
351 MyTree->Branch(
"Track_dEdxD1_NOS" ,Track_dEdxD1_NOS ,
"Track_dEdxD1_NOS[NHSCPs]/F");
352 MyTree->Branch(
"Track_dEdxD1_NOM" ,Track_dEdxD1_NOM ,
"Track_dEdxD1_NOM[NHSCPs]/I");
353 MyTree->Branch(
"Track_dEdxD2" ,Track_dEdxD2 ,
"Track_dEdxD2[NHSCPs]/F");
354 MyTree->Branch(
"Track_dEdxD2_NOS" ,Track_dEdxD2_NOS ,
"Track_dEdxD2_NOS[NHSCPs]/F");
355 MyTree->Branch(
"Track_dEdxD2_NOM" ,Track_dEdxD2_NOM ,
"Track_dEdxD2_NOM[NHSCPs]/I");
356 MyTree->Branch(
"Track_dEdxD3" ,Track_dEdxD3 ,
"Track_dEdxD3[NHSCPs]/F");
357 MyTree->Branch(
"Track_dEdxD3_NOS" ,Track_dEdxD3_NOS ,
"Track_dEdxD3_NOS[NHSCPs]/F");
358 MyTree->Branch(
"Track_dEdxD3_NOM" ,Track_dEdxD3_NOM ,
"Track_dEdxD3_NOM[NHSCPs]/I");
359 MyTree->Branch(
"Muon_p" ,Muon_p ,
"Muon_p[NHSCPs]/F");
360 MyTree->Branch(
"Muon_pt" ,Muon_pt ,
"Muon_pt[NHSCPs]/F");
361 MyTree->Branch(
"Muon_eta" ,Muon_eta ,
"Muon_eta[NHSCPs]/F");
362 MyTree->Branch(
"Muon_phi" ,Muon_phi ,
"Muon_phi[NHSCPs]/F");
363 MyTree->Branch(
"Muon_type" ,Muon_type ,
"Muon_type[NHSCPs]/i");
364 MyTree->Branch(
"Muon_qualityValid" ,Muon_qualityValid ,
"Muon_qualityValid[NHSCPs]/O");
365 MyTree->Branch(
"Muon_charge" ,Muon_charge ,
"Muon_charge[NHSCPs]/i");
366 MyTree->Branch(
"Muon_dt_IBeta" ,Muon_dt_IBeta ,
"Muon_dt_IBeta[NHSCPs]/F");
367 MyTree->Branch(
"Muon_dt_IBeta_err" ,Muon_dt_IBeta_err ,
"Muon_dt_IBeta_err[NHSCPs]/F");
368 MyTree->Branch(
"Muon_dt_fIBeta" ,Muon_dt_fIBeta ,
"Muon_dt_fIBeta[NHSCPs]/F");
369 MyTree->Branch(
"Muon_dt_fIBeta_err" ,Muon_dt_fIBeta_err ,
"Muon_dt_fIBeta_err[NHSCPs]/F");
370 MyTree->Branch(
"Muon_dt_ndof" ,Muon_dt_ndof ,
"Muon_dt_ndof[NHSCPs]/I");
371 MyTree->Branch(
"Muon_csc_IBeta" ,Muon_csc_IBeta ,
"Muon_csc_IBeta[NHSCPs]/F");
372 MyTree->Branch(
"Muon_csc_IBeta_err" ,Muon_csc_IBeta_err ,
"Muon_csc_IBeta_err[NHSCPs]/F");
373 MyTree->Branch(
"Muon_csc_fIBeta" ,Muon_csc_fIBeta ,
"Muon_csc_fIBeta[NHSCPs]/F");
374 MyTree->Branch(
"Muon_csc_fIBeta_err",Muon_csc_fIBeta_err,
"Muon_csc_fIBeta_err[NHSCPs]/F");
375 MyTree->Branch(
"Muon_csc_ndof" ,Muon_csc_ndof ,
"Muon_csc_ndof[NHSCPs]/I");
376 MyTree->Branch(
"Muon_cb_IBeta" ,Muon_cb_IBeta ,
"Muon_cb_IBeta[NHSCPs]/F");
377 MyTree->Branch(
"Muon_cb_IBeta_err" ,Muon_cb_IBeta_err ,
"Muon_cb_IBeta_err[NHSCPs]/F");
378 MyTree->Branch(
"Muon_cb_fIBeta" ,Muon_cb_fIBeta ,
"Muon_cb_fIBeta[NHSCPs]/F");
379 MyTree->Branch(
"Muon_cb_fIBeta_err" ,Muon_cb_fIBeta_err ,
"Muon_cb_fIBeta_err[NHSCPs]/F");
380 MyTree->Branch(
"Muon_cb_ndof" ,Muon_cb_ndof ,
"Muon_cb_ndof[NHSCPs]/I");
382 MyTree->Branch(
"Rpc_beta" ,Rpc_beta ,
"Rpc_beta[NHSCPs]/F");
384 MyTree->Branch(
"Calo_ecal_crossedE" ,Calo_ecal_crossedE ,
"Calo_ecal_crossedE[NHSCPs]/F");
385 MyTree->Branch(
"Calo_ecal_beta" ,Calo_ecal_beta ,
"Calo_ecal_beta[NHSCPs]/F");
386 MyTree->Branch(
"Calo_ecal_beta_err" ,Calo_ecal_beta_err ,
"Calo_ecal_beta_err[NHSCPs]/F");
387 MyTree->Branch(
"Calo_ecal_invBeta_err" ,Calo_ecal_invBeta_err ,
"Calo_ecal_invBeta_err[NHSCPs]/F");
388 MyTree->Branch(
"Calo_ecal_dEdx" ,Calo_ecal_dEdx ,
"Calo_ecal_dEdx[NHSCPs]/F");
389 MyTree->Branch(
"Calo_ecal_time" ,Calo_ecal_time ,
"Calo_ecal_time[NHSCPs]/F");
390 MyTree->Branch(
"Calo_ecal_time_err" ,Calo_ecal_time_err ,
"Calo_ecal_time_err[NHSCPs]/F");
391 MyTree->Branch(
"Calo_ecal_numCrysCrossed" ,Calo_ecal_numCrysCrossed,
"Calo_ecal_numCrysCrossed[NHSCPs]/I");
392 MyTree->Branch(
"Calo_ecal_swissCrossKs" ,Calo_ecal_swissCrossKs ,
"Calo_ecal_swissCrossKs[NHSCPs][10]/F");
393 MyTree->Branch(
"Calo_ecal_e1OverE9s" ,Calo_ecal_e1OverE9s ,
"Calo_ecal_e1OverE9s[NHSCPs][10]/F");
394 MyTree->Branch(
"Calo_ecal_trackLengths" ,Calo_ecal_trackLengths ,
"Calo_ecal_trackLengths[NHSCPs][10]/F");
395 MyTree->Branch(
"Calo_ecal_trackExitEtas" ,Calo_ecal_trackExitEtas ,
"Calo_ecal_trackExitEtas[NHSCPs][10]/F");
396 MyTree->Branch(
"Calo_ecal_trackExitPhis" ,Calo_ecal_trackExitPhis ,
"Calo_ecal_trackExitPhis[NHSCPs][10]/F");
397 MyTree->Branch(
"Calo_ecal_energies" ,Calo_ecal_energies ,
"Calo_ecal_energies[NHSCPs][10]/F");
398 MyTree->Branch(
"Calo_ecal_outOfTimeEnergies",Calo_ecal_outOfTimeEnergies ,
"Calo_ecal_outOfTimeEnergies[NHSCPs][10]/F");
399 MyTree->Branch(
"Calo_ecal_chi2s" ,Calo_ecal_chi2s ,
"Calo_ecal_chi2s[NHSCPs][10]/F");
400 MyTree->Branch(
"Calo_ecal_outOfTimeChi2s" ,Calo_ecal_outOfTimeChi2s ,
"Calo_ecal_outOfTimeChi2s[NHSCPs][10]/F");
401 MyTree->Branch(
"Calo_ecal_times" ,Calo_ecal_times ,
"Calo_ecal_times[NHSCPs][10]/F");
402 MyTree->Branch(
"Calo_ecal_timeErrors" ,Calo_ecal_timeErrors ,
"Calo_ecal_timeErrors[NHSCPs][10]/F");
403 MyTree->Branch(
"Calo_ecal_detIds" ,Calo_ecal_detIds ,
"Calo_ecal_detIds[NHSCPs][10]/I");
406 MyTree->Branch(
"NGens" ,&NGens ,
"NGens/I");
407 MyTree->Branch(
"Gen_pdgId" ,Gen_pdgId ,
"Gen_pdgId[NGens]/i");
408 MyTree->Branch(
"Gen_charge" ,Gen_charge ,
"Gen_charge[NGens]/F");
409 MyTree->Branch(
"Gen_p" ,Gen_p ,
"Gen_p[NGens]/F");
410 MyTree->Branch(
"Gen_px" ,Gen_px ,
"Gen_px[NGens]/F");
411 MyTree->Branch(
"Gen_py" ,Gen_py ,
"Gen_py[NGens]/F");
412 MyTree->Branch(
"Gen_pz" ,Gen_pz ,
"Gen_pz[NGens]/F");
413 MyTree->Branch(
"Gen_pt" ,Gen_pt ,
"Gen_pt[NGens]/F");
414 MyTree->Branch(
"Gen_eta" ,Gen_eta ,
"Gen_eta[NGens]/F");
415 MyTree->Branch(
"Gen_phi" ,Gen_phi ,
"Gen_phi[NGens]/F");
416 MyTree->Branch(
"Gen_beta" ,Gen_beta ,
"Gen_beta[NGens]/F");
417 MyTree->Branch(
"Gen_mass" ,Gen_mass ,
"Gen_mass[NGens]/F");
433 if (debug)
cout <<
"I'm in HSCPTreeBuilder::analyze!" << endl;
436 Event_EventNumber = iEvent.
id().
event();
437 Event_RunNumber = iEvent.
id().
run();
452 iEvent.
getByToken(m_gtReadoutRecordToken, h_gtReadoutRecord);
453 L1GtFdlWord fdlWord = h_gtReadoutRecord->gtFdlWord();
455 Event_PhysicsDeclared = h_gtReadoutRecord->gtFdlWord().physicsDeclared();
456 for (
unsigned int i = 0;
i < 64; ++
i){ Event_technicalBits [
i] = L1technical[
i]; }
458 for (
unsigned int i = 0;
i < 128; ++
i){ Event_triggerL1Bits [
i] = L1decision[
i]; }
460 for (
unsigned int i = 0;
i < 64; ++
i){ Event_triggerL1Bits [128+
i] = L1decisionE[
i]; }
465 for(
unsigned int i=0;
i<trh->
size() &&
i<128;++
i){Event_triggerHLTBits[
i] = trh->
at(
i).
accept();}
468 iEvent.
getByToken(m_recoVertexToken, recoVertexHandle);
471 if(reccordVertexInfo){
473 for(
unsigned int i=0;
i<recoVertex.size();
i++){
474 Vertex_x [NVertices] = recoVertex[
i].x();
475 Vertex_y [NVertices] = recoVertex[
i].y();
476 Vertex_z [NVertices] = recoVertex[
i].z();
477 Vertex_x_err [NVertices] = recoVertex[
i].xError();
478 Vertex_y_err [NVertices] = recoVertex[
i].yError();
479 Vertex_z_err [NVertices] = recoVertex[
i].zError();
480 Vertex_TrackSize[NVertices] = recoVertex[
i].tracksSize();
481 Vertex_chi2 [NVertices] = recoVertex[
i].chi2();
482 Vertex_ndof [NVertices] = recoVertex[
i].ndof();
483 Vertex_isFake [NVertices] = recoVertex[
i].isFake();
490 iEvent.
getByToken(m_HSCPsToken, HSCPCollectionHandle);
494 for(
unsigned int i=0;
i<HSCPCollection.size();
i++){
503 Hscp_type [NHSCPs] = hscp.
type();
505 if(track.
isNonnull() && Hscp_hasTrack[NHSCPs]){
506 Track_p [NHSCPs] = track->p();
507 Track_pt [NHSCPs] = track->pt();
508 Track_pt_err [NHSCPs] = track->ptError();
509 Track_eta [NHSCPs] = track->eta();
510 Track_eta_err [NHSCPs] = track->etaError();
511 Track_phi [NHSCPs] = track->phi();
512 Track_phi_err [NHSCPs] = track->phiError();
513 Track_NOH [NHSCPs] = track->found();
514 Track_chi2 [NHSCPs] = track->chi2();
515 Track_ndof [NHSCPs] = track->ndof();
516 Track_d0 [NHSCPs] = -1.0f * track->dxy(recoVertex[0].
position());
517 Track_dz [NHSCPs] = -1.0f * track->dz (recoVertex[0].
position());
518 Track_quality [NHSCPs] = track->qualityMask();
519 Track_charge [NHSCPs] = track->charge();
541 if(muon.
isNonnull() && Hscp_hasMuon[NHSCPs]){
542 Muon_p [NHSCPs] = muon->p();
543 Muon_pt [NHSCPs] = muon->pt();
544 Muon_eta [NHSCPs] = muon->eta();
545 Muon_phi [NHSCPs] = muon->phi();
546 Muon_type [NHSCPs] = muon->type();
547 Muon_qualityValid [NHSCPs] = muon->isQualityValid();
548 Muon_charge [NHSCPs] = muon->charge();
595 if(Hscp_hasRpc[NHSCPs]){
596 Rpc_beta [NHSCPs] = hscp.
rpc().
beta;
605 iEvent.
getByToken(m_genParticlesToken, genParticles);
607 for(
unsigned int i=0;
i<genParticles->size();
i++){
609 if(part.
status()!=1)
continue;
610 if(part.
pt()<5)
continue;
613 Gen_pdgId [NGens] = part.
pdgId();
614 Gen_charge[NGens] = part.
charge();
615 Gen_p [NGens] = part.
p();
616 Gen_px [NGens] = part.
px();
617 Gen_py [NGens] = part.
py();
618 Gen_pz [NGens] = part.
pz();
619 Gen_pt [NGens] = part.
pt();
620 Gen_eta [NGens] = part.
eta();
621 Gen_phi [NGens] = part.
phi();
622 Gen_beta [NGens] = part.
p()/part.
energy();
623 Gen_mass [NGens] = part.
mass();
unsigned int Event_LumiSection
T getParameter(std::string const &) const
virtual double pt() const final
transverse momentum
EventNumber_t event() const
T getUntrackedParameter(std::string const &, T const &) const
const TechnicalTriggerWord & gtTechnicalTriggerWord() const
get/set technical trigger bits
EventAuxiliary const & eventAuxiliary() const override
bool isNonnull() const
Checks for non-null.
virtual double mass() const final
mass
const RPCBetaMeasurement & rpc() const
virtual double eta() const final
momentum pseudorapidity
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
Timestamp const & time() const
unsigned int Event_BXCrossing
std::vector< Vertex > VertexCollection
collection of Vertex objects
virtual int status() const final
status word
virtual void beginJob() override
int bunchCrossing() const
HSCPTreeBuilder(const edm::ParameterSet &)
bool Event_PhysicsDeclared
LuminosityBlockNumber_t luminosityBlock() const
virtual double phi() const final
momentum azimuthal angle
virtual int charge() const final
electric charge
virtual bool filter(edm::Event &, const edm::EventSetup &) override
std::vector< bool > DecisionWordExtended
std::vector< HSCParticle > HSCParticleCollection
unsigned int Event_EventNumber
std::vector< bool > DecisionWord
typedefs
virtual double px() const final
x coordinate of momentum vector
unsigned int size() const
Get number of paths stored.
virtual int pdgId() const final
PDG identifier.
virtual double energy() const final
energy
virtual double p() const final
magnitude of momentum vector
EDGetTokenT< L1GlobalTriggerReadoutRecord > m_gtReadoutRecordToken
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const edm::EventSetup * iSetup_
const edm::Event * iEvent_
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
const HLTPathStatus & at(const unsigned int i) const
virtual double pz() const final
z coordinate of momentum vector
reco::MuonRef muonRef() const
EDGetTokenT< GenParticleCollection > m_genParticlesToken
EDGetTokenT< edm::TriggerResults > m_trToken
T const * product() const
const DecisionWord & gtDecisionWord() const
get/set/print algorithms bits (decision word)
bool accept() const
has this path accepted the event?
reco::TrackRef trackRef() const
static int position[264][3]
virtual void endJob() override
const DecisionWordExtended & gtDecisionWordExtended() const
get/set extended algorithms bits (extended decision word)
edm::Service< TFileService > tfs
EDGetTokenT< reco::VertexCollection > m_recoVertexToken
T const * product() const
TimeValue_t value() const
virtual double py() const final
y coordinate of momentum vector
EDGetTokenT< susybsm::HSCParticleCollection > m_HSCPsToken
unsigned int Event_RunNumber