]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDSimulator.h
Making possible to run AZ cluster finder and / or Kalamn filter without recompiling...
[u/mrichter/AliRoot.git] / FMD / AliFMDSimulator.h
CommitLineData
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
16class TVector3;
17class AliFMD;
18class AliFMDRing;
19class AliFMDDetector;
20class AliFMD1;
21class AliFMD2;
22class AliFMD3;
23
24/** Simulation of the FMD.
25 This class builds the geometry, and processes hits in the FMD */
26class AliFMDSimulator : public TTask
27{
28public:
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
40protected:
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//