FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
PndEmcClusterMoments Class Reference

#include <PndEmcClusterMoments.h>

Inheritance diagram for PndEmcClusterMoments:
PndEmcAbsClusterProperty

Public Member Functions

 PndEmcClusterMoments (const PndEmcCluster &cluster, const TClonesArray *digiArray)
 
 PndEmcClusterMoments (const PndEmcClusterMoments &)
 
virtual ~PndEmcClusterMoments ()
 
virtual double SecondMoment () const
 
virtual double SecondMomentTP () const
 
virtual double Theta1 () const
 
virtual double Phi1 () const
 
virtual double Theta2 () const
 
virtual double Phi2 () const
 
virtual double Major1 () const
 
virtual double Major2 () const
 
virtual double Minor1 () const
 
virtual double Minor2 () const
 
virtual TVector3 Centre1 () const
 
virtual TVector3 Centre2 () const
 
virtual void Print (const Option_t *opt="") const
 

Protected Member Functions

const PndEmcClusterMyCluster () const
 
const std::map< Int_t, Int_t > & Members () const
 
const TClonesArray * DigiArray () const
 

Private Member Functions

 PndEmcClusterMoments ()
 
PndEmcClusterMomentsoperator= (const PndEmcClusterMoments &other)
 

Detailed Description

Definition at line 32 of file PndEmcClusterMoments.h.

Constructor & Destructor Documentation

PndEmcClusterMoments::PndEmcClusterMoments ( const PndEmcCluster cluster,
const TClonesArray *  digiArray 
)

Definition at line 38 of file PndEmcClusterMoments.cxx.

38  :
39  PndEmcAbsClusterProperty(cluster, digiArray)
40 {
41 }
PndEmcAbsClusterProperty(const PndEmcCluster &cluster, const TClonesArray *digiArray)
PndEmcClusterMoments::PndEmcClusterMoments ( const PndEmcClusterMoments other)

Definition at line 43 of file PndEmcClusterMoments.cxx.

43  :
45 {}
PndEmcAbsClusterProperty(const PndEmcCluster &cluster, const TClonesArray *digiArray)
PndEmcClusterMoments::~PndEmcClusterMoments ( )
virtual

Definition at line 51 of file PndEmcClusterMoments.cxx.

52 {}
PndEmcClusterMoments::PndEmcClusterMoments ( )
private

Member Function Documentation

TVector3 PndEmcClusterMoments::Centre1 ( ) const
virtual

Definition at line 295 of file PndEmcClusterMoments.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), PndEmcCluster::energy(), PndEmcDigi::GetEnergy(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), and PndEmcDigi::where().

296 {
297  TVector3 aVector(0,0,0);
298  TVector3 clusterCentre( MyCluster().where() );
299 
300  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
301  while ( iter != Members().end() ) {
302  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
303  aVector += ( digi->where() - clusterCentre ) * digi->GetEnergy();
304  ++iter;
305  }
306  aVector *= 1./MyCluster().energy();
307 
308  return aVector;
309 }
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const PndEmcCluster & MyCluster() const
const TClonesArray * DigiArray() const
virtual Double_t energy() const
const TVector3 & where() const
Definition: PndEmcDigi.h:111
const std::map< Int_t, Int_t > & Members() const
TVector3 PndEmcClusterMoments::Centre2 ( ) const
virtual

Definition at line 312 of file PndEmcClusterMoments.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), PndEmcCluster::energy(), PndEmcDigi::GetEnergy(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), and PndEmcDigi::where().

313 {
314  TVector3 aVector(0,0,0);
315  TVector3 clusterCentre( MyCluster().where() );
316 
317  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
318  while ( iter != Members().end() ) {
319  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
320  TVector3 displacement( digi->where() - clusterCentre );
321  aVector += TVector3(displacement.X()*displacement.X(), displacement.Y()*displacement.Y(),displacement.Z()*displacement.Z()) * digi->GetEnergy();
322  ++iter;
323  }
324  aVector *= 1./MyCluster().energy();
325 
326  return aVector;
327 }
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const PndEmcCluster & MyCluster() const
const TClonesArray * DigiArray() const
virtual Double_t energy() const
const TVector3 & where() const
Definition: PndEmcDigi.h:111
const std::map< Int_t, Int_t > & Members() const
const TClonesArray * PndEmcAbsClusterProperty::DigiArray ( ) const
protectedinherited
Double_t PndEmcClusterMoments::Major1 ( ) const
virtual

