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