StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StjeJetCuts.cxx
1 // $Id: StjeJetCuts.cxx,v 1.2 2008/08/03 00:26:51 tai Exp $
2 #include "StjeJetCuts.h"
3 
4 #include <StJetFinder/StProtoJet.h>
5 #include <StJetFinder/StJetPars.h>
6 
7 #include <algorithm>
8 #include <iterator>
9 
10 using namespace std;
11 
12 StjeJetCuts::StjeJetCuts(const StppAnaPars* ap, ProtoJetList& protoJets)
13  : _protoJetList(protoJets)
14  , _anaPar(*ap)
15 {
16 
17 }
18 
19 StjeJetCuts::~StjeJetCuts()
20 {
21 
22 }
23 
24 void StjeJetCuts::Apply()
25 {
26  ProtoJetList newList;
27 
28  for (ProtoJetList::iterator jet = _protoJetList.begin(); jet != _protoJetList.end(); ++jet) {
29 
30  if(shouldNotKeep(*jet)) continue;
31 
32  newList.push_back(*jet);
33 
34  }
35 
36  _protoJetList.clear();
37 
38  copy(newList.begin(), newList.end(), back_inserter(_protoJetList));
39 }
40 
41 bool StjeJetCuts::shouldNotKeep(StProtoJet &pj)
42 {
43  if(pj.pt() <= _anaPar.mJetPtMin) return true;
44 
45  if(fabs(pj.eta()) >= _anaPar.mJetEtaMax) return true;
46 
47  if(fabs(pj.eta()) <= _anaPar.mJetEtaMin) return true;
48 
49  if((int)pj.numberOfParticles() < _anaPar.mJetNmin) return true;
50 
51  return false;
52 }