X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUON.h;h=c6150b288df5ef2a1d94a82cd69a9fabef80ec65;hb=9061dc58096304c868f080c84a3378f23fb98ef2;hp=3e2fbbc72f3161daf6125129c58e55cc65196776;hpb=afb3ccf0f3ac3f8ca11475ede729d2ff5cd9c4f3;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUON.h b/MUON/AliMUON.h index 3e2fbbc72f3..c6150b288df 100644 --- a/MUON/AliMUON.h +++ b/MUON/AliMUON.h @@ -4,86 +4,63 @@ * See cxx source for full Copyright notice */ /* $Id$ */ -// Revision of includes 07/05/2004 +// Revision of includes 12/01/2009 -/// \ingroup base +/// \ingroup sim /// \class AliMUON /// \brief AliDetector class for MUON subsystem providing /// simulation data management -#include - #include "AliDetector.h" -#include "AliMUONData.h" #include "AliMUONChamber.h" #include "AliMUONTrigger.h" -#include - -class TFile; -class TTree; +#include -class AliLoader; -class AliMUONTriggerCircuit; -class AliMUONTriggerCircuitNew; -class AliMUONData; class AliMUONResponse; -class AliMUONSegmentation; -class AliMUONHit; -class AliMUONRawCluster; class AliMUONGeometry; class AliMUONGeometryTransformer; class AliMUONGeometryBuilder; class AliMUONRawWriter; class AliMUONVGeometryBuilder; -class AliESD; class AliMUONDigitMaker; +class AliMUONVHitStore; +class AliMUONCalibrationData; +class AliMUONDigitCalibrator; +class AliMUONRecoParam; + +class AliLoader; + +class TObjArray; class AliMUON : public AliDetector { public: AliMUON(); - AliMUON(const char* name, const char *title="FactoryV4", - const char* sDigitizerType="sdigitizer:AliMUONSDigitizerV2", - const char* digitizerType="digitizer:NewDigitizerWithNoiseOldTrigger"); + AliMUON(const char* name, const char* title); virtual ~AliMUON(); // Geometry void AddGeometryBuilder(AliMUONVGeometryBuilder* geomBuilder); void ResetGeometryBuilder(); - virtual void BuildGeometry(); /// Return geometry builder AliMUONGeometryBuilder* GetGeometryBuilder() const {return fGeometryBuilder;} const AliMUONGeometryTransformer* GetGeometryTransformer() const; /// Return segmentation - AliMUONSegmentation* GetSegmentation() const { return fSegmentation; } - - /// Return MUONData - AliMUONData* GetMUONData() {return fMUONData;} // MUONLoader definition virtual AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type) - // Interface with AliMUONData - /// Make branch - virtual void MakeBranch(Option_t *opt=" ") {GetMUONData()->MakeBranch(opt);} virtual void SetTreeAddress(); - /// Reset hits - virtual void ResetHits() {GetMUONData()->ResetHits();} - /// Reset digits - virtual void ResetDigits() {GetMUONData()->ResetDigits();} - /// Reset trigger - virtual void ResetTrigger() {GetMUONData()->ResetTrigger();} - /// Reset raw clusters - virtual void ResetRawClusters() {GetMUONData()->ResetRawClusters();} - /// Set split level + + /// Set split level for making branches in outfiles virtual void SetSplitLevel(Int_t SplitLevel) {fSplitLevel=SplitLevel;} // Digitisation - virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const; + virtual AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const; virtual void SDigits2Digits(); virtual void Hits2SDigits(); virtual void Digits2Raw(); @@ -103,7 +80,7 @@ class AliMUON : public AliDetector virtual void SetChargeSpread(Int_t id, Float_t p1, Float_t p2); virtual void SetMaxAdc(Int_t id, Int_t p1); // Set Response Model - virtual void SetResponseModel(Int_t id, AliMUONResponse *response); + virtual void SetResponseModel(Int_t id, const AliMUONResponse& response); // Set Stepping Parameters virtual void SetMaxStepGas(Float_t p1); @@ -120,63 +97,72 @@ class AliMUON : public AliDetector // Set alignement option virtual void SetAlign(Bool_t align = true); virtual void SetAlign(const TString& fileName, Bool_t align = true); - + + /// Set flag to inactivate calls to TVirtualMC::GetMC()->SetMaxStep + virtual void SetIsMaxStep(Bool_t isMaxStep) { fIsMaxStep = isMaxStep; } + /// Set scaler event for trigger virtual void SetTriggerScalerEvent(Bool_t scaler = true){fTriggerScalerEvent = scaler;} - // trigger response version - virtual void SetTriggerResponseV1(Bool_t trigResV1 = false) - {fTriggerResponseV1 = trigResV1;} - virtual Bool_t GetTriggerResponseV1() const; - // trigger coinc44 + /// Set trigger response version + virtual void SetTriggerResponseV1(Int_t trigResV1 = 0) + { fTriggerResponseV1 = trigResV1; } + virtual Int_t GetTriggerResponseV1() const; + /// Set trigger coinc44 virtual void SetTriggerCoinc44(Int_t trigCoinc44 = 0) - {fTriggerCoinc44 = trigCoinc44;} + { fTriggerCoinc44 = trigCoinc44; } virtual Int_t GetTriggerCoinc44() const; - // trigger chamber efficiency by cells - virtual Bool_t SetTriggerEffCells(Bool_t trigEffCells = false) - {fTriggerEffCells = trigEffCells;} - virtual Int_t GetTriggerEffCells() const; + /// Set trigger chamber efficiency by cells + virtual void SetTriggerEffCells(Bool_t trigEffCells = true) + { fTriggerEffCells = trigEffCells; } + virtual Bool_t GetTriggerEffCells() const; + /// Set off generation of noisy digits + virtual void SetDigitizerWithNoise(Int_t digitizerWithNoise, Double_t nsigmas=4.0) + { fDigitizerWithNoise = digitizerWithNoise; fDigitizerNSigmas = nsigmas; } + + virtual Int_t GetDigitizerWithNoise() const; + + virtual Double_t GetDigitizerNSigmas() const { return fDigitizerNSigmas; } + + /// Parametrised tail effect in resolution histogram + virtual void SetTailEffect(Bool_t isTailEffect) { fIsTailEffect=isTailEffect; } - // Getters + /// Enable trigger raw2sdigits conversion + virtual void SetConvertTrigger(Bool_t convertTrigger = true) { fConvertTrigger = convertTrigger;} + + // Getters /// Return reference to Chamber \a id virtual AliMUONChamber& Chamber(Int_t id) {return *((AliMUONChamber *) (*fChambers)[id]);} - /// Return reference to Circuit \a id - virtual AliMUONTriggerCircuit& TriggerCircuit(Int_t id) - {return *((AliMUONTriggerCircuit *) (*fTriggerCircuits)[id]);} - /// Return reference to New Circuit \a id - virtual AliMUONTriggerCircuitNew& TriggerCircuitNew(Int_t id) - {return *((AliMUONTriggerCircuitNew*) (*fTriggerCircuitsNew)[id]);} - - // Return pointers to digit - AliMUONRawCluster *RawCluster(Int_t ichamber, Int_t icathod, - Int_t icluster); - // Inherited and overridden from AliModule: - //PH virtual void RemapTrackHitIDs(Int_t * map); - - TString SDigitizerType() const; - TString DigitizerType() const; + + virtual void MakeBranch(Option_t* opt=" "); + virtual void ResetHits(); + + /// Set digit store class name + void SetDigitStoreClassName(const char* classname) { fDigitStoreConcreteClassName = classname; } + /// Return digit store class name + const TString DigitStoreClassName() const { return fDigitStoreConcreteClassName; } protected: + /// Not implemented AliMUON(const AliMUON& rMUON); + /// Not implemented AliMUON& operator = (const AliMUON& rhs); const AliMUONGeometry* GetGeometry() const; + AliMUONRecoParam* GetRecoParam() const; + Int_t fNCh; ///< Number of chambers Int_t fNTrackingCh; ///< Number of tracking chambers* - AliMUONData* fMUONData; ///< Data container for MUON subsystem Int_t fSplitLevel; ///< Splitlevel when making branches in outfiles. TObjArray* fChambers; ///< List of Tracking Chambers - TObjArray* fTriggerCircuits; ///< List of Trigger Circuits - TObjArray* fTriggerCircuitsNew; ///< List of Trigger Circuits AliMUONGeometryBuilder* fGeometryBuilder; ///< Geometry builder - AliMUONSegmentation* fSegmentation; ///< New segmentation // - Bool_t fAccCut; ///SetMaxStep Bool_t fTriggerScalerEvent; ///< Flag to generates scaler event - Bool_t fTriggerResponseV1; ///< Flag to select TriggerResponseV1 + Int_t fTriggerResponseV1; ///< Flag to select TriggerResponseV1 (for cluster size in MTR) Int_t fTriggerCoinc44; ///< Flag to select TriggerCoinc44 Bool_t fTriggerEffCells; ///< Flag to select TriggerEffCells - - TString fSDigitizerType; ///< Class to use for SDigitizer - TString fDigitizerType; ///< Class to use for Digitizer - + Int_t fDigitizerWithNoise; ///< Flag to switch on/off generation of noisy digits + Double_t fDigitizerNSigmas; ///< nsigma cut for noise generation + Bool_t fIsTailEffect; ///< Switch to turn on/off the tail effect + Bool_t fConvertTrigger; ///< Switch to enable trigger raw2sdigit conversion + AliMUONRawWriter* fRawWriter; //!< Raw data writer AliMUONDigitMaker* fDigitMaker; //!< pointer to the digit maker class - ClassDef(AliMUON,13) // MUON Detector base class + AliMUONVHitStore* fHitStore; //!< container of hits + + TString fDigitStoreConcreteClassName; ///< to be able to select what the sdigitizer uses + + AliMUONCalibrationData* fCalibrationData; ///< pointer of calibration data + + AliMUONDigitCalibrator* fDigitCalibrator; //!< digit calibrator (for raw2sdigits) + + ClassDef(AliMUON,25) // MUON Detector base class }; #endif