Definition at line 182 of file PndEmcClusterMoments.cxx.

References cos(), digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), fabs(), PndEmcCluster::FindPhiDiff(), PndEmcDigi::GetEnergy(), PndEmcDigi::GetPhi(), PndEmcDigi::GetTheta(), PndEmcClusterProperties::Major_axis(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), PndEmcCluster::phi(), sin(), and PndEmcCluster::theta().

183 {
184  Double_t moment=0;
186  Double_t axis=properties->Major_axis();
187  Double_t clusT=MyCluster().theta(),clusP=MyCluster().phi();
188 
189  if ( axis==-999. ) return ( 0. );
190 
191  TVector2 maj(cos( axis ), sin( axis ));
192 
193  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
194 
195  while ( iter != Members().end() ) {
196  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
197  TVector2 coord(PndEmcCluster::FindPhiDiff(digi->GetPhi(),clusP), digi->GetTheta()-clusT);
198 
199  moment += fabs( coord*maj ) * digi->GetEnergy();
200  ++iter;
201  }
202 
203  moment/=MyCluster().energy();
204 
205  return( moment );
206 }
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
Double_t GetTheta() const
Definition: PndEmcDigi.h:101
const PndEmcCluster & MyCluster() const
Double_t
virtual Double_t Major_axis() const
axis
Definition: PndRadMapPlane.h:9
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
const TClonesArray * DigiArray() const
Double_t GetPhi() const
Definition: PndEmcDigi.h:102
virtual Double_t energy() const
Double_t theta() const
const std::map< Int_t, Int_t > & Members() const
Double_t phi() const
static Double_t FindPhiDiff(Double_t, Double_t)
Double_t PndEmcClusterMoments::Major2 ( ) const
virtual

Definition at line 210 of file PndEmcClusterMoments.cxx.

References cos(), digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), PndEmcCluster::FindPhiDiff(), PndEmcDigi::GetEnergy(), PndEmcDigi::GetPhi(), PndEmcDigi::GetTheta(), PndEmcClusterProperties::Major_axis(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), PndEmcCluster::phi(), sin(), and PndEmcCluster::theta().

211 {
212  Double_t moment=0;
214  Double_t axis=properties->Major_axis();
215  Double_t clusT=MyCluster().theta(),clusP=MyCluster().phi();
216 
217  if ( axis==-999. ) return ( 0. );
218 
219  TVector2 maj(cos( axis ), sin( axis ));
220 
221  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
222 
223  while ( iter != Members().end() ) {
224  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
225  TVector2 coord(PndEmcCluster::FindPhiDiff(digi->GetPhi(),clusP), digi->GetTheta()-clusT);
226 
227  moment+=(coord*maj)*(coord*maj)*digi->GetEnergy();
228  ++iter;
229  }
230 
231  moment/=MyCluster().energy();
232 
233  return( moment );
234 }
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
Double_t GetTheta() const
Definition: PndEmcDigi.h:101
const PndEmcCluster & MyCluster() const
Double_t
virtual Double_t Major_axis() const
axis
Definition: PndRadMapPlane.h:9
const TClonesArray * DigiArray() const
Double_t GetPhi() const
Definition: PndEmcDigi.h:102
virtual Double_t energy() const
Double_t theta() const
const std::map< Int_t, Int_t > & Members() const
Double_t phi() const
static Double_t FindPhiDiff(Double_t, Double_t)
const std::map< Int_t, Int_t > & PndEmcAbsClusterProperty::Members ( ) const
protectedinherited

Definition at line 44 of file PndEmcAbsClusterProperty.cxx.

