/// \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
{
//Constructor:
AliCheckMuonDetEltResponse(const AliMUONGeometryTransformer* transformer,
AliESDEvent* esd,
- TClonesArray* detEltTDHistList,
- TClonesArray* detEltTTHistList);
+ TList* detEltTDHistList,
+ TList* detEltTTHistList,
+ TList* chamberTDHistList,
+ TList* chamberTTHistList);
//Destructor:
virtual ~AliCheckMuonDetEltResponse();
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