LCOV - code coverage report
Current view: top level - MUON/MUONsim - AliMUONDigitizerV3.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 2 100.0 %
Date: 2016-06-14 17:26:59 Functions: 3 6 50.0 %

          Line data    Source code
       1             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       2             : * See cxx source for full Copyright notice                               */
       3             : 
       4             : // $Id$
       5             : 
       6             : /// \ingroup sim
       7             : /// \class AliMUONDigitizerV3
       8             : /// \brief Digitizer (from SDigit to Digit), performing digit de-calibration.
       9             : ///
      10             : //  Author Laurent Aphecetche
      11             : 
      12             : #ifndef ALIMUONDIGITIZERV3_H
      13             : #define ALIMUONDIGITIZERV3_H
      14             : 
      15             : #ifndef ALIDIGITIZER_H
      16             : #include "AliDigitizer.h"
      17             : #endif
      18             : 
      19             : #include "TArrayI.h"
      20             : 
      21             : class AliMUONCalibrationData;
      22             : class AliMUONVDigit;
      23             : class AliMUONLogger;
      24             : class TClonesArray;
      25             : class TF1;
      26             : class TString;
      27             : class AliMUONVDigitStore;
      28             : class AliLoader;
      29             : class AliMUONVTriggerStore;
      30             : class AliMUONTriggerElectronics;
      31             : class AliMUONVCalibParam;
      32             : class AliMUONRecoParam;
      33             : class AliMUONTriggerChamberEfficiency;
      34             : class AliMUONTriggerUtilities;
      35             : 
      36             : class AliMUONDigitizerV3 : public AliDigitizer
      37             : {
      38             : public:
      39             :   AliMUONDigitizerV3(AliDigitizationInput* digInput=0, 
      40             :                      Int_t generateNoisyDigits=1);
      41             :   
      42             :   virtual ~AliMUONDigitizerV3();
      43             : 
      44             :   virtual void Digitize(Option_t* opt="");
      45             :   
      46             :   virtual Bool_t Init();
      47             : 
      48             :   static Int_t DecalibrateTrackerDigit(const AliMUONVCalibParam& pedestals,
      49             :                                        Int_t channel,
      50             :                                        Float_t charge,
      51             :                                        Bool_t addNoise=kFALSE,
      52             :                                        Bool_t noiseOnly=kFALSE);
      53             :   
      54             :   /// Set calibration (and recoparam) data
      55             :   void SetCalibrationData(AliMUONCalibrationData* calibrationData, AliMUONRecoParam* recoParam);
      56             : 
      57             :   /// Set the number of sigmas for pedestal cut
      58           2 :   static void SetNSigmas(Double_t nsigmas=4.0) { fgNSigmas = nsigmas; }
      59             : 
      60             : private:
      61             :   /// Not implemented
      62             :   AliMUONDigitizerV3(const AliMUONDigitizerV3& other);
      63             :   /// Not implemented
      64             :   AliMUONDigitizerV3& operator=(const AliMUONDigitizerV3& other);
      65             :     
      66             :   void ApplyResponse(const AliMUONVDigitStore& store, AliMUONVDigitStore& filteredStore);
      67             : 
      68             :   void ApplyResponseToTrackerDigit(AliMUONVDigit& digit, Bool_t addNoise);
      69             :   void ApplyResponseToTriggerDigit(AliMUONVDigit& digit);
      70             : 
      71             :   AliLoader* GetLoader(const TString& foldername);
      72             :   
      73             : private:  
      74             : 
      75             :   void GenerateNoisyDigits(AliMUONVDigitStore& digitStore);
      76             :   void GenerateNoisyDigitsForOneCathode(AliMUONVDigitStore& digitStore, 
      77             :                                         Int_t detElemId, Int_t cathode);
      78             :   void GenerateNoisyDigitsForTrigger(AliMUONVDigitStore& digitStore);
      79             : 
      80             :   void MergeWithSDigits(AliMUONVDigitStore*& digitStore,
      81             :                         const AliMUONVDigitStore& input,
      82             :                         Int_t mask);
      83             :   
      84             :   static TF1* NoiseFunction();
      85             :   
      86             :   void CreateInputDigitStores();
      87             :   
      88             :   void BuildTriggerStatusMap();
      89             :   Int_t GetArrayIndex(Int_t cathode, Int_t trigCh, Int_t localCircuit);
      90             : 
      91             : private:
      92             :   Bool_t fIsInitialized; ///< are we initialized ?
      93             :   AliMUONCalibrationData* fCalibrationData; //!<! pointer to access calib parameters
      94             :   AliMUONTriggerElectronics* fTriggerProcessor; ///< pointer to the trigger part of the job
      95             :   TF1* fNoiseFunctionTrig; //!<! function to get noise disribution on trig. chambers
      96             :   Int_t fGenerateNoisyDigits; //!<! whether or not we should generate noise-only digits for tracker (1) and trigger (2)
      97             :   static Double_t fgNSigmas; ///< \brief number of sigmas above ped to use 
      98             :   /// for noise-only digit generation and zero-suppression
      99             :   AliMUONLogger* fLogger; //!<! to keep track of messages
     100             :   AliMUONVTriggerStore* fTriggerStore; //!<! trigger objects
     101             :   AliMUONVDigitStore* fDigitStore; //!<! temporary digits
     102             :   AliMUONVDigitStore* fOutputDigitStore; //!<! digits we'll output to disk
     103             :   TObjArray* fInputDigitStores; //!<! input digit stores (one per input file
     104             :   AliMUONRecoParam* fRecoParam; //!<! reco params (to know how to decalibrate) (not owner)
     105             :   AliMUONTriggerChamberEfficiency* fTriggerEfficiency; //!<! trigger efficiency map
     106             :   AliMUONTriggerUtilities* fTriggerUtilities; //!<! Trigger utilities for masks
     107             :   TArrayI fEfficiencyResponse; //!<! Local board efficiency response
     108             :   
     109         512 :   ClassDef(AliMUONDigitizerV3,11) // MUON Digitizer V3-11
     110             : };
     111             : 
     112             : #endif

Generated by: LCOV version 1.11