]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muondep/AliCheckMuonDetEltResponse.h
New centrality selection based on ZDCvsZEM (LHC10h, pass2). Corrected, in the previou...
[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 /* $Id$ */ 
7
8 /// \ingroup base
9 /// \class AliCheckMuonDetEltResponse
10 /// \brief tracking chamber efficiency from data
11 //Author: Nicolas LE BRIS - SUBATECH Nantes
12
13 #include <TObject.h>
14
15 class AliESDEvent;
16 class AliMUONTrackParam;
17 class AliMUONTrack;
18 class AliMUONVCluster;
19 class AliMUONGeometryTransformer;
20 class TList;
21 class TObjArray;
22
23 class AliCheckMuonDetEltResponse : public TObject
24 {
25 public:
26   AliCheckMuonDetEltResponse();
27   AliCheckMuonDetEltResponse(const AliCheckMuonDetEltResponse& rhs);
28   AliCheckMuonDetEltResponse& operator=(const AliCheckMuonDetEltResponse& rhs);
29 //Constructor:
30   AliCheckMuonDetEltResponse(const AliMUONGeometryTransformer* transformer,
31                              AliESDEvent* esd,
32                              TList* detEltTDHistList,
33                              TList* detEltTTHistList,
34                              TList* chamberTDHistList,
35                              TList* chamberTTHistList);
36
37 //Destructor:
38   virtual ~AliCheckMuonDetEltResponse();
39
40
41   void CheckDetEltResponse ();
42   void TrackLoop ();
43   void TrackParamLoop ();
44
45   Int_t GetNbrUsableTracks() const {return fNbrUsableTracks;};
46   void SetNbrUsableTracks(Int_t nUsable){fNbrUsableTracks = nUsable;};
47  
48 private:
49   
50   void FillTDHistos (Int_t chamber, Int_t detElt,
51                      Double_t posXL, Double_t posYL);
52
53   void FillTTHistos (Int_t chamber, Int_t detElt,
54                      Double_t posXL, Double_t posYL);
55
56   void FindAndFillMissedDetElt (AliMUONTrackParam* extrapTrackParam,
57                                 Int_t firstMissCh, Int_t lastChamber);
58
59   void CoordinatesOfMissingCluster(Double_t x1, Double_t y1, Double_t z1,
60                                    Double_t x2, Double_t y2, Double_t z2,
61                                    Double_t& x, Double_t& y) const;
62
63   Bool_t CoordinatesInDetEltSt12(Int_t DeId, Double_t x, Double_t y);
64   Bool_t CoordinatesInDetEltSt345(Int_t DeId, Double_t x, Double_t y);
65
66   Int_t FromDetElt2iDet (Int_t chamber, Int_t detElt) const;
67   Int_t FromDetElt2LocalId (Int_t chamber, Int_t detElt) const;
68
69
70   const AliMUONGeometryTransformer* fkTransformer; //!<Geometry transformer
71
72   AliESDEvent* fESD;             //<!Current event
73
74   Int_t fNbrClustersCh[10];      //!<Number of clusters in the chamber [fChamberNbr].
75   Int_t fTracksTotalNbr;         //!<Total number of tracks in the event.
76   Int_t fTrackFilter[10];        //!<To select track for the efficiency calculation.
77   Int_t fNbrUsableTracks;        //!<Number of usable tracks (matches trigger and contains traker data, plus a trigger condition for cosmic)
78
79   TObjArray        * fTrackParams;  //!<Array of track param
80   AliMUONTrackParam* fTrackParam;   //!<Current track param
81   AliMUONVCluster  * fCluster;      //!<Current cluster
82
83   TList* fDetEltTDHistList; //!<List of histograms of the tracks detected in the detection elements 
84   TList* fDetEltTTHistList; //!<List of histograms of the tracks which have passed through the detection elements
85   TList* fChamberTDHistList; //!<List of histograms of the tracks detected in the chambers 
86   TList* fChamberTTHistList; //!<List of histograms of the tracks which have passed through the chambers
87
88   static const Int_t fgkNCh;                     ///< The total number of chamber in the tracking system.
89   static const Int_t fgkNSt;                     ///< The total number of station in the tracking system.
90   static const Int_t fgkNDE;                     ///< Number of detection element in the tracking system.
91   static const Int_t fgkNbrOfDetectionElt[10];   ///< The total number of detection element in each chamber.
92   static const Int_t fgkFirstDetectionElt[10];   ///< The Id of the first detection element of each chamber.
93   static const Int_t fgkOffset;                  ///< fFirstDetectionElt[iChamber] = fOffset * (iChamber+1).
94
95   ClassDef(AliCheckMuonDetEltResponse, 0);
96 };
97 #endif