]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/muondep/AliCheckMuonDetEltResponse.h
Bug in the trigger definition corrected. (R. Arnaldi)
[u/mrichter/AliRoot.git] / PWG3 / muondep / AliCheckMuonDetEltResponse.h
index ac592bed324535ef04a20b1b50fe82f640f029b6..eb200007ea5e2847e25a78ed9674ba48d0d4a796 100644 (file)
@@ -8,15 +8,15 @@
 /// \brief tracking chamber efficiency from data
 //Author: Nicolas LE BRIS - SUBATECH Nantes
 
-#include <TH2F.h>
 #include <TObject.h>
-#include <TClonesArray.h>
 
+class AliESDEvent;
 class AliMUONTrackParam;
 class AliMUONTrack;
 class AliMUONVCluster;
 class AliMUONGeometryTransformer;
-class AliESDEvent;
+class TList;
+class TClonesArray;
 
 class AliCheckMuonDetEltResponse : public TObject
 {
@@ -27,8 +27,10 @@ public:
 //Constructor:
   AliCheckMuonDetEltResponse(const AliMUONGeometryTransformer* transformer,
                             AliESDEvent* esd,
-                            TClonesArray* detEltTDHistList,
-                            TClonesArray* detEltTTHistList);
+                            TList* detEltTDHistList,
+                            TList* detEltTTHistList,
+                            TList* chamberTDHistList,
+                            TList* chamberTTHistList);
 
 //Destructor:
   virtual ~AliCheckMuonDetEltResponse();
@@ -37,53 +39,57 @@ public:
   void CheckDetEltResponse ();
   void TrackLoop ();
   void TrackParamLoop ();
+
+  Int_t GetNbrUsableTracks() const {return fNbrUsableTracks;};
+  void SetNbrUsableTracks(Int_t nUsable){fNbrUsableTracks = nUsable;};
  
 private:
   
-  void FillDetEltTDHisto (Int_t chamber, Int_t detElt,
-                         Double_t posXL, Double_t posYL);
+  void FillTDHistos (Int_t chamber, Int_t detElt,
+                    Double_t posXL, Double_t posYL);
 
-  void FillDetEltTTHisto (Int_t chamber, Int_t detElt,
-                         Double_t posXG, Double_t posYG, Double_t posZG,
-                         Double_t posXL, Double_t posYL, Double_t posZL);
+  void FillTTHistos (Int_t chamber, Int_t detElt,
+                    Double_t posXL, Double_t posYL);
 
-  void CalculMissClusterParam (AliMUONTrackParam* extrapTrackParam,
-                              Int_t firstMissCh, Int_t nbrOfMissCh);
+  void FindAndFillMissedDetElt (AliMUONTrackParam* extrapTrackParam,
+                               Int_t firstMissCh, Int_t lastChamber);
 
-  void GetDetEltFromPosition (Int_t chamber,
-                             Double_t posX, Double_t posY, Double_t posZ);
+  void CoordinatesOfMissingCluster(Double_t x1, Double_t y1, Double_t z1,
+                                  Double_t x2, Double_t y2, Double_t z2,
+                                  Double_t& x, Double_t& y) const;
 
+  Bool_t CoordinatesInDetEltSt12(Int_t DeId, Double_t x, Double_t y);
+  Bool_t CoordinatesInDetEltSt345(Int_t DeId, Double_t x, Double_t y);
 
-  Int_t fNCh; //!<Number of tracking chamber.
-  Int_t fNSt; //!<Number of tracking station.
-  Int_t fNDE; //!<Number of detection element in the tracking system.
+  Int_t FromDetElt2iDet (Int_t chamber, Int_t detElt) const;
+  Int_t FromDetElt2LocalId (Int_t chamber, Int_t detElt) const;
 
-  Int_t FromDetElt2iDet (Int_t chamber, Int_t detElt);
 
-  const AliMUONGeometryTransformer* fTransformer; //!<Geometry transformer
+  const AliMUONGeometryTransformer* fkTransformer; //!<Geometry transformer
 
-  AliESDEvent* fESD;
+  AliESDEvent* fESD;             //<!Current event
 
   Int_t fNbrClustersCh[10];      //!<Number of clusters in the chamber [fChamberNbr].
   Int_t fTracksTotalNbr;         //!<Total number of tracks in the event.
-  Int_t fGetDetElt[2];           //!<Detection elemtents obtained from position(X,Y,Z). fGetDetElt[1] is for the case where there is an overlap.
   Int_t fTrackFilter[10];        //!<To select track for the efficiency calculation.
+  Int_t fNbrUsableTracks;        //!<Number of usable tracks (matches trigger and contains traker data, plus a trigger condition for cosmic)
 
-  TClonesArray     * fTrackParams;
-  AliMUONTrackParam* fTrackParam;
-  AliMUONVCluster  * fCluster;
+  TClonesArray     * fTrackParams;  //!<Array of track param
+  AliMUONTrackParam* fTrackParam;   //!<Current track param
+  AliMUONVCluster  * fCluster;      //!<Current cluster
 
-  TClonesArray* fDetEltTDHistList; //!<List of histograms of the tracks detected in the detection elements 
-  TClonesArray* fDetEltTTHistList; //!<List of histograms of the tracks which have passed through the detection elements
+  TList* fDetEltTDHistList; //!<List of histograms of the tracks detected in the detection elements 
+  TList* fDetEltTTHistList; //!<List of histograms of the tracks which have passed through the detection elements
+  TList* fChamberTDHistList; //!<List of histograms of the tracks detected in the chambers 
+  TList* fChamberTTHistList; //!<List of histograms of the tracks which have passed through the chambers
 
-  static const Int_t fNbrOfChamber;            ///< The total number of chamber in the tracking system.
-  static const Int_t fNbrOfStation;            ///< The total number of station in the tracking system.
-  static const Int_t fNbrOfDetectionElt[10];   ///< The total number of detection element in each chamber.
-  static const Int_t fFirstDetectionElt[10];   ///< The Id of the first detection element of each chamber.
-  static const Int_t fOffset;                  ///< fFirstDetectionElt[iChamber] = fOffset * (iChamber+1).
-  static const Int_t fOverlapSize;             ///< Average size (in cm) of the overlap area between two detection eltement.
-  static const Int_t fYSlatSize;               ///< Average size (in cm) of the overlap area between two detection eltement.
+  static const Int_t fgkNCh;                     ///< The total number of chamber in the tracking system.
+  static const Int_t fgkNSt;                     ///< The total number of station in the tracking system.
+  static const Int_t fgkNDE;                     ///< Number of detection element in the tracking system.
+  static const Int_t fgkNbrOfDetectionElt[10];   ///< The total number of detection element in each chamber.
+  static const Int_t fgkFirstDetectionElt[10];   ///< The Id of the first detection element of each chamber.
+  static const Int_t fgkOffset;                  ///< fFirstDetectionElt[iChamber] = fOffset * (iChamber+1).
 
-  ClassDef(AliCheckMuonDetEltResponse, 0)
+  ClassDef(AliCheckMuonDetEltResponse, 0);
 };
 #endif