]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/AliGenInfo.h
inconsistency corrected, version introduced
[u/mrichter/AliRoot.git] / PWG1 / AliGenInfo.h
CommitLineData
c92725b7 1#ifndef ALIGENINFO_H
2#define ALIGENINFO_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6
7
8//////////////////////////////////////////////////////////////////////////////
9// Class AliGenInfo //
10// collect together MC info for comparison purposes - effieciency studies and so on// //
11// marian.ivanov@cern.ch //
12//////////////////////////////////////////////////////////////////////////////
13
14
15
16////////////////////////////////////////////////////////////////////////
17//
18// Start of implementation of the class AliTPCdigitRow
19//
20////////////////////////////////////////////////////////////////////////
21
22#include <TParticle.h>
23#include "AliTrackReference.h"
24
25class TFile;
26class AliRunLoader;
27class AliStack;
28class AliTPCParam;
29
30const Int_t kgRowBytes = 32;
31
32class AliTPCdigitRow: public TObject {
33public:
34 AliTPCdigitRow();
35 virtual ~AliTPCdigitRow(){;}
36 void SetRow(Int_t row);
022044bf 37 Bool_t TestRow(Int_t row) const ;
c92725b7 38 AliTPCdigitRow & operator=(const AliTPCdigitRow &digOld);
022044bf 39 Int_t RowsOn(Int_t upto=8*kgRowBytes) const;
40 Int_t Last() const;
41 Int_t First() const ;
c92725b7 42 void Reset();
43
d92975ba 44private:
c92725b7 45 UChar_t fDig[kgRowBytes];
46 ClassDef(AliTPCdigitRow,1) // container for digit pattern
47};
48
49
50////////////////////////////////////////////////////////////////////////
51//
52// Start of implementation of the class AliMCInfo
53//
54////////////////////////////////////////////////////////////////////////
55
56class AliMCInfo: public TObject {
d92975ba 57 friend class AliGenInfoMaker;
58 friend class AliRecInfoMaker;
59 friend class AliESDRecInfo;
c92725b7 60public:
61 AliMCInfo();
022044bf 62 ~AliMCInfo();
63 AliMCInfo(const AliMCInfo& info);
c92725b7 64 void Update();
d92975ba 65 Int_t GetEventNr() const {return fEventNr;}
66 const AliTrackReference& GetTrackRef() const {return fTrackRef;}
67 const AliTrackReference& GetTrackRefOut() const {return fTrackRefOut;}
68 const AliTrackReference& GetTRdecay() const {return fTRdecay;}
69 TParticle& GetParticle() {return fParticle;}
70 Float_t TPCBetheBloch(Float_t bg);
71 //
72 Int_t GetPrimPart() const {return fPrimPart;}
73 Float_t GetMass() const {return fMass;}
74 Float_t GetCharge() const {return fCharge;}
75 Int_t GetLabel() const {return fLabel;}
76
77 Int_t GetMCtracks() const {return fMCtracks;}
78 Int_t GetPdg() const {return fPdg;}
79 const Float_t* GetDecayCoord() const {return fDecayCoord;}
80 const Double_t* GetVDist() const {return fVDist;}
81
82 Bool_t IsTPCdecay() const {return fTPCdecay;}
83
84 Int_t GetRowsWithDigitsInn() const {return fRowsWithDigitsInn;}
85 Int_t GetRowsWithDigits() const {return fRowsWithDigits;}
86 Int_t GetRowsTrackLength() const {return fRowsTrackLength;}
87 Float_t GetPrim() const { return fPrim;}
88
89 AliTPCdigitRow & GetTPCRow() {return fTPCRow;}
90 Int_t GetNTPCRef() const {return fNTPCRef;}
91 Int_t GetNITSRef() const {return fNITSRef;}
92 Int_t GetNTRDRef() const {return fNTRDRef;}
93 Int_t GetNTOFRef() const {return fNTOFRef;}
94 const TClonesArray *GetTPCReferences() const { return fTPCReferences;}
95 const TClonesArray * GetTRDReferences() const { return fTRDReferences;}
96 const TClonesArray * GetITSReferences() const { return fITSReferences;}
97 const TClonesArray * GetTOFReferences() const { return fTOFReferences;}
98private:
c92725b7 99 AliTrackReference fTrackRef; // track reference saved in the output tree
100 AliTrackReference fTrackRefOut; // decay track reference saved in the output tree
101 AliTrackReference fTRdecay; // track reference at decay point
102 //
103 Int_t fPrimPart; // index of primary particle in TreeH
104 TParticle fParticle; // generated particle
105 Float_t fMass; // mass of the particle
106 Float_t fCharge; //
107 Int_t fLabel; // track label
108 Int_t fEventNr; // event number
109 Int_t fMCtracks; // indication of how many times the track is retuturned back
110 Int_t fPdg; //pdg code
111 Float_t fDecayCoord[3]; // position of particle decay
112 Double_t fVDist[4]; //distance of the particle vertex from primary vertex
113 Bool_t fTPCdecay; //indicates decay in TPC
114 Int_t fRowsWithDigitsInn; // number of rows with digits in the inner sectors
115 Int_t fRowsWithDigits; // number of rows with digits in the outer sectors
116 Int_t fRowsTrackLength; // last - first row with digit
117 Float_t fPrim; // theoretical dedx in tpc according particle momenta and mass
118 AliTPCdigitRow fTPCRow; // information about digits row pattern
119 Int_t fNTPCRef; // tpc references counter
120 Int_t fNITSRef; // ITS references counter
121 Int_t fNTRDRef; // TRD references counter
122 Int_t fNTOFRef; // TOF references counter
123 TClonesArray * fTPCReferences; //containner with all track references -in the TPC
124 TClonesArray * fITSReferences; //container with ITS references
125 TClonesArray * fTRDReferences; //container with TRD references
126 TClonesArray * fTOFReferences; //container with TRD references
127 //
d92975ba 128 ClassDef(AliMCInfo,1); // container for
c92725b7 129};
130
131
132
133class AliGenV0Info: public TObject {
134public:
022044bf 135 AliGenV0Info(); //
d92975ba 136 void Update(Float_t vertex[3]);
137 AliMCInfo & GetPlus() {return fMCd;}
138 AliMCInfo & GetMinus() {return fMCm;}
139 TParticle & GetMopther() {return fMotherP;}
140 Double_t GetMCDist1() const { return fMCDist1;}
141 Double_t GetMCDist2() const {return fMCDist2;}
142 const Double_t* GetMCPdr() const {return fMCPdr;}
143 const Double_t* GetMCPd() const {return fMCPd;}
144 const Double_t* GetMCX() const {return fMCX;}
145 // const Double_t fMCXr;
146 //
147// Double_t fMCPm[3];
148// Double_t fMCAngle[3];
149// Double_t fMCRr;
150// Double_t fMCR;
151// Int_t fPdg[2];
152// Int_t fLab[2];
153// //
154// Double_t fInvMass;
155// Float_t fPointAngleFi;
156// Float_t fPointAngleTh;
157// Float_t fPointAngle;
158
159 void SetInfoP(AliMCInfo &plus) {fMCd=plus;}
160 void SetInfoM(AliMCInfo &minus){fMCm=minus;}
161 void SetMother(TParticle&mother){fMotherP=mother;}
162private:
163 AliMCInfo fMCd; //info about daughter particle - second particle for V0
164 AliMCInfo fMCm; //info about mother particle - first particle for V0
165 TParticle fMotherP; //particle info about mother particle
c92725b7 166 Double_t fMCDist1; //info about closest distance according closest MC - linear DCA
167 Double_t fMCDist2; //info about closest distance parabolic DCA
168 //
d92975ba 169 Double_t fMCPdr[3]; //momentum at vertex daughter - according approx at DCA
170 Double_t fMCPd[4]; //exact momentum from MC info
171 Double_t fMCX[3]; //exact position of the vertex
172 Double_t fMCXr[3]; //rec. position according helix
c92725b7 173 //
174 Double_t fMCPm[3]; //momentum at the vertex mother
175 Double_t fMCAngle[3]; //three angels
176 Double_t fMCRr; // rec position of the vertex
177 Double_t fMCR; //exact r position of the vertex
178 Int_t fPdg[2]; //pdg code of mother and daugter particles
179 Int_t fLab[2]; //MC label of the partecle
180 //
181 Double_t fInvMass; //reconstructed invariant mass -
182 Float_t fPointAngleFi; //point angle fi
183 Float_t fPointAngleTh; //point angle theta
184 Float_t fPointAngle; //point angle full
185 //
186 ClassDef(AliGenV0Info,1) // container for
187};
188
189
190
191class AliGenKinkInfo: public TObject {
192public:
022044bf 193 AliGenKinkInfo(); //default cosntructor
194 void Update(); // put some derived info to special field
c92725b7 195 Float_t GetQt(); //
d92975ba 196 AliMCInfo & GetPlus() {return fMCd;}
197 AliMCInfo & GetMinus() {return fMCm;}
198 void SetInfoDaughter(AliMCInfo &daughter) {fMCd=daughter;}
199 void SetInfoMother(AliMCInfo &mother){fMCm=mother;}
200private:
022044bf 201 AliMCInfo fMCd; //info about daughter particle - second particle for V0
202 AliMCInfo fMCm; //info about mother particle - first particle for V0
c92725b7 203 Double_t fMCDist1; //info about closest distance according closest MC - linear DCA
204 Double_t fMCDist2; //info about closest distance parabolic DCA
205 //
206 Double_t fMCPdr[3]; //momentum at vertex daughter - according approx at DCA
207 Double_t fMCPd[4]; //exact momentum from MC info
208 Double_t fMCX[3]; //exact position of the vertex
209 Double_t fMCXr[3]; //rec. position according helix
210 //
211 Double_t fMCPm[3]; //momentum at the vertex mother
212 Double_t fMCAngle[3]; //three angels
213 Double_t fMCRr; // rec position of the vertex
214 Double_t fMCR; //exact r position of the vertex
215 Int_t fPdg[2]; //pdg code of mother and daugter particles
216 Int_t fLab[2]; //MC label of the partecle
217 ClassDef(AliGenKinkInfo,1) // container for
218};
219
c92725b7 220#endif