X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGGA%2FCaloTrackCorrelations%2FAliAnaCalorimeterQA.h;h=ba8012d6410d3aaf5056824e420f6d2879194db6;hb=98287a4351d6d18173113d2ff1509a59c37b88ad;hp=c5b4aa340ead29bf11a3f05daaccf8fd2c392422;hpb=e6fec6f55774717b801581cf2510598d96bd85ed;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGGA/CaloTrackCorrelations/AliAnaCalorimeterQA.h b/PWGGA/CaloTrackCorrelations/AliAnaCalorimeterQA.h index c5b4aa340ea..ba8012d6410 100755 --- a/PWGGA/CaloTrackCorrelations/AliAnaCalorimeterQA.h +++ b/PWGGA/CaloTrackCorrelations/AliAnaCalorimeterQA.h @@ -45,9 +45,8 @@ public: // Main methods - void BadClusterHistograms(AliVCluster* clus, const TObjArray *caloClusters, AliVCaloCells * cells, - const Int_t absIdMax, const Double_t maxCellFraction, const Float_t eCrossFrac, - const Double_t tmax, Double_t timeAverages[2]); + void BadClusterHistograms(AliVCluster* clus, const TObjArray *caloClusters, AliVCaloCells * cells, + Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac, Double_t tmax); void CalculateAverageTime(AliVCluster *clus, AliVCaloCells *cells, Double_t timeAverages[2]); @@ -55,33 +54,33 @@ public: void CellInClusterPositionHistograms(AliVCluster* cluster); - void ClusterAsymmetryHistograms(AliVCluster* clus, const Int_t absIdMax, const Bool_t goodCluster ); + void ClusterAsymmetryHistograms(AliVCluster* clus, Int_t absIdMax, Bool_t goodCluster ); void ClusterHistograms(AliVCluster* cluster, const TObjArray *caloClusters, AliVCaloCells * cells, - const Int_t absIdMax, const Double_t maxCellFraction, const Float_t eCrossFrac, - const Double_t tmax, Double_t timeAverages[2]); + Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac, Double_t tmax); void ClusterLoopHistograms(const TObjArray * clusters, AliVCaloCells * cells); - Bool_t ClusterMCHistograms(const TLorentzVector mom,const Bool_t matched, - const Int_t * labels, const Int_t nLabels, Int_t & pdg ); + Bool_t ClusterMCHistograms(TLorentzVector mom, Bool_t matched, + const Int_t * labels, Int_t nLabels, Int_t & pdg ); void ClusterMatchedWithTrackHistograms(AliVCluster* clus, TLorentzVector mom, - const Bool_t mcOK, const Int_t pdg); + Bool_t mcOK, Int_t pdg); void Correlate(); - Float_t GetECross(const Int_t absId, AliVCaloCells* cells); + void ExoticHistograms(Int_t absIdMax, Float_t ampMax, + AliVCluster *clus, AliVCaloCells* cells); - void InvariantMassHistograms(const Int_t iclus, const TLorentzVector mom, const Int_t nModule, + Float_t GetECross(Int_t absId, AliVCaloCells* cells,Float_t dtcut = 10000); + + void InvariantMassHistograms(Int_t iclus, TLorentzVector mom, Int_t nModule, const TObjArray* caloClusters, AliVCaloCells * cells); - Bool_t IsGoodCluster(const Int_t absIdMax, AliVCaloCells *cells); + Bool_t IsGoodCluster(Int_t absIdMax, AliVCaloCells *cells); void MCHistograms(); - void MCHistograms(const TLorentzVector mom, const Int_t pdg); - void WeightHistograms(AliVCluster *clus, AliVCaloCells* cells); // Setters and Getters @@ -92,11 +91,12 @@ public: Float_t GetPHOSCellAmpMin() const { return fPHOSCellAmpMin ; } void SetPHOSCellAmpMin (Float_t amp) { fPHOSCellAmpMin = amp ; } - + + Float_t GetInvMassMinECut() const { return fMinInvMassECut ; } + void SetInvMassMinECut(Float_t cut) { fMinInvMassECut = cut ; } + TString GetCalorimeter() const { return fCalorimeter ; } void SetCalorimeter(TString calo) { fCalorimeter = calo ; } - - void SetNumberOfModules(Int_t nmod) { fNModules = nmod ; } Double_t GetTimeCutMin() const { return fTimeCutMin ; } Double_t GetTimeCutMax() const { return fTimeCutMax ; } @@ -114,9 +114,6 @@ public: void SwitchOnFillAllPositionHistogram2() { fFillAllPosHisto2 = kTRUE ; } void SwitchOffFillAllPositionHistogram2() { fFillAllPosHisto2 = kFALSE ; } - void SwitchOnFillAllTH12Histogram() { fFillAllTH12 = kTRUE ; } - void SwitchOffFillAllTH12Histogram() { fFillAllTH12 = kFALSE ; } - void SwitchOnFillAllTH3Histogram() { fFillAllTH3 = kTRUE ; } void SwitchOffFillAllTH3Histogram() { fFillAllTH3 = kFALSE ; } @@ -137,8 +134,15 @@ public: void SwitchOnStudyWeight() { fStudyWeight = kTRUE ; } void SwitchOffStudyWeight() { fStudyWeight = kFALSE ; } - - + + void SwitchOnStudyExotic() { fStudyExotic = kTRUE ; } + void SwitchOffStudyExotic() { fStudyExotic = kFALSE ; } + + void SetNECrossCuts(Int_t n) { fExoNECrossCuts = n ; } + void SetNDTimeCuts (Int_t n) { fExoNDTimeCuts = n ; } + + void SetExoECrossCuts (Int_t i, Float_t c) { if (i 0.5 TH2F * fhTimeId; //! Time vs Absolute cell Id - TH2F * fhTimeAmp; //! Time vs Amplitude + TH2F * fhTimeAmp; //! Time vs Amplitude - TH2F * fhCellECross; //! 1 - Energy in cross around cell / cell energy + TH2F * fhAmpIdLowGain; //! Amplitude measured in towers/crystals vs id of tower, low gain towers + TH2F * fhTimeIdLowGain; //! Time vs Absolute cell Id, low gain + TH2F * fhTimeAmpLowGain; //! Time vs Amplitude, low gain + + TH2F * fhCellECross; //! 1 - Energy in cross around cell / cell energy //Calorimeters Correlation TH2F * fhCaloCorrNClusters; //! EMCAL vs PHOS, number of clusters @@ -298,6 +316,18 @@ public: TH2F * fhCaloTrackMCorrNCells; //! Calo vs V0 Track Multiplicity, number of cells TH2F * fhCaloTrackMCorrECells; //! Calo vs V0 Track Multipliticy, total measured cell energy + // Centrality + TH2F * fhCaloCenNClusters; //! Calo vs centrality, number of clusters + TH2F * fhCaloCenEClusters; //! Calo vs centrality, total measured cluster energy + TH2F * fhCaloCenNCells; //! Calo vs centrality, number of cells + TH2F * fhCaloCenECells; //! Calo vs centrality, total measured cell energy + + // Event plane + TH2F * fhCaloEvPNClusters; //! Calo vs event plane angle, number of clusters + TH2F * fhCaloEvPEClusters; //! Calo vs event plane angle, total measured cluster energy + TH2F * fhCaloEvPNCells; //! Calo vs event plane angle, number of cells + TH2F * fhCaloEvPECells; //! Calo vs event plane angle, total measured cell energy + //Module histograms TH2F * fhEMod ; //! cluster E distribution for different module, Reco TH2F * fhAmpMod ; //! cell amplitude distribution for different module, Reco @@ -309,37 +339,61 @@ public: TH2F * fhGridCells ; //! Cells ordered in column/row for different module, Reco TH2F * fhGridCellsE ; //! Cells ordered in column/row for different module, weighted with energy, Reco TH2F * fhGridCellsTime ; //! Cells ordered in column/row for different module, weighted with time, Reco + TH2F * fhGridCellsLowGain ; //! Cells ordered in column/row for different module, Reco, low gain + TH2F * fhGridCellsELowGain ; //! Cells ordered in column/row for different module, weighted with energy, Reco, low gain + TH2F * fhGridCellsTimeLowGain ; //! Cells ordered in column/row for different module, weighted with time, Reco, low gain TH2F ** fhTimeAmpPerRCU; //! Time vs Amplitude measured in towers/crystals different RCU TH2F ** fhIMMod; //! cluster pairs invariant mass, different module, // Weight studies - TH2F* fhECellClusterRatio; //! e cell / e cluster vs e cluster - TH2F* fhECellClusterLogRatio; //! log (e cell / e cluster) vs e cluster - TH2F* fhEMaxCellClusterRatio; //! e max cell / e cluster vs e cluster - TH2F* fhEMaxCellClusterLogRatio; //! log (e max cell / e cluster) vs e cluster + TH2F * fhECellClusterRatio; //! e cell / e cluster vs e cluster + TH2F * fhECellClusterLogRatio; //! log (e cell / e cluster) vs e cluster + TH2F * fhEMaxCellClusterRatio; //! e max cell / e cluster vs e cluster + TH2F * fhEMaxCellClusterLogRatio; //! log (e max cell / e cluster) vs e cluster - TH2F* fhLambda0ForW0[14]; //! L0 for 7 defined w0= 3, 3.5 ... 6 - //TH2F* fhLambda1ForW0[7]; //! L1 for 7 defined w0= 3, 3.5 ... 6 + TH2F * fhLambda0ForW0[14]; //! L0 for 7 defined w0= 3, 3.5 ... 6 + //TH2F * fhLambda1ForW0[7]; //! L1 for 7 defined w0= 3, 3.5 ... 6 - TH2F* fhLambda0ForW0MC[14][5]; //! L0 for 7 defined w0= 3, 3.5 ... 6, depending on the particle of origin - //TH2F* fhLambda1ForW0MC[7][5]; //! L1 for 7 defined w0= 3, 3.5 ... 6, depending on the particle of origin + TH2F * fhLambda0ForW0MC[14][5]; //! L0 for 7 defined w0= 3, 3.5 ... 6, depending on the particle of origin + //TH2F * fhLambda1ForW0MC[7][5]; //! L1 for 7 defined w0= 3, 3.5 ... 6, depending on the particle of origin - //Pure MC + TH2F * fhECellTotalRatio; //! e cell / e total vs e total + TH2F * fhECellTotalLogRatio; //! log (e cell / e total) vs e total + TH2F ** fhECellTotalRatioMod; //! e cell / e total vs e total, per SM + TH2F ** fhECellTotalLogRatioMod; //! log (e cell / e total) vs e total, per SM - enum mcTypes {kmcPhoton = 0, kmcPi0 = 1, kmcEta = 2, kmcElectron = 3, kmcNeHadron = 4, kmcChHadron = 5 }; - - TH2F * fhRecoMCE[6][2] ; //! E generated particle vs reconstructed E - TH2F * fhRecoMCPhi[6][2] ; //! phi generated particle vs reconstructed phi - TH2F * fhRecoMCEta[6][2] ; //! eta generated particle vs reconstructed Eta - TH2F * fhRecoMCDeltaE[6][2] ; //! Gen-Reco E generated particle vs reconstructed E - TH2F * fhRecoMCRatioE[6][2] ; //! Reco/Gen E generated particle vs reconstructed E - TH2F * fhRecoMCDeltaPhi[6][2]; //! Gen-Reco phi generated particle vs reconstructed E - TH2F * fhRecoMCDeltaEta[6][2]; //! Gen-Reco eta generated particle vs reconstructed E + // Exotic studies + + TH2F * fhExoNCell [10][5] ; //! Number of cells per cluster for different cuts + TH2F * fhExoL0 [10][5] ; //! Long shower shape axis for exotic + TH2F * fhExoL1 [10][5] ; //! Short shower shape axis for exotic + TH2F * fhExoECross [10][5] ; //! E cross for max cell in cluster, for different cuts + TH2F * fhExoTime [10][5] ; //! Time of exotic cluster, for different cuts + TH2F * fhExoDTime [10] ; //! Difference in time between cell with max energy and rest of cells for exotic + TH2F * fhExoL0NCell[10][5] ; //! Lambda0 vs n cells in cluster for several E cross cuts and cluster with E > 5 + TH2F * fhExoL0ECross ; //! Lambda0 vs E cross fraction for clusters with E > 5 GeV + TH2F * fhExoL1NCell[10][5] ; //! Lambda1 vs n cells in cluster for several E cross cuts and cluster with E > 5 + TH2F * fhExoL1ECross ; //! Lambda1 vs E cross fraction for clusters with E > 5 GeV - TH1F * fhGenMCE[4] ; //! pt of primary particle + //Pure MC + + enum mcTypes {kmcPhoton = 0, kmcPhotonConv = 1, kmcPi0 = 2, kmcEta = 3, + kmcElectron = 4, kmcNeHadron = 5, kmcChHadron = 6 }; + + TH2F * fhRecoMCE[7][2] ; //! E generated particle vs reconstructed E + TH2F * fhRecoMCPhi[7][2] ; //! phi generated particle vs reconstructed phi + TH2F * fhRecoMCEta[7][2] ; //! eta generated particle vs reconstructed Eta + TH2F * fhRecoMCDeltaE[7][2] ; //! Gen-Reco E generated particle vs reconstructed E + TH2F * fhRecoMCRatioE[7][2] ; //! Reco/Gen E generated particle vs reconstructed E + TH2F * fhRecoMCDeltaPhi[7][2]; //! Gen-Reco phi generated particle vs reconstructed E + TH2F * fhRecoMCDeltaEta[7][2]; //! Gen-Reco eta generated particle vs reconstructed E + + TH1F * fhGenMCE [4] ; //! pt of primary particle + TH1F * fhGenMCPt[4] ; //! pt of primary particle TH2F * fhGenMCEtaPhi[4] ; //! eta vs phi of primary particle - TH1F * fhGenMCAccE[4] ; //! pt of primary particle, in acceptance + TH1F * fhGenMCAccE [4] ; //! pt of primary particle, in acceptance + TH1F * fhGenMCAccPt[4] ; //! pt of primary particle, in acceptance TH2F * fhGenMCAccEtaPhi[4] ; //! eta vs phi of primary particle, in acceptance TH2F * fhEMVxyz ; //! Electromagnetic particle production vertex @@ -365,15 +419,28 @@ public: TH1F * fhMCNeutral1dR; //! distance between projected track and cluster, MC neutral TH2F * fhMCNeutral2MatchdEdx; //! dE/dx vs. momentum for all matches, MC neutral - TH2F * fh1EOverPR02; //! p/E for track-cluster matches, dR > 0.2 - TH2F * fhMCEle1EOverPR02; //! p/E for track-cluster matches, dR > 0.2, MC electrons - TH2F * fhMCChHad1EOverPR02; //! p/E for track-cluster matches, dR > 0.2, MC charged hadrons - TH2F * fhMCNeutral1EOverPR02; //! p/E for track-cluster matches, dR > 0.2, MC neutral - + TH2F * fh1EOverPR02; //! p/E for track-cluster matches, dR < 0.2 + TH2F * fhMCEle1EOverPR02; //! p/E for track-cluster matches, dR < 0.2, MC electrons + TH2F * fhMCChHad1EOverPR02; //! p/E for track-cluster matches, dR < 0.2, MC charged hadrons + TH2F * fhMCNeutral1EOverPR02; //! p/E for track-cluster matches, dR < 0.2, MC neutral + + TH2F * fh1EleEOverP; //! p/E for track-cluster matches, dR < 0.2, 60 < dEdx < 100 + TH2F * fhMCEle1EleEOverP; //! p/E for track-cluster matches, dR < 0.2, 60 < dEdx < 100, MC electrons + TH2F * fhMCChHad1EleEOverP; //! p/E for track-cluster matches, dR < 0.2, 60 < dEdx < 100, MC charged hadrons + TH2F * fhMCNeutral1EleEOverP; //! p/E for track-cluster matches, dR < 0.2, 60 < dEdx < 100, MC neutral + + TH2F * fhTrackMatchedDEta ; //! Eta distance between track and cluster vs cluster E, after and before photon cuts + TH2F * fhTrackMatchedDPhi ; //! Phi distance between track and cluster vs cluster E, after and before photon cuts + TH2F * fhTrackMatchedDEtaDPhi; //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV, after and before + + TH2F * fhTrackMatchedDEtaPos; //! Eta distance between track and cluster vs cluster E, after and before photon cuts + TH2F * fhTrackMatchedDPhiPos; //! Phi distance between track and cluster vs cluster E, after and before photon cuts + TH2F * fhTrackMatchedDEtaDPhiPos; //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV, after and before + AliAnaCalorimeterQA & operator = (const AliAnaCalorimeterQA & qa) ;//cpy assignment AliAnaCalorimeterQA( const AliAnaCalorimeterQA & qa) ; // cpy ctor - ClassDef(AliAnaCalorimeterQA,24) + ClassDef(AliAnaCalorimeterQA,29) } ;