Coding rule violations corrected.
[u/mrichter/AliRoot.git] / ITS / AliITSDetType.h
1 #ifndef ALIITSDETTYPE_H
2 #define ALIITSDETTYPE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ////////////////////////////////////////////////////////////////////////
9 // This Class owns the classes needed to to detector simulations and
10 // reconstruction. This includes the detector segmentation classes,
11 // the detector responce classes, the detector simulatin classes, and
12 // the detector reconstruction (clustering) classes for all of the ITS
13 // detectors.
14 ////////////////////////////////////////////////////////////////////////
15
16 #include <TString.h>
17 #include <TObject.h>
18
19 #include "AliITSgeom.h"
20 #include "AliITSsegmentation.h"
21 #include "AliITSresponse.h"
22
23 class AliITSClusterFinder;
24 class AliITSsimulation;
25
26 class AliITSDetType:public TObject{
27
28  public:
29     AliITSDetType();
30     AliITSDetType(AliITSDetector det,AliITSresponse *res,
31                   AliITSsegmentation *seg,AliITSsimulation *sim,
32                   AliITSClusterFinder *cf,const Char_t *DigClassName,
33                   const Char_t *ClustClassName);
34     virtual ~AliITSDetType();
35     AliITSDetType(const AliITSDetType &source); // copy constructor
36     AliITSDetType& operator=(const AliITSDetType &source); // assign. operator
37     // Return the type of detector these quantities are defined for
38     AliITSDetector GetDetType(){return fDetType;}
39     // Set the type of Detector these quantities are defined for
40     void SetDetType(AliITSDetector det){fDetType = det;}
41
42     // Set the defaults
43     virtual void   Init() {}
44     //
45     virtual void    SegmentationModel(AliITSsegmentation* thisSegmentation){ 
46         // Configure segmentation model
47         if(fSegmentation) delete fSegmentation;
48         fSegmentation=thisSegmentation;
49     }
50     //
51     virtual void    ResponseModel(AliITSresponse* thisResponse) { 
52         // Configure response model
53         if(fResponse) delete fResponse;
54         fResponse=thisResponse;
55     }
56     //
57     virtual void    SimulationModel(AliITSsimulation *thisSimulation) {
58         // Configure simulation model
59         fSimulation = thisSimulation;
60     }
61     //
62     virtual void ReconstructionModel(AliITSClusterFinder *thisReconstruction) {
63         // Configure reconstruction model
64         fReconst = thisReconstruction;
65     }
66     virtual void    ClassNames(const char *digit, const char *cluster) { 
67         // Set class names for digits and clusters
68         fDigClassName=digit; fClustClassName=cluster; 
69     }
70     AliITSsegmentation*      &GetSegmentationModel(){
71         //  Get reference to segmentation model
72         return fSegmentation;
73     }
74     AliITSresponse*          &GetResponseModel(){
75         //  Get reference to response model
76         return fResponse;
77     }
78     AliITSsimulation*        &GetSimulationModel(){
79         //  Get reference to simulation model
80         return fSimulation;
81     }
82     AliITSClusterFinder*     &GetReconstructionModel(){
83         //  Get reference to hit reconstruction model
84         return fReconst;
85     }
86     //
87     void GetClassNames(char *digit,char *cluster){
88         // Get class names for digits and rec points
89         strcpy(digit,fDigClassName.Data());
90         strcpy(cluster,fClustClassName.Data()); 
91     } 
92     // Return the Digit Class name
93     TString GetDigitClassName() const { return fDigClassName;}
94     // Return the Cluster Class name
95     TString GetClusterClassName() const { return fClustClassName;}
96
97  protected:
98     AliITSDetector       fDetType;           // Type of detector
99     AliITSresponse       *fResponse;         // response
100     AliITSsegmentation   *fSegmentation;     // segmentation
101     AliITSsimulation     *fSimulation;       // simulation
102     AliITSClusterFinder  *fReconst;          // cluster finder
103     TString              fDigClassName;      // string
104     TString              fClustClassName;    // string
105
106     ClassDef(AliITSDetType,2) //Detector simulation/reconstruction class holder
107
108 };
109
110 #endif