Line data Source code
1 : #ifndef ALIVZERO_H
2 : #define ALIVZERO_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 :
7 : //////////////////////////////////////////////////
8 : // Manager and hits classes for set : VZERO //
9 : //////////////////////////////////////////////////
10 :
11 : /*
12 : #include "AliRun.h"
13 : #include "AliMC.h"
14 : #include "AliDetector.h"
15 : #include "AliVZEROLoader.h"
16 :
17 : #include <TNamed.h>
18 : #include <TTree.h>
19 : */
20 : #include "AliDetector.h"
21 : #include "AliVZEROTrigger.h"
22 :
23 : class TNamed;
24 : class TTree;
25 : class TF1;
26 :
27 : class AliVZEROLoader;
28 : class AliVZEROhit;
29 : class AliVZEROdigit;
30 : class AliVZEROCalibData;
31 : class AliVZERORecoParam;
32 :
33 : class AliVZERO : public AliDetector {
34 :
35 : public:
36 :
37 : AliVZERO();
38 : AliVZERO(const char *name, const char *title);
39 : virtual ~AliVZERO();
40 :
41 : virtual void CreateGeometry();
42 : virtual void CreateMaterials();
43 0 : virtual void AddAlignableVolumes() const {}
44 : virtual Int_t IsVersion() const = 0;
45 : virtual void Init();
46 : virtual AliLoader* MakeLoader(const char* topfoldername);
47 : virtual void Hits2Digits();
48 : virtual void Hits2SDigits();
49 : virtual void Digits2Raw();
50 : virtual Bool_t Raw2SDigits(AliRawReader*);
51 : virtual void SetTreeAddress();
52 : virtual void MakeBranch(Option_t *option) =0;
53 0 : virtual void StepManager() {};
54 : // Trigger
55 : virtual AliTriggerDetector* CreateTriggerDetector() const
56 12 : { return new AliVZEROTrigger(); }
57 :
58 0 : virtual void SetThickness(Float_t thick) {fThickness = thick;};
59 0 : virtual void SetThickness1(Float_t thick) {fThickness1 = thick;};
60 : // Set Stepping Parameters
61 : virtual void SetMaxStepQua(Float_t p1);
62 : virtual void SetMaxStepAlu(Float_t p1);
63 : virtual void SetMaxDestepQua(Float_t p1);
64 : virtual void SetMaxDestepAlu(Float_t p1);
65 :
66 : AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const;
67 :
68 : void GetCalibData();
69 : Float_t CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
70 : double SignalShape(double *x, double *par);
71 :
72 : protected:
73 :
74 : Int_t fIdSens1; // Sensitive volume in VZERO
75 : Float_t fThickness; // Total thickness of box holding Right detector V0R i.e. 4.1 cm
76 : Float_t fThickness1; // Thickness of elementary cells i.e. 0.7 cm
77 :
78 : // Stepping Parameters
79 : Float_t fMaxStepQua; // Maximum step size inside the quartz volumes
80 : Float_t fMaxStepAlu; // Maximum step size inside the aluminum volumes
81 : Float_t fMaxDestepQua; // Maximum relative energy loss in quartz
82 : Float_t fMaxDestepAlu; // Maximum relative energy loss in aluminum
83 :
84 : private:
85 : AliVZERO(const AliVZERO& /*vzero*/);
86 : AliVZERO& operator = (const AliVZERO& /*vzero*/);
87 :
88 : AliVZEROCalibData *fCalibData; //! Pointer to the calibration object
89 : Int_t fNBins[64]; //! Number of bins in each SDigit
90 : Float_t fBinSize[64]; //! Bin size in each SDigit
91 : TF1* fTimeSlewing; //! Function for time slewing correction
92 : TF1* fSignalShape; //! Function for signal shape used in Raw->SDigits
93 : AliVZERORecoParam *fRecoParam; //! Reco params used in Raw->SDigits
94 :
95 46 : ClassDef(AliVZERO,2) //Class for the VZERO detector
96 : };
97 :
98 : //____________________________________________________________
99 :
100 : #endif
|