Extract ALTRO sample generation to a separate class AliPHOSPulseGenerator
[u/mrichter/AliRoot.git] / PHOS / AliPHOS.h
1 #ifndef ALIPHOS_H
2 #define ALIPHOS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id$ */
6
7 /* History of cvs commits:
8  *
9  * $Log$
10  * Revision 1.69  2006/11/14 17:11:15  hristov
11  * Removing inheritances from TAttLine, TAttMarker and AliRndm in AliModule. The copy constructor and assignment operators are moved to the private part of the class and not implemented. The corresponding changes are propagated to the detectors
12  *
13  * Revision 1.68  2006/08/11 12:36:25  cvetan
14  * Update of the PHOS code needed in order to read and reconstruct the beam test raw data (i.e. without an existing galice.root)
15  *
16  * Revision 1.67  2006/04/07 08:42:00  hristov
17  * Follow AliAlignObj framework and remove AliPHOSAlignData (Yu.Kharlov)
18  *
19  * Revision 1.66  2006/03/24 21:39:33  schutz
20  * Modification needed to include PHOS in the global trigger framework
21  *
22  * Revision 1.65  2006/03/07 18:56:25  kharlov
23  * CDB is passed via environment variable
24  *
25  * Revision 1.64  2005/11/03 13:09:19  hristov
26  * Removing meaningless const declarations (linuxicc)
27  *
28  * Revision 1.63  2005/07/26 13:32:39  kharlov
29  * Restoring raw data fit from version of 29-Aug-2004
30  *
31  * Revision 1.62  2005/07/06 10:10:32  hristov
32  * Moving the functions used to initialize TF1 and TF2 to the pivate part of the class
33  *
34  * Revision 1.61  2005/05/28 12:10:07  schutz
35  * Copy constructor is corrected (by T.P.)
36  *
37  */
38
39
40 //_________________________________________________________________________
41 //  Base Class for PHOS     
42 //                  
43 //*-- Author: Laurent Aphecetche & Yves Schutz (SUBATECH)
44
45
46 // --- ROOT system ---
47 class TString ; 
48 class TTask ;
49 class TFolder ;
50 class TTree ; 
51 class TRandom ; 
52
53 // --- AliRoot header files ---
54 #include "AliDetector.h" 
55 #include "AliLog.h"
56 #include "AliPHOSGeometry.h" 
57 #include "AliPHOSTrigger.h"
58
59 class AliPHOS : public AliDetector {
60
61 public:
62
63   AliPHOS() ;
64   AliPHOS(const char* name, const char* title="") ;  
65   virtual ~AliPHOS() ; 
66   virtual void   AddHit(Int_t, Int_t*, Float_t *) {
67     // do not use this definition but the one below
68     AliFatal(Form("do not use")) ;
69     
70   }
71   virtual void   AddHit( Int_t shunt, Int_t primary, Int_t track, 
72                          Int_t id, Float_t *hits ) = 0 ;   
73   virtual AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
74   virtual void  CreateMaterials() ;            
75   virtual void  Digits2Raw();
76   virtual void  FinishRun() {;}
77   virtual AliPHOSGeometry * GetGeometry() const 
78   {return AliPHOSGeometry::GetInstance(GetTitle(),"") ;  }
79
80   virtual void    Hits2SDigits();
81   virtual Int_t   IsVersion(void) const = 0 ;  
82
83   virtual AliTriggerDetector* CreateTriggerDetector() const 
84     { return new AliPHOSTrigger(); }
85
86   virtual AliLoader* MakeLoader(const char* topfoldername);
87   virtual void    SetTreeAddress();   
88   virtual const TString Version() const {return TString(" ") ; } 
89
90  private:                                        
91   AliPHOS(AliPHOS & phos);
92   AliPHOS & operator = (const AliPHOS & /*rvalue*/);
93
94   ClassDef(AliPHOS,6) // Photon Spectrometer Detector (base class)
95 } ;
96
97 #endif // ALIPHOS_H