class TList;
class TH1F;
class TH2F;
+class TProfile;
class TTree;
class TString;
class AliESDEvent;
class AliAnalysisTaskITSAlignQA : public AliAnalysisTaskSE {
public:
-
+
AliAnalysisTaskITSAlignQA();
virtual ~AliAnalysisTaskITSAlignQA();
void SetMinPt(Float_t minpt=1.0){
fMinPt=minpt;
}
+ void SetMinVtxContributors(Int_t n=5) { fMinVtxContributors = n; }
+ void SetUseVertex(Bool_t v=kTRUE) { fUseVertex = v; }
+ void SetUseVertexForZOnly(Bool_t v=kTRUE) { fUseVertexForZOnly = v; } // Use the vertex for SDD Z residuals only
+
void SetOCDBInfo(UInt_t runNb, const char *location) {
fRunNb=runNb;
fOCDBLocation=location;
}
- Bool_t AcceptTrack(AliESDtrack * track);
-
+ Bool_t AcceptTrack(const AliESDtrack * track);
+ Bool_t AcceptVertex(const AliESDVertex * vtx);
void CreateSPDHistos();
void CreateSDDHistos();
void CreateSSDHistos();
for(Int_t iBin=0; iBin<=fNPtBins; iBin++) fPtBinLimits[iBin]=xbins[iBin];
}
void LoadGeometryFromOCDB();
-
+ AliTrackPointArray* PrepareTrack(const AliTrackPointArray* inp, const AliESDVertex* vtx=0);
+ void PrepareVertexConstraint(const AliESDVertex* vtx, AliTrackPoint &point);
private:
AliAnalysisTaskITSAlignQA(const AliAnalysisTaskITSAlignQA &source);
AliAnalysisTaskITSAlignQA& operator=(const AliAnalysisTaskITSAlignQA &source);
enum {kNSDDmods = 260};
enum {kNSSDmods = 1698};
enum {kMaxPtBins = 12};
+ enum {kVtxSensVID=14371}; // dummy VID for "vertex" point
TList* fOutput; //! Histos with residuals
TH1F* fHistNEvents; //! histo with N of events
TH2F* fHistSPDResidX[kNSPDmods]; //! histos of SPD residuals along Xloc vs. Pt
TH2F* fHistSPDResidZ[kNSPDmods]; //! histos of SPD residuals along Zloc vs. Pt
- TH2F* fHistSDDResidX[kNSSDmods]; //! histos of SDD residuals along Xloc vs. Pt
- TH2F* fHistSDDResidZ[kNSSDmods]; //! histos of SDD residuals along Zloc vs. Pt
+ TH2F* fHistSDDResidX[kNSDDmods]; //! histos of SDD residuals along Xloc vs. Pt
+ TH2F* fHistSDDResidZ[kNSDDmods]; //! histos of SDD residuals along Zloc vs. Pt
TH2F* fHistSSDResidX[kNSSDmods]; //! histos of SSD residuals along Xloc vs. Pt
TH2F* fHistSSDResidZ[kNSSDmods]; //! histos of SSD residuals along Zloc vs. Pt
TH1F* fHistSDDDrTimeAll[kNSDDmods]; //! histos of SDD drift time (all clusters)
TH1F* fHistSDDDrTimeExtra[kNSDDmods]; //! histos of SDD drift time (extra clusters)
TH1F* fHistSDDDrTimeAttac[kNSDDmods]; //! histos of SDD drift time (attached clusters)
-
-
+ //
+ // RS
+ TProfile* fHProfSDDResidXvsXD[kNSDDmods][2]; // ! profile histos of SDD residuals along Xloc vs. Drift distance, each side separately
+ TProfile* fHProfSDDDrTimevsXD[kNSDDmods][2]; // ! profile histos of SDD drift time vs. Drift distance, each side separately
+ TProfile* fHProfSDDResidXvsZ[kNSDDmods][2]; // ! profile histos of SDD residuals along Xloc vs. Z (anode), each side separately
+ TProfile* fHProfSDDDrTimevsZ[kNSDDmods][2]; // ! profile histos of SDD drift time vs. Z (anode), each side separately
+ //
Bool_t fDoSPDResiduals; // Flag to enable histos of SPD residuals
Bool_t fDoSDDResiduals; // Flag to enable histos of SDD residuals
Bool_t fDoSSDResiduals; // Flag to enable histos of SSD residuals
Bool_t fDoSDDdEdxCalib; // Flag to enable histos for SDD dE/dx calibration
Bool_t fUseITSsaTracks; // Flag for using standalone ITS tracks
Bool_t fLoadGeometry; // Flag to control the loading of geometry from OCDB
+ Bool_t fUseVertex; // Use the vertex as an extra point
+ Bool_t fUseVertexForZOnly; // Use the vertex for SDD Z residuals only
+ Int_t fMinVtxContributors; // min N contributors to accept vertex if fUseVertex is on
Int_t fMinITSpts; // Minimum number of ITS points per track
Int_t fMinTPCpts; // Minimum number of TPC points per track
Float_t fMinPt; // Minimum pt to accept tracks
Int_t fRunNb; // Run number
TString fOCDBLocation; // OCDB location
- ClassDef(AliAnalysisTaskITSAlignQA,2);
+ ClassDef(AliAnalysisTaskITSAlignQA,3);
};
#endif
+