7ffe7e93ad77fc6bcefdf08cecca00cc0b5900ae
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALv2.h
1 #ifndef ALIEMCALV2_H
2 #define ALIEMCALV2_H
3 /* Copyright(c) 1998-2004, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                      
5          */
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 // Implementation version v2 of EMCAL Manager class for Shish-Kebab case 
10 //*--                  
11 //*-- Author:  Aleksei Pavlinov
12
13 // --- ROOT system ---
14 class TClonesArray;
15 class TLorentzVector;
16 class TFile;
17 class TH1F;
18
19 class TBrowser;
20 class AliEMCALGeometry;
21
22 // --- AliRoot header files ---
23 #include "AliEMCALv1.h"
24
25 // for TRD2 case
26 //#include "TGeant3.h"
27
28 class AliEMCALv2 : public AliEMCALv1 {
29   
30 public:
31
32   AliEMCALv2(void) ; 
33   AliEMCALv2(const char *name, const char *title="") ;
34   // cpy ctor: no implementation yet
35   // requested by the Coding Convention
36   AliEMCALv2(const AliEMCALv1 & emcal):AliEMCALv1(emcal) {
37     Fatal("cpy ctor", "not implemented") ;  }
38   virtual ~AliEMCALv2(void) ;
39   virtual void  AddHit( Int_t shunt, Int_t primary, Int_t track, Int_t iparent, Float_t ienergy,
40                         Int_t id, Float_t *hits, Float_t *p);
41
42   virtual void StepManager(void) ;
43   virtual void FinishEvent();
44
45   // Gives the version number 
46   virtual Int_t  IsVersion(void) const {return 2;}
47   virtual const TString Version(void)const {return TString("v2");}
48   //  virtual void RemapTrackHitIDs(Int_t *map);
49   //virtual void FinishPrimary();
50   // virtual void SetTimeCut(Float_t tc){ fTimeCut = tc;}
51   // virtual Float_t GetTimeCut(){return fTimeCut;}
52   // assignement operator requested by coding convention but not needed  
53   AliEMCALv2 & operator = (const AliEMCALv1 & /*rvalue*/){
54     Fatal("operator =", "not implemented") ;  
55     return *this;}
56   // 23-mar-05
57   virtual Double_t GetDepositEnergy(int print=1); // *MENU*
58   // 30-aug-04
59   virtual void Browse(TBrowser* b);
60   // drawing
61   void DrawCalorimeterCut(const char *name="SMOD", int axis=3, double dcut=1.); // *MENU*
62   void DrawSuperModuleCut(const char *name="EMOD", int axis=2, double dcut=0.03, int fill = 6);//  *MENU*
63   void DrawTowerCut(const char *name="SCMY", int axis=2, double dcut=0., int fill=1, char *optShad="on");   //  *MENU*
64   void DrawAlicWithHits(int mode=1);                            // *MENU*
65   void SetVolumeAttributes(const char *name="SCM0",const int seen=1, int color=1, int fill=1); // *MENU*
66   void TestIndexTransition(int pri=0, int idmax=0); // *MENU*
67
68   AliEMCALGeometry* fGeometry; //!
69   TH1F*             fHDe;      //!
70   TH1F*             fHNhits;      //!
71
72   ClassDef(AliEMCALv2,1)    //Implementation of EMCAL manager class to produce hits in a Shish-Kebab
73     
74 };
75
76 #endif // AliEMCALV2_H