87 bool gotTracks = iEvent.
getByLabel(
"mix",
"g4SimHits",cf_simtrack);
88 if (!gotTracks)
std::cout<<
" Could not read SimTracks!!!!"<<std::endl;
103 const std::string subdet(
"g4SimHitsTrackerHitsTECHighTof");
105 got = iEvent.
getByLabel(
"mix",subdet,cf_simhit);
106 if (!got)
std::cout<<
" Could not read SimHits with label "<<subdet<<
"!!!!"<<std::endl;
108 std::cout<<
"\n\n=================== Starting SimHit access, subdet "<<subdet<<
" ==================="<<std::endl;
113 for (cfi=
col->begin(); cfi!=
col->end();cfi++) {
114 std::cout<<
" Hit "<<
count<<
" has tof "<<cfi->timeOfFlight()<<
" trackid "<<cfi->trackId() <<
" bunchcr "<<cfi.bunch()<<
" trigger "<<cfi.getTrigger()<<
", from EncodedEventId: "<<cfi->eventId().bunchCrossing()<<
" " <<cfi->eventId().event() <<
" bcr from MixCol "<<cfi.bunch()<<std::endl;
121 const std::string subdetcalo(
"g4SimHitsEcalHitsEB");
123 got = iEvent.
getByLabel(
"mix",subdetcalo,cf_calo);
124 if (!got)
std::cout<<
" Could not read CaloHits with label "<<subdetcalo<<
"!!!!"<<std::endl;
126 std::cout<<
"\n\n=================== Starting CaloHit access, subdet "<<subdetcalo<<
" ==================="<<std::endl;
127 std::auto_ptr<MixCollection<PCaloHit> > colcalo(
new MixCollection<PCaloHit>(cf_calo.product(), std::pair<int,int>(-1,1)));
131 for (cficalo=colcalo->begin(); cficalo!=colcalo->end();cficalo++) {
132 std::cout<<
" CaloHit "<<
count<<
" has tof "<<cficalo->time()<<
" trackid "<<cficalo->geantTrackId() <<
" bunchcr "<<cficalo.bunch()<<
" trigger "<<cficalo.getTrigger()<<
", from EncodedEventId: "<<cficalo->eventId().bunchCrossing()<<
" " <<cficalo->eventId().event() <<std::endl;
140 std::cout<<
"\n=================== Starting SimTrack access ==================="<<std::endl;
146 std::cout <<
" \nWe got "<<col2->sizeSignal()<<
" signal tracks and "<<col2->sizePileup()<<
" pileup tracks, total: "<<col2->size()<<std::endl;
147 for (cfi2=col2->begin(); cfi2!=col2->end();cfi2++) {
148 std::cout<<
" SimTrack "<<count2<<
" has genpart index "<<cfi2->genpartIndex()<<
" vertex Index "<<cfi2->vertIndex() <<
" bunchcr "<<cfi2.
bunch()<<
" trigger "<<cfi2.
getTrigger()<<
", from EncodedEventId: "<<cfi2->eventId().bunchCrossing() <<
" "<<cfi2->eventId().event() <<std::endl;
155 got = iEvent.
getByLabel(
"mix",
"g4SimHits",cf_simvtx);
156 if (!got)
std::cout<<
" Could not read Simvertices !!!!"<<std::endl;
158 std::cout<<
"\n=================== Starting SimVertex access ==================="<<std::endl;
162 std::cout <<
" \nWe got "<<col3->sizeSignal()<<
" signal vertices and "<<col3->sizePileup()<<
" pileup vertices, total: "<<col3->size()<<std::endl;
163 for (cfi3=col3->begin(); cfi3!=col3->end();cfi3++) {
164 std::cout<<
" SimVertex "<<count3<<
" has parent index "<<cfi3->parentIndex()<<
" bunchcr "<<cfi3.
bunch()<<
" trigger "<<cfi3.
getTrigger()<<
", from EncodedEventId: "<<cfi3->eventId().bunchCrossing() <<
" "<<cfi3->eventId().event() <<std::endl;
172 bool got1,got2=
false;
173 std::auto_ptr<MixCollection<PSimHit> > all_trackhits;
174 std::auto_ptr<MixCollection<PSimHit> > all_trackhits2;
175 std::cout<<
"\n=================== Starting test for coll of several ROU-s ==================="<<std::endl;
177 std::vector<const CrossingFrame<PSimHit> *> cfvec;
181 std::cout<<
"\n=================== Starting test for coll of several ROU-s ==================="<<std::endl;
182 cfvec.push_back(cf_simhit.product());
183 std::cout <<
" \nFirst container "<<
track_containers_[0]<<
" Nr signals "<<cf_simhit->getNrSignals() <<
", Nr pileups "<<cf_simhit->getNrPileups() <<std::endl;
186 cfvec.push_back(cf_simhit.product());
187 std::cout <<
" \nSecond container "<<
track_containers_[1]<<
" Nr signals "<<cf_simhit->getNrSignals() <<
", Nr pileups "<<cf_simhit->getNrPileups() <<std::endl;
190 std::cout <<
" \nFor all containers we got "<<all_trackhits->sizeSignal()<<
" signal hits and "<<all_trackhits->sizePileup()<<
" pileup hits, total: "<<all_trackhits->size()<<std::endl;
194 for (it=all_trackhits->
begin(); it!= all_trackhits->
end();it++) {
195 std::cout<<
" Hit "<<ii<<
" of all hits has tof "<<it->timeOfFlight()<<
" trackid "<<it->trackId() <<
" bunchcr "<<it.bunch()<<
" trigger "<<it.getTrigger()<<
", from EncodedEventId: "<<it->eventId().bunchCrossing() <<
" "<<it->eventId().event()<<std::endl;
204 std::vector<const CrossingFrame<PSimHit> *> cfvec2;
208 cfvec2.push_back(cf_simhit.product());
211 cfvec2.push_back(cf_simhit.product());
213 std::cout <<
" \nSame containers, different order: we got "<<all_trackhits2->sizeSignal()<<
" signal hits and "<<all_trackhits2->sizePileup()<<
" pileup hits, total: "<<all_trackhits2->size()<<std::endl;
214 for (it2=all_trackhits2->begin(); it2!= all_trackhits2->end();it2++) {
215 std::cout<<
" Hit "<<ii2<<
" of all hits has tof "<<it2->timeOfFlight()<<
" trackid "<<it2->trackId() <<
" bunchcr "<<it2.bunch()<<
" trigger "<<it2.getTrigger()<<
", bcr from Id: "<<it2->eventId().bunchCrossing() <<
" evtnr in id "<<it2->eventId().event()<<std::endl;
226 got = iEvent.
getByLabel(
"mix",
"generator",cf_hepmc);
227 if (!got)
std::cout<<
" Could not read HepMCProducts!!!!"<<std::endl;
232 std::cout <<
" \nWe got "<<colhepmc->sizeSignal()<<
" signal hepmc products and "<<colhepmc->sizePileup()<<
" pileup hepmcs, total: "<<colhepmc->size()<<std::endl;
233 for (cfihepmc=colhepmc->begin(); cfihepmc!=colhepmc->end();cfihepmc++) {
234 std::cout<<
" edm::HepMCProduct "<<counthepmc<<
" has event number "<<cfihepmc->GetEvent()->event_number()<<
", "<< cfihepmc->GetEvent()->particles_size()<<
" particles and "<<cfihepmc->GetEvent()->vertices_size()<<
" vertices, bunchcr= "<<cfihepmc.
bunch()<<
" trigger= "<<cfihepmc.
getTrigger() <<
" sourcetype= "<<cfihepmc.
getSourceType()<<std::endl;
236 std::cout<<
"same with getObject:hepmc product "<<counthepmc<<
" has event number "<<myprod.
GetEvent()->event_number()<<
", "<<myprod.
GetEvent()->particles_size()<<
" particles and "<<myprod.
GetEvent()->vertices_size()<<
" vertices"<<std::endl;
247 for (it2=all_trackhits2->begin(); it2!= all_trackhits2->end();it2++) ii3++;
248 if (ii3!=ii2)
std::cout<<
" Problem when re-using iterator!!"<<std::endl;
249 else std::cout<<
" \nNo problem when re-using iterator."<<std::endl;
255 std::cout<<
"\n=================== Starting tests for abnormal conditions ==================="<<std::endl;
259 std::cout<<
"\n[ Testing abnormal conditions case 0]Should be all ok: registry: "<<all_trackhits->inRegistry()<<
" size: "<<all_trackhits->size()<<std::endl;
262 std::cout<<
"\n[ Testing abnormal conditions case 1] Should throw an exception " <<std::endl;
int event() const
get the contents of the subdetector field (should be protected?)
std::vector< std::string > track_containers2_
int bunchCrossing() const
get the detector field from this detid
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
const HepMC::GenEvent * GetEvent() const
std::vector< std::string > track_containers_
EncodedEventId eventId() const
int getSourceType() const