]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDigitizerV3.h
New class for AOD<->MC association
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitizerV3.h
index 3c60a526744efb149f8d66842cadb520b6faee8c..bad43a58a7ae74cfb75581bb03162e81a80d443b 100644 (file)
 #include "AliDigitizer.h"
 #endif
 
-#ifndef ROOT_TStopwatch
-#  include "TStopwatch.h"
-#endif
-
 class AliMUONCalibrationData;
 class AliMUONVDigit;
 class AliMUONLogger;
-class AliMUONTriggerEfficiencyCells;
 class TClonesArray;
 class TF1;
 class TString;
@@ -31,6 +26,7 @@ class AliMUONVDigitStore;
 class AliLoader;
 class AliMUONVTriggerStore;
 class AliMUONTriggerElectronics;
+class AliMUONVCalibParam;
 
 class AliMUONDigitizerV3 : public AliDigitizer
 {
@@ -43,6 +39,17 @@ public:
   
   virtual Bool_t Init();
 
+  static Int_t DecalibrateTrackerDigit(const AliMUONVCalibParam& pedestals,
+                                       const AliMUONVCalibParam& gains,
+                                       Int_t channel,
+                                       Float_t charge,
+                                       Bool_t addNoise=kFALSE,
+                                       Bool_t noiseOnly=kFALSE);
+  
+  /// Set calibration data
+  void SetCalibrationData(AliMUONCalibrationData* calibrationData) 
+                          {fCalibrationData = calibrationData;}
+  
 private:
   /// Not implemented
   AliMUONDigitizerV3(const AliMUONDigitizerV3& other);
@@ -52,15 +59,11 @@ private:
   void ApplyResponse(const AliMUONVDigitStore& store, AliMUONVDigitStore& filteredStore);
 
   void ApplyResponseToTrackerDigit(AliMUONVDigit& digit, Bool_t addNoise);
-  void ApplyResponseToTriggerDigit(const AliMUONVDigitStore& digitStore, AliMUONVDigit& digit);
 
   AliLoader* GetLoader(const TString& foldername);
   
 private:  
 
-  AliMUONVDigit* FindCorrespondingDigit(const AliMUONVDigitStore& digitStore,
-                                       AliMUONVDigit& digit) const;
-
   void GenerateNoisyDigits(AliMUONVDigitStore& digitStore);
   void GenerateNoisyDigitsForOneCathode(AliMUONVDigitStore& digitStore, 
                                         Int_t detElemId, Int_t cathode);
@@ -70,14 +73,14 @@ private:
                         const AliMUONVDigitStore& input,
                         Int_t mask);
   
+  static TF1* NoiseFunction();
+  
+  void CreateInputDigitStore();
+
 private:
   Bool_t fIsInitialized; ///< are we initialized ?
   AliMUONCalibrationData* fCalibrationData; //!< pointer to access calib parameters
   AliMUONTriggerElectronics* fTriggerProcessor; ///< pointer to the trigger part of the job
-  AliMUONTriggerEfficiencyCells* fTriggerEfficiency; ///< trigger efficiency map  
-  TStopwatch fGenerateNoisyDigitsTimer; //!< counting time spent in GenerateNoisyDigits()
-  TStopwatch fExecTimer; //!< couting time spent in Exec()  
-  TF1* fNoiseFunction; //!< function to randomly get signal above n*sigma_ped
   TF1* fNoiseFunctionTrig; //!< function to get noise disribution on trig. chambers
   Int_t fGenerateNoisyDigits; //!< whether or not we should generate noise-only digits for tracker (1) and trigger (2)
   static const Double_t fgkNSigmas; ///< \brief number of sigmas above ped to use 
@@ -86,8 +89,9 @@ private:
   AliMUONVTriggerStore* fTriggerStore; //!< trigger objects
   AliMUONVDigitStore* fDigitStore; //!< temporary digits
   AliMUONVDigitStore* fOutputDigitStore; //!< digits we'll output to disk
+  AliMUONVDigitStore* fInputDigitStore; //!< input digit store
   
-  ClassDef(AliMUONDigitizerV3,5) // MUON Digitizer V3-5
+  ClassDef(AliMUONDigitizerV3,8) // MUON Digitizer V3-8
 };
 
 #endif