00001
00002
00003
00004
00005
00006
00007
00010 #ifndef NO_CALONUCLEI
00011
00012 #ifndef CALONUCLEIZCUT_H_
00013 #define CALONUCLEIZCUT_H_
00014
00015 #include "../../PamCutBase/PamCutBase.h"
00016 #include <CaloNuclei.h>
00017
00018 #include <TH2F.h>
00019
00021 enum CaloNucleiZ_Return {
00022 CALONUCLEIZ_OUTOFBOUNDS,
00023 CALONUCLEIZ_ILLEGALZ
00025 };
00026
00028 enum CaloNucleiZ_method {
00029 CALONUCLEIZ_SIEGEN,
00030 CALONUCLEIZ_DEDXBETA,
00031 CALONUCLEIZ_DEDXDEFL,
00033 };
00034
00041 class CaloNucleiZCut: public PamCut {
00042
00043 public:
00056 CaloNucleiZCut(const char *cutName, unsigned int Z, float lowerLimit, float upperLimit, unsigned int method =
00057 CALONUCLEIZ_SIEGEN) :
00058 PamCut(cutName), _Z(Z), _lowerLimit(lowerLimit), _upperLimit(upperLimit), _caloNuclei(NULL), _method(method) {
00059
00060 }
00062 ~CaloNucleiZCut() {
00063 delete _caloNuclei;
00064
00065 }
00066
00089 int Check(PamLevel2 *event);
00090
00091 private:
00092
00093 unsigned int _Z;
00094 static const float _sigmaZ[];
00095
00096 float _lowerLimit;
00097 float _upperLimit;
00098 CaloNuclei *_caloNuclei;
00099
00100 unsigned int _method;
00101 };
00102 #endif
00103
00104 #endif