ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/FastOpenGlDisplayer/src/OpenGLDisplayer.cc
(Generate patch)

Comparing UserCode/FastOpenGlDisplayer/src/OpenGLDisplayer.cc (file contents):
Revision 1.13 by querten, Tue Mar 25 13:12:31 2008 UTC vs.
Revision 1.17 by querten, Wed Apr 16 08:21:47 2008 UTC

# Line 104 | Line 104 | class OpenGLDisplayer : public edm::EDAn
104        Geometry*    Geom_ECAL;
105        Geometry*    Geom_HCAL;
106  
107 +      std::string              OutputFile;
108 +
109 +      std::vector<InputTag> SimTrackProducers;
110 +      std::vector<InputTag> SimVertexProducers;
111 +      std::vector<InputTag> SimHitProducers;
112 +
113 +      std::vector<InputTag> TrackProducers;
114 +      std::vector<InputTag> EcalRecHitProducers;
115 +      std::vector<InputTag> HcalHBHERecHitProducers;
116 +      std::vector<InputTag> HcalHORecHitProducers;
117 +      std::vector<InputTag> HcalHFRecHitProducers;
118  
108      std::vector<std::string> SimHitSubdetectors;
119  
110      std::string              OutputFile;
120  
121  
122        // ----------member data ---------------------------
# Line 118 | Line 127 | class OpenGLDisplayer : public edm::EDAn
127   //
128   OpenGLDisplayer::OpenGLDisplayer(const edm::ParameterSet& iConfig)
129   {
130 <    SimHitSubdetectors  = iConfig.getParameter<std::vector<std::string> >("SimHitSubdetectors");
130 >    OutputFile              = iConfig.getParameter<std::string >("OutputFile");
131 >
132 >    SimTrackProducers       = iConfig.getParameter<std::vector<InputTag> >("SimTrackProducers");
133 >    SimVertexProducers      = iConfig.getParameter<std::vector<InputTag> >("SimVertexProducers");
134 >    SimHitProducers         = iConfig.getParameter<std::vector<InputTag> >("SimHitProducers");
135 >
136 >    TrackProducers          = iConfig.getParameter<std::vector<InputTag> >("TrackProducers");
137 >    EcalRecHitProducers     = iConfig.getParameter<std::vector<InputTag> >("EcalRecHitProducers");
138 >    HcalHBHERecHitProducers = iConfig.getParameter<std::vector<InputTag> >("HcalHBHERecHitProducers");
139 >    HcalHORecHitProducers   = iConfig.getParameter<std::vector<InputTag> >("HcalHORecHitProducers");
140 >    HcalHFRecHitProducers   = iConfig.getParameter<std::vector<InputTag> >("HcalHFRecHitProducers");
141  
123    OutputFile          = iConfig.getParameter<std::string >("OutputFile");
142   }
143  
144  
# Line 237 | Line 255 | OpenGLDisplayer::beginJob(const edm::Eve
255     }
256  
257     Geom_Tracker->Save("Tracker.geom");    
258 <   Geom_ECAL->Save("ECAL.geom");
259 <   Geom_HCAL->Save("HCAL.geom");
258 >   Geom_ECAL->Save("Ecal.geom");
259 >   Geom_HCAL->Save("Hcal.geom");
260  
261  
262  
# Line 262 | Line 280 | OpenGLDisplayer::endJob() {
280   void
281   OpenGLDisplayer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
282   {
283 <
266 <        edm::Handle<std::vector< SimTrack > > h_SimTracks;
267 <        iEvent.getByLabel("g4SimHits", h_SimTracks);
268 <        std::vector< SimTrack > SimTrackColl = *h_SimTracks.product();
269 <
270 <        edm::Handle<std::vector< SimVertex > > h_Vertex;
271 <        iEvent.getByLabel("g4SimHits", h_Vertex);
272 <        std::vector< SimVertex > VertexColl = *h_Vertex.product();
283 >        MySimEvent* MyEvent = new MySimEvent;
284  
285  
286  
# Line 282 | Line 293 | OpenGLDisplayer::analyze(const edm::Even
293          TrackingGeometry::DetContainer theDetUnits = theTracker.dets();
294  
295  
296 +        // Save Data
297 +        for(unsigned int i=0;i<SimTrackProducers.size();i++){
298 +           edm::Handle<std::vector< SimTrack > > h_SimTracks;
299 +           iEvent.getByLabel(SimTrackProducers[i], h_SimTracks);
300 +           std::vector< SimTrack > SimTrackColl = *h_SimTracks.product();
301  
302 <
287 <        // Save the data
288 <
289 <        MySimEvent* MyEvent = new MySimEvent;
290 <  
291 <        for ( unsigned int a = 0; a < SimTrackColl.size(); ++a ) {
302 >           for ( unsigned int a = 0; a < SimTrackColl.size(); ++a ) {
303                  MySimTrack  MysimTrack;
304                  SimTrack    simTrack    =SimTrackColl[a];
305  
# Line 302 | Line 313 | OpenGLDisplayer::analyze(const edm::Even
313                  MysimTrack.charge       =simTrack.charge();
314  
315                  MyEvent->MySimTrackCollection.push_back(MysimTrack);
316 <        }
316 >           }      
317 >        }
318 >
319  
320 +        for(unsigned int i=0;i<SimVertexProducers.size();i++){
321 +           edm::Handle<std::vector< SimVertex > > h_Vertex;
322 +           iEvent.getByLabel(SimVertexProducers[i], h_Vertex);
323 +           std::vector< SimVertex > VertexColl = *h_Vertex.product();
324  
325 <        for (unsigned int b = 0; b < VertexColl.size(); ++b ) {
325 >           for (unsigned int b = 0; b < VertexColl.size(); ++b ) {
326                  MySimVertex     MyVertex;
327                  SimVertex       Vertex  =  VertexColl[b];
328  
# Line 315 | Line 332 | OpenGLDisplayer::analyze(const edm::Even
332                  MyVertex.z              =Vertex.position().z();
333  
334                  MyEvent->MySimVertexCollection.push_back(MyVertex);
335 <        }
335 >           }
336 >        }
337  
338 <        for(unsigned int i=0; i<SimHitSubdetectors.size(); i++)
321 <        {
338 >        for(unsigned int i=0;i<SimHitProducers.size();i++){
339             edm::Handle<std::vector< PSimHit > > h_Hits;
340 <           iEvent.getByLabel("g4SimHits",SimHitSubdetectors[i].c_str(), h_Hits);
340 >           iEvent.getByLabel(SimHitProducers[i], h_Hits);
341             std::vector< PSimHit > Hits = *h_Hits.product();
342  
343             for(unsigned int h=0; h<Hits.size(); h++)
# Line 336 | Line 353 | OpenGLDisplayer::analyze(const edm::Even
353                  Hit.dEdX        = Hits[h].energyLoss();
354  
355                  MyEvent->MyPSimHitCollection.push_back(Hit);
339
356             }
357          }
358  
343        edm::Handle<std::vector< reco::Track > > h_Tracks;
344        iEvent.getByLabel("ctfWithMaterialTracks", h_Tracks);
345        std::vector< reco::Track > TrackColl = *h_Tracks.product();
359  
360 <        for ( unsigned int t = 0; t < TrackColl.size(); ++t ) {
360 >        for(unsigned int i=0;i<TrackProducers.size();i++){
361 >           edm::Handle<std::vector< reco::Track > > h_Tracks;
362 >           iEvent.getByLabel(TrackProducers[i], h_Tracks);
363 >           std::vector< reco::Track > TrackColl = *h_Tracks.product();
364 >
365 >           for ( unsigned int t = 0; t < TrackColl.size(); ++t ) {
366                  MyRecoTrack  MyrecoTrack;
367                  reco::Track  recoTrack  =TrackColl[t];
368  
351 //                MyrecoTrack.Hits = new MyRecoHit[MyrecoTrack.N];
352
369                  for(unsigned int h=0;h<recoTrack.recHitsSize();h++){
370                        TrackingRecHitRef h_it     = recoTrack.recHit(h);
371                        if(!h_it->isValid() )continue;
# Line 364 | Line 380 | OpenGLDisplayer::analyze(const edm::Even
380                        hit.DetId  = detId.rawId();
381                        hit.Charge = -1;
382                        MyrecoTrack.Hits.push_back(hit);
367
368
369 //                    printf("%8.2f %8.2f %8.2f\n",theDet->surface().toGlobal(localPos).x(),theDet->surface().toGlobal(localPos).y(),theDet->surface().toGlobal(localPos).z());
383                  }
384                  MyEvent->MyRecoTrackCollection.push_back(MyrecoTrack);
385 +           }
386          }
387  
388  
389 <
390 <        edm::Handle<EcalRecHitCollection > h_EcalEB_RecHits;
391 <        iEvent.getByLabel("ecalRecHit","EcalRecHitsEB", h_EcalEB_RecHits);
392 <        EcalRecHitCollection EcalEB_RecHits = *h_EcalEB_RecHits.product();
393 <
394 <        for(unsigned int eh=0;eh<EcalEB_RecHits.size();eh++){
395 <                MyCaloHit temp_EcalEBHit;
396 <                temp_EcalEBHit.E     = EcalEB_RecHits[eh].energy();
397 <                temp_EcalEBHit.t     = EcalEB_RecHits[eh].time();
398 <                temp_EcalEBHit.DetId = (EcalEB_RecHits[eh].detid()).rawId();
399 <        
400 <                MyEvent->MyEcalCaloHitCollection.push_back(temp_EcalEBHit);
401 <        }
388 <
389 <
390 <        edm::Handle<EcalRecHitCollection > h_EcalEE_RecHits;
391 <        iEvent.getByLabel("ecalRecHit","EcalRecHitsEE", h_EcalEE_RecHits);
392 <        EcalRecHitCollection EcalEE_RecHits = *h_EcalEE_RecHits.product();
393 <
394 <        for(unsigned int eh=0;eh<EcalEE_RecHits.size();eh++){
395 <                MyCaloHit temp_EcalEEHit;
396 <                temp_EcalEEHit.E     = EcalEE_RecHits[eh].energy();
397 <                temp_EcalEEHit.t     = EcalEE_RecHits[eh].time();
398 <                temp_EcalEEHit.DetId = (EcalEE_RecHits[eh].detid()).rawId();
399 <
400 <                MyEvent->MyEcalCaloHitCollection.push_back(temp_EcalEEHit);
401 <        }
402 <
403 <
404 <        edm::Handle<EcalRecHitCollection > h_EcalES_RecHits;
405 <        iEvent.getByLabel("ecalPreshowerRecHit","EcalRecHitsES", h_EcalES_RecHits);
406 <        EcalRecHitCollection EcalES_RecHits = *h_EcalES_RecHits.product();
407 <
408 <        for(unsigned int eh=0;eh<EcalES_RecHits.size();eh++){
409 <                MyCaloHit temp_EcalESHit;
410 <                temp_EcalESHit.E     = EcalES_RecHits[eh].energy();
411 <                temp_EcalESHit.t     = EcalES_RecHits[eh].time();
412 <                temp_EcalESHit.DetId = (EcalES_RecHits[eh].detid()).rawId();
413 <
414 <                MyEvent->MyEcalCaloHitCollection.push_back(temp_EcalESHit);
389 >        for(unsigned int i=0;i<EcalRecHitProducers.size();i++){
390 >           edm::Handle<EcalRecHitCollection > h_Ecal_RecHits;
391 >           iEvent.getByLabel(EcalRecHitProducers[i], h_Ecal_RecHits);
392 >           EcalRecHitCollection Ecal_RecHits = *h_Ecal_RecHits.product();
393 >
394 >           for(unsigned int eh=0;eh<Ecal_RecHits.size();eh++){
395 >                MyCaloHit temp_EcalHit;
396 >                temp_EcalHit.E     = Ecal_RecHits[eh].energy();
397 >                temp_EcalHit.t     = Ecal_RecHits[eh].time();
398 >                temp_EcalHit.DetId = (Ecal_RecHits[eh].detid()).rawId();
399 >        
400 >                MyEvent->MyEcalCaloHitCollection.push_back(temp_EcalHit);
401 >           }
402          }
403  
404  
405 +        for(unsigned int i=0;i<HcalHBHERecHitProducers.size();i++){
406 +           edm::Handle<HBHERecHitCollection > h_HcalHBHE_RecHits;
407 +           iEvent.getByLabel(HcalHBHERecHitProducers[i], h_HcalHBHE_RecHits);
408 +           HBHERecHitCollection HcalHBHE_RecHits = *h_HcalHBHE_RecHits.product();
409  
410 <        edm::Handle<HBHERecHitCollection > h_HcalHBHE_RecHits;
420 <        iEvent.getByLabel("hbhereco", h_HcalHBHE_RecHits);
421 <        HBHERecHitCollection HcalHBHE_RecHits = *h_HcalHBHE_RecHits.product();
422 <
423 <        for(unsigned int hh=0;hh<HcalHBHE_RecHits.size();hh++){
410 >           for(unsigned int hh=0;hh<HcalHBHE_RecHits.size();hh++){
411                  MyCaloHit temp_HcalHBHEHit;
412                  temp_HcalHBHEHit.E      = HcalHBHE_RecHits[hh].energy();
413                  temp_HcalHBHEHit.t      = HcalHBHE_RecHits[hh].time();
414                  temp_HcalHBHEHit.DetId = (HcalHBHE_RecHits[hh].detid()).rawId();
415  
416                  MyEvent->MyHcalCaloHitCollection.push_back(temp_HcalHBHEHit);
417 +           }
418          }
419  
420  
421 <        edm::Handle<HORecHitCollection > h_HcalHO_RecHits;
422 <        iEvent.getByLabel("horeco", h_HcalHO_RecHits);
423 <        HORecHitCollection HcalHO_RecHits = *h_HcalHO_RecHits.product();
421 >        for(unsigned int i=0;i<HcalHORecHitProducers.size();i++){
422 >           edm::Handle<HORecHitCollection > h_HcalHO_RecHits;
423 >           iEvent.getByLabel(HcalHORecHitProducers[i], h_HcalHO_RecHits);
424 >           HORecHitCollection HcalHO_RecHits = *h_HcalHO_RecHits.product();
425  
426 <        for(unsigned int hh=0;hh<HcalHO_RecHits.size();hh++){
426 >           for(unsigned int hh=0;hh<HcalHO_RecHits.size();hh++){
427                  MyCaloHit temp_HcalHOHit;
428                  temp_HcalHOHit.E      = HcalHO_RecHits[hh].energy();
429                  temp_HcalHOHit.t      = HcalHO_RecHits[hh].time();
430                  temp_HcalHOHit.DetId = (HcalHO_RecHits[hh].detid()).rawId();
431  
432                  MyEvent->MyHcalCaloHitCollection.push_back(temp_HcalHOHit);
433 +           }
434          }
435  
446        edm::Handle<HFRecHitCollection > h_HcalHF_RecHits;
447        iEvent.getByLabel("hfreco", h_HcalHF_RecHits);
448        HFRecHitCollection HcalHF_RecHits = *h_HcalHF_RecHits.product();
436  
437 <        for(unsigned int hh=0;hh<HcalHF_RecHits.size();hh++){
437 >        for(unsigned int i=0;i<HcalHFRecHitProducers.size();i++){
438 >           edm::Handle<HFRecHitCollection > h_HcalHF_RecHits;
439 >           iEvent.getByLabel(HcalHFRecHitProducers[i], h_HcalHF_RecHits);
440 >           HFRecHitCollection HcalHF_RecHits = *h_HcalHF_RecHits.product();
441 >
442 >           for(unsigned int hh=0;hh<HcalHF_RecHits.size();hh++){
443                  MyCaloHit temp_HcalHFHit;
444                  temp_HcalHFHit.E      = HcalHF_RecHits[hh].energy();
445                  temp_HcalHFHit.t      = HcalHF_RecHits[hh].time();
446                  temp_HcalHFHit.DetId = (HcalHF_RecHits[hh].detid()).rawId();
447  
448                  MyEvent->MyHcalCaloHitCollection.push_back(temp_HcalHFHit);
449 +           }
450          }
451  
459
460
461
462
463
464
465
466
467
468
452          MyEvents->Events.push_back(MyEvent);  
470
453   }
454  
455  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines