00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <memory>
00023 #include <iostream>
00024
00025 #include "TCanvas.h"
00026
00027 #include "skelsubsys/tselname/src/tselname.h"
00028 #include "DataFormats/Common/interface/Handle.h"
00029 #include "FWCore/Framework/interface/Event.h"
00030
00031 @example_track #include "DataFormats/TrackReco/interface/Track.h"
00032
00033
00034
00035 @example_track const char* const kPt = "pt";
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 tselnameWorker::tselnameWorker(const TList* fromSelector, TList& out ) {
00048
00049
00050 @example_track h_pt = new TH1F(kPt, "P_t",100,0,100);
00051 @example_track out.Add(h_pt);
00052 }
00053
00054 tselnameWorker::~tselnameWorker()
00055 {
00056 }
00057
00058 void
00059 tselnameWorker::process( const edm::Event& iEvent ) {
00060 using namespace edm;
00061 @example_track using reco::TrackCollection;
00062
00063 @example_track Handle<TrackCollection> tracks;
00064 @example_track iEvent.getByLabel("ctfWithMaterialTracks",tracks);
00065 @example_track for(TrackCollection::const_iterator itTrack = tracks->begin();
00066 @example_track itTrack != tracks->end();
00067 @example_track ++itTrack) {
00068 @example_track h_pt->Fill(itTrack->pt());
00069 @example_track }
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 }
00080
00081
00082
00083 void
00084 tselnameWorker::postProcess(TList& out)
00085 {
00086 }
00087
00088
00089
00090
00091
00092 tselname::tselname()
00093 {
00094 }
00095
00096 tselname::~tselname()
00097 {
00098 }
00099
00100
00101 void tselname::begin(TList*& toWorkers)
00102 {
00103 }
00104
00105
00106
00107 void tselname::terminate(TList& fromWorkers) {
00108 using namespace std;
00109 std::auto_ptr<TCanvas> canvas( new TCanvas() );
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120 @example_track {
00121 @example_track TObject* hist = fromWorkers.FindObject(kPt);
00122 @example_track if(0!=hist) {
00123 @example_track hist->Draw();
00124 @example_track canvas->SaveAs( "pt.jpg" );
00125 @example_track } else {
00126 @example_track cout <<"no '"<<kPt<<"' histogram"<<endl;
00127 @example_track }
00128 @example_track }
00129
00130 }