ROOT logo
#ifndef ALIPHOSVIMPACTS_H
#define ALIPHOSVIMPACTS_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

/* History of cvs commits:
 *
 * $Log$
 * Revision 1.9  2006/09/13 07:31:01  kharlov
 * Effective C++ corrections (T.Pocheptsov)
 *
 * Revision 1.8  2005/05/28 14:19:05  schutz
 * Compilation warnings fixed by T.P.
 *
 */

//_________________________________________________________________________
// Implementation version vImpacts of PHOS Manager class.
// This class inherits from v1 and adds impacts storing.
// Impacts stands for exact values of track coming to the detectors
// EMC, CPV or PPSD.
// Impacts are written to the same tree as hits are
// but in separate branches.
//*--                  
//*-- Author: Yuri Kharlov (IHEP, Protvino/SUBATECH, Nantes)

// --- ROOT system ---
class TList ;
class TLorentzVector ;


// --- AliRoot header files ---
#include "AliPHOSv1.h"

class AliPHOSvImpacts : public AliPHOSv1 {

public:

  AliPHOSvImpacts(void) ;
  AliPHOSvImpacts(const char *name, const char *title="") ;
  virtual ~AliPHOSvImpacts(void) ;

  virtual void   AddImpact(const char* detector, Int_t shunt, Int_t primary, Int_t track,
			   Int_t module, Int_t pid, TLorentzVector p, Float_t *xyz) ;
  virtual void   MakeBranch(Option_t *opt=" ");
  virtual void   ResetHits();
  virtual Int_t  IsVersion(void) const {
    // Gives the version number 
    return 1 ; 
  }
  virtual void   StepManager(void) ;                              
  virtual const TString Version(void)const{ 
    // returns the version number 
    return TString("vImpacts") ; 
  }

protected:

  TList * fEMCImpacts;         // Array of impacts in EMC modules
  TList * fCPVImpacts;         // Array of impacts in CPV (IHEP) modules
  TList * fPPSDImpacts;        // Array of impacts in PPSD modules

  Int_t  fNEMCImpacts[5];      // Number of EMC impacts per module
  Int_t  fNCPVImpacts[5];      // Number of CPV impacts per module
  Int_t  fNPPSDImpacts[5];     // Number of PPSD impacts per module

 private:
  AliPHOSvImpacts(AliPHOSvImpacts & phos);
  AliPHOSvImpacts & operator = (const AliPHOSvImpacts & /*rvalue*/);

  ClassDef(AliPHOSvImpacts,1)  // Implementation of PHOS manager class for layout EMC+PPSD

};

#endif // AliPHOSVIMPACTS_H
 AliPHOSvImpacts.h:1
 AliPHOSvImpacts.h:2
 AliPHOSvImpacts.h:3
 AliPHOSvImpacts.h:4
 AliPHOSvImpacts.h:5
 AliPHOSvImpacts.h:6
 AliPHOSvImpacts.h:7
 AliPHOSvImpacts.h:8
 AliPHOSvImpacts.h:9
 AliPHOSvImpacts.h:10
 AliPHOSvImpacts.h:11
 AliPHOSvImpacts.h:12
 AliPHOSvImpacts.h:13
 AliPHOSvImpacts.h:14
 AliPHOSvImpacts.h:15
 AliPHOSvImpacts.h:16
 AliPHOSvImpacts.h:17
 AliPHOSvImpacts.h:18
 AliPHOSvImpacts.h:19
 AliPHOSvImpacts.h:20
 AliPHOSvImpacts.h:21
 AliPHOSvImpacts.h:22
 AliPHOSvImpacts.h:23
 AliPHOSvImpacts.h:24
 AliPHOSvImpacts.h:25
 AliPHOSvImpacts.h:26
 AliPHOSvImpacts.h:27
 AliPHOSvImpacts.h:28
 AliPHOSvImpacts.h:29
 AliPHOSvImpacts.h:30
 AliPHOSvImpacts.h:31
 AliPHOSvImpacts.h:32
 AliPHOSvImpacts.h:33
 AliPHOSvImpacts.h:34
 AliPHOSvImpacts.h:35
 AliPHOSvImpacts.h:36
 AliPHOSvImpacts.h:37
 AliPHOSvImpacts.h:38
 AliPHOSvImpacts.h:39
 AliPHOSvImpacts.h:40
 AliPHOSvImpacts.h:41
 AliPHOSvImpacts.h:42
 AliPHOSvImpacts.h:43
 AliPHOSvImpacts.h:44
 AliPHOSvImpacts.h:45
 AliPHOSvImpacts.h:46
 AliPHOSvImpacts.h:47
 AliPHOSvImpacts.h:48
 AliPHOSvImpacts.h:49
 AliPHOSvImpacts.h:50
 AliPHOSvImpacts.h:51
 AliPHOSvImpacts.h:52
 AliPHOSvImpacts.h:53
 AliPHOSvImpacts.h:54
 AliPHOSvImpacts.h:55
 AliPHOSvImpacts.h:56
 AliPHOSvImpacts.h:57
 AliPHOSvImpacts.h:58
 AliPHOSvImpacts.h:59
 AliPHOSvImpacts.h:60
 AliPHOSvImpacts.h:61
 AliPHOSvImpacts.h:62
 AliPHOSvImpacts.h:63
 AliPHOSvImpacts.h:64
 AliPHOSvImpacts.h:65
 AliPHOSvImpacts.h:66
 AliPHOSvImpacts.h:67
 AliPHOSvImpacts.h:68
 AliPHOSvImpacts.h:69
 AliPHOSvImpacts.h:70
 AliPHOSvImpacts.h:71
 AliPHOSvImpacts.h:72
 AliPHOSvImpacts.h:73
 AliPHOSvImpacts.h:74
 AliPHOSvImpacts.h:75
 AliPHOSvImpacts.h:76
 AliPHOSvImpacts.h:77