]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Upgrade/AliToyMCEvent.h
Adding interpolation error studies - with Kalman filter approach
[u/mrichter/AliRoot.git] / TPC / Upgrade / AliToyMCEvent.h
1 #ifndef AliToyMCEvent_H
2 #define AliToyMCEvent_H
3
4
5 #include <TClonesArray.h>
6 #include "AliToyMCTrack.h"
7
8 class AliToyMCEvent : public TObject {
9  public:
10   AliToyMCEvent();
11   AliToyMCEvent(const AliToyMCEvent &event);
12   virtual ~AliToyMCEvent() {}
13   AliToyMCEvent& operator = (const AliToyMCEvent &event);
14
15   enum EEventType {
16     kPhysics=0,
17     kLaser
18   };
19   
20   static void SetInitialEventCounter(Int_t iev) { fgEvCounter=iev; }
21
22   AliToyMCTrack* AddTrack(const AliToyMCTrack &track);
23   AliToyMCTrack* AddTrack(Double_t xyz[3],Double_t pxpypz[3],
24                           Double_t cv[21],Short_t sign);
25   
26   Int_t GetNumberOfTracks() const { return fTracks.GetEntriesFast(); }
27   const AliToyMCTrack* GetTrack(Int_t track) const { return static_cast<const AliToyMCTrack*>(fTracks.At(track)); }
28     
29   void SetT0 (Float_t time)              { fT0   = time;          }
30   void SetX(Float_t var)                 { fX = var;              }
31   void SetY(Float_t var)                 { fY = var;              }
32   void SetZ(Float_t var)                 { fZ = var;              }
33
34   UInt_t GetEventNumber()    const {return fEventNumber;  }
35   Float_t GetT0()            const {return fT0;           }
36   Float_t GetX()             const {return fX;            }
37   Float_t GetY()             const {return fY;            }
38   Float_t GetZ()             const {return fZ;            }
39
40   void SetEventType(EEventType type) { fEventType=type; }
41   EEventType GetEventType() const    { return fEventType; }
42
43   void     SetSCscale(Float_t  val)      { fSCscale = val;      }
44   Float_t  GetSCscale() const            { return fSCscale;     }
45
46   void     SetSCscaleChi2(Float_t  val)  { fSCscaleChi2 = val;  }
47   Float_t  GetSCscaleChi2() const        { return fSCscaleChi2; }
48   
49  private:
50   static Int_t fgEvCounter;      // static counter
51     
52   UInt_t fEventNumber;           // event number
53
54   EEventType fEventType;         // type of the event
55     
56   Float_t fT0;                   // Interaction time of the event
57   Float_t fX;                    // x-vertex position
58   Float_t fY;                    // y-vertex position
59   Float_t fZ;                    // z-vertex position
60
61   Float_t fSCscale;              // scaling parameter for space charge correction
62   Float_t fSCscaleChi2;          // chi2 of scaling parameter for space charge correction
63   
64   TClonesArray fTracks;          // array of tracks
65
66   ClassDef(AliToyMCEvent, 2);    // MC event class
67
68 };
69
70 #endif