]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONChamber.h
- Modified comment lines to be compatible with Doxygen
[u/mrichter/AliRoot.git] / MUON / AliMUONChamber.h
CommitLineData
a9e2aefa 1#ifndef ALIMUONCHAMBER_H
2#define ALIMUONCHAMBER_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
30178c30 7// Revision of includes 07/05/2004
692de412 8//
9/// \ingroup base
10/// \class AliMUONChamber
11/// \brief MUON tracking chamber class
30178c30 12
13#include <TObject.h>
14#include <TObjArray.h>
a9e2aefa 15
a9e2aefa 16#include "AliMUONResponse.h"
a713db22 17#include "AliMUONGeometrySegmentation.h"
a9e2aefa 18
30aaba74 19class AliMUONClusterFinderVS;
e118b27e 20class AliMUONGeometryModule;
a713db22 21class AliMUON;
22class AliMUONHit;
23
a9e2aefa 24
30178c30 25class AliMUONChamber : public TObject
a9e2aefa 26{
27 public:
28 AliMUONChamber();
d81db581 29 AliMUONChamber(Int_t id);
a9e2aefa 30 virtual ~AliMUONChamber();
31
32//
d1cd2474 33// Get chamber Id
30178c30 34 virtual Int_t GetId() const {return fId;}
d1cd2474 35//
36
37// Get chamber Id
38 virtual Bool_t IsSensId(Int_t volId) const;
d1cd2474 39
a9e2aefa 40// Initialisation
a713db22 41 virtual void Init(Int_t flag);
a9e2aefa 42// Set z-position of chamber
43 virtual void SetZ(Float_t Z) {fZ = Z;}
44// Get z-position of chamber
30178c30 45 virtual Float_t Z() const {return fZ;}
a9e2aefa 46// Set inner radius of sensitive volume
47 virtual void SetRInner(Float_t rmin) {frMin=rmin;}
48// Set outer radius of sensitive volum
49 virtual void SetROuter(Float_t rmax) {frMax=rmax;}
50
51// Return inner radius of sensitive volume
30178c30 52 virtual Float_t RInner() const {return frMin;}
a9e2aefa 53// Return outer radius of sensitive volum
30178c30 54 virtual Float_t ROuter() const {return frMax;}
a9e2aefa 55//
56// Set response model
57 virtual void SetResponseModel(AliMUONResponse* thisResponse) {fResponse=thisResponse;}
58//
59// Set segmentation model
a713db22 60 virtual void SetSegmentationModel(Int_t isec, AliMUONGeometrySegmentation* thissegmentation) {
61 fSegmentation2->AddAt(thissegmentation,isec-1);
a9e2aefa 62 }
a9e2aefa 63//
64// Get pointer to response model
65 virtual AliMUONResponse* &ResponseModel(){return fResponse;}
66//
67// Get reference to segmentation model
a713db22 68 virtual AliMUONGeometrySegmentation* SegmentationModel2(Int_t isec) {
69 return (AliMUONGeometrySegmentation*) (*fSegmentation2)[isec-1];
70 }
71
a9e2aefa 72//
73// Member function forwarding to the segmentation and response models
74//
75// Calculate pulse height from energy loss
76 virtual Float_t IntPH(Float_t eloss) {return fResponse->IntPH(eloss);}
77//
78// Ask segmentation if signal should be generated
190f97ea 79// virtual Int_t SigGenCond(AliMUONHit* hit);
a9e2aefa 80//
81// Initialisation of segmentation for hit
190f97ea 82// virtual void SigGenInit(AliMUONHit* hit);
681d067b 83// Initialisation of charge fluctuation for given hit
84 virtual void ChargeCorrelationInit();
85
a9e2aefa 86// Configuration forwarding
87//
88// Define signal distribution region
89// by number of sigmas of the distribution function
90 virtual void SetSigmaIntegration(Float_t p1)
91 {fResponse->SetSigmaIntegration(p1);}
92// Set the single electron pulse-height (ADCchan/e)
93 virtual void SetChargeSlope(Float_t p1) {fResponse->SetChargeSlope(p1);}
94// Set width of charge distribution function
95 virtual void SetChargeSpread(Float_t p1, Float_t p2) {fResponse->SetChargeSpread(p1,p2);}
96// Set maximum ADC count value
a337f488 97 virtual void SetMaxAdc(Int_t p1) {fResponse->SetMaxAdc(p1);}
a9e2aefa 98//
99// Cluster formation method (charge disintegration)
a713db22 100 virtual void DisIntegration(AliMUONHit* hit,
101 Int_t& x, Float_t newclust[6][500]);
a9e2aefa 102// Initialize geometry related parameters
103 virtual void InitGeo(Float_t z);
104//
30178c30 105 virtual Float_t DGas() const {return fdGas;}
106 virtual Float_t DAlu() const {return fdAlu;}
b64652f5 107 virtual void SetDGas(Float_t DGas) {fdGas = DGas;}
108 virtual void SetDAlu(Float_t DAlu) {fdAlu = DAlu;}
16d57990 109 virtual void SetChargeCorrel(Float_t correl) {fResponse->SetChargeCorrel(correl);}
d1cd2474 110
111// geometry
e118b27e 112 void SetGeometry(AliMUONGeometryModule* geometry) {fGeometry = geometry;}
113 AliMUONGeometryModule* GetGeometry() const {return fGeometry; }
d1cd2474 114
a9e2aefa 115
116 protected:
30178c30 117 AliMUONChamber(const AliMUONChamber & rChamber);
118 // assignment operator
119 AliMUONChamber& operator =(const AliMUONChamber& rhs);
120
d81db581 121 Int_t fId; // chamber number
a9e2aefa 122 Float_t fdGas; // half gaz gap
123 Float_t fdAlu; // half Alu width
a9e2aefa 124 Float_t fZ; // Z position (cm)
a9e2aefa 125 Float_t frMin; // innermost sensitive radius
126 Float_t frMax; // outermost sensitive radius
681d067b 127 Float_t fCurrentCorrel; //! charge correlation for current hit.
a9e2aefa 128
a713db22 129 TObjArray *fSegmentation2; // pointer to geometry segmentation bending & NBending
130
30aaba74 131 AliMUONResponse *fResponse; // pointer to response
e118b27e 132 AliMUONGeometryModule *fGeometry; // pointer to geometry
a713db22 133 AliMUON *fMUON; // pointer to MUON
e118b27e 134 ClassDef(AliMUONChamber,3) // Muon tracking chamber class
a9e2aefa 135};
136
137#endif