New PHOS version AliPHOSvImpacts which stores impacts
[u/mrichter/AliRoot.git] / PHOS / AliPHOSvImpacts.h
CommitLineData
09906775 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//_________________________________________________________________________
7// Implementation version vImpacts of PHOS Manager class.
8// This class inherits from v1 and adds impacts storing.
9// Impacts stands for exact values of track coming to the detectors
10// EMC, CPV or PPSD.
11// Impacts are written to the same tree as hits are
12// but in separate branches.
13//*--
14//*-- Author: Yuri Kharlov (IHEP, Protvino/SUBATECH, Nantes)
15
16// --- ROOT system ---
17class TList ;
18class TLorentzVector ;
19
20
21// --- AliRoot header files ---
22#include "AliPHOSv1.h"
23
24class AliPHOSvImpacts : public AliPHOSv1 {
25
26public:
27
28 AliPHOSvImpacts(void) ;
29 AliPHOSvImpacts(const char *name, const char *title="") ;
30 AliPHOSvImpacts(const AliPHOSvImpacts & phos) {
31 // cpy ctor: no implementation yet
32 // requested by the Coding Convention
33 abort() ;
34 }
35 virtual ~AliPHOSvImpacts(void) ;
36
37 virtual void AddImpact(char* detector, Int_t shunt, Int_t primary, Int_t track,
38 Int_t module, Int_t pid, TLorentzVector p, Float_t *xyz) ;
39 virtual void MakeBranch(Option_t *opt=" ", const char *file=0) ;
40 virtual void ResetHits();
41 virtual Int_t IsVersion(void) const {
42 // Gives the version number
43 return 1 ;
44 }
45 virtual void StepManager(void) ;
46 virtual TString Version(void){
47 // returns the version number
48 return TString("vImpacts") ;
49 }
50
51 AliPHOSvImpacts & operator = (const AliPHOSvImpacts & rvalue) {
52 // assignement operator requested by coding convention but not needed
53 abort() ;
54 return *this ;
55 }
56
57protected:
58
59 TList * fEMCImpacts; // Array of impacts in EMC modules
60 TList * fCPVImpacts; // Array of impacts in CPV (IHEP) modules
61 TList * fPPSDImpacts; // Array of impacts in PPSD modules
62
63 Int_t fNEMCImpacts[5]; // Number of EMC impacts per module
64 Int_t fNCPVImpacts[5]; // Number of CPV impacts per module
65 Int_t fNPPSDImpacts[5]; // Number of PPSD impacts per module
66
67
68 ClassDef(AliPHOSvImpacts,1) // Implementation of PHOS manager class for layout EMC+PPSD
69
70};
71
72#endif // AliPHOSVIMPACTS_H