Fixing an error in the computation of the efficiency of a whole chamber (Matthieu)
[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                              TClonesArray* chamberTDHistList,
33                              TClonesArray* chamberTTHistList,
34                              Bool_t isCosmic = kFALSE);
35
36 //Destructor:
37   virtual ~AliCheckMuonDetEltResponse();
38
39
40   void CheckDetEltResponse ();
41   void TrackLoop ();
42   void TrackParamLoop ();
43
44   void SetCosmic(Bool_t isCosmic) {fIsCosmicData = isCosmic;};
45   Bool_t IsCosmic() {return fIsCosmicData;};
46  
47 private:
48   
49   void FillTDHistos (Int_t chamber, Int_t detElt,
50                      Double_t posXL, Double_t posYL);
51
52   void FillTTHistos (Int_t chamber, Int_t detElt,
53                      Double_t posXL, Double_t posYL);
54
55   void FindAndFillMissedDetElt (AliMUONTrackParam* extrapTrackParam,
56                                 Int_t firstMissCh, Int_t lastChamber);
57
58   void CoordinatesOfMissingCluster(Double_t x1, Double_t y1, Double_t z1,
59                                    Double_t x2, Double_t y2, Double_t z2,
60                                    Double_t& x, Double_t& y);
61
62   Bool_t CoordinatesInDetEltSt12(Int_t DeId, Double_t x, Double_t y);
63   Bool_t CoordinatesInDetEltSt345(Int_t DeId, Double_t x, Double_t y);
64
65
66   Int_t fNCh; //!<Number of tracking chamber.
67   Int_t fNSt; //!<Number of tracking station.
68   Int_t fNDE; //!<Number of detection element in the tracking system.
69
70   Int_t FromDetElt2iDet (Int_t chamber, Int_t detElt);
71   Int_t FromDetElt2LocalId (Int_t chamber, Int_t detElt);
72
73   const AliMUONGeometryTransformer* fTransformer; //!<Geometry transformer
74
75   AliESDEvent* fESD;
76
77   Int_t fNbrClustersCh[10];      //!<Number of clusters in the chamber [fChamberNbr].
78   Int_t fTracksTotalNbr;         //!<Total number of tracks in the event.
79   Int_t fTrackFilter[10];        //!<To select track for the efficiency calculation.
80   Bool_t fIsCosmicData;          ///< Check if the data are cosmic rays (used only to cut cosmic shower at hte trigger level if true)
81
82   TClonesArray     * fTrackParams;
83   AliMUONTrackParam* fTrackParam;
84   AliMUONVCluster  * fCluster;
85
86   TClonesArray* fDetEltTDHistList; //!<List of histograms of the tracks detected in the detection elements 
87   TClonesArray* fDetEltTTHistList; //!<List of histograms of the tracks which have passed through the detection elements
88   TClonesArray* fChamberTDHistList; //!<List of histograms of the tracks detected in the chambers 
89   TClonesArray* fChamberTTHistList; //!<List of histograms of the tracks which have passed through the chambers
90
91   static const Int_t fNbrOfChamber;            ///< The total number of chamber in the tracking system.
92   static const Int_t fNbrOfStation;            ///< The total number of station in the tracking system.
93   static const Int_t fNbrOfDetectionElt[10];   ///< The total number of detection element in each chamber.
94   static const Int_t fFirstDetectionElt[10];   ///< The Id of the first detection element of each chamber.
95   static const Int_t fOffset;                  ///< fFirstDetectionElt[iChamber] = fOffset * (iChamber+1).
96   static const Int_t fOverlapSize;             ///< Average size (in cm) of the overlap area between two detection eltement.
97   static const Int_t fYSlatSize;               ///< Average size (in cm) of the overlap area between two detection eltement.
98
99   ClassDef(AliCheckMuonDetEltResponse, 0)
100 };
101 #endif