Increment the version number
[u/mrichter/AliRoot.git] / RICH / AliRICHResponseV0.h
1 #ifndef ALIRICHRESPONSEV0_H
2 #define ALIRICHRESPONSEV0_H
3
4
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 /* $Id$ */
9
10
11 #include "AliRICHResponse.h"
12 #include <iostream.h>
13
14 class AliSegmentation;
15
16
17 class AliRICHResponseV0 : public AliRICHResponse 
18 {
19 public:
20     AliRICHResponseV0();                    // default ctor
21     virtual ~AliRICHResponseV0(){}
22     
23    virtual inline void Print(Option_t* option)const;
24 //
25     // Configuration methods
26     // 
27     // Number of sigmas over which cluster didintegration is performed
28     virtual void    SetSigmaIntegration(Float_t p1) {fSigmaIntegration=p1;}
29     virtual Float_t SigmaIntegration() {return fSigmaIntegration;}    
30     // charge slope in ADC/e
31     virtual void    SetChargeSlope(Float_t p1) {fChargeSlope=p1;}
32     virtual Float_t ChargeSlope()      {return fChargeSlope;}
33     // sigma of the charge spread function
34     virtual void    SetChargeSpread(Float_t p1, Float_t p2)
35         {fChargeSpreadX=p1; fChargeSpreadY=p2;}
36     virtual Float_t ChargeSpreadX()    {return fChargeSpreadX;}    
37     virtual Float_t ChargeSpreadY()    {return fChargeSpreadY;}        
38     // Adc-count saturation value
39     virtual void    SetMaxAdc(Float_t p1) {fMaxAdc=p1;}
40     virtual Float_t MaxAdc()           {return fMaxAdc;}
41     // anode cathode Pitch
42     virtual Float_t Pitch()            {return fPitch;}
43     virtual void    SetPitch(Float_t p1) {fPitch=p1;};
44     // alpha feedback
45     virtual void    SetAlphaFeedback(Float_t alpha) {fAlphaFeedback=alpha;}
46     virtual Float_t AlphaFeedback()  {return fAlphaFeedback;}
47     // ionisation enrgy
48     virtual void    SetEIonisation(Float_t e) {fEIonisation=e;}
49     virtual Float_t EIonisation() {return fEIonisation;}                            
50     // Mathieson parameters
51     virtual void   SetSqrtKx3(Float_t p1) {fSqrtKx3=p1;};
52     virtual void   SetKx2(Float_t p1) {fKx2=p1;};
53     virtual void   SetKx4(Float_t p1) {fKx4=p1;};
54     virtual void   SetSqrtKy3(Float_t p1) {fSqrtKy3=p1;};
55     virtual void   SetKy2(Float_t p1) {fKy2=p1;};
56     virtual void   SetKy4(Float_t p1) {fKy4=p1;};
57     //  
58     // Chamber response methods
59     // Pulse height from scored quantity (eloss)
60     virtual Float_t IntPH(Float_t eloss, Float_t yhit);
61     virtual Float_t IntPH(Float_t yhit);
62     // Charge disintegration
63     virtual Float_t IntXY(AliSegmentation * segmentation);
64     virtual Int_t   FeedBackPhotons(Float_t *source, Float_t qtot);
65     // Wire sag
66     virtual void SetWireSag(Int_t p1) {fWireSag=p1;};
67     virtual void SetVoltage(Int_t p1) {fVoltage=p1;};
68         protected:
69     Float_t fChargeSlope;              // Slope of the charge distribution
70     Float_t fChargeSpreadX;            // Width of the charge distribution in x
71     Float_t fChargeSpreadY;            // Width of the charge distribution in y
72     Float_t fSigmaIntegration;         // Number of sigma's used for charge distribution
73     Float_t fAlphaFeedback;            // Feedback photons coefficient
74     Float_t fEIonisation;              // Mean ionisation energy
75     Float_t fMaxAdc;                   // Maximum ADC channel
76     Float_t fSqrtKx3;                  // Mathieson parameters for x
77     Float_t fKx2;                      // Mathieson parameters for x
78     Float_t fKx4;                      // Mathieson parameters for x
79     Float_t fSqrtKy3;                  // Mathieson parameters for y
80     Float_t fKy2;                      // Mathieson parameters for y 
81     Float_t fKy4;                      // Mathieson parameters for y
82     Float_t fPitch;                    // Anode-cathode pitch
83     Int_t   fWireSag;                  // Flag to turn on/off (0/1) wire sag
84     Int_t   fVoltage;                  // Working voltage (2000, 2050, 2100, 2150)
85     ClassDef(AliRICHResponseV0,1)      // RICH Response model: Mathieson verion
86 };
87     
88 inline void AliRICHResponseV0::Print(Option_t* option) const
89 {
90    TObject::Print();
91    cout<<"Slope of the charge distribution               "<<fChargeSlope                              <<endl;
92    cout<<"Width of the charge distribution in x          "<<fChargeSpreadX                    <<endl;
93    cout<<"Width of the charge distribution in y          "<<fChargeSpreadY                    <<endl;
94    cout<<"Number of sigma's used for charge distribution "<<fSigmaIntegration                 <<endl;
95    cout<<"Feedback photons coefficient                   "<<fAlphaFeedback                    <<endl;
96    cout<<"Mean ionisation energy                         "<<fEIonisation                              <<endl;
97    cout<<"Maximum ADC channel                            "<<fMaxAdc                           <<endl;
98    cout<<"Mathieson parameters for x                     "<<fSqrtKx3                          <<endl;
99    cout<<"Mathieson parameters for x                     "<<fKx2                                      <<endl;
100    cout<<"Mathieson parameters for x                     "<<fKx4                                      <<endl;
101    cout<<"Mathieson parameters for y                     "<<fSqrtKy3                          <<endl;
102    cout<<"Mathieson parameters for y                     "<<fKy2                                      <<endl;
103    cout<<"Mathieson parameters for y                     "<<fKy4                                      <<endl;
104    cout<<"Anode-cathode pitch                            "<<fPitch                            <<endl;
105    cout<<"Flag to turn on/off (0/1) wire sag             "<<fWireSag                          <<endl;
106    cout<<"Working voltage (2000, 2050, 2100, 2150)       "<<fVoltage                           <<endl; 
107 }//void AliRICHResponseV0::Print()
108
109 #endif