X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONChamber.h;h=f00444a6db379b9baa93b28cfb2f48850403f29b;hb=108cb8b981fd4f1bf0b1ec2b66c46daacb58697f;hp=d8af746abe2a0e583c3d4dba7dcbc69edd078052;hpb=802a864d183e400818d48e64ff2ba746ccb5987d;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONChamber.h b/MUON/AliMUONChamber.h index d8af746abe2..f00444a6db3 100644 --- a/MUON/AliMUONChamber.h +++ b/MUON/AliMUONChamber.h @@ -4,125 +4,78 @@ * See cxx source for full Copyright notice */ /* $Id$ */ +// Revision of includes 07/05/2004 +// +/// \ingroup sim +/// \class AliMUONChamber +/// \brief MUON tracking chamber class +/// +/// Now only providing DisIntegration function + +#include +#include -#include "TObjArray.h" -#include "AliMUONSegmentation.h" #include "AliMUONResponse.h" -class AliMUONClusterFinderVS; -//class AliMUONResponse ; -//class AliMUONSegmentation ; +class AliMUON; +class AliMUONHit; + -class AliMUONChamber: -public TObject +class AliMUONChamber : public TObject { public: AliMUONChamber(); - AliMUONChamber(const AliMUONChamber & rChamber); + AliMUONChamber(Int_t id); virtual ~AliMUONChamber(); -// -// Get GEANT id of sensitive volume - virtual Int_t GetGid() {return fGid;} -// Set GEANT id of sensitive volume - virtual void SetGid(Int_t id) {fGid=id;} -// -// Initialisation - virtual void Init(); -// Set z-position of chamber - virtual void SetZ(Float_t Z) {fZ = Z;} -// Get z-position of chamber - virtual Float_t Z(){return fZ;} -// Set inner radius of sensitive volume - virtual void SetRInner(Float_t rmin) {frMin=rmin;} -// Set outer radius of sensitive volum - virtual void SetROuter(Float_t rmax) {frMax=rmax;} +/// Get chamber Id + virtual Int_t GetId() const {return fId;} -// Return inner radius of sensitive volume - virtual Float_t RInner() {return frMin;} -// Return outer radius of sensitive volum - virtual Float_t ROuter() {return frMax;} -// -// Set response model - virtual void SetResponseModel(AliMUONResponse* thisResponse) {fResponse=thisResponse;} -// -// Set segmentation model - virtual void SetSegmentationModel(Int_t i, AliMUONSegmentation* thisSegmentation) { - (*fSegmentation)[i-1] = thisSegmentation; - } -// Set Cluster reconstruction model - virtual void SetReconstructionModel(AliMUONClusterFinderVS *thisReconstruction) { - fReconstruction = thisReconstruction; - } -// -// Get pointer to response model + +/// Set response model + virtual void SetResponseModel(const AliMUONResponse& thisResponse); + +/// Get pointer to response model virtual AliMUONResponse* &ResponseModel(){return fResponse;} -// -// Get reference to segmentation model - virtual AliMUONSegmentation* SegmentationModel(Int_t isec) { - return (AliMUONSegmentation *) (*fSegmentation)[isec-1]; - } - virtual TObjArray* ChamberSegmentation() {return fSegmentation;} -// Get pointer to cluster reconstruction model - virtual AliMUONClusterFinderVS* &ReconstructionModel(){return fReconstruction;} -// Get number of segmentation sectors - virtual Int_t Nsec() {return fnsec;} -// Set number of segmented cathodes (1 or 2) - virtual void SetNsec(Int_t nsec) {fnsec=nsec;} + // // Member function forwarding to the segmentation and response models // -// Calculate pulse height from energy loss +/// Calculate pulse height from energy loss virtual Float_t IntPH(Float_t eloss) {return fResponse->IntPH(eloss);} -// -// Ask segmentation if signal should be generated - virtual Int_t SigGenCond(Float_t x, Float_t y, Float_t z); -// -// Initialisation of segmentation for hit - virtual void SigGenInit(Float_t x, Float_t y, Float_t z); + +// Initialisation of charge fluctuation for given hit + virtual void ChargeCorrelationInit(); + // Configuration forwarding // -// Define signal distribution region -// by number of sigmas of the distribution function +/// Define signal distribution region +/// by number of sigmas of the distribution function virtual void SetSigmaIntegration(Float_t p1) {fResponse->SetSigmaIntegration(p1);} -// Set the single electron pulse-height (ADCchan/e) +/// Set the single electron pulse-height (ADCchan/e) virtual void SetChargeSlope(Float_t p1) {fResponse->SetChargeSlope(p1);} -// Set width of charge distribution function +/// Set width of charge distribution function virtual void SetChargeSpread(Float_t p1, Float_t p2) {fResponse->SetChargeSpread(p1,p2);} -// Set maximum ADC count value +/// Set maximum ADC count value virtual void SetMaxAdc(Int_t p1) {fResponse->SetMaxAdc(p1);} -// Set Pad size - virtual void SetPadSize(Int_t isec, Float_t p1, Float_t p2) { - ((AliMUONSegmentation*) (*fSegmentation)[isec-1])->SetPadSize(p1,p2); - } // -// Cluster formation method (charge disintegration) - virtual void DisIntegration(Float_t eloss, Float_t tof, - Float_t xhit, Float_t yhit, Float_t zhit, - Int_t& x, Float_t newclust[6][500]); -// Initialize geometry related parameters - virtual void InitGeo(Float_t z); -// - virtual Float_t DGas() {return fdGas;} - virtual Float_t DAlu() {return fdAlu;} -// assignment operator - virtual AliMUONChamber& operator =(const AliMUONChamber& rhs); - +/// Set charge correlation + virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);} + protected: + /// Not implemented + AliMUONChamber(const AliMUONChamber & rChamber); + /// Not implemented + AliMUONChamber& operator =(const AliMUONChamber& rhs); + + Int_t fId; ///< chamber number + Float_t fCurrentCorrel; //!< charge correlation for current hit. - Float_t fdGas; // half gaz gap - Float_t fdAlu; // half Alu width - Int_t fGid; // GEANT volume if for sensitive volume of this chamber - Float_t fZ; // Z position (cm) - Int_t fnsec; // number of semented cathode planes - Float_t frMin; // innermost sensitive radius - Float_t frMax; // outermost sensitive radius + AliMUONResponse *fResponse; ///< pointer to response + AliMUON *fMUON; ///< pointer to MUON - TObjArray *fSegmentation; // pointer to segmentation - AliMUONClusterFinderVS *fReconstruction; // pointer to reconstruction - AliMUONResponse *fResponse; // pointer to response - ClassDef(AliMUONChamber,1) // Muon tracking and trigger chamber class + ClassDef(AliMUONChamber,3) // Muon tracking chamber class }; #endif