Fixes for the trunk: compilation on Lion (Yves)
[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;
47890cd3 53 virtual void StepManager() {};
662a53e9 54// Trigger
55 virtual AliTriggerDetector* CreateTriggerDetector() const
56 { return new AliVZEROTrigger(); }
57
b2501ea3 58 virtual void SetThickness(Float_t thick) {fThickness = thick;};
59 virtual void SetThickness1(Float_t thick) {fThickness1 = thick;};
47890cd3 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
f21fc003 66 AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const;
b0d2c2d3 67
0984ee9d 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
47890cd3 72protected:
73
b2501ea3 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
47890cd3 77
78// Stepping Parameters
b2501ea3 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
0984ee9d 83
84private:
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 ClassDef(AliVZERO,2) //Class for the VZERO detector
47890cd3 96};
97
98//____________________________________________________________
99
100#endif