]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliMultiplicity.cxx
incresed the LOG_BUFFER_SIZE from 100 to 512 bytes
[u/mrichter/AliRoot.git] / STEER / AliMultiplicity.cxx
1 #include "AliMultiplicity.h"
2
3 ClassImp(AliMultiplicity)
4
5 //______________________________________________________________________
6 AliMultiplicity::AliMultiplicity():
7   TObject(),
8   fNtracks(0),
9   fTh(0),
10   fPhi(0),
11   fDeltPhi(0),
12   fNsingle(0),
13   fThsingle(0),
14   fPhisingle(0)
15
16 {
17   // Default Constructor
18 }
19
20 //______________________________________________________________________
21 AliMultiplicity::AliMultiplicity(Int_t ntr, Float_t *t,  Float_t *ph, Float_t *df, Int_t ns, Float_t *ts, Float_t *ps):
22   TObject(),
23   fNtracks(ntr),
24   fTh(0),
25   fPhi(0),
26   fDeltPhi(0),
27   fNsingle(ns),
28   fThsingle(0),
29   fPhisingle(0)
30 {
31 // Standard constructor
32   if(ntr>0){
33     fTh = new Float_t [ntr];
34     fPhi = new Float_t [ntr];
35     fDeltPhi = new Float_t [ntr];
36     for(Int_t i=0;i<fNtracks;i++){
37       fTh[i]=t[i];
38       fPhi[i]=ph[i];
39       fDeltPhi[i]=df[i];
40     }
41   }
42   if(ns>0){
43     fThsingle = new Float_t [ns];
44     fPhisingle = new Float_t [ns];
45     for(Int_t i=0;i<fNsingle;i++){
46       fThsingle[i]=ts[i];
47       fPhisingle[i]=ps[i];
48     }
49   }
50 }
51
52 //______________________________________________________________________
53 AliMultiplicity::AliMultiplicity(const AliMultiplicity& m):
54   TObject(m),
55   fNtracks(m.fNtracks),
56   fTh(0),
57   fPhi(0),
58   fDeltPhi(0),
59   fNsingle(m.fNsingle),
60   fThsingle(0),
61   fPhisingle(0)
62 {
63   // copy constructor
64
65   Duplicate(m);
66
67 }
68
69 //______________________________________________________________________
70 AliMultiplicity &AliMultiplicity::operator=(const AliMultiplicity& m){
71   // assignment operator
72   if(this == &m)return *this;
73   ((TObject *)this)->operator=(m);
74
75   if (fTh)delete [] fTh;
76   if(fPhi)delete [] fPhi;
77   if(fDeltPhi)delete [] fDeltPhi;
78   if(fThsingle)delete [] fThsingle;
79   if(fPhisingle)delete [] fPhisingle;
80   Duplicate(m);
81
82   return *this;
83 }
84
85 //______________________________________________________________________
86 void AliMultiplicity::Duplicate(const AliMultiplicity& m){
87   // used by copy constructor and assignment operator
88   fNtracks = m.fNtracks;
89   if(fNtracks>0){
90     fTh = new Float_t [fNtracks];
91     fPhi = new Float_t [fNtracks];
92     fDeltPhi = new Float_t [fNtracks];
93   }
94   else {
95     fTh = 0;
96     fPhi = 0;
97     fDeltPhi = 0;
98   }
99   fNsingle = m.fNsingle;
100   if(fNsingle>0){
101     fThsingle = new Float_t [fNsingle];
102     fPhisingle = new Float_t [fNsingle];
103   }
104   else {
105     fThsingle = 0;
106     fPhisingle = 0;
107   }
108   memcpy(fTh,m.fTh,fNtracks*sizeof(Float_t));
109   memcpy(fPhi,m.fPhi,fNtracks*sizeof(Float_t));
110   memcpy(fDeltPhi,m.fDeltPhi,fNtracks*sizeof(Float_t));
111   memcpy(fThsingle,m.fThsingle,fNsingle*sizeof(Float_t));
112   memcpy(fPhisingle,m.fPhisingle,fNsingle*sizeof(Float_t));
113 }
114
115 //______________________________________________________________________
116 AliMultiplicity::~AliMultiplicity(){
117   // Destructor
118   if (fTh)delete [] fTh;
119   if(fPhi)delete [] fPhi;
120   if(fDeltPhi)delete [] fDeltPhi;
121   if(fThsingle)delete [] fThsingle;
122   if(fPhisingle)delete [] fPhisingle;
123 }
124
125