]>
Commit | Line | Data |
---|---|---|
1a1fdef7 | 1 | #ifndef ALIFMDSIMULATOR_H |
2 | #define ALIFMDSIMULATOR_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights | |
4 | * reserved. | |
5 | * | |
6 | * Latest changes by Christian Holm Christensen <cholm@nbi.dk> | |
7 | * | |
8 | * See cxx source for full Copyright notice | |
9 | */ | |
10 | #ifndef TTask | |
11 | # include <TTask.h> | |
12 | #endif | |
13 | #ifndef TLorentzVector | |
14 | # include <TLorentzVector.h> | |
15 | #endif | |
16 | class TVector3; | |
17 | class AliFMD; | |
18 | class AliFMDRing; | |
19 | class AliFMDDetector; | |
20 | class AliFMD1; | |
21 | class AliFMD2; | |
22 | class AliFMD3; | |
23 | ||
24 | /** Simulation of the FMD. | |
25 | This class builds the geometry, and processes hits in the FMD */ | |
26 | class AliFMDSimulator : public TTask | |
27 | { | |
28 | public: | |
29 | AliFMDSimulator(); | |
30 | /** CTOR */ | |
31 | AliFMDSimulator(AliFMD* fmd, Bool_t detailed=kTRUE); | |
32 | virtual ~AliFMDSimulator() {} | |
33 | /** Initialize */ | |
34 | virtual void DefineMaterials(); | |
35 | /** Register */ | |
36 | virtual void DefineGeometry() = 0; | |
37 | /** Deal with a hit in the FMD */ | |
38 | virtual void Exec(Option_t* option=""); | |
39 | ||
40 | protected: | |
41 | AliFMD* fFMD; //! Pointer to module | |
42 | Bool_t fDetailed; // Whether to make a detailed simulation | |
43 | Int_t fInnerId; //! ID of inner ring strips | |
44 | Int_t fOuterId; //! ID of outer ring strips | |
45 | TLorentzVector fCurrentV; //! Current hit postition | |
46 | TLorentzVector fCurrentP; //! Current hit momentum | |
47 | Int_t fCurrentPdg; //! Current hit particle code | |
48 | Double_t fCurrentDeltaE; //! Current hit energy loss | |
49 | ||
50 | static const Char_t* fgkActiveName; // Name of Active volumes | |
51 | static const Char_t* fgkSectorName; // Name of Sector volumes | |
52 | static const Char_t* fgkStripName; // Name of Strip volumes | |
53 | static const Char_t* fgkModuleName; // Name of Module volumes | |
54 | static const Char_t* fgkPCBName; // Name of PCB volumes | |
55 | static const Char_t* fgkLongLegName; // Name of LongLeg volumes | |
56 | static const Char_t* fgkShortLegName; // Name of ShortLeg volumes | |
57 | static const Char_t* fgkFrontVName; // Name of Front volumes | |
58 | static const Char_t* fgkBackVName; // Name of Back volumes | |
59 | static const Char_t* fgkRingName; // Name of Ring volumes | |
60 | static const Char_t* fgkTopHCName; // Name of TopHC volumes | |
61 | static const Char_t* fgkBotHCName; // Name of BotHC volumes | |
62 | static const Char_t* fgkTopIHCName; // Name of TopIHC volumes | |
63 | static const Char_t* fgkBotIHCName; // Name of BotIHC volumes | |
64 | static const Char_t* fgkNoseName; // Name of Nose volumes | |
65 | static const Char_t* fgkBackName; // Name of Back volumes | |
66 | static const Char_t* fgkBeamName; // Name of Beam volumes | |
67 | static const Char_t* fgkFlangeName; // Name of Flange volumes | |
68 | ||
69 | enum { | |
70 | kSiId, // ID index of Si medium | |
71 | kAirId, // ID index of Air medium | |
72 | kPlasticId, // ID index of Plastic medium | |
73 | kPcbId, // ID index of PCB medium | |
74 | kSiChipId, // ID index of Si Chip medium | |
75 | kAlId, // ID index of Al medium | |
76 | kCarbonId // ID index of Carbon medium | |
77 | }; | |
78 | ||
79 | Int_t fSectorOff; // Sector offset in volume tree | |
80 | Int_t fModuleOff; // Module offset in volume tree | |
81 | Int_t fRingOff; // Ring offset in the volume tree | |
82 | Int_t fDetectorOff; // Detector offfset in the volume tree | |
83 | ||
84 | ClassDef(AliFMDSimulator,0) // Simulation class for the FMD | |
85 | }; | |
86 | ||
87 | ||
88 | ||
89 | #endif | |
90 | //____________________________________________________________________ | |
91 | // | |
92 | // Local Variables: | |
93 | // mode: C++ | |
94 | // End: | |
95 | // | |
96 | // EOF | |
97 | // |