X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUON.h;h=3201a24bb68c0f263cfcdb25bddf7bd7403d0f3d;hb=409de10f539a62bbdf8dabcac8eb0607f24ec8bd;hp=27c1a0b890bc4b358a5e4d0cd66aad9a6f8b833d;hpb=585d648a9913f4201376b4c64f440e43a9260509;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUON.h b/MUON/AliMUON.h index 27c1a0b890b..3201a24bb68 100644 --- a/MUON/AliMUON.h +++ b/MUON/AliMUON.h @@ -6,7 +6,7 @@ /* $Id$ */ // Revision of includes 07/05/2004 -/// \ingroup base +/// \ingroup sim /// \class AliMUON /// \brief AliDetector class for MUON subsystem providing /// simulation data management @@ -15,36 +15,33 @@ #include #include "AliDetector.h" -#include "AliMUONData.h" #include "AliMUONChamber.h" #include "AliMUONTrigger.h" #include +#include class TFile; class TTree; class AliLoader; -class AliMUONTriggerCircuit; -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 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 @@ -52,33 +49,29 @@ class AliMUON : public AliDetector void ResetGeometryBuilder(); virtual void BuildGeometry(); - virtual Int_t IsVersion() const {return 0;} + /// Return geometry builder AliMUONGeometryBuilder* GetGeometryBuilder() const {return fGeometryBuilder;} const AliMUONGeometryTransformer* GetGeometryTransformer() const; - AliMUONSegmentation* GetSegmentation() const { return fSegmentation; } - - // MUONData - AliMUONData* GetMUONData() {return fMUONData;} + /// Return segmentation // MUONLoader definition virtual AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type) - // Interface with AliMUONData - virtual void MakeBranch(Option_t *opt=" ") {GetMUONData()->MakeBranch(opt);} - virtual void SetTreeAddress(); - virtual void ResetHits() {GetMUONData()->ResetHits();} - virtual void ResetDigits() {GetMUONData()->ResetDigits();} - virtual void ResetTrigger() {GetMUONData()->ResetTrigger();} - virtual void ResetRawClusters() {GetMUONData()->ResetRawClusters();} - virtual void SetSplitLevel(Int_t SplitLevel) {fSplitLevel=SplitLevel;} + + virtual void SetTreeAddress(); + + /// Set split level for making branches in outfiles + virtual void SetSplitLevel(Int_t SplitLevel) {fSplitLevel=SplitLevel;} // Digitisation virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const; virtual void SDigits2Digits(); virtual void Hits2SDigits(); virtual void Digits2Raw(); - + virtual Bool_t Raw2SDigits(AliRawReader* rawReader); + // Trigger + /// Create trigger virtual AliTriggerDetector* CreateTriggerDetector() const { return new AliMUONTrigger(); } @@ -91,7 +84,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); @@ -109,63 +102,84 @@ class AliMUON : public AliDetector virtual void SetAlign(Bool_t align = true); virtual void SetAlign(const TString& fileName, Bool_t align = true); - // Set scaler event for trigger + /// Set scaler event for trigger virtual void SetTriggerScalerEvent(Bool_t scaler = true){fTriggerScalerEvent = scaler;} - // Return reference to Chamber #id + /// Set trigger response version + virtual void SetTriggerResponseV1(Bool_t trigResV1 = false) + { fTriggerResponseV1 = trigResV1; } + virtual Bool_t GetTriggerResponseV1() const; + /// Set trigger coinc44 + virtual void SetTriggerCoinc44(Int_t trigCoinc44 = 0) + { fTriggerCoinc44 = trigCoinc44; } + virtual Int_t GetTriggerCoinc44() const; + /// Set trigger chamber efficiency by cells + virtual void SetTriggerEffCells(Bool_t trigEffCells = false) + { fTriggerEffCells = trigEffCells; } + virtual Bool_t GetTriggerEffCells() const; + /// Set off generation of noisy digits + virtual void SetDigitizerWithNoise(Int_t digitizerWithNoise) + { fDigitizerWithNoise = digitizerWithNoise; } + virtual Int_t GetDigitizerWithNoise() const; + + // Getters + /// Return reference to Chamber \a id virtual AliMUONChamber& Chamber(Int_t id) {return *((AliMUONChamber *) (*fChambers)[id]);} - // Return reference to Circuit #id - virtual AliMUONTriggerCircuit& TriggerCircuit(Int_t id) - {return *((AliMUONTriggerCircuit *) (*fTriggerCircuits)[id]);} - // Return pointers to digits - 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; - 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 - AliMUONGeometryBuilder* fGeometryBuilder; // Geometry builder - AliMUONSegmentation* fSegmentation; // New segmentation + Int_t fNCh; ///< Number of chambers + Int_t fNTrackingCh; ///< Number of tracking chambers* + Int_t fSplitLevel; ///< Splitlevel when making branches in outfiles. + TObjArray* fChambers; ///< List of Tracking Chambers + AliMUONGeometryBuilder* fGeometryBuilder; ///< Geometry builder // - Bool_t fAccCut; //Transport acceptance cut - Float_t fAccMin; //Minimum acceptance cut used during transport - Float_t fAccMax; //Minimum acceptance cut used during transport + Bool_t fAccCut; ///