]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Upgrade/AliToyMCEventGenerator.h
o add function for track propagation and resolution comparison after refit
[u/mrichter/AliRoot.git] / TPC / Upgrade / AliToyMCEventGenerator.h
1 #ifndef AliToyMCEventGenerator_H
2 #define AliToyMCEventGenerator_H
3
4 #include <TString.h>
5
6 class TFile;
7 class TTree;
8
9 class AliTPCParam;
10 class AliTPCSpaceCharge3D;
11 class AliTrackPointArray;
12
13 class AliToyMCTrack;
14 class AliToyMCEvent;
15
16 class AliToyMCEventGenerator : public TObject {
17  public:
18    enum EGasType {
19      kNeCO2_9010=0
20   };
21
22   enum EEpsilon {
23     kEps5=0,
24     kEps10,
25     kEps20
26   };
27
28   enum ECollRate {
29     k50kHz = 0
30   };
31   
32   AliToyMCEventGenerator();
33   AliToyMCEventGenerator(const AliToyMCEventGenerator &gen);
34   virtual ~AliToyMCEventGenerator();
35
36   virtual AliToyMCEvent* Generate(Double_t time) = 0;
37
38   Bool_t DistortTrack(AliToyMCTrack &trackIn, Double_t t0=0);
39   void CreateSpacePoints(AliToyMCTrack &trackIn,
40                         AliTrackPointArray &arrUdist,
41                         AliTrackPointArray &arrDist);
42   void SetPoint(Float_t xyz[3], AliTrackPoint &point);
43   void ConvertTrackPointsToLocalClusters(AliTrackPointArray &arrPoints, AliToyMCTrack &tr, Double_t t0, Int_t type);
44   Bool_t SetupCluster(AliTPCclusterMI &tempCl, Float_t xyz[3], Int_t sec, Double_t t0);
45   
46   void SetOutputFileName(const char* file) { fOutputFileName=file; }
47   const char* GetOutputFileName()    const { return fOutputFileName.Data(); }
48
49   void SetSpaceCharge(EEpsilon epsilon, EGasType gasType=kNeCO2_9010, ECollRate collRate=k50kHz);
50   void SetSpaceChargeFile(const char* file) { fSpaceChargeFile=file; }
51   
52   Int_t GetSector(Float_t xyz[3]);
53
54   void InitSpaceCharge();
55
56   void SetStepCorrection(Bool_t step=kTRUE) { fUseStepCorrection=step; }
57   Bool_t GetStepCorrection() const { return fUseStepCorrection; }
58   
59  protected:
60   AliTPCParam *fTPCParam;
61   AliToyMCEvent *fEvent;
62   
63   Bool_t ConnectOutputFile();
64   Bool_t CloseOutputFile();
65   void FillTree();
66
67   
68  private:
69   AliToyMCEventGenerator& operator= (const AliToyMCEventGenerator& );
70    
71   AliTPCSpaceCharge3D *fSpaceCharge;
72
73   TString fSpaceChargeFile;
74   TString fOutputFileName;
75   TFile   *fOutFile;
76   TTree   *fOutTree;
77
78   Bool_t fUseStepCorrection;
79   
80   ClassDef(AliToyMCEventGenerator, 1)
81      
82 };
83
84 #endif
85