/[PAMELA software]/PamCut/Collections/EffCollection/EffCollection.cpp
ViewVC logotype

Diff of /PamCut/Collections/EffCollection/EffCollection.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.8 by pam-fi, Tue Oct 27 10:24:01 2009 UTC revision 1.11.2.1 by pam-fi, Tue Apr 10 09:40:02 2012 UTC
# Line 34  bool efficiency_(Int_t* sel, Int_t* det, Line 34  bool efficiency_(Int_t* sel, Int_t* det,
34  }  }
35    
36  EffCollection::EffCollection(const char *collectionName, TString outFileBase, int errMethod, bool owns) :  EffCollection::EffCollection(const char *collectionName, TString outFileBase, int errMethod, bool owns) :
37    VerboseCollection(collectionName, owns), _selCollection("selCollection"), _detCollection("detCollection"), _outFileBase(    VerboseCollection(collectionName, false), _selCollection("selCollection",owns), _detCollection("detCollection",
38        outFileBase), _errMethod(errMethod), _det(0), _sel(0) {        owns), _outFileBase(outFileBase), _errMethod(errMethod), _det(0), _sel(0) {
39    
40  }  }
41    
# Line 55  void EffCollection::AddSelectionAction(C Line 55  void EffCollection::AddSelectionAction(C
55    _selCollection.AddAction(action);    _selCollection.AddAction(action);
56  }  }
57    
58    void EffCollection::Setup(PamLevel2 *events){
59      // Base class have a single vector for cuts and another for actions. Here the cuts and actions
60      // are not contained inside these vectors but rather inside two SmartCollection object members.
61      // So we must call their Setup().
62      _selCollection.Setup(events);
63      _detCollection.Setup(events);
64    
65      // We call also base class' Setup(), which will likely do nothing since _sel and _det are empty.
66      VerboseCollection::Setup(events);
67    
68    }
69    
70  int EffCollection::ApplyCut(PamLevel2 *event) {  int EffCollection::ApplyCut(PamLevel2 *event) {
71    
72    _nEv++;    _nEv++;
# Line 74  void EffCollection::Finalize() { Line 86  void EffCollection::Finalize() {
86    // Let's add all the cuts to the vector of the collection before calling VerboseCollection::Finalize    // Let's add all the cuts to the vector of the collection before calling VerboseCollection::Finalize
87    for (unsigned int i = 0; i < _selCollection.GetSize(); i++)    for (unsigned int i = 0; i < _selCollection.GetSize(); i++)
88      _cuts.push_back(_selCollection.GetCut(i));      _cuts.push_back(_selCollection.GetCut(i));
89      for (unsigned int i = 0; i < _selCollection.GetActionsSize(); i++){
90        _actions.push_back(_selCollection.GetAction(i));
91        _actionsPositions.push_back(_selCollection.GetActionPosition(i));
92      }
93    for (unsigned int i = 0; i < _detCollection.GetSize(); i++)    for (unsigned int i = 0; i < _detCollection.GetSize(); i++)
94      _cuts.push_back(_detCollection.GetCut(i));      _cuts.push_back(_detCollection.GetCut(i));
95    // Now all the cuts are in place, and VerboseCollection can print its report    for (unsigned int i = 0; i < _detCollection.GetActionsSize(); i++){
96        _actions.push_back(_detCollection.GetAction(i));
97        _actionsPositions.push_back(_detCollection.GetActionPosition(i) + _selCollection.GetSize());
98      }
99    
100      // Now all the cuts and actions are in place, and VerboseCollection can print its report and call Finalize() for
101      // every cut and action (calling SmartCollection::Finalize().
102    VerboseCollection::Finalize();    VerboseCollection::Finalize();
103    
104    // Compute the error    // Compute the error

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.11.2.1

  ViewVC Help
Powered by ViewVC 1.1.23