Reseting the MC label to a default value of -1 before evaluating them (Philippe P...
[u/mrichter/AliRoot.git] / PWG3 / muondep / AliCheckMuonDetEltResponse.h
1 #ifndef ALICHECKMUONDETELTRESPONSE_H 
2 #define ALICHECKMUONDETELTRESPONSE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /// \ingroup base
7 /// \class AliCheckMuonDetEltResponse
8 /// \brief tracking chamber efficiency from data
9 //Author: Nicolas LE BRIS - SUBATECH Nantes
10
11 #include <TH2F.h>
12 #include <TObject.h>
13 #include <TClonesArray.h>
14
15 class AliMUONTrackParam;
16 class AliMUONTrack;
17 class AliMUONVCluster;
18 class AliMUONGeometryTransformer;
19 class AliESDEvent;
20
21 class AliCheckMuonDetEltResponse : public TObject
22 {
23 public:
24   AliCheckMuonDetEltResponse();
25   AliCheckMuonDetEltResponse(const AliCheckMuonDetEltResponse& rhs);
26   AliCheckMuonDetEltResponse& operator=(const AliCheckMuonDetEltResponse& rhs);
27 //Constructor:
28   AliCheckMuonDetEltResponse(const AliMUONGeometryTransformer* transformer,
29                              AliESDEvent* esd,
30                              TClonesArray* detEltTDHistList,
31                              TClonesArray* detEltTTHistList);
32
33 //Destructor:
34   virtual ~AliCheckMuonDetEltResponse();
35
36
37   void CheckDetEltResponse ();
38   void TrackLoop ();
39   void TrackParamLoop ();
40  
41 private:
42   
43   void FillDetEltTDHisto (Int_t chamber, Int_t detElt,
44                           Double_t posXL, Double_t posYL);
45
46   void FillDetEltTTHisto (Int_t chamber, Int_t detElt,
47                           Double_t posXG, Double_t posYG, Double_t posZG,
48                           Double_t posXL, Double_t posYL, Double_t posZL);
49
50   void CalculMissClusterParam (AliMUONTrackParam* extrapTrackParam,
51                                Int_t firstMissCh, Int_t nbrOfMissCh);
52
53   void GetDetEltFromPosition (Int_t chamber,
54                               Double_t posX, Double_t posY, Double_t posZ);
55
56
57   Int_t fNCh; //!<Number of tracking chamber.
58   Int_t fNSt; //!<Number of tracking station.
59   Int_t fNDE; //!<Number of detection element in the tracking system.
60
61   Int_t FromDetElt2iDet (Int_t chamber, Int_t detElt);
62
63   const AliMUONGeometryTransformer* fTransformer; //!<Geometry transformer
64
65   AliESDEvent* fESD;
66
67   Int_t fNbrClustersCh[10];      //!<Number of clusters in the chamber [fChamberNbr].
68   Int_t fTracksTotalNbr;         //!<Total number of tracks in the event.
69   Int_t fGetDetElt[2];           //!<Detection elemtents obtained from position(X,Y,Z). fGetDetElt[1] is for the case where there is an overlap.
70   Int_t fTrackFilter[10];        //!<To select track for the efficiency calculation.
71
72   TClonesArray     * fTrackParams;
73   AliMUONTrackParam* fTrackParam;
74   AliMUONVCluster  * fCluster;
75
76   TClonesArray* fDetEltTDHistList; //!<List of histograms of the tracks detected in the detection elements 
77   TClonesArray* fDetEltTTHistList; //!<List of histograms of the tracks which have passed through the detection elements
78
79   static const Int_t fNbrOfChamber;            ///< The total number of chamber in the tracking system.
80   static const Int_t fNbrOfStation;            ///< The total number of station in the tracking system.
81   static const Int_t fNbrOfDetectionElt[10];   ///< The total number of detection element in each chamber.
82   static const Int_t fFirstDetectionElt[10];   ///< The Id of the first detection element of each chamber.
83   static const Int_t fOffset;                  ///< fFirstDetectionElt[iChamber] = fOffset * (iChamber+1).
84   static const Int_t fOverlapSize;             ///< Average size (in cm) of the overlap area between two detection eltement.
85   static const Int_t fYSlatSize;               ///< Average size (in cm) of the overlap area between two detection eltement.
86
87   ClassDef(AliCheckMuonDetEltResponse, 0)
88 };
89 #endif