]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HMPID/AliHMPIDv2.h
Correction suggested by Valgrind (Yves)
[u/mrichter/AliRoot.git] / HMPID / AliHMPIDv2.h
1 #ifndef AliHMPIDv2_h
2 #define AliHMPIDv2_h
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //.
8 //HMPID class for new geometry based on TGeo
9 //.
10 //.
11
12 #include "AliHMPID.h"             //base class 
13 #include "AliHMPIDDigitizer.h"    //CreateDigitizer()
14 #include <TGeoManager.h>     
15 class AliHMPIDv2 : public AliHMPID //TObject-TNamed-AliModule-AliDetector-AliHMPID-AliHMPIDv2
16 {
17 public:
18                  AliHMPIDv2()                                   :AliHMPID(          ),fIdPad(-1),fIdCell(-1) {;}          //default ctor
19                  AliHMPIDv2(const char *name, const char *title):AliHMPID(name,title),fIdPad(-1),fIdCell(-1) {;}          //named ctor
20   virtual       ~AliHMPIDv2()                                                         {;}          //dtor
21 //framework part++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   
22           void    AddAlignableVolumes(                               )const;                                   //from AliModule invoked from AliMC           
23           void    CreateMaterials  (                                 );                                        //from AliModule invoked from AliMC
24 static    void    IdealPosition(Int_t iCh,TGeoHMatrix *m);                                                     //ideal position of a given chamber 
25           void    CreateGeometry   (                                 );                                        //from AliModule invoked from AliMC
26   AliDigitizer*   CreateDigitizer  (AliRunDigitizer *m               )const{return new AliHMPIDDigitizer(m);}  //from AliModule invoked from AliSimulation::RunDigitization()
27           void    Digits2Raw       (                                 );                                        //from AliModule invoked from AliSimulation::WriteRawFiles()
28   virtual void    DefineOpticalProperties(                           );                                        //from AliModule invoked from AliMC::ConstructOpGeometry() to set Cerenkov properties
29           void    InitProperties   (                                 );                                        //define the phys processes on/off (dray,eloss...)                                                 
30           void    Hits2SDigits     (                                 );                                        //from AliModule invoked from AliSimulation::RunSDigitization()
31           void    Init             (                                 );                                        //from AliModule invoked from AliMC::InitGeometry()
32           Int_t   IsVersion        (                                 )const{return 1;                      }   //from AliModule not used
33           void    Print            (const Option_t *opt=""           )const;                                   //from TObject
34           Bool_t  Raw2SDigits      (AliRawReader *pRR                );                                        //from AliModule invoked from AliSimulation  
35           void    StepManager      (                                 );                                        //from AliModule invoked from AliMC::Stepping()
36 //private part++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
37           void    GenFee           (Float_t qtot                     );                                        //generates feedback photons
38   static  Float_t Fresnel          (Float_t geV,Float_t p, Bool_t pl );                                        //deals with Fresnel absorption on PC          
39   static  void    Hit2Sdi          (TClonesArray *pH,TClonesArray *pS);                                        //hits to sdigits conversion
40           Bool_t  IsLostByFresnel  (                                 );                                        //checks if the photon lost on Fresnel reflection  
41           void    StepCount        (                                 );                                        //counts particles in StepManager()
42           void    StepHistory      (                                 );                                        //prints history of tracking in StepManager()
43   static  void    TestGeom         (                                 );                                        //tests the validity of geometry
44   static  void    TestPoint        (Int_t ch,Float_t x,Float_t y     );                                        //tests the validity of geometry
45 protected:
46   enum EMedia {kAir=1,kRoha=2,kSiO2=3,kC6F14=4,kCH4=5,kCsI=6,kAl=7,kCu=8,kW=9,kNeo=10,kAr=11};                       //media ids, used for geometry creation  
47   enum Ecounters {kMipEnterRad=1,kCkovNew,kCkovNewRad,kCkovNewWin,kCkovNewProxGap,kCkovNewAmpGap,kCkovEnterPc,kPhotoEle};    //counters id's
48   Int_t fIdPad,fIdCell;                                                                 //! volumes ID's used in StepManager() and Count()
49   ClassDef(AliHMPIDv2,2)                                                                //HMPID full version for simulation
50 };
51
52 #endif