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 */
9 /// \class AliCheckMuonDetEltResponse
10 /// \brief tracking chamber efficiency from data
11 //Author: Nicolas LE BRIS - SUBATECH Nantes
16 class AliMUONTrackParam;
18 class AliMUONVCluster;
19 class AliMUONGeometryTransformer;
23 class AliCheckMuonDetEltResponse : public TObject
26 AliCheckMuonDetEltResponse();
27 AliCheckMuonDetEltResponse(const AliCheckMuonDetEltResponse& rhs);
28 AliCheckMuonDetEltResponse& operator=(const AliCheckMuonDetEltResponse& rhs);
30 AliCheckMuonDetEltResponse(const AliMUONGeometryTransformer* transformer,
32 TList* detEltTDHistList,
33 TList* detEltTTHistList,
34 TList* chamberTDHistList,
35 TList* chamberTTHistList);
38 virtual ~AliCheckMuonDetEltResponse();
41 void CheckDetEltResponse ();
43 void TrackParamLoop ();
45 Int_t GetNbrUsableTracks() const {return fNbrUsableTracks;};
46 void SetNbrUsableTracks(Int_t nUsable){fNbrUsableTracks = nUsable;};
50 void FillTDHistos (Int_t chamber, Int_t detElt,
51 Double_t posXL, Double_t posYL);
53 void FillTTHistos (Int_t chamber, Int_t detElt,
54 Double_t posXL, Double_t posYL);
56 void FindAndFillMissedDetElt (AliMUONTrackParam* extrapTrackParam,
57 Int_t firstMissCh, Int_t lastChamber);
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;
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);
66 Int_t FromDetElt2iDet (Int_t chamber, Int_t detElt) const;
67 Int_t FromDetElt2LocalId (Int_t chamber, Int_t detElt) const;
70 const AliMUONGeometryTransformer* fkTransformer; //!<Geometry transformer
72 AliESDEvent* fESD; //<!Current event
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)
79 TObjArray * fTrackParams; //!<Array of track param
80 AliMUONTrackParam* fTrackParam; //!<Current track param
81 AliMUONVCluster * fCluster; //!<Current cluster
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
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).
95 ClassDef(AliCheckMuonDetEltResponse, 0);