X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSMultReconstructor.h;h=da7d201565639c7af6d966c986ee1ae2489b0347;hb=266a4b47c5e0bd35e6734ed7c39c7c6e65b713eb;hp=7699c0a477c61215fa01e77c2c5c91969204e21a;hpb=9b373e9a4a6f778183d34c5b4adbb049456f472f;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSMultReconstructor.h b/ITS/AliITSMultReconstructor.h index 7699c0a477c..da7d2015656 100644 --- a/ITS/AliITSMultReconstructor.h +++ b/ITS/AliITSMultReconstructor.h @@ -5,22 +5,19 @@ /* $Id$ */ -///////////////////////////////////////////////////////////////////////// +//_________________________________________________________________________ // -// AliITSMultReconstructor - find clusters in the pixels (theta and -// phi) and tracklets. -// -// These can be used to extract charged particles multiplcicity from the ITS. +// Implementation of the ITS-SPD trackleter class // -// A tracklet consist of two ITS clusters, one in the first pixel -// layer and one in the second. The clusters are associates if the -// differencies in Phi (azimuth) and Zeta (longitudinal) are inside -// a fiducial volume. In case of multiple candidates it is selected the -// candidate with minimum distance in Phi. -// The boolean fOnlyOneTrackletPerC2 allows to control if two clusters -// in layer 2 can be associated to the same cluster in layer 1 or not. +// It retrieves clusters in the pixels (theta and phi) and finds tracklets. +// These can be used to extract charged particle multiplicity from the ITS. // -///////////////////////////////////////////////////////////////////////// +// A tracklet consists of two ITS clusters, one in the first pixel layer and +// one in the second. The clusters are associated if the differences in +// Phi (azimuth) and Theta (polar angle) are within fiducial windows. +// In case of multiple candidates the candidate with minimum +// distance is selected. +//_________________________________________________________________________ #include "TObject.h" @@ -38,11 +35,16 @@ public: void Reconstruct(TTree* tree, Float_t* vtx, Float_t* vtxRes); void LoadClusterFiredChips(TTree* tree); + void FlagClustersInOverlapRegions(Int_t ic1,Int_t ic2); + // Following members are set via AliITSRecoParam void SetPhiWindow(Float_t w=0.08) {fPhiWindow=w;} - void SetZetaWindow(Float_t w=1.) {fZetaWindow=w;} - void SetOnlyOneTrackletPerC2(Bool_t b = kTRUE) {fOnlyOneTrackletPerC2 = b;} - + void SetThetaWindow(Float_t w=0.025) {fThetaWindow=w;} + void SetPhiShift(Float_t w=0.0045) {fPhiShift=w;} + void SetRemoveClustersFromOverlaps(Bool_t b = kFALSE) {fRemoveClustersFromOverlaps = b;} + void SetPhiOverlapCut(Float_t w=0.005) {fPhiOverlapCut=w;} + void SetZetaOverlapCut(Float_t w=0.05) {fZetaOverlapCut=w;} + Int_t GetNClustersLayer1() const {return fNClustersLay1;} Int_t GetNClustersLayer2() const {return fNClustersLay2;} Int_t GetNTracklets() const {return fNTracklets;} @@ -62,11 +64,16 @@ protected: AliITSMultReconstructor& operator=(const AliITSMultReconstructor& mr); - Float_t** fClustersLay1; // clusters in the 1st layer of ITS - Float_t** fClustersLay2; // clusters in the 2nd layer of ITS + Float_t** fClustersLay1; // clusters in the 1st layer of ITS + Float_t** fClustersLay2; // clusters in the 2nd layer of ITS + Int_t* fDetectorIndexClustersLay1; // module index for clusters 1st ITS layer + Int_t* fDetectorIndexClustersLay2; // module index for clusters 2nd ITS layer + Bool_t* fOverlapFlagClustersLay1; // flag for clusters in the overlap regions 1st ITS layer + Bool_t* fOverlapFlagClustersLay2; // flag for clusters in the overlap regions 2nd ITS layer + + Float_t** fTracklets; // tracklets Float_t** fSClusters; // single clusters (unassociated) - Bool_t* fAssociationFlag; // flag for the associations Int_t fNClustersLay1; // Number of clusters (Layer1) Int_t fNClustersLay2; // Number of clusters (Layer2) @@ -74,25 +81,23 @@ protected: Int_t fNSingleCluster; // Number of unassociated clusters Short_t fNFiredChips[2]; // Number of fired chips in the two SPD layers - Float_t fPhiWindow; // Search window in phi - Float_t fZetaWindow; // SEarch window in eta + // Following members are set via AliITSRecoParam + Float_t fPhiWindow; // Search window in phi + Float_t fThetaWindow; // Search window in theta + Float_t fPhiShift; // Phi shift reference value (at 0.5 T) + Bool_t fRemoveClustersFromOverlaps; // Option to skip clusters in the overlaps + Float_t fPhiOverlapCut; // Fiducial window in phi for overlap cut + Float_t fZetaOverlapCut; // Fiducial window in eta for overlap cut - Bool_t fOnlyOneTrackletPerC2; // only one tracklet per cluster in L. 2 - Bool_t fHistOn; // Option to define and fill the histograms - TH1F* fhClustersDPhiAcc; // Phi2 - Phi1 for tracklets TH1F* fhClustersDThetaAcc; // Theta2 - Theta1 for tracklets - TH1F* fhClustersDZetaAcc; // z2 - z1projected for tracklets TH1F* fhClustersDPhiAll; // Phi2 - Phi1 all the combinations TH1F* fhClustersDThetaAll; // Theta2 - Theta1 all the combinations - TH1F* fhClustersDZetaAll; // z2 - z1projected all the combinations TH2F* fhDPhiVsDThetaAll; // 2D plot for all the combinations TH2F* fhDPhiVsDThetaAcc; // same plot for tracklets - TH2F* fhDPhiVsDZetaAll; // 2d plot for all the combination - TH2F* fhDPhiVsDZetaAcc; // same plot for tracklets TH1F* fhetaTracklets; // Pseudorapidity distr. for tracklets TH1F* fhphiTracklets; // Azimuthal (Phi) distr. for tracklets @@ -102,7 +107,7 @@ protected: void LoadClusterArrays(TTree* tree); - ClassDef(AliITSMultReconstructor,3) + ClassDef(AliITSMultReconstructor,6) }; #endif