Reconstruction of raw data from beam test 2006 (B.Polichtchouk)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSvImpacts.h
1 #ifndef ALIPHOSVIMPACTS_H
2 #define ALIPHOSVIMPACTS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 /* History of cvs commits:
9  *
10  * $Log$
11  */
12
13 //_________________________________________________________________________
14 // Implementation version vImpacts of PHOS Manager class.
15 // This class inherits from v1 and adds impacts storing.
16 // Impacts stands for exact values of track coming to the detectors
17 // EMC, CPV or PPSD.
18 // Impacts are written to the same tree as hits are
19 // but in separate branches.
20 //*--                  
21 //*-- Author: Yuri Kharlov (IHEP, Protvino/SUBATECH, Nantes)
22
23 // --- ROOT system ---
24 class TList ;
25 class TLorentzVector ;
26
27
28 // --- AliRoot header files ---
29 #include "AliPHOSv1.h"
30
31 class AliPHOSvImpacts : public AliPHOSv1 {
32
33 public:
34
35   AliPHOSvImpacts(void) ;
36   AliPHOSvImpacts(const char *name, const char *title="") ;
37   AliPHOSvImpacts(AliPHOSvImpacts & phos) : AliPHOSv1(phos) {
38     phos.Copy(*this) ; 
39   }
40   virtual ~AliPHOSvImpacts(void) ;
41
42   virtual void   Copy(TObject & phos) const; 
43   virtual void   AddImpact(const char* detector, Int_t shunt, Int_t primary, Int_t track,
44                            Int_t module, Int_t pid, TLorentzVector p, Float_t *xyz) ;
45   virtual void   MakeBranch(Option_t *opt=" ");
46   virtual void   ResetHits();
47   virtual Int_t  IsVersion(void) const {
48     // Gives the version number 
49     return 1 ; 
50   }
51   virtual void   StepManager(void) ;                              
52   virtual const TString Version(void)const{ 
53     // returns the version number 
54     return TString("vImpacts") ; 
55   }
56
57   AliPHOSvImpacts & operator = (const AliPHOSvImpacts & /*rvalue*/)  {
58     // assignement operator requested by coding convention but not needed
59     Fatal("operator =", "not implemented") ;
60     return *this ; 
61   }
62
63 protected:
64
65   TList * fEMCImpacts;         // Array of impacts in EMC modules
66   TList * fCPVImpacts;         // Array of impacts in CPV (IHEP) modules
67   TList * fPPSDImpacts;        // Array of impacts in PPSD modules
68
69   Int_t  fNEMCImpacts[5];      // Number of EMC impacts per module
70   Int_t  fNCPVImpacts[5];      // Number of CPV impacts per module
71   Int_t  fNPPSDImpacts[5];     // Number of PPSD impacts per module
72
73
74   ClassDef(AliPHOSvImpacts,1)  // Implementation of PHOS manager class for layout EMC+PPSD
75
76 };
77
78 #endif // AliPHOSVIMPACTS_H