References PndEmcAbsClusterProperty::fMembers.

Referenced by Centre1(), Centre2(), Major1(), Major2(), Minor1(), Minor2(), Phi1(), Phi2(), SecondMoment(), SecondMomentTP(), Theta1(), and Theta2().

45 {
46  return fMembers;
47 }
const std::map< Int_t, Int_t > & fMembers
Double_t PndEmcClusterMoments::Minor1 ( ) const
virtual

Definition at line 237 of file PndEmcClusterMoments.cxx.

References cos(), digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), fabs(), PndEmcCluster::FindPhiDiff(), PndEmcDigi::GetEnergy(), PndEmcDigi::GetPhi(), PndEmcDigi::GetTheta(), PndEmcClusterProperties::Major_axis(), PndEmcAbsClusterProperty::Members(), min(), PndEmcAbsClusterProperty::MyCluster(), PndEmcCluster::phi(), Pi, sin(), and PndEmcCluster::theta().

238 {
239  Double_t moment=0;
241  Double_t axis=properties->Major_axis();
242  Double_t clusT=MyCluster().theta(),clusP=MyCluster().phi();
243 
244 
245  if ( axis==-999. ) return ( 0. );
246 
247  axis+=TMath::Pi()/2.0;
248  TVector2 min(cos( axis ), sin( axis ));
249 
250  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
251 
252  while ( iter != Members().end() ) {
253  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
254  TVector2 coOrd(PndEmcCluster::FindPhiDiff(digi->GetPhi(),clusP), digi->GetTheta()-clusT);
255 
256  moment+=fabs( coOrd*min )*digi->GetEnergy();
257  ++iter;
258  }
259 
260  moment/=MyCluster().energy();
261 
262  return( moment );
263 }
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
Double_t GetTheta() const
Definition: PndEmcDigi.h:101
const PndEmcCluster & MyCluster() const
Double_t
virtual Double_t Major_axis() const
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:25
axis
Definition: PndRadMapPlane.h:9
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
const TClonesArray * DigiArray() const
Double_t GetPhi() const
Definition: PndEmcDigi.h:102
virtual Double_t energy() const
Double_t theta() const
const std::map< Int_t, Int_t > & Members() const
Double_t Pi
Double_t phi() const
static Double_t FindPhiDiff(Double_t, Double_t)
Double_t PndEmcClusterMoments::Minor2 ( ) const
virtual

Definition at line 267 of file PndEmcClusterMoments.cxx.

References cos(), digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), PndEmcCluster::FindPhiDiff(), PndEmcDigi::GetEnergy(), PndEmcDigi::GetPhi(), PndEmcDigi::GetTheta(), PndEmcClusterProperties::Major_axis(), PndEmcAbsClusterProperty::Members(), min(), PndEmcAbsClusterProperty::MyCluster(), PndEmcCluster::phi(), Pi, sin(), and PndEmcCluster::theta().

268 {
269  Double_t moment=0;
271  Double_t axis=properties->Major_axis();
272  Double_t clusT=MyCluster().theta(),clusP=MyCluster().phi();
273 
274  if ( axis==-999. ) return ( 0. );
275 
276  axis+=TMath::Pi()/2.0;
277  TVector2 min(cos( axis ), sin( axis));
278 
279  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
280 
281  while ( iter != Members().end() ) {
282  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
283  TVector2 coOrd(PndEmcCluster::FindPhiDiff(digi->GetPhi(),clusP), digi->GetTheta()-clusT);
284 
285  moment+=(coOrd*min)*(coOrd*min)*digi->GetEnergy();
286  iter++;
287  }
288 
289  moment/=MyCluster().energy();
290 
291  return( moment );
292 }
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
Double_t GetTheta() const
Definition: PndEmcDigi.h:101
const PndEmcCluster & MyCluster() const
Double_t
virtual Double_t Major_axis() const
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:25
axis
Definition: PndRadMapPlane.h:9
const TClonesArray * DigiArray() const
Double_t GetPhi() const
Definition: PndEmcDigi.h:102
virtual Double_t energy() const
Double_t theta() const
const std::map< Int_t, Int_t > & Members() const
Double_t Pi
Double_t phi() const
static Double_t FindPhiDiff(Double_t, Double_t)
const PndEmcCluster & PndEmcAbsClusterProperty::MyCluster ( ) const
protectedinherited
PndEmcClusterMoments& PndEmcClusterMoments::operator= ( const PndEmcClusterMoments other)
private
Double_t PndEmcClusterMoments::Phi1 ( ) const
virtual

