26 #include "TClonesArray.h"
63 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
65 TVector3 clusterLocation(
MyCluster().where() );
66 while ( iter !=
Members().end() ) {
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();
86 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
87 while ( iter !=
Members().end() ) {
103 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
107 while ( iter !=
Members().end() ) {
126 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
128 while ( iter !=
Members().end() ) {
144 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
147 while ( iter !=
Members().end() ) {
166 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
168 while ( iter !=
Members().end() ) {
189 if ( axis==-999. )
return ( 0. );
191 TVector2 maj(
cos( axis ),
sin( axis ));
193 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
195 while ( iter !=
Members().end() ) {
217 if ( axis==-999. )
return ( 0. );
219 TVector2 maj(
cos( axis ),
sin( axis ));
221 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
223 while ( iter !=
Members().end() ) {
227 moment+=(coord*maj)*(coord*maj)*digi->
GetEnergy();
245 if ( axis==-999. )
return ( 0. );
250 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
252 while ( iter !=
Members().end() ) {
274 if ( axis==-999. )
return ( 0. );
279 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
281 while ( iter !=
Members().end() ) {
297 TVector3 aVector(0,0,0);
298 TVector3 clusterCentre(
MyCluster().where() );
300 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
301 while ( iter !=
Members().end() ) {
314 TVector3 aVector(0,0,0);
315 TVector3 clusterCentre(
MyCluster().where() );
317 std::map<Int_t, Int_t>::const_iterator iter =
Members().begin();
318 while ( iter !=
Members().end() ) {
320 TVector3 displacement( digi->
where() - clusterCentre );
321 aVector += TVector3(displacement.X()*displacement.X(), displacement.Y()*displacement.Y(),displacement.Z()*displacement.Z()) * digi->
GetEnergy();
friend F32vec4 cos(const F32vec4 &a)
virtual Double_t GetEnergy() const
represents the reconstructed hit of one emc crystal
virtual double Phi2() const
friend F32vec4 sin(const F32vec4 &a)
virtual double Theta2() const
virtual double Major1() const
Double_t GetTheta() const
virtual ~PndEmcClusterMoments()
virtual TVector3 Centre2() const
const PndEmcCluster & MyCluster() const
virtual void Print(const Option_t *opt="") const
basic_ostream< char, char_traits< char > > ostream
virtual Double_t Major_axis() const
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
virtual TVector3 Centre1() const
friend F32vec4 fabs(const F32vec4 &a)
a cluster (group of neighboring crystals) of hit emc crystals
const TClonesArray * DigiArray() const
virtual double SecondMomentTP() const
virtual double Phi1() const
virtual double Theta1() const
virtual double Minor1() const
virtual double Major2() const
virtual Double_t energy() const
virtual double SecondMoment() const
const TVector3 & where() const
const std::map< Int_t, Int_t > & Members() const
virtual double Minor2() const
static Double_t FindPhiDiff(Double_t, Double_t)