ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/wright/test/ex1.cc
Revision: 1.1
Committed: Mon Mar 26 23:07:24 2007 UTC (18 years, 1 month ago) by wright
Content type: text/plain
Branch: MAIN
Log Message:
none

File Contents

# User Rev Content
1 wright 1.1 #include <TSystem.h>
2     #include <TFile.h>
3     #include <TTree.h>
4    
5     //....for AutoLibraryLoader, requires <use name=FWCore/FWLite> in BuildFile
6     #include "FWCore/FWLite/src/AutoLibraryLoader.h"
7    
8     //....for SiPixelDigis, requires <use name=DataFormats/SiPixelDigi> in BuildFile
9     #include "DataFormats/Common/interface/DetSetVector.h"
10     #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
11    
12     using namespace std;
13    
14     int main()
15     {
16    
17     //....chose data to look at
18     // string filename = "first20.root";
19     // string branchname = "PixelDigiedmDetSetVector_siPixelDigis__RP.";
20    
21     string filename = "hlt.root";
22     string branchname = "PixelDigiedmDetSetVector_siPixelDigis__DigiToRawTest.";
23    
24    
25     //....load FWlite
26     gSystem->Load("libFWCoreFWLite");
27     AutoLibraryLoader::enable();
28    
29     //....open file
30     TFile file(filename.data());
31     TTree * events = dynamic_cast<TTree *>(file.Get("Events") );
32     assert(events);
33     cout << "Nevents " << events->GetEntries() << endl;
34    
35     //....connect branch to a local variable
36     TBranch* branch = events->GetBranch(branchname.data());
37     edm::Wrapper<edm::DetSetVector<PixelDigi> >* blah=0; //....zero is required
38     branch->SetAddress(&blah);
39    
40     //....loop over events
41     for( int i=0; i<events->GetEntries(); i++){
42     if(i==1) break;
43    
44     //....load data for this event
45     branch->GetEntry(i);
46    
47     //....get pointer to the pixel data
48     const edm::DetSetVector<PixelDigi>* bprod=blah->product();
49    
50     //....loop over detectors
51     edm::DetSetVector<PixelDigi>::const_iterator iter = bprod->begin(), iterEnd =bprod->end();
52     for(; iter != iterEnd; iter++){
53     //....loop over digis
54     edm::DetSet<PixelDigi>::const_iterator digi=iter->data.begin(), digiEnd=iter->data.end();
55     for(; digi != digiEnd; digi++){
56     cout << "event#=" << i << " "
57     << "row=" << digi->row() << " "
58     << "col=" << digi->column() << " "
59     << "adc=" << digi->adc() << " "
60     << endl;
61    
62     }
63     }
64     }
65     }