Definition at line 121 of file PndEmcClusterMoments.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), PndEmcCluster::FindPhiDiff(), PndEmcDigi::GetEnergy(), PndEmcDigi::GetPhi(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), p, and PndEmcCluster::phi().

Referenced by PndEmcClusterProperties::Major_axis().

122 {
123  Double_t p=0;
124  Double_t clus_phi=MyCluster().phi();
125 
126  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
127 
128  while ( iter != Members().end() ) {
129  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
130  p+=digi->GetEnergy()*PndEmcCluster::FindPhiDiff(digi->GetPhi(),clus_phi);
131  ++iter;
132  }
133 
134  p/=MyCluster().energy();
135 
136  return(p);
137 }
Double_t p
Definition: anasim.C:58
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const PndEmcCluster & MyCluster() const
Double_t
const TClonesArray * DigiArray() const
Double_t GetPhi() const
Definition: PndEmcDigi.h:102
virtual Double_t energy() const
const std::map< Int_t, Int_t > & Members() const
Double_t phi() const
static Double_t FindPhiDiff(Double_t, Double_t)
Double_t PndEmcClusterMoments::Phi2 ( ) const
virtual

Definition at line 161 of file PndEmcClusterMoments.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), PndEmcCluster::FindPhiDiff(), PndEmcDigi::GetEnergy(), PndEmcDigi::GetPhi(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), p, PndEmcCluster::phi(), and phi_diff.

162 {
163  Double_t p=0;
164  Double_t clus_phi=MyCluster().phi();
165 
166  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
167 
168  while ( iter != Members().end() ) {
169  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
171  p+=digi->GetEnergy()*phi_diff*phi_diff;
172  ++iter;
173  }
174 
175  p/=MyCluster().energy();
176 
177  return(p);
178 
179 }
Double_t p
Definition: anasim.C:58
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const PndEmcCluster & MyCluster() const
Double_t
const TClonesArray * DigiArray() const
Double_t GetPhi() const
Definition: PndEmcDigi.h:102
virtual Double_t energy() const
const std::map< Int_t, Int_t > & Members() const
Double_t phi() const
static Double_t FindPhiDiff(Double_t, Double_t)
void PndEmcClusterMoments::Print ( const Option_t *  opt = "") const
virtual

Definition at line 330 of file PndEmcClusterMoments.cxx.

331 {
332 // std::cout << " centre1=" << Centre1() << ", centre2=" << Centre2();
333 // std::cout << endl;
334 // std::cout << " theta1=" << Theta1() << ", phi1=" << Phi1();
335 // std::cout << ", theta2=" << Theta2() << ", phi2=" << Phi2();
336 // std::cout << endl;
337 // std::cout << " major1=" << Major1() << ", minor1=" << Minor1();
338 // std::cout << ", major2=" << Major2() << ", minor2=" << Minor2();
339 // std::cout << endl;
340 // std::cout << " secondMoment=" << SecondMoment() << ", secondMomentTP=" << SecondMomentTP();
341 // std::cout << endl;
342 }
Double_t PndEmcClusterMoments::SecondMoment ( ) const
virtual

Definition at line 59 of file PndEmcClusterMoments.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, dx, dy, dz, PndEmcCluster::energy(), PndEmcDigi::GetEnergy(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), and PndEmcDigi::where().

