#include <Validation/TrackerHits/interface/TrackerHitProducer.h>
Definition at line 51 of file TrackerHitProducer.h.
typedef std::vector<float> TrackerHitProducer::FloatVector |
Definition at line 56 of file TrackerHitProducer.h.
typedef std::vector<int> TrackerHitProducer::IntegerVector |
Definition at line 57 of file TrackerHitProducer.h.
TrackerHitProducer::TrackerHitProducer | ( | const edm::ParameterSet & | iPSet | ) | [explicit] |
Definition at line 4 of file TrackerHitProducer.cc.
References fName, getAllProvenances, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), edm::InputTag::instance(), label, edm::InputTag::label(), printProvenanceInfo, PxlBrlHighSrc_, PxlBrlLowSrc_, PxlFwdHighSrc_, PxlFwdLowSrc_, SiTECHighSrc_, SiTECLowSrc_, SiTIBHighSrc_, SiTIBLowSrc_, SiTIDHighSrc_, SiTIDLowSrc_, SiTOBHighSrc_, SiTOBLowSrc_, and verbosity.
00004 : 00005 fName(""), verbosity(0), label(""), getAllProvenances(false), 00006 printProvenanceInfo(false), nRawGenPart(0), config_(iPSet), count(0) 00007 { 00008 // get information from parameter set 00009 fName = iPSet.getUntrackedParameter<std::string>("Name"); 00010 verbosity = iPSet.getUntrackedParameter<int>("Verbosity"); 00011 label = iPSet.getParameter<std::string>("Label"); 00012 edm::ParameterSet m_Prov = 00013 iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup"); 00014 getAllProvenances = 00015 m_Prov.getUntrackedParameter<bool>("GetAllProvenances"); 00016 printProvenanceInfo = 00017 m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo"); 00018 00019 //get Labels to use to extract information 00020 PxlBrlLowSrc_ = iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc"); 00021 PxlBrlHighSrc_ = iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc"); 00022 PxlFwdLowSrc_ = iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc"); 00023 PxlFwdHighSrc_ = iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc"); 00024 00025 SiTIBLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTIBLowSrc"); 00026 SiTIBHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTIBHighSrc"); 00027 SiTOBLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTOBLowSrc"); 00028 SiTOBHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTOBHighSrc"); 00029 SiTIDLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTIDLowSrc"); 00030 SiTIDHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTIDHighSrc"); 00031 SiTECLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTECLowSrc"); 00032 SiTECHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTECHighSrc"); 00033 00034 // use value of first digit to determine default output level (inclusive) 00035 // 0 is none, 1 is basic, 2 is fill output, 3 is gather output 00036 verbosity %= 10; 00037 00038 // create persistent object 00039 produces<PTrackerSimHit>(label); 00040 00041 // print out Parameter Set information being used 00042 if (verbosity > 0) { 00043 edm::LogInfo ("TrackerHitProducer::TrackerHitProducer") 00044 << "\n===============================\n" 00045 << "Initialized as EDProducer with parameter values:\n" 00046 << " Name =" << fName << "\n" 00047 << " Verbosity =" << verbosity << "\n" 00048 << " Label =" << label << "\n" 00049 << " GetProv =" << getAllProvenances << "\n" 00050 << " PrintProv =" << printProvenanceInfo << "\n" 00051 << " PxlBrlLowSrc = " << PxlBrlLowSrc_.label() 00052 << ":" << PxlBrlLowSrc_.instance() << "\n" 00053 << " PxlBrlHighSrc = " << PxlBrlHighSrc_.label() 00054 << ":" << PxlBrlHighSrc_.instance() << "\n" 00055 << " PxlFwdLowSrc = " << PxlFwdLowSrc_.label() 00056 << ":" << PxlBrlLowSrc_.instance() << "\n" 00057 << " PxlFwdHighSrc = " << PxlFwdHighSrc_.label() 00058 << ":" << PxlBrlHighSrc_.instance() << "\n" 00059 << " SiTIBLowSrc = " << SiTIBLowSrc_.label() 00060 << ":" << SiTIBLowSrc_.instance() << "\n" 00061 << " SiTIBHighSrc = " << SiTIBHighSrc_.label() 00062 << ":" << SiTIBHighSrc_.instance() << "\n" 00063 << " SiTOBLowSrc = " << SiTOBLowSrc_.label() 00064 << ":" << SiTOBLowSrc_.instance() << "\n" 00065 << " SiTOBHighSrc = " << SiTOBHighSrc_.label() 00066 << ":" << SiTOBHighSrc_.instance() << "\n" 00067 << " SiTIDLowSrc = " << SiTIDLowSrc_.label() 00068 << ":" << SiTIDLowSrc_.instance() << "\n" 00069 << " SiTIDHighSrc = " << SiTIDHighSrc_.label() 00070 << ":" << SiTIDHighSrc_.instance() << "\n" 00071 << " SiTECLowSrc = " << SiTECLowSrc_.label() 00072 << ":" << SiTECLowSrc_.instance() << "\n" 00073 << " SiTECHighSrc = " << SiTECHighSrc_.label() 00074 << ":" << SiTECHighSrc_.instance() << "\n" 00075 << "===============================\n"; } 00076 }
TrackerHitProducer::~TrackerHitProducer | ( | ) | [virtual] |
void TrackerHitProducer::beginJob | ( | const edm::EventSetup & | iSetup | ) | [virtual] |
Reimplemented from edm::EDProducer.
Definition at line 82 of file TrackerHitProducer.cc.
References clear(), and verbosity.
00083 { 00084 if (verbosity > 0) 00085 edm::LogInfo ("TrackerHitProducer::beginJob") 00086 << "Starting the job..."; 00087 clear(); 00088 return; 00089 }
Definition at line 1063 of file TrackerHitProducer.cc.
References G4TrkE, G4TrkEta, G4TrkPhi, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, HitsDuID, HitsEloss, HitsEnPx, HitsEnPy, HitsEnPz, HitsExPx, HitsExPy, HitsExPz, HitsLdPhi, HitsLdTheta, HitsLdX, HitsLdY, HitsLdZ, HitsLpX, HitsLpY, HitsLpZ, HitsP, HitsParT, HitsProT, HitsSysID, HitsTkID, HitsToF, nRawGenPart, and verbosity.
Referenced by beginJob(), and produce().
01064 { 01065 if (verbosity > 0) 01066 edm::LogInfo("GlobalValProducer::clear") 01067 << "Clearing event holders"; 01068 01069 // reset G4MC info 01070 nRawGenPart = 0; 01071 G4VtxX.clear(); 01072 G4VtxY.clear(); 01073 G4VtxZ.clear(); 01074 G4TrkPt.clear(); 01075 G4TrkE.clear(); 01076 G4TrkEta.clear(); 01077 G4TrkPhi.clear(); 01078 // reset tracker info 01079 HitsSysID.clear(); 01080 HitsDuID.clear(); 01081 HitsTkID.clear(); 01082 HitsProT.clear(); 01083 HitsParT.clear(); 01084 HitsP.clear(); 01085 HitsLpX.clear(); 01086 HitsLpY.clear(); 01087 HitsLpZ.clear(); 01088 HitsLdX.clear(); 01089 HitsLdY.clear(); 01090 HitsLdZ.clear(); 01091 HitsLdTheta.clear(); 01092 HitsLdPhi.clear(); 01093 HitsExPx.clear(); 01094 HitsExPy.clear(); 01095 HitsExPz.clear(); 01096 HitsEnPx.clear(); 01097 HitsEnPy.clear(); 01098 HitsEnPz.clear(); 01099 HitsEloss.clear(); 01100 HitsToF.clear(); 01101 01102 return; 01103 }
Reimplemented from edm::EDProducer.
Definition at line 91 of file TrackerHitProducer.cc.
References count, and verbosity.
00092 { 00093 if (verbosity > 0) 00094 edm::LogInfo ("TrackerHitProducer::endJob") 00095 << "Terminating having processed" << count << "events."; 00096 return; 00097 }
void TrackerHitProducer::fillG4MC | ( | edm::Event & | iEvent | ) | [private] |
Definition at line 182 of file TrackerHitProducer.cc.
References config_, G4TrkE, G4TrkEta, G4TrkPhi, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, edm::Event::getByLabel(), edm::Event::getByType(), edm::ParameterSet::getUntrackedParameter(), i, edm::Handle< T >::isValid(), funct::log(), nRawGenPart, funct::sqrt(), funct::tan(), theta, and verbosity.
Referenced by produce().
00183 { 00184 00185 TString eventout; 00186 if (verbosity > 0) 00187 eventout = "\nGathering info:"; 00188 00190 // get MC information 00192 edm::Handle<edm::HepMCProduct> HepMCEvt; 00193 //iEvent.getByType(HepMCEvt); 00194 static std::string HepMClabel = config_.getUntrackedParameter<std::string>("HepMCProductLabel","source"); 00195 static std::string HepMCinstance = config_.getUntrackedParameter<std::string>("HepMCInputInstance",""); 00196 iEvent.getByLabel(HepMClabel, HepMCinstance ,HepMCEvt); 00197 if (!HepMCEvt.isValid()) { 00198 edm::LogError("TrackerHitProducer::fillG4MC") 00199 << "Unable to find HepMCProduct in event!"; 00200 return; 00201 } 00202 const HepMC::GenEvent* MCEvt = HepMCEvt->GetEvent(); 00203 nRawGenPart = MCEvt->particles_size(); 00204 00205 if (verbosity > 1) { 00206 eventout += "\n Number of Raw Particles collected: "; 00207 eventout += nRawGenPart; 00208 } 00209 00211 // get G4Vertex information 00213 edm::Handle<edm::SimVertexContainer> G4VtxContainer; 00214 iEvent.getByType(G4VtxContainer); 00215 if (!G4VtxContainer.isValid()) { 00216 edm::LogError("TrackerHitProducer::fillG4MC") 00217 << "Unable to find SimVertex in event!"; 00218 return; 00219 } 00220 int i = 0; 00221 edm::SimVertexContainer::const_iterator itVtx; 00222 for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end(); 00223 ++itVtx) { 00224 00225 ++i; 00226 00227 const HepLorentzVector& G4Vtx = HepLorentzVector(itVtx->position().x(), 00228 itVtx->position().y(), 00229 itVtx->position().z(), 00230 itVtx->position().e()); 00231 G4VtxX.push_back(G4Vtx[0]/micrometer); //cm from code -> micrometer *10000 00232 G4VtxY.push_back(G4Vtx[1]/micrometer); //cm from code -> micrometer *10000 00233 G4VtxZ.push_back(G4Vtx[2]/millimeter); //cm from code -> millimeter *10 00234 } 00235 00236 if (verbosity > 1) { 00237 eventout += "\n Number of G4Vertices collected: "; 00238 eventout += i; 00239 } 00240 00242 // get G4Track information 00244 edm::Handle<edm::SimTrackContainer> G4TrkContainer; 00245 iEvent.getByType(G4TrkContainer); 00246 if (!G4TrkContainer.isValid()) { 00247 edm::LogError("TrackerHitProducer::fillG4MC") 00248 << "Unable to find SimTrack in event!"; 00249 return; 00250 } 00251 i = 0; 00252 edm::SimTrackContainer::const_iterator itTrk; 00253 for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); 00254 ++itTrk) { 00255 00256 ++i; 00257 00258 double etaInit =0, phiInit =0, pInit =0; 00259 const HepLorentzVector& G4Trk = HepLorentzVector(itTrk->momentum().x(), 00260 itTrk->momentum().y(), 00261 itTrk->momentum().z(), 00262 itTrk->momentum().e()); 00263 pInit =sqrt(G4Trk[0]*G4Trk[0]+G4Trk[1]*G4Trk[1]+G4Trk[2]*G4Trk[2]); 00264 if ( pInit == 0) 00265 edm::LogError("TrackerHitProducer::fillG4MC") 00266 << "TrackerTest::INFO: Primary has p = 0 "; 00267 else { 00268 double costheta = G4Trk[2]/pInit; 00269 double theta = acos(TMath::Min(TMath::Max(costheta, -1.),1.)); 00270 etaInit = -log(tan(theta/2)); 00271 00272 if ( G4Trk[0] != 0 || G4Trk[1] != 0) 00273 phiInit = atan2(G4Trk[1],G4Trk[0]); 00274 } 00275 G4TrkPt.push_back(sqrt(G4Trk[0]*G4Trk[0]+G4Trk[1]*G4Trk[1])); //GeV 00276 G4TrkE.push_back(G4Trk[3]); //GeV 00277 G4TrkEta.push_back(etaInit); 00278 G4TrkPhi.push_back(phiInit); 00279 } 00280 00281 if (verbosity > 1) { 00282 eventout += "\n Number of G4Tracks collected: "; 00283 eventout += i; 00284 } 00285 00286 if (verbosity > 0) 00287 edm::LogInfo("TrackerHitProducer::fillG4MC") << eventout; 00288 00289 return; 00290 }
void TrackerHitProducer::fillTrk | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [private] |
Definition at line 332 of file TrackerHitProducer.cc.
References edm::Event::getByLabel(), HitsDuID, HitsEloss, HitsEnPx, HitsEnPy, HitsEnPz, HitsExPx, HitsExPy, HitsExPz, HitsLdPhi, HitsLdTheta, HitsLdX, HitsLdY, HitsLdZ, HitsLpX, HitsLpY, HitsLpZ, HitsP, HitsParT, HitsProT, HitsSysID, HitsTkID, HitsToF, edm::Handle< T >::isValid(), j, PxlBrlHighSrc_, PxlBrlLowSrc_, PxlFwdHighSrc_, PxlFwdLowSrc_, SiTECHighSrc_, SiTECLowSrc_, SiTIBHighSrc_, SiTIBLowSrc_, SiTIDHighSrc_, SiTIDLowSrc_, SiTOBHighSrc_, SiTOBLowSrc_, and verbosity.
Referenced by produce().
00334 { 00335 TString eventout; 00336 int sysID = 0; 00337 if (verbosity > 0) 00338 eventout = "\nGathering info:"; 00340 // iterator to access containers 00341 edm::PSimHitContainer::const_iterator itHit; 00342 // edm::PSimHitContainer theHits; 00343 00345 // get Pixel Barrel information 00347 00348 // extract low container 00349 edm::Handle<edm::PSimHitContainer> PxlBrlLowContainer; 00350 iEvent.getByLabel(PxlBrlLowSrc_,PxlBrlLowContainer); 00351 // iEvent.getByLabel("g4SimHits","TrackerHitsPixelBarrelLowTof",PxlBrlLowContainer); 00352 if (!PxlBrlLowContainer.isValid()) { 00353 edm::LogError("TrackerHitProducer::fillTrk") 00354 << "Unable to find TrackerHitsPixelBarrelLowTof in event!"; 00355 return; 00356 } 00357 00358 // place both containers into new container 00359 // theHits.insert(theHits.end(),PxlBrlLowContainer->begin(), 00360 // PxlBrlLowContainer->end()); 00361 00362 sysID = 100; // TrackerHitsPixelBarrelLowTof 00363 int j = 0; 00364 for (itHit = PxlBrlLowContainer->begin(); itHit != PxlBrlLowContainer->end(); ++itHit) { 00365 // for (itHit = theHits.begin(); itHit != theHits.end(); ++itHit) { 00366 00367 // gather necessary information 00368 ++j; 00369 HitsSysID.push_back(sysID); 00370 HitsDuID.push_back(itHit->detUnitId()); 00371 HitsTkID.push_back(itHit->trackId()); 00372 HitsProT.push_back(itHit->processType()); 00373 HitsParT.push_back(itHit->particleType()); 00374 HitsP.push_back(itHit->pabs()); 00375 00376 HitsLpX.push_back(itHit->localPosition().x()); 00377 HitsLpY.push_back(itHit->localPosition().y()); 00378 HitsLpZ.push_back(itHit->localPosition().z()); 00379 00380 HitsLdX.push_back(itHit->localDirection().x()); 00381 HitsLdY.push_back(itHit->localDirection().y()); 00382 HitsLdZ.push_back(itHit->localDirection().z()); 00383 HitsLdTheta.push_back(itHit->localDirection().theta()); 00384 HitsLdPhi.push_back(itHit->localDirection().phi()); 00385 00386 HitsExPx.push_back(itHit->exitPoint().x()); 00387 HitsExPy.push_back(itHit->exitPoint().y()); 00388 HitsExPz.push_back(itHit->exitPoint().z()); 00389 00390 HitsEnPx.push_back(itHit->entryPoint().x()); 00391 HitsEnPy.push_back(itHit->entryPoint().y()); 00392 HitsEnPz.push_back(itHit->entryPoint().z()); 00393 00394 HitsEloss.push_back(itHit->energyLoss()); 00395 HitsToF.push_back(itHit->tof()); 00396 00397 } // end loop through PxlBrl Hits 00398 00399 if (verbosity > 1) { 00400 eventout += "\n Number of Pixel Barrel Low TOF Hits collected: "; 00401 eventout += j; 00402 } 00403 00404 // theHits.clear(); 00405 00406 // extract high container 00407 edm::Handle<edm::PSimHitContainer> PxlBrlHighContainer; 00408 // iEvent.getByLabel("g4SimHits","TrackerHitsPixelBarrelHighTof",PxlBrlHighContainer); 00409 iEvent.getByLabel(PxlBrlHighSrc_,PxlBrlHighContainer); 00410 if (!PxlBrlHighContainer.isValid()) { 00411 edm::LogError("TrackerHitProducer::fillTrk") 00412 << "Unable to find TrackerHitsPixelBarrelHighTof in event!"; 00413 return; 00414 } 00415 00416 00417 sysID = 200; // TrackerHitsPixelBarrelHighTof 00418 j = 0; 00419 for (itHit = PxlBrlHighContainer->begin(); itHit != PxlBrlHighContainer->end(); ++itHit) { 00420 00421 // gather necessary information 00422 ++j; 00423 HitsSysID.push_back(sysID); 00424 HitsDuID.push_back(itHit->detUnitId()); 00425 HitsTkID.push_back(itHit->trackId()); 00426 HitsProT.push_back(itHit->processType()); 00427 HitsParT.push_back(itHit->particleType()); 00428 HitsP.push_back(itHit->pabs()); 00429 00430 HitsLpX.push_back(itHit->localPosition().x()); 00431 HitsLpY.push_back(itHit->localPosition().y()); 00432 HitsLpZ.push_back(itHit->localPosition().z()); 00433 00434 HitsLdX.push_back(itHit->localDirection().x()); 00435 HitsLdY.push_back(itHit->localDirection().y()); 00436 HitsLdZ.push_back(itHit->localDirection().z()); 00437 HitsLdTheta.push_back(itHit->localDirection().theta()); 00438 HitsLdPhi.push_back(itHit->localDirection().phi()); 00439 00440 HitsExPx.push_back(itHit->exitPoint().x()); 00441 HitsExPy.push_back(itHit->exitPoint().y()); 00442 HitsExPz.push_back(itHit->exitPoint().z()); 00443 00444 HitsEnPx.push_back(itHit->entryPoint().x()); 00445 HitsEnPy.push_back(itHit->entryPoint().y()); 00446 HitsEnPz.push_back(itHit->entryPoint().z()); 00447 00448 HitsEloss.push_back(itHit->energyLoss()); 00449 HitsToF.push_back(itHit->tof()); 00450 00451 } // end loop through PxlBrl Hits 00452 00453 if (verbosity > 1) { 00454 eventout += "\n Number of Pixel Barrel High TOF Hits collected: "; 00455 eventout += j; 00456 } 00457 00458 00460 // get Pixel Forward information 00462 // extract low container 00463 edm::Handle<edm::PSimHitContainer> PxlFwdLowContainer; 00464 // iEvent.getByLabel("g4SimHits","TrackerHitsPixelEndcapLowTof",PxlFwdLowContainer); 00465 iEvent.getByLabel(PxlFwdLowSrc_,PxlFwdLowContainer); 00466 if (!PxlFwdLowContainer.isValid()) { 00467 edm::LogError("TrackerHitProducer::fillTrk") 00468 << "Unable to find TrackerHitsPixelEndcapLowTof in event!"; 00469 return; 00470 } 00471 00472 sysID = 300; // TrackerHitsPixelEndcapLowTof 00473 j = 0; 00474 for (itHit = PxlFwdLowContainer->begin(); itHit != PxlFwdLowContainer->end(); ++itHit) { 00475 00476 // gather necessary information 00477 ++j; 00478 HitsSysID.push_back(sysID); 00479 HitsDuID.push_back(itHit->detUnitId()); 00480 HitsTkID.push_back(itHit->trackId()); 00481 HitsProT.push_back(itHit->processType()); 00482 HitsParT.push_back(itHit->particleType()); 00483 HitsP.push_back(itHit->pabs()); 00484 00485 HitsLpX.push_back(itHit->localPosition().x()); 00486 HitsLpY.push_back(itHit->localPosition().y()); 00487 HitsLpZ.push_back(itHit->localPosition().z()); 00488 00489 HitsLdX.push_back(itHit->localDirection().x()); 00490 HitsLdY.push_back(itHit->localDirection().y()); 00491 HitsLdZ.push_back(itHit->localDirection().z()); 00492 HitsLdTheta.push_back(itHit->localDirection().theta()); 00493 HitsLdPhi.push_back(itHit->localDirection().phi()); 00494 00495 HitsExPx.push_back(itHit->exitPoint().x()); 00496 HitsExPy.push_back(itHit->exitPoint().y()); 00497 HitsExPz.push_back(itHit->exitPoint().z()); 00498 00499 HitsEnPx.push_back(itHit->entryPoint().x()); 00500 HitsEnPy.push_back(itHit->entryPoint().y()); 00501 HitsEnPz.push_back(itHit->entryPoint().z()); 00502 00503 HitsEloss.push_back(itHit->energyLoss()); 00504 HitsToF.push_back(itHit->tof()); 00505 00506 } // end loop through PxlFwd Hits 00507 00508 if (verbosity > 1) { 00509 eventout += "\n Number of Pixel Forward Low TOF Hits collected: "; 00510 eventout += j; 00511 } 00512 00513 00514 // extract high container 00515 edm::Handle<edm::PSimHitContainer> PxlFwdHighContainer; 00516 // iEvent.getByLabel("g4SimHits","TrackerHitsPixelEndcapHighTof",PxlFwdHighContainer); 00517 iEvent.getByLabel(PxlFwdHighSrc_,PxlFwdHighContainer); 00518 if (!PxlFwdHighContainer.isValid()) { 00519 edm::LogError("TrackerHitProducer::fillTrk") 00520 << "Unable to find TrackerHitsPixelEndcapHighTof in event!"; 00521 return; 00522 } 00523 00524 sysID = 400; // TrackerHitsPixelEndcapHighTof 00525 j = 0; 00526 for (itHit = PxlFwdHighContainer->begin(); itHit != PxlFwdHighContainer->end(); ++itHit) { 00527 00528 // gather necessary information 00529 ++j; 00530 HitsSysID.push_back(sysID); 00531 HitsDuID.push_back(itHit->detUnitId()); 00532 HitsTkID.push_back(itHit->trackId()); 00533 HitsProT.push_back(itHit->processType()); 00534 HitsParT.push_back(itHit->particleType()); 00535 HitsP.push_back(itHit->pabs()); 00536 00537 HitsLpX.push_back(itHit->localPosition().x()); 00538 HitsLpY.push_back(itHit->localPosition().y()); 00539 HitsLpZ.push_back(itHit->localPosition().z()); 00540 00541 HitsLdX.push_back(itHit->localDirection().x()); 00542 HitsLdY.push_back(itHit->localDirection().y()); 00543 HitsLdZ.push_back(itHit->localDirection().z()); 00544 HitsLdTheta.push_back(itHit->localDirection().theta()); 00545 HitsLdPhi.push_back(itHit->localDirection().phi()); 00546 00547 HitsExPx.push_back(itHit->exitPoint().x()); 00548 HitsExPy.push_back(itHit->exitPoint().y()); 00549 HitsExPz.push_back(itHit->exitPoint().z()); 00550 00551 HitsEnPx.push_back(itHit->entryPoint().x()); 00552 HitsEnPy.push_back(itHit->entryPoint().y()); 00553 HitsEnPz.push_back(itHit->entryPoint().z()); 00554 00555 HitsEloss.push_back(itHit->energyLoss()); 00556 HitsToF.push_back(itHit->tof()); 00557 00558 } // end loop through PxlFwd Hits 00559 00560 if (verbosity > 1) { 00561 eventout += "\n Number of Pixel Forward High TOF Hits collected: "; 00562 eventout += j; 00563 } 00564 00565 00567 // get Silicon TIB information 00569 // extract TIB low container 00570 edm::Handle<edm::PSimHitContainer> SiTIBLowContainer; 00571 // iEvent.getByLabel("g4SimHits","TrackerHitsTIBLowTof",SiTIBLowContainer); 00572 iEvent.getByLabel(SiTIBLowSrc_,SiTIBLowContainer); 00573 if (!SiTIBLowContainer.isValid()) { 00574 edm::LogError("TrackerHitProducer::fillTrk") 00575 << "Unable to find TrackerHitsTIBLowTof in event!"; 00576 return; 00577 } 00578 00579 sysID = 10; // TrackerHitsTIBLowTof 00580 j = 0; 00581 for (itHit = SiTIBLowContainer->begin(); itHit != SiTIBLowContainer->end(); ++itHit) { 00582 00583 // gather necessary information 00584 ++j; 00585 HitsSysID.push_back(sysID); 00586 HitsDuID.push_back(itHit->detUnitId()); 00587 HitsTkID.push_back(itHit->trackId()); 00588 HitsProT.push_back(itHit->processType()); 00589 HitsParT.push_back(itHit->particleType()); 00590 HitsP.push_back(itHit->pabs()); 00591 00592 HitsLpX.push_back(itHit->localPosition().x()); 00593 HitsLpY.push_back(itHit->localPosition().y()); 00594 HitsLpZ.push_back(itHit->localPosition().z()); 00595 00596 HitsLdX.push_back(itHit->localDirection().x()); 00597 HitsLdY.push_back(itHit->localDirection().y()); 00598 HitsLdZ.push_back(itHit->localDirection().z()); 00599 HitsLdTheta.push_back(itHit->localDirection().theta()); 00600 HitsLdPhi.push_back(itHit->localDirection().phi()); 00601 00602 HitsExPx.push_back(itHit->exitPoint().x()); 00603 HitsExPy.push_back(itHit->exitPoint().y()); 00604 HitsExPz.push_back(itHit->exitPoint().z()); 00605 00606 HitsEnPx.push_back(itHit->entryPoint().x()); 00607 HitsEnPy.push_back(itHit->entryPoint().y()); 00608 HitsEnPz.push_back(itHit->entryPoint().z()); 00609 00610 HitsEloss.push_back(itHit->energyLoss()); 00611 HitsToF.push_back(itHit->tof()); 00612 00613 } // end loop through PxlFwd Hits 00614 00615 if (verbosity > 1) { 00616 eventout += "\n Number of TIB low TOF Hits collected: "; 00617 eventout += j; 00618 } 00619 00620 00621 // extract TIB high container 00622 edm::Handle<edm::PSimHitContainer> SiTIBHighContainer; 00623 // iEvent.getByLabel("g4SimHits","TrackerHitsTIBHighTof",SiTIBHighContainer); 00624 iEvent.getByLabel(SiTIBHighSrc_,SiTIBHighContainer); 00625 if (!SiTIBHighContainer.isValid()) { 00626 edm::LogError("TrackerHitProducer::fillTrk") 00627 << "Unable to find TrackerHitsTIBHighTof in event!"; 00628 return; 00629 } 00630 00631 sysID = 20; // TrackerHitsTIBHighTof 00632 j = 0; 00633 for (itHit = SiTIBHighContainer->begin(); itHit != SiTIBHighContainer->end(); ++itHit) { 00634 00635 // gather necessary information 00636 ++j; 00637 HitsSysID.push_back(sysID); 00638 HitsDuID.push_back(itHit->detUnitId()); 00639 HitsTkID.push_back(itHit->trackId()); 00640 HitsProT.push_back(itHit->processType()); 00641 HitsParT.push_back(itHit->particleType()); 00642 HitsP.push_back(itHit->pabs()); 00643 00644 HitsLpX.push_back(itHit->localPosition().x()); 00645 HitsLpY.push_back(itHit->localPosition().y()); 00646 HitsLpZ.push_back(itHit->localPosition().z()); 00647 00648 HitsLdX.push_back(itHit->localDirection().x()); 00649 HitsLdY.push_back(itHit->localDirection().y()); 00650 HitsLdZ.push_back(itHit->localDirection().z()); 00651 HitsLdTheta.push_back(itHit->localDirection().theta()); 00652 HitsLdPhi.push_back(itHit->localDirection().phi()); 00653 00654 HitsExPx.push_back(itHit->exitPoint().x()); 00655 HitsExPy.push_back(itHit->exitPoint().y()); 00656 HitsExPz.push_back(itHit->exitPoint().z()); 00657 00658 HitsEnPx.push_back(itHit->entryPoint().x()); 00659 HitsEnPy.push_back(itHit->entryPoint().y()); 00660 HitsEnPz.push_back(itHit->entryPoint().z()); 00661 00662 HitsEloss.push_back(itHit->energyLoss()); 00663 HitsToF.push_back(itHit->tof()); 00664 00665 } // end loop through PxlFwd Hits 00666 00667 if (verbosity > 1) { 00668 eventout += "\n Number of TIB high TOF Hits collected: "; 00669 eventout += j; 00670 } 00671 00673 // get Silicon TOB information 00675 // extract TOB low container 00676 edm::Handle<edm::PSimHitContainer> SiTOBLowContainer; 00677 // iEvent.getByLabel("g4SimHits","TrackerHitsTOBLowTof",SiTOBLowContainer); 00678 iEvent.getByLabel(SiTOBLowSrc_,SiTOBLowContainer); 00679 if (!SiTOBLowContainer.isValid()) { 00680 edm::LogError("TrackerHitProducer::fillTrk") 00681 << "Unable to find TrackerHitsTOBLowTof in event!"; 00682 return; 00683 } 00684 00685 sysID = 30; // TrackerHitsTOBLowTof 00686 j = 0; 00687 for (itHit = SiTOBLowContainer->begin(); itHit != SiTOBLowContainer->end(); ++itHit) { 00688 00689 // gather necessary information 00690 ++j; 00691 HitsSysID.push_back(sysID); 00692 HitsDuID.push_back(itHit->detUnitId()); 00693 HitsTkID.push_back(itHit->trackId()); 00694 HitsProT.push_back(itHit->processType()); 00695 HitsParT.push_back(itHit->particleType()); 00696 HitsP.push_back(itHit->pabs()); 00697 00698 HitsLpX.push_back(itHit->localPosition().x()); 00699 HitsLpY.push_back(itHit->localPosition().y()); 00700 HitsLpZ.push_back(itHit->localPosition().z()); 00701 00702 HitsLdX.push_back(itHit->localDirection().x()); 00703 HitsLdY.push_back(itHit->localDirection().y()); 00704 HitsLdZ.push_back(itHit->localDirection().z()); 00705 HitsLdTheta.push_back(itHit->localDirection().theta()); 00706 HitsLdPhi.push_back(itHit->localDirection().phi()); 00707 00708 HitsExPx.push_back(itHit->exitPoint().x()); 00709 HitsExPy.push_back(itHit->exitPoint().y()); 00710 HitsExPz.push_back(itHit->exitPoint().z()); 00711 00712 HitsEnPx.push_back(itHit->entryPoint().x()); 00713 HitsEnPy.push_back(itHit->entryPoint().y()); 00714 HitsEnPz.push_back(itHit->entryPoint().z()); 00715 00716 HitsEloss.push_back(itHit->energyLoss()); 00717 HitsToF.push_back(itHit->tof()); 00718 00719 } // end loop through PxlFwd Hits 00720 00721 if (verbosity > 1) { 00722 eventout += "\n Number of TOB low TOF Hits collected: "; 00723 eventout += j; 00724 } 00725 00726 // extract TOB high container 00727 edm::Handle<edm::PSimHitContainer> SiTOBHighContainer; 00728 // iEvent.getByLabel("g4SimHits","TrackerHitsTOBHighTof",SiTOBHighContainer); 00729 iEvent.getByLabel(SiTOBHighSrc_,SiTOBHighContainer); 00730 if (!SiTOBHighContainer.isValid()) { 00731 edm::LogError("TrackerHitProducer::fillTrk") 00732 << "Unable to find TrackerHitsTOBHighTof in event!"; 00733 return; 00734 } 00735 00736 sysID = 40; // TrackerHitsTOBHighTof 00737 j = 0; 00738 for (itHit = SiTOBHighContainer->begin(); itHit != SiTOBHighContainer->end(); ++itHit) { 00739 00740 // gather necessary information 00741 ++j; 00742 HitsSysID.push_back(sysID); 00743 HitsDuID.push_back(itHit->detUnitId()); 00744 HitsTkID.push_back(itHit->trackId()); 00745 HitsProT.push_back(itHit->processType()); 00746 HitsParT.push_back(itHit->particleType()); 00747 HitsP.push_back(itHit->pabs()); 00748 00749 HitsLpX.push_back(itHit->localPosition().x()); 00750 HitsLpY.push_back(itHit->localPosition().y()); 00751 HitsLpZ.push_back(itHit->localPosition().z()); 00752 00753 HitsLdX.push_back(itHit->localDirection().x()); 00754 HitsLdY.push_back(itHit->localDirection().y()); 00755 HitsLdZ.push_back(itHit->localDirection().z()); 00756 HitsLdTheta.push_back(itHit->localDirection().theta()); 00757 HitsLdPhi.push_back(itHit->localDirection().phi()); 00758 00759 HitsExPx.push_back(itHit->exitPoint().x()); 00760 HitsExPy.push_back(itHit->exitPoint().y()); 00761 HitsExPz.push_back(itHit->exitPoint().z()); 00762 00763 HitsEnPx.push_back(itHit->entryPoint().x()); 00764 HitsEnPy.push_back(itHit->entryPoint().y()); 00765 HitsEnPz.push_back(itHit->entryPoint().z()); 00766 00767 HitsEloss.push_back(itHit->energyLoss()); 00768 HitsToF.push_back(itHit->tof()); 00769 00770 } // end loop through SiTOB Hits 00771 00772 if (verbosity > 1) { 00773 eventout += "\n Number of TOB high TOF Hits collected: "; 00774 eventout += j; 00775 } 00776 00778 // get Silicon TID information 00780 // extract TID low container 00781 edm::Handle<edm::PSimHitContainer> SiTIDLowContainer; 00782 // iEvent.getByLabel("g4SimHits","TrackerHitsTIDLowTof",SiTIDLowContainer); 00783 iEvent.getByLabel(SiTIDLowSrc_,SiTIDLowContainer); 00784 if (!SiTIDLowContainer.isValid()) { 00785 edm::LogError("TrackerHitProducer::fillTrk") 00786 << "Unable to find TrackerHitsTIDLowTof in event!"; 00787 return; 00788 } 00789 00790 sysID = 50; // TrackerHitsTIDLowTof 00791 j = 0; 00792 for (itHit = SiTIDLowContainer->begin(); itHit != SiTIDLowContainer->end(); ++itHit) { 00793 00794 // gather necessary information 00795 ++j; 00796 HitsSysID.push_back(sysID); 00797 HitsDuID.push_back(itHit->detUnitId()); 00798 HitsTkID.push_back(itHit->trackId()); 00799 HitsProT.push_back(itHit->processType()); 00800 HitsParT.push_back(itHit->particleType()); 00801 HitsP.push_back(itHit->pabs()); 00802 00803 HitsLpX.push_back(itHit->localPosition().x()); 00804 HitsLpY.push_back(itHit->localPosition().y()); 00805 HitsLpZ.push_back(itHit->localPosition().z()); 00806 00807 HitsLdX.push_back(itHit->localDirection().x()); 00808 HitsLdY.push_back(itHit->localDirection().y()); 00809 HitsLdZ.push_back(itHit->localDirection().z()); 00810 HitsLdTheta.push_back(itHit->localDirection().theta()); 00811 HitsLdPhi.push_back(itHit->localDirection().phi()); 00812 00813 HitsExPx.push_back(itHit->exitPoint().x()); 00814 HitsExPy.push_back(itHit->exitPoint().y()); 00815 HitsExPz.push_back(itHit->exitPoint().z()); 00816 00817 HitsEnPx.push_back(itHit->entryPoint().x()); 00818 HitsEnPy.push_back(itHit->entryPoint().y()); 00819 HitsEnPz.push_back(itHit->entryPoint().z()); 00820 00821 HitsEloss.push_back(itHit->energyLoss()); 00822 HitsToF.push_back(itHit->tof()); 00823 00824 } // end loop through SiTID Hits 00825 00826 if (verbosity > 1) { 00827 eventout += "\n Number of TID low TOF Hits collected: "; 00828 eventout += j; 00829 } 00830 00831 // extract TID high container 00832 edm::Handle<edm::PSimHitContainer> SiTIDHighContainer; 00833 // iEvent.getByLabel("g4SimHits","TrackerHitsTIDHighTof",SiTIDHighContainer); 00834 iEvent.getByLabel(SiTIDHighSrc_,SiTIDHighContainer); 00835 if (!SiTIDHighContainer.isValid()) { 00836 edm::LogError("TrackerHitProducer::fillTrk") 00837 << "Unable to find TrackerHitsTIDHighTof in event!"; 00838 return; 00839 } 00840 00841 sysID = 60; // TrackerHitsTIDHighTof 00842 j = 0; 00843 for (itHit = SiTIDHighContainer->begin(); itHit != SiTIDHighContainer->end(); ++itHit) { 00844 00845 // gather necessary information 00846 ++j; 00847 HitsSysID.push_back(sysID); 00848 HitsDuID.push_back(itHit->detUnitId()); 00849 HitsTkID.push_back(itHit->trackId()); 00850 HitsProT.push_back(itHit->processType()); 00851 HitsParT.push_back(itHit->particleType()); 00852 HitsP.push_back(itHit->pabs()); 00853 00854 HitsLpX.push_back(itHit->localPosition().x()); 00855 HitsLpY.push_back(itHit->localPosition().y()); 00856 HitsLpZ.push_back(itHit->localPosition().z()); 00857 00858 HitsLdX.push_back(itHit->localDirection().x()); 00859 HitsLdY.push_back(itHit->localDirection().y()); 00860 HitsLdZ.push_back(itHit->localDirection().z()); 00861 HitsLdTheta.push_back(itHit->localDirection().theta()); 00862 HitsLdPhi.push_back(itHit->localDirection().phi()); 00863 00864 HitsExPx.push_back(itHit->exitPoint().x()); 00865 HitsExPy.push_back(itHit->exitPoint().y()); 00866 HitsExPz.push_back(itHit->exitPoint().z()); 00867 00868 HitsEnPx.push_back(itHit->entryPoint().x()); 00869 HitsEnPy.push_back(itHit->entryPoint().y()); 00870 HitsEnPz.push_back(itHit->entryPoint().z()); 00871 00872 HitsEloss.push_back(itHit->energyLoss()); 00873 HitsToF.push_back(itHit->tof()); 00874 00875 } // end loop through SiTID Hits 00876 00877 if (verbosity > 1) { 00878 eventout += "\n Number of TID high TOF Hits collected: "; 00879 eventout += j; 00880 } 00881 00883 // get Silicon TEC information 00885 // extract TEC low container 00886 edm::Handle<edm::PSimHitContainer> SiTECLowContainer; 00887 // iEvent.getByLabel("g4SimHits","TrackerHitsTECLowTof",SiTECLowContainer); 00888 iEvent.getByLabel(SiTECLowSrc_,SiTECLowContainer); 00889 if (!SiTECLowContainer.isValid()) { 00890 edm::LogError("TrackerHitProducer::fillTrk") 00891 << "Unable to find TrackerHitsTECLowTof in event!"; 00892 return; 00893 } 00894 00895 sysID = 70; // TrackerHitsTECLowTof 00896 j = 0; 00897 for (itHit = SiTECLowContainer->begin(); itHit != SiTECLowContainer->end(); ++itHit) { 00898 00899 // gather necessary information 00900 ++j; 00901 HitsSysID.push_back(sysID); 00902 HitsDuID.push_back(itHit->detUnitId()); 00903 HitsTkID.push_back(itHit->trackId()); 00904 HitsProT.push_back(itHit->processType()); 00905 HitsParT.push_back(itHit->particleType()); 00906 HitsP.push_back(itHit->pabs()); 00907 00908 HitsLpX.push_back(itHit->localPosition().x()); 00909 HitsLpY.push_back(itHit->localPosition().y()); 00910 HitsLpZ.push_back(itHit->localPosition().z()); 00911 00912 HitsLdX.push_back(itHit->localDirection().x()); 00913 HitsLdY.push_back(itHit->localDirection().y()); 00914 HitsLdZ.push_back(itHit->localDirection().z()); 00915 HitsLdTheta.push_back(itHit->localDirection().theta()); 00916 HitsLdPhi.push_back(itHit->localDirection().phi()); 00917 00918 HitsExPx.push_back(itHit->exitPoint().x()); 00919 HitsExPy.push_back(itHit->exitPoint().y()); 00920 HitsExPz.push_back(itHit->exitPoint().z()); 00921 00922 HitsEnPx.push_back(itHit->entryPoint().x()); 00923 HitsEnPy.push_back(itHit->entryPoint().y()); 00924 HitsEnPz.push_back(itHit->entryPoint().z()); 00925 00926 HitsEloss.push_back(itHit->energyLoss()); 00927 HitsToF.push_back(itHit->tof()); 00928 00929 } // end loop through SiTEC Hits 00930 00931 if (verbosity > 1) { 00932 eventout += "\n Number of TEC low TOF Hits collected: "; 00933 eventout += j; 00934 } 00935 00936 00937 // extract TEC high container 00938 edm::Handle<edm::PSimHitContainer> SiTECHighContainer; 00939 // iEvent.getByLabel("g4SimHits","TrackerHitsTECHighTof",SiTECHighContainer); 00940 iEvent.getByLabel(SiTECHighSrc_,SiTECHighContainer); 00941 if (!SiTECHighContainer.isValid()) { 00942 edm::LogError("TrackerHitProducer::fillTrk") 00943 << "Unable to find TrackerHitsTECHighTof in event!"; 00944 return; 00945 } 00946 sysID = 80; // TrackerHitsTECHighTof 00947 j = 0; 00948 for (itHit = SiTECHighContainer->begin(); itHit != SiTECHighContainer->end(); ++itHit) { 00949 00950 // gather necessary information 00951 ++j; 00952 HitsSysID.push_back(sysID); 00953 HitsDuID.push_back(itHit->detUnitId()); 00954 HitsTkID.push_back(itHit->trackId()); 00955 HitsProT.push_back(itHit->processType()); 00956 HitsParT.push_back(itHit->particleType()); 00957 HitsP.push_back(itHit->pabs()); 00958 00959 HitsLpX.push_back(itHit->localPosition().x()); 00960 HitsLpY.push_back(itHit->localPosition().y()); 00961 HitsLpZ.push_back(itHit->localPosition().z()); 00962 00963 HitsLdX.push_back(itHit->localDirection().x()); 00964 HitsLdY.push_back(itHit->localDirection().y()); 00965 HitsLdZ.push_back(itHit->localDirection().z()); 00966 HitsLdTheta.push_back(itHit->localDirection().theta()); 00967 HitsLdPhi.push_back(itHit->localDirection().phi()); 00968 00969 HitsExPx.push_back(itHit->exitPoint().x()); 00970 HitsExPy.push_back(itHit->exitPoint().y()); 00971 HitsExPz.push_back(itHit->exitPoint().z()); 00972 00973 HitsEnPx.push_back(itHit->entryPoint().x()); 00974 HitsEnPy.push_back(itHit->entryPoint().y()); 00975 HitsEnPz.push_back(itHit->entryPoint().z()); 00976 00977 HitsEloss.push_back(itHit->energyLoss()); 00978 HitsToF.push_back(itHit->tof()); 00979 00980 } // end loop through SiTEC Hits 00981 00982 if (verbosity > 1) { 00983 eventout += "\n Number of TEC high TOF Hits collected: "; 00984 eventout += j; 00985 } 00986 00987 if (verbosity > 0) 00988 edm::LogInfo("TrackerHitProducer::fillTrk") << eventout; 00989 00990 return; 00991 }
void TrackerHitProducer::produce | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 99 of file TrackerHitProducer.cc.
References clear(), count, fillG4MC(), fillTrk(), edm::Event::getAllProvenance(), getAllProvenances, i, edm::Event::id(), label, printProvenanceInfo, edm::Event::put(), storeG4MC(), storeTrk(), and verbosity.
00101 { 00102 // keep track of number of events processed 00103 ++count; 00104 00105 // get event id information 00106 int nrun = iEvent.id().run(); 00107 int nevt = iEvent.id().event(); 00108 00109 // get event setup information 00110 //edm::ESHandle<edm::SetupData> pSetup; 00111 //iSetup.get<edm::SetupRecord>().get(pSetup); 00112 00113 if (verbosity > 0) { 00114 edm::LogInfo ("TrackerHitProducer::produce") 00115 << "Processing run" << nrun << "," << "event " << nevt; 00116 } 00117 00118 // clear event holders 00119 clear(); 00120 00121 // look at information available in the event 00122 if (getAllProvenances) { 00123 00124 std::vector<const edm::Provenance*> AllProv; 00125 iEvent.getAllProvenance(AllProv); 00126 00127 if (verbosity > 0) 00128 edm::LogInfo ("TrackerHitProducer::produce") 00129 << "Number of Provenances =" << AllProv.size(); 00130 00131 if (printProvenanceInfo && (verbosity > 0)) { 00132 TString eventout("\nProvenance info:\n"); 00133 00134 for (unsigned int i = 0; i < AllProv.size(); ++i) { 00135 eventout += "\n ******************************"; 00136 eventout += "\n Module : "; 00137 eventout += AllProv[i]->moduleLabel(); 00138 eventout += "\n ProductID : "; 00139 eventout += AllProv[i]->productID().id(); 00140 eventout += "\n ClassName : "; 00141 eventout += AllProv[i]->className(); 00142 eventout += "\n InstanceName : "; 00143 eventout += AllProv[i]->productInstanceName(); 00144 eventout += "\n BranchName : "; 00145 eventout += AllProv[i]->branchName(); 00146 } 00147 eventout += " ******************************\n"; 00148 edm::LogInfo("TrackerHitProducer::produce") << eventout; 00149 } 00150 } 00151 00152 // call fill functions 00153 //gather G4MC information from event 00154 fillG4MC(iEvent); 00155 // gather Tracker information from event 00156 fillTrk(iEvent,iSetup); 00157 00158 if (verbosity > 0) 00159 edm::LogInfo ("TrackerHitProducer::produce") 00160 << "Done gathering data from event."; 00161 00162 // produce object to put into event 00163 std::auto_ptr<PTrackerSimHit> pOut(new PTrackerSimHit); 00164 00165 if (verbosity > 2) 00166 edm::LogInfo ("TrackerHitProducer::produce") 00167 << "Saving event contents:"; 00168 00169 // call store functions 00170 // store G4MC information in product 00171 storeG4MC(*pOut); 00172 // store Tracker information in produce 00173 storeTrk(*pOut); 00174 00175 // store information in event 00176 iEvent.put(pOut,label); 00177 00178 return; 00179 }
void TrackerHitProducer::storeG4MC | ( | PTrackerSimHit & | product | ) | [private] |
Definition at line 292 of file TrackerHitProducer.cc.
References G4TrkE, G4TrkEta, G4TrkPhi, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, i, nRawGenPart, PTrackerSimHit::putG4Trk(), PTrackerSimHit::putG4Vtx(), PTrackerSimHit::putRawGenPart(), and verbosity.
Referenced by produce().
00293 { 00294 00295 if (verbosity > 2) { 00296 TString eventout("\nnRawGenPart = "); 00297 eventout += nRawGenPart; 00298 eventout += "\n nG4Vtx = "; 00299 eventout += G4VtxX.size(); 00300 for (unsigned int i = 0; i < G4VtxX.size(); ++i) { 00301 eventout += "\n (x,y,z) = ("; 00302 eventout += G4VtxX[i]; 00303 eventout += ", "; 00304 eventout += G4VtxY[i]; 00305 eventout += ", "; 00306 eventout += G4VtxZ[i]; 00307 eventout += ")"; 00308 } 00309 eventout += "\n nG4Trk = "; 00310 eventout += G4TrkPt.size(); 00311 for (unsigned int i = 0; i < G4TrkPt.size(); ++i) { 00312 eventout += "\n (pt,e,eta,phi) = ("; 00313 eventout += G4TrkPt[i]; 00314 eventout += ", "; 00315 eventout += G4TrkE[i]; 00316 eventout += ")"; 00317 eventout += G4TrkEta[i]; 00318 eventout += ")"; 00319 eventout += G4TrkPhi[i]; 00320 eventout += ")"; 00321 } 00322 edm::LogInfo("TrackerHitProducer::storeG4MC") << eventout; 00323 } // end verbose output 00324 00325 product.putRawGenPart(nRawGenPart); 00326 product.putG4Vtx(G4VtxX, G4VtxY, G4VtxZ); 00327 product.putG4Trk(G4TrkPt, G4TrkE, G4TrkEta, G4TrkPhi); 00328 00329 return; 00330 }
void TrackerHitProducer::storeTrk | ( | PTrackerSimHit & | product | ) | [private] |
Definition at line 993 of file TrackerHitProducer.cc.
References HitsDuID, HitsEloss, HitsEnPx, HitsEnPy, HitsEnPz, HitsExPx, HitsExPy, HitsExPz, HitsLdPhi, HitsLdTheta, HitsLdX, HitsLdY, HitsLdZ, HitsLpX, HitsLpY, HitsLpZ, HitsP, HitsParT, HitsProT, HitsSysID, HitsTkID, HitsToF, and PTrackerSimHit::putHits().
Referenced by produce().
00994 { 00995 00996 /* 00997 if (verbosity > 2) { 00998 TString eventout("\nnPxlBrlHits = "); 00999 eventout += PxlBrlToF.size(); 01000 for (unsigned int i = 0; i < PxlBrlToF.size(); ++i) { 01001 eventout += "\n (tof,r,phi,eta) = ("; 01002 eventout += PxlBrlToF[i]; 01003 eventout += ", "; 01004 eventout += PxlBrlR[i]; 01005 eventout += ", "; 01006 eventout += PxlBrlPhi[i]; 01007 eventout += ", "; 01008 eventout += PxlBrlEta[i]; 01009 eventout += ")"; 01010 } // end PxlBrl output 01011 eventout += "\n nPxlFwdHits = "; 01012 eventout += PxlFwdToF.size(); 01013 for (unsigned int i = 0; i < PxlFwdToF.size(); ++i) { 01014 eventout += "\n (tof,z,phi,eta) = ("; 01015 eventout += PxlFwdToF[i]; 01016 eventout += ", "; 01017 eventout += PxlFwdZ[i]; 01018 eventout += ", "; 01019 eventout += PxlFwdPhi[i]; 01020 eventout += ", "; 01021 eventout += PxlFwdEta[i]; 01022 eventout += ")"; 01023 } // end PxlFwd output 01024 eventout += "\n nSiBrlHits = "; 01025 eventout += SiBrlToF.size(); 01026 for (unsigned int i = 0; i < SiBrlToF.size(); ++i) { 01027 eventout += "\n (tof,r,phi,eta) = ("; 01028 eventout += SiBrlToF[i]; 01029 eventout += ", "; 01030 eventout += SiBrlR[i]; 01031 eventout += ", "; 01032 eventout += SiBrlPhi[i]; 01033 eventout += ", "; 01034 eventout += SiBrlEta[i]; 01035 eventout += ")"; 01036 } // end SiBrl output 01037 eventout += "\n nSiFwdHits = "; 01038 eventout += SiFwdToF.size(); 01039 for (unsigned int i = 0; i < SiFwdToF.size(); ++i) { 01040 eventout += "\n (tof,z,phi,eta) = ("; 01041 eventout += SiFwdToF[i]; 01042 eventout += ", "; 01043 eventout += SiFwdZ[i]; 01044 eventout += ", "; 01045 eventout += SiFwdPhi[i]; 01046 eventout += ", "; 01047 eventout += SiFwdEta[i]; 01048 eventout += ")"; 01049 } // end SiFwd output 01050 edm::LogInfo("TrackerHitProducer::storeTrk") << eventout; 01051 } // end verbose output 01052 */ 01053 product.putHits(HitsSysID, HitsDuID, HitsTkID, HitsProT, HitsParT, HitsP, 01054 HitsLpX, HitsLpY, HitsLpZ, 01055 HitsLdX, HitsLdY, HitsLdZ, HitsLdTheta, HitsLdPhi, 01056 HitsExPx, HitsExPy, HitsExPz, 01057 HitsEnPx, HitsEnPy, HitsEnPz, 01058 HitsEloss, HitsToF); 01059 01060 return; 01061 }
edm::ParameterSet TrackerHitProducer::config_ [private] |
unsigned int TrackerHitProducer::count [private] |
std::string TrackerHitProducer::fName [private] |
FloatVector TrackerHitProducer::G4TrkE [private] |
Definition at line 93 of file TrackerHitProducer.h.
Referenced by clear(), fillG4MC(), and storeG4MC().
FloatVector TrackerHitProducer::G4TrkEta [private] |
Definition at line 94 of file TrackerHitProducer.h.
Referenced by clear(), fillG4MC(), and storeG4MC().
FloatVector TrackerHitProducer::G4TrkPhi [private] |
Definition at line 95 of file TrackerHitProducer.h.
Referenced by clear(), fillG4MC(), and storeG4MC().
FloatVector TrackerHitProducer::G4TrkPt [private] |
Definition at line 92 of file TrackerHitProducer.h.
Referenced by clear(), fillG4MC(), and storeG4MC().
FloatVector TrackerHitProducer::G4VtxX [private] |
Definition at line 89 of file TrackerHitProducer.h.
Referenced by clear(), fillG4MC(), and storeG4MC().
FloatVector TrackerHitProducer::G4VtxY [private] |
Definition at line 90 of file TrackerHitProducer.h.
Referenced by clear(), fillG4MC(), and storeG4MC().
FloatVector TrackerHitProducer::G4VtxZ [private] |
Definition at line 91 of file TrackerHitProducer.h.
Referenced by clear(), fillG4MC(), and storeG4MC().
bool TrackerHitProducer::getAllProvenances [private] |
Definition at line 84 of file TrackerHitProducer.h.
Referenced by produce(), and TrackerHitProducer().
FloatVector TrackerHitProducer::HitsDuID [private] |
Definition at line 102 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsEloss [private] |
Definition at line 121 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsEnPx [private] |
Definition at line 118 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsEnPy [private] |
Definition at line 119 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsEnPz [private] |
Definition at line 120 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsExPx [private] |
Definition at line 115 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsExPy [private] |
Definition at line 116 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsExPz [private] |
Definition at line 117 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsLdPhi [private] |
Definition at line 114 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsLdTheta [private] |
Definition at line 113 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsLdX [private] |
Definition at line 110 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsLdY [private] |
Definition at line 111 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsLdZ [private] |
Definition at line 112 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsLpX [private] |
Definition at line 107 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsLpY [private] |
Definition at line 108 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsLpZ [private] |
Definition at line 109 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsP [private] |
Definition at line 106 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsParT [private] |
Definition at line 105 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsProT [private] |
Definition at line 104 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
IntegerVector TrackerHitProducer::HitsSysID [private] |
Definition at line 101 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsTkID [private] |
Definition at line 103 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
FloatVector TrackerHitProducer::HitsToF [private] |
Definition at line 122 of file TrackerHitProducer.h.
Referenced by clear(), fillTrk(), and storeTrk().
std::string TrackerHitProducer::label [private] |
Definition at line 83 of file TrackerHitProducer.h.
Referenced by produce(), and TrackerHitProducer().
int TrackerHitProducer::nRawGenPart [private] |
Definition at line 88 of file TrackerHitProducer.h.
Referenced by clear(), fillG4MC(), and storeG4MC().
bool TrackerHitProducer::printProvenanceInfo [private] |
Definition at line 85 of file TrackerHitProducer.h.
Referenced by produce(), and TrackerHitProducer().
Definition at line 133 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 132 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 135 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 134 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 131 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 130 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 125 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 124 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 129 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 128 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 127 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
Definition at line 126 of file TrackerHitProducer.h.
Referenced by fillTrk(), and TrackerHitProducer().
int TrackerHitProducer::verbosity [private] |
Definition at line 82 of file TrackerHitProducer.h.
Referenced by beginJob(), clear(), endJob(), fillG4MC(), fillTrk(), produce(), storeG4MC(), and TrackerHitProducer().