Coding convention
[u/mrichter/AliRoot.git] / HMPID / AliHMPID.h
1 #ifndef AliHMPID_h
2 #define AliHMPID_h
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 #include <AliDetector.h>  //base class
7 #include <TClonesArray.h> //XxxCreate() 
8 #include <TObjArray.h>    //fDig,fClu field
9
10 //.
11 //HMPID base class
12 //.
13
14 class AliHMPID : public AliDetector //TObject-TNamed-AliModule-AliDetector-AliHMPID
15 {
16 public:
17 //ctor & dtor    
18             AliHMPID(const char *nm,const char *ttl);                                              //named ctor
19             AliHMPID(                              ):AliDetector(    ),fSdi(0),fDig(0),fClu(0) {}  //default ctor          
20   virtual  ~AliHMPID();                                            
21 //framework part  
22           void  BuildGeometry   (                ) {}          //from AliModule invoked from AliMC::InitGeometry() to build geometry for old event display
23   virtual void  CreateMaterials (                )=0;          //from AliModule invoked from AliMC::ConstructGeometry() to define detector materials
24   virtual void  CreateGeometry  (                )=0;          //from AliModule invoked from AliMC::ConstructGeometry() to build detector for simulation
25
26   virtual Int_t IsVersion       (                )const=0;     //from AliModule not used        
27   virtual void  Init            (                )=0;          //from AliModule invoked from AliMC::InitGeometry() after CreateGeometry() to do VolID initialization
28   virtual void  DefineOpticalProperties() {}                   //from AliModule invoked from AliMC::ConstructOpGeometry() to set Cerenkov properties
29           void  MakeBranch      (Option_t *opt="");            //from AliModule invokde from AliRun::Tree2Tree() to make requested HMPID branch
30           void  SetTreeAddress  (                );            //from AliModule invoked from AliRun::GetEvent(), AliLoader::SetTAddrInDet()
31   virtual void  StepManager     (                )=0;          //from AliModule invoked from AliMC
32           void  DoFeed          (Bool_t doFeed   ){fgDoFeed=doFeed;} // Set feedback photons
33 //private part +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
34   void          HitCreate(         )     {if(fHits)return; fHits=new TClonesArray("AliHMPIDHit"); fNhits=0;     }//create hits list
35               
36   TClonesArray* SdiLst   (         )const{return fSdi;                                                          }//get sdigits list 
37   void          SdiCreate(         )     {if(fSdi)return; fSdi=new TClonesArray("AliHMPIDDigit");               }//create sdigits list
38   void          SdiReset (         )     {if(fSdi)  fSdi ->Clear();                                             }//clean sdigits list
39          
40   TObjArray*    DigLst   (         )const{return fDig;                                                          }//get digits list for all chambers
41   TClonesArray* DigLst   (Int_t c  )const{return fDig ? (TClonesArray *)fDig->At(c):0;                          }//get digits list for chamber
42   void          DigCreate(         )     {
43     if (fDig) return; //PH do not recreate existing containers
44     fDig=new TObjArray(7);for(Int_t i=0;i<7;i++)fDig->AddAt(new TClonesArray("AliHMPIDDigit"),i);               }//create digits list
45   void          DigReset (         )     {if(fDig)for(int i=0;i<7;i++)fDig->At(i)->Clear();                     }//clean digits list 
46           
47   TObjArray*    CluLst   (         )const{return fClu;                                                          }//get clusters list for all chambers
48   TClonesArray* CluLst   (Int_t c  )const{return fClu ? (TClonesArray *)fClu->At(c):0;                          }//get clusters list for chamber
49   void          CluCreate(         )     {
50     if (fClu) return; //PH do not recreate existing containers
51     fClu=new TObjArray(7); for(Int_t i=0;i<7;i++)fClu->AddAt(new TClonesArray("AliHMPIDCluster"),i);            }//create clusters list
52          void   CluReset (         )     {if(fClu)for(int i=0;i<7;i++)fClu->At(i)->Clear();                     }//clean clusters list
53 protected:  
54   static  Bool_t fgDoFeed;                        //Flag to switch on/off Feedback photon creation
55   TClonesArray         *fSdi;                     //! list of sdigits  
56   TObjArray            *fDig;                     //! each chamber holds it's one list of digits
57   TObjArray            *fClu;                     //! each chamber holds it's one list of clusters 
58   
59 private:
60   AliHMPID(const AliHMPID &rich           );
61   AliHMPID&  operator=(const AliHMPID&);
62
63   ClassDef(AliHMPID,11)                            //Main HMPID class 
64 };//class AliHMPID  
65
66 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
67 #endif