LCOV - code coverage report
Current view: top level - MUON/MUONsim - AliMUON.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 4 16 25.0 %
Date: 2016-06-14 17:26:59 Functions: 5 20 25.0 %

          Line data    Source code
       1             : #ifndef ALIMUON_H
       2             : #define ALIMUON_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : /* $Id$ */
       7             : // Revision of includes 12/01/2009
       8             : 
       9             : /// \ingroup sim
      10             : /// \class AliMUON
      11             : /// \brief AliDetector class for MUON subsystem providing
      12             : /// simulation data management 
      13             :  
      14             : 
      15             : #include "AliDetector.h"
      16             : #include "AliMUONChamber.h"
      17             : #include "AliMUONTrigger.h"
      18             : 
      19             : #include <TString.h>
      20             : 
      21             : class AliMUONResponse;
      22             : class AliMUONGeometry;
      23             : class AliMUONGeometryTransformer;
      24             : class AliMUONGeometryBuilder;
      25             : class AliMUONRawWriter;
      26             : class AliMUONVGeometryBuilder;
      27             : class AliMUONDigitMaker;
      28             : class AliMUONVHitStore;
      29             : class AliMUONCalibrationData;
      30             : class AliMUONDigitCalibrator;
      31             : class AliMUONRecoParam;
      32             : 
      33             : class AliLoader;
      34             : 
      35             : class TObjArray;
      36             : 
      37             : class AliMUON : public  AliDetector 
      38             : {
      39             :   public:
      40             :     AliMUON();
      41             :     AliMUON(const char* name, const char* title);
      42             :     virtual ~AliMUON();
      43             :    
      44             :     // Geometry
      45             :     void AddGeometryBuilder(AliMUONVGeometryBuilder* geomBuilder);
      46             :     void ResetGeometryBuilder();
      47             :     
      48             :     
      49             :                    /// Return geometry builder
      50           0 :     AliMUONGeometryBuilder*            GetGeometryBuilder() const {return fGeometryBuilder;}
      51             :     const AliMUONGeometryTransformer*  GetGeometryTransformer() const;
      52             :                    /// Return segmentation
      53             : 
      54             :     // MUONLoader definition
      55             :     virtual AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type)
      56             : 
      57             :     virtual void   SetTreeAddress();
      58             :                   
      59             :                    /// Set split level for making branches in outfiles
      60           0 :     virtual void   SetSplitLevel(Int_t SplitLevel)     {fSplitLevel=SplitLevel;}
      61             : 
      62             :     // Digitisation 
      63             :     virtual AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const;
      64             :     virtual void   SDigits2Digits();      
      65             :     virtual void   Hits2SDigits();
      66             :     virtual void   Digits2Raw();
      67             :     virtual Bool_t Raw2SDigits(AliRawReader* rawReader);
      68             : 
      69             :     // Trigger
      70             :                    /// Create trigger
      71             :     virtual AliTriggerDetector* CreateTriggerDetector() const
      72          12 :        { return new AliMUONTrigger(); }
      73             :     
      74             : 
      75             :     // Configuration Methods (per station id)
      76             :     //
      77             :     // Set Signal Generation Parameters
      78             :     virtual void   SetSigmaIntegration(Int_t id, Float_t p1);
      79             :     virtual void   SetChargeSlope(Int_t id, Float_t p1);
      80             :     virtual void   SetChargeSpread(Int_t id, Float_t p1, Float_t p2);
      81             :     virtual void   SetMaxAdc(Int_t id, Int_t p1);
      82             :     // Set Response Model
      83             :     virtual void   SetResponseModel(Int_t id, const AliMUONResponse& response);
      84             : 
      85             :     // Set Stepping Parameters
      86             :     virtual void   SetMaxStepGas(Float_t p1);
      87             :     virtual void   SetMaxStepAlu(Float_t p1);
      88             :     virtual void   SetMaxDestepGas(Float_t p1);
      89             :     virtual void   SetMaxDestepAlu(Float_t p1);
      90             :    
      91             :     // Get Stepping Parameters
      92             :     virtual Float_t  GetMaxStepGas() const;
      93             :     virtual Float_t  GetMaxStepAlu() const;
      94             :     virtual Float_t  GetMaxDestepGas() const;
      95             :     virtual Float_t  GetMaxDestepAlu() const;
      96             :     
      97             :     // Set alignement option
      98             :     virtual void  SetAlign(Bool_t align = true);
      99             :     virtual void  SetAlign(const TString& fileName, Bool_t align = true);
     100             :     
     101             :                     /// Set flag to inactivate calls to TVirtualMC::GetMC()->SetMaxStep
     102           0 :     virtual void  SetIsMaxStep(Bool_t isMaxStep) { fIsMaxStep = isMaxStep; }
     103             :     
     104             :                    /// Set scaler event for trigger
     105           0 :     virtual void  SetTriggerScalerEvent(Bool_t scaler = true){fTriggerScalerEvent = scaler;}
     106             : 
     107             :                   /// Set trigger response version
     108             :     virtual void  SetTriggerResponseV1(Int_t trigResV1 = 0)
     109           0 :         { fTriggerResponseV1 = trigResV1; }
     110             :     virtual Int_t GetTriggerResponseV1() const;
     111             :                   /// Set trigger coinc44
     112             :     virtual void  SetTriggerCoinc44(Int_t trigCoinc44 = 0)
     113           0 :         { fTriggerCoinc44 = trigCoinc44; }
     114             :     virtual Int_t GetTriggerCoinc44() const;
     115             :                  /// Set trigger chamber efficiency by cells
     116             :     virtual void SetTriggerEffCells(Bool_t trigEffCells = true)
     117           0 :         { fTriggerEffCells = trigEffCells; }
     118             :     virtual Bool_t GetTriggerEffCells() const;
     119             :                  /// Set off generation of noisy digits
     120             :   virtual void SetDigitizerWithNoise(Int_t digitizerWithNoise, Double_t nsigmas=4.0)
     121           0 :   { fDigitizerWithNoise = digitizerWithNoise; fDigitizerNSigmas = nsigmas; }
     122             :   
     123             :     virtual Int_t GetDigitizerWithNoise() const; 
     124             :   
     125           0 :   virtual Double_t GetDigitizerNSigmas() const { return fDigitizerNSigmas; }
     126             : 
     127             :   /// Parametrised tail effect in resolution histogram
     128           0 :   virtual void SetTailEffect(Bool_t isTailEffect) { fIsTailEffect=isTailEffect; }
     129             :     
     130             :         /// Enable trigger raw2sdigits conversion 
     131           0 :         virtual void SetConvertTrigger(Bool_t convertTrigger = true) { fConvertTrigger = convertTrigger;}
     132             : 
     133             :         // Getters
     134             :                   /// Return reference to Chamber \a id
     135             :     virtual AliMUONChamber& Chamber(Int_t id)
     136         258 :       {return *((AliMUONChamber *) (*fChambers)[id]);}
     137             : 
     138             :     virtual void MakeBranch(Option_t* opt=" ");
     139             :     virtual void ResetHits();
     140             :     
     141             :                  /// Set digit store class name           
     142           0 :     void SetDigitStoreClassName(const char* classname) { fDigitStoreConcreteClassName = classname; }
     143             :                  /// Return digit store class name           
     144           2 :     const TString DigitStoreClassName() const { return fDigitStoreConcreteClassName; }
     145             :     
     146             :   protected:
     147             :     /// Not implemented
     148             :     AliMUON(const AliMUON& rMUON);
     149             :     /// Not implemented
     150             :     AliMUON& operator = (const AliMUON& rhs);
     151             : 
     152             :     const AliMUONGeometry* GetGeometry() const;
     153             : 
     154             :   AliMUONRecoParam* GetRecoParam() const;
     155             :   
     156             :     Int_t                 fNCh;                ///< Number of chambers   
     157             :     Int_t                 fNTrackingCh;        ///< Number of tracking chambers*
     158             :     Int_t                 fSplitLevel;         ///< Splitlevel when making branches in outfiles.
     159             :     TObjArray*            fChambers;           ///< List of Tracking Chambers
     160             :     AliMUONGeometryBuilder*  fGeometryBuilder; ///< Geometry builder 
     161             :    
     162             :     //
     163             :     Bool_t   fAccCut;         ///< Transport acceptance cut
     164             :     Float_t  fAccMin;         ///< Minimum acceptance cut used during transport
     165             :     Float_t  fAccMax;         ///< Minimum acceptance cut used during transport
     166             :     //  
     167             :     //  Stepping Parameters
     168             :     Float_t fMaxStepGas;      ///< Maximum step size inside the chamber gas
     169             :     Float_t fMaxStepAlu;      ///< Maximum step size inside the chamber aluminum
     170             :     Float_t fMaxDestepGas;    ///< Maximum relative energy loss in gas
     171             :     Float_t fMaxDestepAlu;    ///< Maximum relative energy loss in aluminum
     172             :     
     173             :     // Pad Iterator
     174             :     Int_t fMaxIterPad;        ///< Maximum pad index
     175             :     Int_t fCurIterPad;        ///< Current pad index
     176             :    
     177             :     // Options
     178             :     Bool_t fIsMaxStep;          ///< Flag to inactivate calls to TVirtualMC::GetMC()->SetMaxStep
     179             :     Bool_t fTriggerScalerEvent; ///< Flag to generates scaler event
     180             :     Int_t  fTriggerResponseV1;  ///< Flag to select TriggerResponseV1 (for cluster size in MTR)
     181             :     Int_t  fTriggerCoinc44;     ///< Flag to select TriggerCoinc44 
     182             :     Bool_t fTriggerEffCells;    ///< Flag to select TriggerEffCells
     183             :     Int_t  fDigitizerWithNoise; ///< Flag to switch on/off generation of noisy digits
     184             :     Double_t fDigitizerNSigmas; ///< nsigma cut for noise generation
     185             :     Bool_t fIsTailEffect;       ///< Switch to turn on/off the tail effect
     186             :         Bool_t fConvertTrigger;     ///< Switch to enable trigger raw2sdigit conversion 
     187             : 
     188             :     AliMUONRawWriter* fRawWriter; //!<! Raw data writer
     189             :     
     190             :     AliMUONDigitMaker* fDigitMaker; //!<! pointer to the digit maker class
     191             : 
     192             :     AliMUONVHitStore* fHitStore; //!<! container of hits
     193             :     
     194             :     TString fDigitStoreConcreteClassName; ///< to be able to select what the sdigitizer uses
     195             :     
     196             :     AliMUONCalibrationData* fCalibrationData; ///< pointer of calibration data
     197             : 
     198             :   AliMUONDigitCalibrator* fDigitCalibrator; //!<! digit calibrator (for raw2sdigits)
     199             :   
     200          76 :     ClassDef(AliMUON,26)  // MUON Detector base class
     201             : };
     202             : #endif
     203             : 

Generated by: LCOV version 1.11