60 {
61  Double_t sum=0;
62 
63  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
64 
65  TVector3 clusterLocation( MyCluster().where() );
66  while ( iter != Members().end() ) {
67  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
68  TVector3 digiLocation( digi->where() );
69  Double_t dx = digiLocation.x() - clusterLocation.x();
70  Double_t dy = digiLocation.y() - clusterLocation.y();
71  Double_t dz = digiLocation.z() - clusterLocation.z();
72  sum+=digi->GetEnergy()*(dx*dx + dy*dy + dz*dz);
73  ++iter;
74  }
75 
76  sum/=MyCluster().energy();
77  return sum;
78 }
TClonesArray * digi
double dy
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const PndEmcCluster & MyCluster() const
Double_t
const TClonesArray * DigiArray() const
double dx
virtual Double_t energy() const
const TVector3 & where() const
Definition: PndEmcDigi.h:111
const std::map< Int_t, Int_t > & Members() const
Double_t PndEmcClusterMoments::SecondMomentTP ( ) const
virtual

Definition at line 81 of file PndEmcClusterMoments.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), PndEmcDigi::GetEnergy(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), PndEmcCluster::where(), and PndEmcDigi::where().

82 {
83  TVector3 cluster = MyCluster().where();
84 
85  Double_t sum =0;
86  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
87  while ( iter != Members().end() ) {
88  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
89  Double_t da = cluster.Angle(digi->where());
90  sum+=digi->GetEnergy()*da*da;
91  ++iter;
92  }
93 
94  sum/=MyCluster().energy();
95  return sum;
96 }
TClonesArray * digi
TVector3 where() const
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const PndEmcCluster & MyCluster() const
Double_t
const TClonesArray * DigiArray() const
virtual Double_t energy() const
const TVector3 & where() const
Definition: PndEmcDigi.h:111
const std::map< Int_t, Int_t > & Members() const
Double_t PndEmcClusterMoments::Theta1 ( ) const
virtual

Definition at line 99 of file PndEmcClusterMoments.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), PndEmcDigi::GetEnergy(), PndEmcDigi::GetTheta(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), t, and theta.

Referenced by PndEmcClusterProperties::Major_axis().

100 {
101  Double_t t=0;
102 
103  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
104 
105  Double_t clusterTheta(MyCluster().theta());
106 
107  while ( iter != Members().end() ) {
108  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
109  t+=digi->GetEnergy()*(digi->GetTheta()- clusterTheta);
110  ++iter;
111  }
112 
113  t/=MyCluster().energy();
114 
115  return t;
116 
117 }
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
Double_t GetTheta() const
Definition: PndEmcDigi.h:101
const PndEmcCluster & MyCluster() const
Double_t
const TClonesArray * DigiArray() const
virtual Double_t energy() const
TTree * t
Definition: bump_analys.C:13
const std::map< Int_t, Int_t > & Members() const
Double_t PndEmcClusterMoments::Theta2 ( ) const
virtual

Definition at line 140 of file PndEmcClusterMoments.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), Double_t, PndEmcCluster::energy(), PndEmcDigi::GetEnergy(), PndEmcDigi::GetTheta(), PndEmcAbsClusterProperty::Members(), PndEmcAbsClusterProperty::MyCluster(), t, theta, and theta_diff.

141 {
142  Double_t t=0;
143 
144  std::map<Int_t, Int_t>::const_iterator iter = Members().begin();
145  Double_t clusterTheta(MyCluster().theta());
146 
147  while ( iter != Members().end() ) {
148  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(iter->second);
149  Double_t theta_diff=digi->GetTheta()-clusterTheta;
150  t+=digi->GetEnergy()*theta_diff*theta_diff;
151  ++iter;
152  }
153 
154  t/=MyCluster().energy();
155 
156  return(t);
157 
158 }
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
Double_t GetTheta() const
Definition: PndEmcDigi.h:101
const PndEmcCluster & MyCluster() const
Double_t
const TClonesArray * DigiArray() const
virtual Double_t energy() const
TTree * t
Definition: bump_analys.C:13
const std::map< Int_t, Int_t > & Members() const

The documentation for this class was generated from the following files: