]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSSumTP.cxx
New PID Classes
[u/mrichter/AliRoot.git] / ITS / AliITSSumTP.cxx
1 #include "AliITSSumTP.h"
2 #include "AliTrackPointArray.h"
3
4 ///////////////////////////////////////////////////////////////////
5 //                                                               //
6 // Class for ITS trackpoints summary + some aux. info  )         //
7 // Author: Ruben Shahoian                                        //
8 //                                                               //
9 ///////////////////////////////////////////////////////////////////
10
11 /* $Id$ */
12
13 ClassImp(AliITSSumTP)
14
15 //__________________________________________
16 AliITSSumTP::AliITSSumTP(const AliITSSumTP& src) : 
17 TObject(src), fTracks(src.fTracks.GetEntriesFast()), fVertex(src.GetVertex()), 
18   fNVars(src.fNVars), fCrvVars(0),fTPCVars(0)
19 {
20   // copy c-tor
21   fCrvVars = new Double32_t[fNVars];
22   TObjArray& arrSrc = src.GetTracks();
23   for (int i=fNVars;i--;) {
24     fCrvVars[i] = src.fCrvVars[i];
25     fTPCVars[i] = src.fTPCVars[i];
26   }
27   for (int i=arrSrc.GetEntriesFast();i--;) fTracks.AddAtAndExpand(arrSrc.UncheckedAt(i),i);
28 }
29
30 //__________________________________________
31 AliITSSumTP& AliITSSumTP::operator=(const AliITSSumTP& src)
32 {
33   // assignment op-r
34   if (this == &src) return *this;
35   Reset();
36   TObject::operator=(src);
37   fVertex = src.GetVertex();
38   fNVars = src.fNVars;
39   fCrvVars = new Double32_t[fNVars];
40   TObjArray& arrSrc = src.GetTracks();
41   for (int i=fNVars;i--;) {
42     fCrvVars[i] = src.fCrvVars[i];
43     fTPCVars[i] = src.fTPCVars[i];
44   }
45   for (int i=arrSrc.GetEntriesFast();i--;) fTracks.AddAtAndExpand(arrSrc.UncheckedAt(i),i);
46   return *this;
47 }
48
49 //__________________________________________
50 void AliITSSumTP::BookNTracks(Int_t n)
51 {
52   // book space for tracks info
53   delete[] fCrvVars; fCrvVars = 0;
54   fNVars = n*kNVarPerTrack; 
55   if (fNVars>0) {
56     fCrvVars = new Double32_t[fNVars];
57     fTPCVars = new Double32_t[fNVars];
58     for (int i=fNVars;i--;) fCrvVars[i]=fTPCVars[i] = 0; 
59   }
60 }
61
62 //__________________________________________
63 void AliITSSumTP::Reset()
64 {
65   // reset object
66   fTracks.Delete();
67   delete[] fCrvVars; 
68   delete[] fTPCVars; 
69   fCrvVars = fTPCVars = 0;
70   fNVars = 0;
71   SetUniqueID(0);
72 }
73
74 //__________________________________________
75 void AliITSSumTP::Print(Option_t *) const
76 {
77   // reset object
78   printf("Vertex: "); fVertex.Print();
79   int ntr = GetNTracks();
80   printf("Number of tracks: %d\n",ntr);
81   double xyz[3]={0,0,0};
82   for (int itr=0;itr<ntr;itr++) {
83     AliTrackPointArray* tr = GetTrack(itr);
84     GetTPCInnerXYZ(itr,xyz);
85     printf("#%2d : %d hits CrvGlo: %+.2e/%+.2e CrvTPC: %+.2e/%+.2e TPC_XYZ: %+8.3f %+8.3f %+9.3f\n",itr,tr->GetNPoints(),
86            GetCrvGlo(itr),GetCrvGloErr(itr), GetCrvTPC(itr),GetCrvTPCErr(itr),
87            xyz[0],xyz[1],xyz[2]);
88   }
89   //
90 }
91