StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StjTowerEnergyCutEt.h
1 // -*- mode: c++;-*-
2 // $Id: StjTowerEnergyCutEt.h,v 1.1 2008/11/27 07:35:29 tai Exp $
3 // Copyright (C) 2008 Tai Sakuma <sakuma@bnl.gov>
4 #ifndef STJTOWERENERGYCUTET_H
5 #define STJTOWERENERGYCUTET_H
6 
7 #include "StjTowerEnergyCut.h"
8 
9 #include <TVector3.h>
10 #include <TMath.h>
11 
13 
14 public:
15  StjTowerEnergyCutEt(double min = 0, double max = 50000.0, bool respect_vertex_position = true)
16  : _min(min), _max(max), _flag(respect_vertex_position) { }
17  virtual ~StjTowerEnergyCutEt() { }
18 
19  bool operator()(const StjTowerEnergy& deposit)
20  {
21  TVector3 vec3;
22  vec3.SetPtEtaPhi(deposit.towerR, deposit.towerEta, deposit.towerPhi);
23  //vertex
24  if(_flag){
25  TVector3 vertex(deposit.vertexX, deposit.vertexY, deposit.vertexZ);
26  vec3 = vec3 - vertex;
27  }
28 
29  double Et = (deposit.energy)*TMath::Sin(vec3.Theta());
30 
31  if(Et <= _min) return true;
32 
33  if(Et > _max) return true;
34 
35  return false;
36  }
37 
38 private:
39 
40  double _min;
41  double _max;
42 
43  bool _flag;
44  ClassDef(StjTowerEnergyCutEt, 2)
45 
46 };
47 
48 #endif // STJTOWERENERGYCUTET_H