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