PandaRoot
RhoGoodPhotonSelector.h
Go to the documentation of this file.
1 #ifndef RHOGOODPHOTONSELECTOR_H
2 #define RHOGOODPHOTONSELECTOR_H
3 // //
5 // RhoGoodPhotonSelector //
6 // //
7 // Selector classes for photon quality selections //
8 // //
9 // Author List: //
10 // Marcel Kunze, RUB, Feb. 99 //
11 // Copyright (C) 1999-2001, Ruhr-University Bochum. //
12 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring) //
13 // Klaus Goetzen, GSI, May. 2020 (Updated/modified criteria) //
14 // //
16 
18 #include "PndPidCandidate.h"
19 
21 
22  public:
23  // Default constructor installs the currently accepted general setting
24  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.);
25  RhoGoodPhotonSelector(const char *name, criterion crit);
26  RhoGoodPhotonSelector(const char *name, const char *crit);
27 
28  // Destructor
30 
31  // operations
32  virtual void SetCriterion(const char *crit);
33  virtual void SetCriterion(criterion crit);
34  virtual Bool_t Accept(RhoCandidate *b);
35  virtual Bool_t Accept(PndPidCandidate *b);
36  virtual void PrintOn(std::ostream &o = std::cout) const;
37 
38  void SetCrystals(Int_t min, Int_t max)
39  {
40  fNcMin = min;
41  fNcMax = max;
42  }
43 
44  void SetEnergyPerXtal(Double_t min, Double_t max)
45  {
46  fEperXtalMin = min;
47  fEperXtalMax = max;
48  }
49 
50  void SetEnergy25toEtotal(Double_t min, Double_t max)
51  {
52  fE25toEMin = min;
53  fE25toEMax = max;
54  }
55 
56  void SetZ20(Double_t min, Double_t max)
57  {
58  fZ20Min = min;
59  fZ20Max = max;
60  }
61 
62  void SetZ53(Double_t min, Double_t max)
63  {
64  fZ53Min = min;
65  fZ53Max = max;
66  }
67 
68  void SetTheta(Double_t min, Double_t max)
69  {
70  fThetaMin = min;
71  fThetaMax = max;
72  }
73 
74  void SetShowerEnergy(Double_t min, Double_t max = 1.E8)
75  {
76  fEmcMin = min;
77  fEmcMax = max;
78  }
79  // void SetLAT ( Double_t min, Double_t max ) {
80  // fLatMin = min;
81  // fLatMax = max;
82  // }
83  // void SetPhi ( Double_t min, Double_t max ) {
84  // fPhiMin = min;
85  // fPhiMax = max;
86  // }
87 
88  private:
89  Int_t fNcMin, fNcMax; // Number of crystals
90  Double_t fEperXtalMin, fEperXtalMax; // energy per crystal
91  Double_t fE25toEMin, fE25toEMax; // energy in 5x5 array to total energy
92  Double_t fZ20Min, fZ20Max; // Zernike moment Z20
93  Double_t fZ53Min, fZ53Max; // Zernike moment Z53
94  Double_t fThetaMin, fThetaMax; // Angular cuts at poca
95  Double_t fEmcMin, fEmcMax; // In addition: associated bump energy
96  // Double_t fLatMin, fLatMax; // Cut // Angular cuts at poca on LAT
97  // Double_t fPhiMin, fPhiMax; // Angular cuts at poca
98 
99  public:
100  ClassDef(RhoGoodPhotonSelector, 1) // Track selector
101 };
102 
103 // standalone print
104 std::ostream &operator<<(std::ostream &o, const RhoGoodPhotonSelector &);
105 
106 #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:25
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:24
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)