]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliESDV0MI.h
Stricter check of map boundary. Caused index out of range before.
[u/mrichter/AliRoot.git] / STEER / AliESDV0MI.h
1 #ifndef ALIESDV0MI_H
2 #define ALIESDV0MI_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //-------------------------------------------------------------------------
10 //                          ESD V0 Vertex Class
11 //          This class is part of the Event Summary Data set of classes
12 //    Origin: Marian Ivanov marian.ivanov@cern.ch
13 //-------------------------------------------------------------------------
14
15 #include "AliESDv0.h"
16 #include "AliExternalTrackParam.h"
17
18 class AliESDtrack;
19
20 class AliESDV0MI :  public AliESDv0 {
21 public:
22   AliESDV0MI();             //constructor
23   //
24   void SetP(const AliExternalTrackParam & paramp); 
25   void SetM(const AliExternalTrackParam & paramd);
26   void UpdatePID(Double_t pidp[5], Double_t pidm[5]);
27   Float_t GetEffMass(UInt_t p1, UInt_t p2);
28   Float_t GetProb(UInt_t p1, UInt_t p2);
29   void Update(Float_t vertex[3]);            //update
30   void SetID(Int_t id){fID =id;}
31   Int_t GetID() const { return fID;}
32   Int_t GetIndex(Int_t i) const {return fIndex[i];}
33   void SetIndex(Int_t i, Int_t ind) {fIndex[i]=ind;}
34   void SetDist1(Double_t d1) {fDist1=d1;}
35   void SetDist2(Double_t d2) {fDist2=d2;}
36   Double_t GetDist1() const {return fDist1;}
37   Double_t GetDist2() const {return fDist2;}
38   Double_t *GetAnglep() {return fAngle;}
39   Double_t GetRr() const {return fRr;}
40   void SetRr(Double_t rr) {fRr=rr;}
41   Double_t *GetPMp() {return fPM;}
42   Double_t *GetPPp() {return fPP;}
43   Double_t *GetXrp() {return fXr;}
44   Double_t GetXr(Int_t i) const {return fXr[i];}
45   Double_t GetDistSigma() const {return fDistSigma;}
46   void SetDistSigma(Double_t ds) {fDistSigma=ds;}
47   Double_t GetDistNorm() const {return fDistNorm;}
48   void SetDistNorm(Double_t ds) {fDistNorm=ds;}
49   Float_t GetChi2Before() const {return fChi2Before;}
50   void SetChi2Before(Float_t cb) {fChi2Before=cb;}
51   Float_t GetChi2After() const {return fChi2After;}
52   void SetChi2After(Float_t ca) {fChi2After=ca;}
53   Float_t GetPointAngle() const {return fPointAngle;}
54   void SetOrder(Int_t i, Int_t ord) {fOrder[i]=ord;}
55   Float_t GetNAfter() const {return fNAfter;}
56   void SetNAfter(Float_t na) {fNAfter=na;}
57   Float_t GetNBefore() const {return fNBefore;}
58   void SetNBefore(Float_t nb) {fNBefore=nb;}  
59   void SetLab(Int_t i, Int_t lab) {fLab[i]=lab;}
60
61 private:
62   AliExternalTrackParam fParamP;
63   AliExternalTrackParam fParamM;
64   Float_t        fRP[5];         // combined pid positive
65   Float_t        fRM[5];         // combined pid positive
66   Int_t          fID;
67   Int_t          fLab[2];     //MC label of the partecle
68   Int_t          fIndex[2];   //reconstructed labels of the tracks
69   //
70   //  
71   Double_t       fDist1;    //info about closest distance according closest MC - linear DCA
72   Double_t       fDist2;    //info about closest distance parabolic DCA
73   //
74   Double_t       fPP[3];    //momentum  positive   - according approx at DCA
75   Double_t       fPM[3];    //momentum negative
76   //
77   Double_t       fXr[3];      //rec. position according helix
78   Double_t       fAngle[3];   //three angles
79   Double_t       fRr;         //rec position of the vertex 
80   Int_t          fStatus;       //status 
81   Int_t          fRow0;         // critical layer
82   Int_t          fOrder[3]; //order of the vertex 
83   //  quality information
84   Double_t       fDistNorm; //normalized  DCA
85   Double_t       fDistSigma; //sigma of distance
86   Float_t        fChi2Before;   //chi2 of the tracks before V0
87   Float_t        fNBefore;      // number of possible points before V0
88   Float_t        fChi2After;   // chi2 of the tracks after V0
89   Float_t        fNAfter;      // number of possible points after V0
90   Float_t        fPointAngleFi; //point angle fi
91   Float_t        fPointAngleTh; //point angle theta
92   Float_t        fPointAngle;   //point angle full
93
94
95
96   ClassDef(AliESDV0MI,1)      // ESD V0 vertex
97 };
98
99
100
101
102 #endif
103
104 /*
105
106 class AliITSRecV0Info: public AliV0vertex {
107   friend class AliITStrackerMI;
108 protected:
109   AliITSRecV0Info();
110   AliITSRecV0Info(const AliITStrackV2 &neg, const AliITStrackV2 &pos);
111   void Update(Float_t vertex[3], Float_t mass1, Float_t mass2);
112   Double_t       fDist1;    //info about closest distance according closest MC - linear DCA
113   Double_t       fDist2;    //info about closest distance parabolic DCA
114   Double_t       fDistNorm; //normalized  DCA
115   Double_t       fDistSigma; //sigma of distance
116   Double_t       fInvMass;  //reconstructed invariant mass -
117   //
118   Double_t       fPdr[3];    //momentum at vertex daughter  - according approx at DCA
119   Double_t       fXr[3];     //rec. position according helix
120   //
121   Double_t       fPm[3];    //momentum at the vertex mother
122   Double_t       fAngle[3]; //three angles
123   Double_t       fRr;       // rec position of the vertex 
124   Int_t          fLab[2];   //MC label of the particle
125   Int_t          fIndex[2]; //indexes of the tracks
126   Int_t          fOrder[3]; //order of the vertex 
127   Float_t        fChi2Before;   //chi2 of the tracks before V0
128   Float_t        fNBefore;      // number of possible points before V0
129   //
130   Float_t        fChi2After;   // chi2 of the tracks after V0
131   Float_t        fNAfter;      // number of possible points after V0
132  
133   //
134   Float_t        fPointAngleFi; //point angle fi
135   Float_t        fPointAngleTh; //point angle theta
136   Float_t        fPointAngle;   //point angle full
137   ClassDef(AliITSRecV0Info,1)  // container for  
138 };
139
140 */