]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliTrackMap.cxx
Cleaning the task in the destructor if it was posted
[u/mrichter/AliRoot.git] / STEER / AliTrackMap.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 ////////////////////////////////////////////////////////////////////////
19 //
20 // AliTrackMap.cxx
21 // description: 
22 //   contains a relation between track label and it's index
23 //   in a TreeH.
24 //   The main method is At, it takes a particle label as an argument
25 //   and returns the correponding entry in TreeH (many particles
26 //   are usually stored in 1 TreeH entry, one has to check particle
27 //   labels for each hit). 'At' returns:
28 //       kNoEntry = -1 if the particle has no entry in TreeH
29 //       kOutOfBounds = -2 if the particle label is out of bounds
30 //                  
31 //  Author: Jiri Chudoba (CERN), 2002
32 //
33 ////////////////////////////////////////////////////////////////////////
34
35 #include <Riostream.h>
36
37 #include "AliTrackMap.h"
38
39 ClassImp(AliTrackMap)
40
41 //_______________________________________________________________________
42 AliTrackMap::AliTrackMap():
43   fSize(0),
44   fArray(0)
45 {
46   //
47   // default ctor
48   //
49 }
50
51 //_______________________________________________________________________
52 AliTrackMap::AliTrackMap(const AliTrackMap& trm):
53   TNamed(trm),
54   fSize(0),
55   fArray(0)
56 {
57   //
58   // default ctor
59   //
60   trm.Copy(*this);
61 }
62
63 //_______________________________________________________________________
64 AliTrackMap::AliTrackMap(Int_t size, Int_t *array): 
65   TNamed("AliTrackMap", "AliTrackMap"),
66   fSize(size),
67   fArray(new Int_t[fSize])
68 {
69   //
70   // ctor
71   //
72   for (Int_t i = 0; i < fSize; i++) fArray[i] = array[i];
73 }
74
75 //_______________________________________________________________________
76 void AliTrackMap::Copy(TObject& ) const
77 {
78   Fatal("Copy","Not implemented\n");
79 }
80
81 //_______________________________________________________________________
82 AliTrackMap::~AliTrackMap()
83 {
84   //
85   // dtor
86   //
87   delete [] fArray;
88 }
89
90 //_______________________________________________________________________
91 Int_t AliTrackMap::At(Int_t label) const
92 {
93   //
94   // returns entry number in the TreeH corresponding to particle with 
95   // label label
96   //
97   if (label < 0 || label >= fSize) {
98     cerr<<"AliTrackMap::At: label "<<label<<" out of range, fSize = "<<fSize<<endl;
99     return kOutOfBounds;
100   }
101   return fArray[label];
102 }
103
104 //_______________________________________________________________________
105 void AliTrackMap::SetEventNr(Int_t eventNr) 
106 {
107   //
108   // map is identified by it's name, event number is part of it
109   //
110   char name[20];
111   sprintf(name,"AliTrackMap_%5.5d",eventNr);
112   SetName(name);  
113 }
114
115 //_______________________________________________________________________
116 void AliTrackMap::PrintValues() const
117 {
118   //
119   // method for debugging
120   //
121   cout<<this->GetName()<<" contains these values: "<<endl;
122   for (Int_t i = 0; i < fSize; i++) {
123     cout<<i<<"\t"<<fArray[i]<<"\n";
124   }
125 }
126