PandaRoot
RhoGoodPhotonSelector.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef RHOGOODPHOTONSELECTOR_H
14 #define RHOGOODPHOTONSELECTOR_H
15 // //
17 // RhoGoodPhotonSelector //
18 // //
19 // Selector classes for photon quality selections //
20 // //
21 // Author List: //
22 // Marcel Kunze, RUB, Feb. 99 //
23 // Copyright (C) 1999-2001, Ruhr-University Bochum. //
24 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring) //
25 // Klaus Goetzen, GSI, May. 2020 (Updated/modified criteria) //
26 // //
28 
30 #include "PndPidCandidate.h"
31 
33 
34  public:
35  // Default constructor installs the currently accepted general setting
36  RhoGoodPhotonSelector(const char *name = "RhoGoodPhotonSelector", Double_t e=0.0, Int_t nCrys=0, Double_t epx=0., Double_t e25e=0., Double_t z20=0., Double_t z53=1.);
37  RhoGoodPhotonSelector(const char *name, criterion crit);
38  RhoGoodPhotonSelector(const char *name, const char *crit);
39 
40  // Destructor
42 
43  // operations
44  virtual void SetCriterion(const char *crit);
45  virtual void SetCriterion(criterion crit);
46  virtual Bool_t Accept(RhoCandidate *b);
47  virtual Bool_t Accept(PndPidCandidate *b);
48  virtual void PrintOn(std::ostream &o = std::cout) const;
49 
50  void SetCrystals(Int_t min, Int_t max)
51  {
52  fNcMin = min;
53  fNcMax = max;
54  }
55 
56  void SetEnergyPerXtal(Double_t min, Double_t max)
57  {
58  fEperXtalMin = min;
59  fEperXtalMax = max;
60  }
61 
62  void SetEnergy25toEtotal(Double_t min, Double_t max)
63  {
64  fE25toEMin = min;
65  fE25toEMax = max;
66  }
67 
68  void SetZ20(Double_t min, Double_t max)
69  {
70  fZ20Min = min;
71  fZ20Max = max;
72  }
73 
74  void SetZ53(Double_t min, Double_t max)
75  {
76  fZ53Min = min;
77  fZ53Max = max;
78  }
79 
80  void SetTheta(Double_t min, Double_t max)
81  {
82  fThetaMin = min;
83  fThetaMax = max;
84  }
85 
86  void SetShowerEnergy(Double_t min, Double_t max = 1.E8)
87  {
88  fEmcMin = min;
89  fEmcMax = max;
90  }
91  // void SetLAT ( Double_t min, Double_t max ) {
92  // fLatMin = min;
93  // fLatMax = max;
94  // }
95  // void SetPhi ( Double_t min, Double_t max ) {
96  // fPhiMin = min;
97  // fPhiMax = max;
98  // }
99 
100  private:
101  Int_t fNcMin, fNcMax; // Number of crystals
102  Double_t fEperXtalMin, fEperXtalMax; // energy per crystal
103  Double_t fE25toEMin, fE25toEMax; // energy in 5x5 array to total energy
104  Double_t fZ20Min, fZ20Max; // Zernike moment Z20
105  Double_t fZ53Min, fZ53Max; // Zernike moment Z53
106  Double_t fThetaMin, fThetaMax; // Angular cuts at poca
107  Double_t fEmcMin, fEmcMax; // In addition: associated bump energy
108  // Double_t fLatMin, fLatMax; // Cut // Angular cuts at poca on LAT
109  // Double_t fPhiMin, fPhiMax; // Angular cuts at poca
110 
111  public:
112  ClassDef(RhoGoodPhotonSelector, 1) // Track selector
113 };
114 
115 // standalone print
116 std::ostream &operator<<(std::ostream &o, const RhoGoodPhotonSelector &);
117 
118 #endif
virtual void PrintOn(std::ostream &o=std::cout) const
virtual Bool_t Accept(RhoCandidate *b)
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:37
void SetTheta(Double_t min, Double_t max)
RhoGoodPhotonSelector(const char *name="RhoGoodPhotonSelector", Double_t e=0.0, Int_t nCrys=0, Double_t epx=0., Double_t e25e=0., Double_t z20=0., Double_t z53=1.)
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:36
virtual void SetCriterion(const char *crit)
void SetShowerEnergy(Double_t min, Double_t max=1.E8)
void SetEnergy25toEtotal(Double_t min, Double_t max)
void SetEnergyPerXtal(Double_t min, Double_t max)
std::ostream & operator<<(std::ostream &o, const RhoGoodPhotonSelector &)
void SetZ53(Double_t min, Double_t max)
void SetCrystals(Int_t min, Int_t max)
void SetZ20(Double_t min, Double_t max)