1 #ifndef AliToyMCEventGenerator_H
2 #define AliToyMCEventGenerator_H
10 class AliTPCSpaceCharge3D;
11 class AliTrackPointArray;
16 class AliToyMCEventGenerator : public TObject {
32 AliToyMCEventGenerator();
33 AliToyMCEventGenerator(const AliToyMCEventGenerator &gen);
34 virtual ~AliToyMCEventGenerator();
36 virtual AliToyMCEvent* Generate(Double_t time) = 0;
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);
46 void SetOutputFileName(const char* file) { fOutputFileName=file; }
47 const char* GetOutputFileName() const { return fOutputFileName.Data(); }
49 void SetSpaceCharge(EEpsilon epsilon, EGasType gasType=kNeCO2_9010, ECollRate collRate=k50kHz);
50 void SetSpaceChargeFile(const char* file) { fSpaceChargeFile=file; }
52 Int_t GetSector(Float_t xyz[3]);
54 void InitSpaceCharge();
56 void SetStepCorrection(Bool_t step=kTRUE) { fUseStepCorrection=step; }
57 Bool_t GetStepCorrection() const { return fUseStepCorrection; }
60 AliTPCParam *fTPCParam;
61 AliToyMCEvent *fEvent;
63 Bool_t ConnectOutputFile();
64 Bool_t CloseOutputFile();
69 AliToyMCEventGenerator& operator= (const AliToyMCEventGenerator& );
71 AliTPCSpaceCharge3D *fSpaceCharge;
73 TString fSpaceChargeFile;
74 TString fOutputFileName;
78 Bool_t fUseStepCorrection;
80 ClassDef(AliToyMCEventGenerator, 1)