]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSt1Response.h
Transformations for rotated geometry of st345 (Gines)
[u/mrichter/AliRoot.git] / MUON / AliMUONSt1Response.h
index c6fb4edb7a6a73ceb8bb9c197933ae7f842e2b86..f02bca4499dce9d8cb432a2f3157500d98440355 100644 (file)
@@ -5,34 +5,45 @@
  * See cxx source for full Copyright notice                               */
 
 /* $Id$ */
-
-// Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay
-//
-// Class AliMUONSt1Response
-// ----------------------------
-// Response class for station 1 including electronics and detector response. 
-// Individual pedestals or noise levels can be controlled separately. 
-// The current pulse height responses do not contain any physics
+// Revision of includes 07/05/2004
+
+/// \ingroup sim
+/// \class AliMUONSt1Response
+/// \brief Detailed response class for station 1
+///
+/// Response class for station 1 including electronics and detector response. 
+/// Individual pedestals or noise levels can be controlled separately. 
+/// The current pulse height responses do not contain any physics
+///
+/// Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay
+
+#include <map>
+#include <string>
+#ifndef __HP_aCC
+using std::map;
+using std::string;
+#endif
 
 #include <TString.h>
 #include <TList.h>
+
 #include "AliMUONResponseV0.h"
-#include "AliMUONSt1Types.h"
 #include "AliMUONSt1ElectronicElement.h"
 
-class AliMpPlane;
-class AliMpPlaneSegmentation;
+class AliMpSector;
+class AliMpSectorSegmentation;
 class AliMpZone;
 class AliMpSector;
 class TArrayF;
 class TObjArray;
 class AliMUONSt1ResponseParameter;
+//class AliMUONChamber;
 
 class AliMUONSt1Response : public AliMUONResponseV0 
 {
-public:
-    AliMUONSt1Response(Int_t chamber=1);
-    AliMUONSt1Response(const AliMUONSt1Response& rhs);
+  public:
+    AliMUONSt1Response(Int_t chamberId);
+    AliMUONSt1Response();
     virtual ~AliMUONSt1Response();
     
     //
@@ -46,13 +57,22 @@ public:
     virtual Int_t DigitResponse(Int_t digit,AliMUONTransientDigit* where);
     void PrintStatistics() const;
 
+  protected:
+    AliMUONSt1Response(const AliMUONSt1Response& rhs);
 
-private:
     // operators
     AliMUONSt1Response& operator=(const AliMUONSt1Response & rhs);
 
+  private:
+    // typedefs
+    typedef map<string, AliMUONSt1ResponseParameter*> ParamsMap;
+    typedef map<string, TList*>  ListMap;
+
     // private methods
-    AliMpZone* FindZone(AliMpSector* sector,Int_t posId) const; // to be moved in AliMpSector::
+    const AliMUONGeometrySegmentation* GetGeometrySegmentation(Int_t cathod);
+    const AliMpSectorSegmentation*     GetMpSegmentation(Int_t detElemId, Int_t cathod);
+    const AliMpSector*                 GetMpSector(Int_t detElemId, Int_t cathod);
+    AliMpZone* FindZone(const AliMpSector* sector,Int_t posId) const; // to be moved in AliMpSector::
     void ReadFiles();
     void ReadIniFile(Int_t plane,const TString& fileName,Bool_t rdParam,Bool_t rdRegion,Bool_t rdRule);
     void ReadIniFile(Int_t plane);
@@ -93,10 +113,9 @@ private:
     static const TString fgkNofSigmaName ;      // nof sigma name
 
     // data members
-    AliMpPlane* fPlane[2];  // !The mapping planes
-    AliMpPlaneSegmentation* fPlaneSegmentation[2]; // !The mapping plane segmentation
     TString fIniFileName[2];// file names for initialisation of each cathode
-
+    Bool_t  fReadFiles;     // flag to read initalization files only once
+    
     AliMUONSt1ResponseParameter* fDefaultParameters[2][fgkNofZones]; // !Response for each zone
     TList fRulesList[2]; //! list of special rules
 
@@ -104,11 +123,11 @@ private:
     Int_t fCountUnknownZone; // ntimes the DigitResponse was called in an unknown zone
     Int_t fCountUnknownIndices; // ntimes the DigitResponse was called with unknown indices
 
-    Int_t fChamber;                // The chamber number
+    Int_t      fChamberId; // The MUON chamber Id
 
-    TParamsMap fParams;  //! internal parameter list
-    TListMap   fRegions; //! internal list of regions
-    TList      fTrashList; //!internal trash list 
+    ParamsMap  fParams;    //! internal parameter list
+    ListMap    fRegions;   //! internal list of regions
+    TList      fTrashList; //! internal trash list 
 
   ClassDef(AliMUONSt1Response,1) // Overall detector response
 };