]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - AliGeant4/AliSDConstruction.h
Initial version
[u/mrichter/AliRoot.git] / AliGeant4 / AliSDConstruction.h
diff --git a/AliGeant4/AliSDConstruction.h b/AliGeant4/AliSDConstruction.h
new file mode 100644 (file)
index 0000000..d751244
--- /dev/null
@@ -0,0 +1,43 @@
+// $Id$
+// Category: digits+hits
+//
+// Mandatory (TGeant4) class providing method for creating 
+// sensitive detectors.
+// It provides also methods for switching between lego 
+// sensitive detectors and the standard ones.
+
+#ifndef ALI_SD_CONSTRUCTION_H
+#define ALI_SD_CONSTRUCTION_H
+
+#include "TG4VSDConstruction.h"
+
+#include <globals.hh>
+
+class AliLego;
+class AliModule;
+
+class G4VPhysicalVolume;
+class G4LogicalVolume;
+
+class AliSDConstruction : public TG4VSDConstruction 
+{  
+  public:
+    AliSDConstruction();
+    virtual ~AliSDConstruction();
+    
+    // methods    
+    virtual void Construct();
+
+    void SetLego(AliLego* lego) const;
+    void UnsetLego() const;
+
+  private:
+    // methods
+    void InitializeModules();
+    AliModule* FindAliModule(G4LogicalVolume* lv) const;
+    void CreateSD(G4LogicalVolume* lv, AliModule* module) const;
+    void CreateLegoSD(G4LogicalVolume* lv, AliLego* lego) const;
+    void UnsetLegoSD(G4LogicalVolume* lv) const;    
+};             
+
+#endif //ALI_SD_CONSTRUCTION_H