38 level_(iConfig.getUntrackedParameter<int>(
"PrintLevel"))
106 if (!gotTracks)
std::cout<<
" Could not read SimTracks!!!!"<<std::endl;
121 const std::string subdet(
"g4SimHitsTrackerHitsTECHighTof");
124 if (!got)
std::cout<<
" Could not read SimHits with label "<<subdet<<
"!!!!"<<std::endl;
126 std::cout<<
"\n\n=================== Starting SimHit access, subdet "<<subdet<<
" ==================="<<std::endl;
131 for (cfi=
col->begin(); cfi!=
col->end();cfi++) {
132 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;
139 const std::string subdetcalo(
"g4SimHitsEcalHitsEB");
142 if (!got)
std::cout<<
" Could not read CaloHits with label "<<subdetcalo<<
"!!!!"<<std::endl;
144 std::cout<<
"\n\n=================== Starting CaloHit access, subdet "<<subdetcalo<<
" ==================="<<std::endl;
145 std::auto_ptr<MixCollection<PCaloHit> > colcalo(
new MixCollection<PCaloHit>(cf_calo.product(), std::pair<int,int>(-1,1)));
149 for (cficalo=colcalo->begin(); cficalo!=colcalo->end();cficalo++) {
150 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;
158 std::cout<<
"\n=================== Starting SimTrack access ==================="<<std::endl;
164 std::cout <<
" \nWe got "<<col2->sizeSignal()<<
" signal tracks and "<<col2->sizePileup()<<
" pileup tracks, total: "<<col2->size()<<std::endl;
165 for (cfi2=col2->begin(); cfi2!=col2->end();cfi2++) {
166 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;
174 if (!got)
std::cout<<
" Could not read Simvertices !!!!"<<std::endl;
176 std::cout<<
"\n=================== Starting SimVertex access ==================="<<std::endl;
180 std::cout <<
" \nWe got "<<col3->sizeSignal()<<
" signal vertices and "<<col3->sizePileup()<<
" pileup vertices, total: "<<col3->size()<<std::endl;
181 for (cfi3=col3->begin(); cfi3!=col3->end();cfi3++) {
182 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;
190 bool got1,got2=
false;
191 std::auto_ptr<MixCollection<PSimHit> > all_trackhits;
192 std::auto_ptr<MixCollection<PSimHit> > all_trackhits2;
193 std::cout<<
"\n=================== Starting test for coll of several ROU-s ==================="<<std::endl;
195 std::vector<const CrossingFrame<PSimHit> *> cfvec;
199 std::cout<<
"\n=================== Starting test for coll of several ROU-s ==================="<<std::endl;
200 cfvec.push_back(cf_simhit.product());
201 std::cout <<
" \nFirst container "<<
track_containers_[0]<<
" Nr signals "<<cf_simhit->getNrSignals() <<
", Nr pileups "<<cf_simhit->getNrPileups() <<std::endl;
204 cfvec.push_back(cf_simhit.product());
205 std::cout <<
" \nSecond container "<<
track_containers_[1]<<
" Nr signals "<<cf_simhit->getNrSignals() <<
", Nr pileups "<<cf_simhit->getNrPileups() <<std::endl;
208 std::cout <<
" \nFor all containers we got "<<all_trackhits->sizeSignal()<<
" signal hits and "<<all_trackhits->sizePileup()<<
" pileup hits, total: "<<all_trackhits->size()<<std::endl;
212 for (it=all_trackhits->begin(); it!= all_trackhits->end();it++) {
213 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;
222 std::vector<const CrossingFrame<PSimHit> *> cfvec2;
226 cfvec2.push_back(cf_simhit.product());
229 cfvec2.push_back(cf_simhit.product());
231 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;
232 for (it2=all_trackhits2->begin(); it2!= all_trackhits2->end();it2++) {
233 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;
245 if (!got)
std::cout<<
" Could not read HepMCProducts!!!!"<<std::endl;
250 std::cout <<
" \nWe got "<<colhepmc->sizeSignal()<<
" signal hepmc products and "<<colhepmc->sizePileup()<<
" pileup hepmcs, total: "<<colhepmc->size()<<std::endl;
251 for (cfihepmc=colhepmc->begin(); cfihepmc!=colhepmc->end();cfihepmc++) {
252 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;
254 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;
265 for (it2=all_trackhits2->begin(); it2!= all_trackhits2->end();it2++) ii3++;
266 if (ii3!=ii2)
std::cout<<
" Problem when re-using iterator!!"<<std::endl;
267 else std::cout<<
" \nNo problem when re-using iterator."<<std::endl;
273 std::cout<<
"\n=================== Starting tests for abnormal conditions ==================="<<std::endl;
277 std::cout<<
"\n[ Testing abnormal conditions case 0]Should be all ok: registry: "<<all_trackhits->inRegistry()<<
" size: "<<all_trackhits->size()<<std::endl;
280 std::cout<<
"\n[ Testing abnormal conditions case 1] Should throw an exception " <<std::endl;
edm::EDGetTokenT< CrossingFrame< PSimHit > > TrackerToken3_
int event() const
get the contents of the subdetector field (should be protected?)
edm::EDGetTokenT< CrossingFrame< HepMCProduct > > HepMCToken_
edm::EDGetTokenT< CrossingFrame< PSimHit > > TrackerToken4_
edm::EDGetTokenT< CrossingFrame< PSimHit > > TrackerToken2_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< std::string > track_containers2_
int bunchCrossing() const
get the detector field from this detid
edm::EDGetTokenT< CrossingFrame< SimTrack > > SimTrackToken_
const HepMC::GenEvent * GetEvent() const
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< std::string > track_containers_
edm::EDGetTokenT< CrossingFrame< SimVertex > > SimVertexToken_
EncodedEventId eventId() const
int getSourceType() const
edm::EDGetTokenT< CrossingFrame< PSimHit > > TrackerToken1_
edm::EDGetTokenT< CrossingFrame< PCaloHit > > CaloToken1_
edm::EDGetTokenT< CrossingFrame< PSimHit > > TrackerToken0_
TestMix(const edm::ParameterSet &)