]> git.uio.no Git - u/mrichter/AliRoot.git/blob - AliGeant4/AliSDConstruction.h
Moved from AliTransbit to AliL3Transbit.
[u/mrichter/AliRoot.git] / AliGeant4 / AliSDConstruction.h
1 // $Id$
2 // Category: digits+hits
3 //
4 // Author: I. Hrivnacova
5 //
6 // Class AliSDConstruction
7 // -----------------------
8 // Mandatory (TGeant4) class providing method for creating 
9 // sensitive detectors.
10 // It provides also methods for switching between lego 
11 // sensitive detectors and the standard ones.
12
13 #ifndef ALI_SD_CONSTRUCTION_H
14 #define ALI_SD_CONSTRUCTION_H
15
16 #include "AliVerbose.h"
17
18 #include "TG4VSDConstruction.h"
19
20 #include <globals.hh>
21
22 class AliLego;
23 class AliModule;
24
25 class G4VPhysicalVolume;
26 class G4LogicalVolume;
27
28 class AliSDConstruction : public TG4VSDConstruction,
29                           public AliVerbose
30 {  
31   public:
32     AliSDConstruction();
33     virtual ~AliSDConstruction();
34     
35     // methods    
36     virtual void Construct();
37
38     void SetLego(AliLego* lego) const;
39     void UnsetLego() const;
40
41   private:
42     // methods
43     void InitializeModules();
44     AliModule* FindAliModule(G4LogicalVolume* lv) const;
45     void CreateSD(G4LogicalVolume* lv, AliModule* module) const;
46     void CreateLegoSD(G4LogicalVolume* lv, AliLego* lego) const;
47     void UnsetLegoSD(G4LogicalVolume* lv) const;    
48 };             
49
50 #endif //ALI_SD_CONSTRUCTION_H