]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONResponse.h
Additional protection in case of negative indexes. More investigation is needed
[u/mrichter/AliRoot.git] / MUON / AliMUONResponse.h
CommitLineData
a9e2aefa 1#ifndef ALIMUONRESPONSE_H
2#define ALIMUONRESPONSE_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
a9e2aefa 8
692de412 9/// \ingroup sim
10/// \class AliMUONResponse
11/// \brief Chamber response base class
12
885d501b 13#ifndef ROOT_TObject
14#include "TObject.h"
15#endif
a9e2aefa 16
885d501b 17class AliMUONDigit;
a713db22 18class AliMUONGeometrySegmentation;
885d501b 19class AliMUONHit;
ba030c0e 20class AliMUONTransientDigit;
885d501b 21class TF1;
22class TList;
a9e2aefa 23
30178c30 24class AliMUONResponse : public TObject
25{
a9e2aefa 26 public:
30178c30 27 AliMUONResponse();
f29ba3e1 28 virtual ~AliMUONResponse();
30178c30 29
a9e2aefa 30 //
31 // Configuration methods
32 //
33 // Set number of sigmas over which cluster disintegration is performed
7e4a628d 34 virtual void SetSigmaIntegration(Float_t) {return;}
a9e2aefa 35 // Get number of sigmas over which cluster disintegration is performed
7e4a628d 36 virtual Float_t SigmaIntegration() const {return 1.;}
a9e2aefa 37 // Set single electron pulse height (ADCcounts/e)
7e4a628d 38 virtual void SetChargeSlope(Float_t ) {return;}
a9e2aefa 39 // Get single electron pulse height (ADCcounts/e)
7e4a628d 40 virtual Float_t ChargeSlope() const {return 1.;}
a9e2aefa 41 // Set sigmas of the charge spread function
7e4a628d 42 virtual void SetChargeSpread(Float_t , Float_t ) {return;}
a9e2aefa 43 // Get sigma_X of the charge spread function
7e4a628d 44 virtual Float_t ChargeSpreadX() const {return 1.;}
a9e2aefa 45 // Get sigma_Y of the charge spread function
7e4a628d 46 virtual Float_t ChargeSpreadY() const {return 1.;}
a9e2aefa 47 // Set maximum Adc-count value
7e4a628d 48 virtual void SetMaxAdc(Int_t ) {return;}
a614d271 49 // Set saturation value
7e4a628d 50 virtual void SetSaturation(Int_t ) {return;}
a9e2aefa 51 // Set zero suppression threshold
7e4a628d 52 virtual void SetZeroSuppression(Int_t ) {return;}
a9e2aefa 53 // Get maximum Adc-count value
7e4a628d 54 virtual Int_t MaxAdc() const {return kTRUE;}
a614d271 55 // Get saturation value
7e4a628d 56 virtual Int_t Saturation() const {return kTRUE;}
a9e2aefa 57 // Get maximum zero suppression threshold
7e4a628d 58 virtual Int_t ZeroSuppression() const {return kTRUE;}
a9e2aefa 59 // Set anode cathode Pitch
7e4a628d 60 virtual void SetPitch(Float_t) {return;}
a9e2aefa 61 // Get anode cathode Pitch
7e4a628d 62 virtual Float_t Pitch() const {return 1.;}
16d57990 63 // Set the charge correlation
a713db22 64 virtual void SetChargeCorrel(Float_t) {return;}
16d57990 65 // Get the charge correlation
7e4a628d 66 virtual Float_t ChargeCorrel() const {return 1.;}
a9e2aefa 67 //
68 // Chamber response methods
69 // Pulse height from scored quantity (eloss)
a713db22 70 virtual Float_t IntPH(Float_t) {return 1.;}
a9e2aefa 71 // Charge disintegration
a713db22 72 virtual Float_t IntXY(Int_t, AliMUONGeometrySegmentation*) {return 1.;}
73
a9e2aefa 74 // Noise, zero-suppression, adc saturation
7e4a628d 75 //virtual Int_t DigitResponse(Int_t ) {return kTRUE;}
76 virtual Int_t DigitResponse(Int_t ,
77 AliMUONTransientDigit* ) {return kTRUE;}
885d501b 78
79 /// Go from one hit to several digits, applying charge spreading.
80 virtual void DisIntegrate(const AliMUONHit& hit, TList& digits);
81
a9e2aefa 82 //
83 ClassDef(AliMUONResponse,1) // Chamber response virtual base class
84};
85#endif
86
87
88
89
90
91
92