15 #include <JANA/JObject.h>
16 #include <JANA/JFactory.h>
19 #define FCAL_USER_HITS_MAX 2800
20 #define MOLIERE_RADIUS 3.696
21 #define MAX_SHOWER_RADIUS 25
59 double getEexpected(
const int ihit)
const;
60 double getEallowed(
const int ihit)
const;
61 double getEnergy()
const;
62 double getEmax()
const;
63 int getChannelEmax()
const;
64 double getTime()
const;
65 double getTimeMaxE()
const;
66 double getTimeEWeight()
const;
71 double getRMS()
const;
72 double getRMS_t()
const;
73 double getRMS_x()
const;
74 double getRMS_y()
const;
75 double getRMS_u()
const;
76 double getRMS_v()
const;
79 int addHit(
const int ihit,
const double frac);
80 void resetClusterHits();
81 bool update(
const userhits_t*
const hitList,
double fcalFaceZ );
84 inline const vector<DFCALClusterHit_t>
GetHits()
const {
return my_hits; }
85 inline uint32_t
GetNHits(
void)
const {
return my_hits.size(); }
87 void toStrings(vector<pair<string,string> > &items)
const {
88 AddString(items,
"x(cm)",
"%3.1f", getCentroid().
x());
89 AddString(items,
"y(cm)",
"%3.1f", getCentroid().
y());
90 AddString(items,
"z(cm)",
"%3.1f", getCentroid().z());
91 AddString(items,
"E(GeV)",
"%2.3f", getEnergy());
92 AddString(items,
"t(ns)",
"%2.3f", getTime());
97 void shower_profile(
const userhits_t*
const hitList,
99 double& Eallowed,
double& Eexpected,
100 double fcalMidplaneZ )
const ;
103 oid_t getHitID(
const userhits_t*
const hitList,
const int ihit)
const;
104 int getHitCh(
const userhits_t*
const hitList,
const int ihit)
const;
105 double getHitX(
const userhits_t*
const hitList,
const int ihit)
const;
106 double getHitY(
const userhits_t*
const hitList,
const int ihit)
const;
107 double getHitT(
const userhits_t*
const hitList,
const int ihit)
const;
108 double getHitIntOverPeak(
const userhits_t*
const hitList,
const int ihit)
const;
109 double getHitE(
const userhits_t*
const hitList,
const int ihit)
const;
110 double getHitEhit(
const userhits_t*
const hitList,
const int ihit)
const;
140 if ( ihit >= 0 && ihit < m_nFcalHits )
141 return fEexpected[ ihit ];
149 if ( ihit >= 0 && ihit < m_nFcalHits )
150 return fEallowed[ ihit ];
225 if ( ihit >= 0 && ihit < fNhits && hitList && ihit < hitList->nhits ) {
226 return hitList->
hit[ fHit[ ihit ] ].
id;
235 if ( ihit >= 0 && ihit < fNhits && hitList && ihit < hitList->nhits ) {
236 return hitList->
hit[ fHit[ ihit ] ].
ch;
245 if ( ihit >= 0 && ihit < fNhits && hitList && ihit < hitList->nhits ) {
246 return hitList->
hit[ fHit[ ihit ] ].
x;
255 if ( ihit >= 0 && ihit < fNhits && hitList && ihit < hitList->nhits ) {
256 return hitList->
hit[ fHit[ ihit ] ].
y;
265 if ( ihit >= 0 && ihit < fNhits && hitList && ihit < hitList->nhits ) {
266 return hitList->
hit[ fHit[ ihit ] ].
t;
275 if ( ihit >= 0 && ihit < fNhits && hitList && ihit < hitList->nhits ) {
285 if ( ihit >= 0 && ihit < fNhits && hitList && ihit < hitList->nhits ) {
286 return fHitf[ ihit ] * hitList->
hit[ fHit[ ihit ] ].
E ;
295 if ( ihit >= 0 && ihit < fNhits && hitList && ihit < hitList->nhits ) {
296 return hitList->
hit[ fHit[ ihit ] ].
E ;
303 #endif // _DFCALCluster_
double getHitT(const userhits_t *const hitList, const int ihit) const
DVector3 getCentroid() const
const vector< DFCALClusterHit_t > GetHits() const
double getTimeEWeight() const
void toStrings(vector< pair< string, string > > &items) const
double getTimeMaxE() const
double getEallowed(const int ihit) const
double getHitEhit(const userhits_t *const hitList, const int ihit) const
uint32_t GetNHits(void) const
double getHitY(const userhits_t *const hitList, const int ihit) const
double getHitX(const userhits_t *const hitList, const int ihit) const
vector< DFCALClusterHit_t > my_hits
double getHitE(const userhits_t *const hitList, const int ihit) const
oid_t getHitID(const userhits_t *const hitList, const int ihit) const
int getChannelEmax() const
int getHitCh(const userhits_t *const hitList, const int ihit) const
double getHitIntOverPeak(const userhits_t *const hitList, const int ihit) const
double getEexpected(const int ihit) const