----------------------------------------------------------------------
[u/mrichter/AliRoot.git] / PHOS / AliPHOSv0.h
1 #ifndef ALIPHOSXXX_H
2 #define ALIPHOSXXX_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ////////////////////////////////////////////////
7 //  Short description                         //
8 //  Author                 SUBATECH           //
9 //      comment                               //  
10 //                                            //
11 ////////////////////////////////////////////////
12
13 // --- ROOT system ---
14
15 // --- Standard library ---
16
17 // --- AliRoot header files ---
18
19 class AliPHOSxxx {
20
21 public:
22
23   virtual ~AliPHOSxxx() ; // dtor
24
25 private:
26
27 ClassDef(AliPHOSxxx,1)  // description , version 1
28
29 };
30
31 #endif // AliPHOSXXX_H
32 //-*-C++-*-
33 #ifndef ALIPHOSV4_H
34 #define ALIPHOSV4_H
35 ////////////////////////////////////////////////
36 //  Manager class  for PHOS                   //
37 //  Version SUBATECH                          //
38 //  Author  Y. Schutz SUBATECH                //
39 //       geometry parametrized for any        //  
40 //       shape of modules                     //
41 ////////////////////////////////////////////////
42
43 // --- ROOT system ---
44 #include "TClonesArray.h"
45
46 // --- AliRoot header files ---
47 #include "AliPHOS.h"
48 #include "AliPHOSGeometry.h"
49 #include "AliPHOSReconstructioner.h"
50 #include "AliPHOSTrackSegmentMaker.h"
51
52 class AliPHOSv0 : public AliPHOS {
53
54 public:
55
56   AliPHOSv0(void) ;
57   AliPHOSv0(const char *name, const char *title="") ;
58   AliPHOSv0(AliPHOSReconstructioner&  Reconstructioner, const char *name, const char *title="") ;
59   virtual       ~AliPHOSv0(void) ;
60
61   virtual void   AddHit( Int_t track, Int_t id, Float_t *hits ) ;   // adds a pre-digitilized hit to the hit tree 
62   virtual void   BuildGeometry(void) ;                              // creates the geometry for the ROOT display
63   void           BuildGeometryforPHOS(void) ;                       // creates the PHOS geometry for the ROOT display
64   void           BuildGeometryforPPSD(void) ;                       // creates the PPSD geometry for the ROOT display
65   virtual void   CreateGeometry(void) ;                             // creates the geometry for GEANT
66   void           CreateGeometryforPHOS(void) ;                      // creates the PHOS geometry for GEANT
67   void           CreateGeometryforPPSD(void) ;                      // creates the PPSD geometry for GEANT
68   Int_t          Digitize(Float_t Energy);
69   RecPointsList* EmcClusters() {return fEmcClusters;}                 // gets TClonesArray of cluster in the crystals 
70   void           FinishEvent(void) ;                                // makes the digits from the hits 
71   virtual void   Init(void) ;                                       // does nothing
72   void           MakeBranch(Option_t* opt) ;
73   RecPointsList* PpsdClusters() {return fPpsdClusters;}             // gets TClonesArray of clusters in the PPSD 
74   void           Reconstruction(AliPHOSReconstructioner& Reconstructioner) ;
75   void           ResetClusters(){} ;
76   void           SetReconstructioner(AliPHOSReconstructioner& Reconstructioner) {fReconstructioner = &Reconstructioner;} //
77   virtual void   StepManager(void) ;                                // does the tracking through PHOS and a preliminary digitalization
78   TObjArray *   TrackSegments(){return fTrackSegments ;}
79   // inlines
80
81   virtual AliPHOSGeometry * GetGeometry() { return fGeom ; }  
82   Int_t IsVersion(void) const { return 4 ; }
83
84 private:
85
86   AliPHOSGeometry  *        fGeom ; // geometry definition
87   RecPointsList    *        fEmcClusters;    //!
88   Int_t                     fNTmpHits ;     //!  used internally for digitalization (!=do not stream)
89   RecPointsList    *        fPpsdClusters;  //!
90   TObjArray *               fTrackSegments ;//!
91   TClonesArray *            fTmpHits ;      //!  idem
92   AliPHOSReconstructioner * fReconstructioner ; // Reconstrutioner of the PHOS event: Clusterization and subtracking procedures
93   AliPHOSTrackSegmentMaker       * fTrackSegmentMaker ;
94 public:
95
96   ClassDef(AliPHOSv0,1)  // PHOS main class , version subatech
97
98 };
99
100 #endif // AliPHOSV4_H