/* $Id$ */
#include "TObjArray.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
#include "AliMUONResponse.h"
class AliMUONClusterFinderVS;
//class AliMUONResponse ;
-//class AliMUONSegmentation ;
+//class AliSegmentation ;
+class AliMUONChamberGeometry;
class AliMUONChamber:
public TObject
virtual ~AliMUONChamber();
//
+// Get chamber Id
+ virtual Int_t GetId() {return fId;}
+//
+
+// Get chamber Id
+ virtual Bool_t IsSensId(Int_t volId) const;
+/*
// 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 SetResponseModel(AliMUONResponse* thisResponse) {fResponse=thisResponse;}
//
// Set segmentation model
- virtual void SetSegmentationModel(Int_t i, AliMUONSegmentation* thisSegmentation) {
- (*fSegmentation)[i-1] = thisSegmentation;
+ virtual void SetSegmentationModel(Int_t i, AliSegmentation* thisSegmentation) {
+ fSegmentation->AddAt(thisSegmentation,i-1);
}
// Set Cluster reconstruction model
virtual void SetReconstructionModel(AliMUONClusterFinderVS *thisReconstruction) {
virtual AliMUONResponse* &ResponseModel(){return fResponse;}
//
// Get reference to segmentation model
- virtual AliMUONSegmentation* SegmentationModel(Int_t isec) {
- return (AliMUONSegmentation *) (*fSegmentation)[isec-1];
+ virtual AliSegmentation* SegmentationModel(Int_t isec) {
+ return (AliSegmentation *) (*fSegmentation)[isec-1];
}
virtual TObjArray* ChamberSegmentation() {return fSegmentation;}
// Get pointer to cluster reconstruction model
//
// 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
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);
+ ((AliSegmentation*) (*fSegmentation)[isec-1])->SetPadSize(p1,p2);
}
//
// Cluster formation method (charge disintegration)
//
virtual Float_t DGas() {return fdGas;}
virtual Float_t DAlu() {return fdAlu;}
+ virtual void SetDGas(Float_t DGas) {fdGas = DGas;}
+ virtual void SetDAlu(Float_t DAlu) {fdAlu = DAlu;}
+ virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);}
+
+// geometry
+ void SetGeometry(AliMUONChamberGeometry* geometry) {fGeometry = geometry;}
+ AliMUONChamberGeometry* GetGeometry() const {return fGeometry; }
+
// assignment operator
- virtual AliMUONChamber& operator =(const AliMUONChamber& rhs);
+ AliMUONChamber& operator =(const AliMUONChamber& rhs);
protected:
Int_t fId; // chamber number
Float_t fdGas; // half gaz gap
Float_t fdAlu; // half Alu width
- Int_t fGid; // GEANT volume if for sensitive volume of this chamber
+ //Int_t fGid; // GEANT volume if for sensitive volume of this chamber
+ // moved to AliMUONChamberGeometry
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
+ Float_t fCurrentCorrel; //! charge correlation for current hit.
TObjArray *fSegmentation; // pointer to segmentation
AliMUONClusterFinderVS *fReconstruction; // pointer to reconstruction
AliMUONResponse *fResponse; // pointer to response
- ClassDef(AliMUONChamber,1) // Muon tracking and trigger chamber class
+ AliMUONChamberGeometry *fGeometry; // pointer to geometry
+ ClassDef(AliMUONChamber,1) // Muon tracking chamber class
};
#endif