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

Comparing UserCode/MitProd/TreeService/src/TreeService.cc (file contents):
Revision 1.4 by loizides, Tue Jun 17 08:24:09 2008 UTC vs.
Revision 1.8 by loizides, Thu Jul 3 08:25:12 2008 UTC

# Line 7 | Line 7
7   #include "FWCore/ServiceRegistry/interface/Service.h"
8   #include "FWCore/MessageLogger/interface/JobReport.h"
9   #include "MitAna/DataUtil/interface/TreeWriter.h"
10 + #include "MitAna/DataTree/interface/Names.h"
11  
12   using namespace edm;
13   using namespace std;
14   using namespace mithep;
15  
16   //--------------------------------------------------------------------------------------------------
17 < TreeService::TreeService(const ParameterSet &cfg, ActivityRegistry &r) :
18 <  tws_(0),
18 <  treeNames_  (cfg.getUntrackedParameter<vector<string>   >("treeNames")),
19 <  fileNames_  (cfg.getUntrackedParameter<vector<string>   >("fileNames")),
20 <  pathNames_  (cfg.getUntrackedParameter<vector<string>   >("pathNames")),
21 <  maxSizes_   (cfg.getUntrackedParameter<vector<unsigned> >("maxSizes")),
22 <  compLevels_ (cfg.getUntrackedParameter<vector<unsigned> >("compLevels")),
23 <  splitLevels_(cfg.getUntrackedParameter<vector<unsigned> >("splitLevels")),
24 <  brSizes_    (cfg.getUntrackedParameter<vector<unsigned> >("brSizes"))
17 > TreeService::TreeService(const ParameterSet &cfg, ActivityRegistry &ar) :
18 >  tws_(0)
19   {
20 +  // Constructor.
21 +
22 +  if (cfg.exists("treeNames"))
23 +    treeNames_=cfg.getUntrackedParameter<vector<string>   >("treeNames");
24 +  else
25 +    treeNames_.push_back(Names::gkEvtTreeName);
26 +
27 +  if (cfg.exists("fileNames"))
28 +    fileNames_=cfg.getUntrackedParameter<vector<string>   >("fileNames");
29 +  else
30 +    fileNames_.push_back("mit-test");
31 +    
32 +  if (cfg.exists("pathNames"))
33 +    pathNames_=cfg.getUntrackedParameter<vector<string>   >("pathNames");
34 +  else
35 +    pathNames_.push_back(".");
36 +
37 +  if (cfg.exists("maxSizes"))
38 +    maxSizes_=cfg.getUntrackedParameter<vector<unsigned> >("maxSizes");
39 +  else
40 +    maxSizes_.push_back(1024);
41 +
42 +  if (cfg.exists("compLevels"))
43 +    compLevels_=cfg.getUntrackedParameter<vector<unsigned> >("compLevels");
44 +  else
45 +    compLevels_.push_back(9);
46 +
47 +  if (cfg.exists("splitLevels"))
48 +    splitLevels_=cfg.getUntrackedParameter<vector<unsigned> >("splitLevels");
49 +  else
50 +    splitLevels_.push_back(99);
51 +
52 +  if (cfg.exists("brSizes"))
53 +    brSizes_=cfg.getUntrackedParameter<vector<unsigned> >("brSizes");
54 +  else
55 +    brSizes_.push_back(32*1024);
56 +
57    if (treeNames_.size()!=fileNames_.size()) {
58      throw edm::Exception(edm::errors::Configuration, "TreeService::TreeService()\n")
59        << "Number of main trees should match number of files " << treeNames_.size()
# Line 38 | Line 69 | TreeService::TreeService(const Parameter
69    for (unsigned int i=0; i<treeNames_.size(); ++i) {
70  
71      TreeWriter *t = new TreeWriter(treeNames_.at(i).c_str(),1);
41
72      t->SetPrefix(fileNames_.at(i).c_str());
73  
74 <    if      (i<pathNames_.size())
74 >    if (i<pathNames_.size())
75        t->SetBaseURL(pathNames_.at(i).c_str());
76      else if (pathNames_.size()>0)
77        t->SetBaseURL(pathNames_.at(0).c_str());
78  
79 <    if      (i<maxSizes_.size())
79 >    if (i<maxSizes_.size())
80        t->SetMaxSize((Long64_t)maxSizes_.at(i)*1024*1024);
81      else if (maxSizes_.size()>0)
82        t->SetMaxSize((Long64_t)maxSizes_.at(0)*1024*1024);
83  
84 <    if      (i<compLevels_.size())
84 >    if (i<compLevels_.size())
85        t->SetCompressLevel(compLevels_.at(i));
86      else if (compLevels_.size()>0)
87        t->SetCompressLevel(compLevels_.at(0));
88  
89 <    if      (i<splitLevels_.size())
89 >    if (i<splitLevels_.size())
90        t->SetDefaultSL(splitLevels_.at(i));
91      else if (splitLevels_.size()>0)
92        t->SetDefaultSL(splitLevels_.at(0));
93  
94 <    if      (i<brSizes_.size())
94 >    if (i<brSizes_.size())
95        t->SetDefaultBrSize(brSizes_.at(i));
96      else if (brSizes_.size()>0)
97        t->SetDefaultBrSize(brSizes_.at(0));
# Line 71 | Line 101 | TreeService::TreeService(const Parameter
101    }
102  
103    // set watchers
104 <  r.watchPreProcessEvent (this,&TreeService::preEventProcessing);
105 <  r.watchPostProcessEvent(this,&TreeService::postEventProcessing);
106 <  r.watchPostBeginJob    (this,&TreeService::postBeginJob);
107 <  r.watchPostEndJob      (this,&TreeService::postEndJob);
104 >  ar.watchPreProcessEvent (this,&TreeService::preEventProcessing);
105 >  ar.watchPostProcessEvent(this,&TreeService::postEventProcessing);
106 >  ar.watchPostBeginJob    (this,&TreeService::postBeginJob);
107 >  ar.watchPostEndJob      (this,&TreeService::postEndJob);
108   }
109  
110   //--------------------------------------------------------------------------------------------------
111   TreeService::~TreeService()
112   {
113 +  // Destructor.
114   }
115  
116   //--------------------------------------------------------------------------------------------------
117   TreeWriter* TreeService::get(const char *name)
118   {
119 +  // Get TreeWriter by name. If no name given, first one will be returned.
120 +
121    if (tws_.GetEntries()<=0)
122      return 0;
123  
# Line 99 | Line 132 | TreeWriter* TreeService::get(const char
132   //--------------------------------------------------------------------------------------------------
133   void TreeService::postBeginJob()
134   {
135 <  // nothing to be done for now
135 >  // Nothing to be done for now
136   }
137  
138   //--------------------------------------------------------------------------------------------------
139   void TreeService::postEndJob()
140   {
141 +  // Clear all TreeWriter objects.
142 +
143    tws_.Clear();
144   }
145  
146   //--------------------------------------------------------------------------------------------------
147   void TreeService::postEventProcessing(const Event&, const EventSetup&)
148   {
149 +  // Loop over all TreeWriter objects before processing of an event.
150 +
151    for (int i=0; i<tws_.GetEntries(); ++i) {
152      TreeWriter *tw=dynamic_cast<TreeWriter*>(tws_.At(i));
153      if (tw)
# Line 121 | Line 158 | void TreeService::postEventProcessing(co
158   //--------------------------------------------------------------------------------------------------
159   void TreeService::preEventProcessing(const EventID&, const Timestamp&)
160   {
161 +  // Loop over all TreeWriter objects after processing of a events.
162 +
163    for (int i=0; i<tws_.GetEntries(); ++i) {
164      TreeWriter *tw=dynamic_cast<TreeWriter*>(tws_.At(i));
165      if (tw)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines