]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/jetan2004/AliJFClusterDifference.cxx
Changes in the ACORDE libraries to compile on Windows/Cygwin
[u/mrichter/AliRoot.git] / JETAN / jetan2004 / AliJFClusterDifference.cxx
1 // $Id$
2
3 #include <Riostream.h>
4
5 #include <TMath.h>
6 #include <TParticle.h>
7
8 #include "AliJFCluster.h"
9 #include "AliJFClusterDifference.h"
10
11
12 ClassImp(AliJFClusterDifference)
13
14 AliJFClusterDifference::AliJFClusterDifference() :
15                      fNLastMerge(0),fI(NULL),fJ(NULL),fDij(0)
16 {
17 }
18
19 AliJFClusterDifference::AliJFClusterDifference(const AliJFClusterDifference &copy)
20 {
21   fNLastMerge=copy.GetNLastMerge();
22   fDij=copy.GetDij();
23   fI=copy.GetI();
24   fJ=copy.GetJ();
25 }
26
27 AliJFClusterDifference::AliJFClusterDifference(Float_t dij_, AliJFCluster *i_,AliJFCluster *j_) :
28                      fNLastMerge(0),fI(i_),fJ(j_),fDij(dij_)
29 {
30 }
31
32 AliJFClusterDifference::AliJFClusterDifference(AliJFCluster *i_,AliJFCluster *j_) :
33   fNLastMerge(0),fI(i_),fJ(j_),fDij(0)
34 {
35   SetValues(i_,j_);
36 }
37
38 Float_t AliJFClusterDifference::SetValues(AliJFCluster *i_,AliJFCluster *j_)
39 {
40   fI=i_;
41   fJ=j_;
42   fDij=0;
43   fNLastMerge=0;
44
45   if(IsValidPointer()&&IsValid()){
46     //cout << "valid";
47     if(IsDiagonal()){
48       fDij=fI->GetPt2();
49       fNLastMerge=fI->GetNMerge();
50       //cout << " and diagonal" << endl;
51     } else {
52       Float_t ret1=fI->GetPt2D();
53       Float_t ret2=fJ->GetPt2D();
54       if(ret1>ret2) fDij=ret2;
55       else fDij=ret1;
56
57       Float_t diff1=fI->GetY()-fJ->GetY();
58       Float_t diff2=TMath::Abs(fI->GetPhi()-fJ->GetPhi());
59       if(diff2>TMath::Pi()) diff2=2*TMath::Pi()-diff2;
60       fDij*=(diff1*diff1+diff2*diff2);
61     }  
62   }
63
64   return fDij;
65 }
66
67 AliJFClusterDifference& AliJFClusterDifference::operator=(const AliJFClusterDifference &copy)
68 {
69   fDij=copy.GetDij();
70   fI=copy.GetI();
71   fJ=copy.GetJ();
72   return *this;
73 }
74
75 ostream& operator<<(ostream &o, const AliJFClusterDifference &j)
76 {
77   o << j.fDij << ": " << j.fI << " " << j.fJ << endl;
78
79   return o;
80 }
81