]> 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 542c6b39970d82d31ed5450a2f2f11bfb810ef78..f02bca4499dce9d8cb432a2f3157500d98440355 100644 (file)
@@ -5,33 +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);
+  public:
+    AliMUONSt1Response(Int_t chamberId);
+    AliMUONSt1Response();
     virtual ~AliMUONSt1Response();
     
     //
@@ -45,41 +57,22 @@ public:
     virtual Int_t DigitResponse(Int_t digit,AliMUONTransientDigit* where);
     void PrintStatistics() const;
 
+  protected:
+    AliMUONSt1Response(const AliMUONSt1Response& rhs);
 
-private:
-    //private constants
-    static const Int_t fgkNofZones=4;
-    static const TString fgkTopDir;
-    static const TString fgkDataDir;
-    static const TString fgkConfigBaseName;
-    static const TString fgkStandardIniFileName;    
+    // operators
+    AliMUONSt1Response& operator=(const AliMUONSt1Response & rhs);
 
-    // static names
-    static const TString fgkBaseName ;
-    static const TString fgkIncludeName ;
-    static const TString fgkParameterName ;
-    static const TString fgkRegionName ;
-    static const TString fgkRuleName ;
-    static const TString fgkNameName ;
-    static const TString fgkPedestalName ;
-    static const TString fgkNoiseName ;
-    static const TString fgkStateName ;
-    static const TString fgkMName ;
-    static const TString fgkMGName ;
-    static const TString fgkMGCName ;
-    static const TString fgkIJName ;
-    static const TString fgkXYName ;
-    static const TString fgkZoneName ;
-    static const TString fgkStickyOnName ;
-    static const TString fgkStickyOffName ;
-    static const TString fgkFileName ;
-    static const TString fgkValueName ;
-    static const TString fgkGausName ;
-    static const TString fgkNotName ;
-    static const TString fgkNofSigmaName ;
-
-    //protected methods
-    AliMpZone* FindZone(AliMpSector* sector,Int_t posId); // to be moved in AliMpSector::
+  private:
+    // typedefs
+    typedef map<string, AliMUONSt1ResponseParameter*> ParamsMap;
+    typedef map<string, TList*>  ListMap;
+
+    // private methods
+    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);
@@ -88,12 +81,41 @@ private:
     void SetPairToParam(const string& name,const string& value,AliMUONSt1ResponseParameter* param) const;
     void SetPairToListElem(const string& name,const string& value,TList* list);
 
+    // private constants
+    static const Int_t fgkNofZones=4;           // number of zones
+    static const TString fgkTopDir;             // top directory path
+    static const TString fgkDataDir;            // data directory path
+    static const TString fgkConfigBaseName;     // config file base name
+    static const TString fgkStandardIniFileName;// standard ini file name    
 
-    //data members
-    AliMpPlane* fPlane[2];       // !The mapping planes
-    AliMpPlaneSegmentation* fPlaneSegmentation[2]; // !The mapping plane segmentation
+    // static names
+    static const TString fgkBaseName ;          // base name
+    static const TString fgkIncludeName ;       // include name
+    static const TString fgkParameterName ;     // parameter name
+    static const TString fgkRegionName ;        // region name
+    static const TString fgkRuleName ;          // rule name
+    static const TString fgkNameName ;          // name name
+    static const TString fgkPedestalName ;      // pedestal name
+    static const TString fgkNoiseName ;         // noise name
+    static const TString fgkStateName ;         // state name
+    static const TString fgkMName ;             // M name
+    static const TString fgkMGName ;            // MG name
+    static const TString fgkMGCName ;           // MGC name
+    static const TString fgkIJName ;            // i,j name
+    static const TString fgkXYName ;            // x,y name
+    static const TString fgkZoneName ;          // zone name
+    static const TString fgkStickyOnName ;      // sticky on name
+    static const TString fgkStickyOffName ;     // sticky off
+    static const TString fgkFileName ;          // file name
+    static const TString fgkValueName ;         // value name
+    static const TString fgkGausName ;          // gauss name
+    static const TString fgkNotName ;           // not name
+    static const TString fgkNofSigmaName ;      // nof sigma name
+
+    // data members
     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
 
@@ -101,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
 };