AliAnaCaloTrackCorrBaseClass::AliAnaCaloTrackCorrBaseClass() :
TObject(),
fDataMC(0), fDebug(0),
+fCalorimeter(""),
fCheckFidCut(0), fCheckRealCaloAcc(0),
fCheckCaloPID(0), fRecalculateCaloPID(0),
fMinPt(0), fMaxPt(0),
fNZvertBin(0), fNrpBin(0),
fNCentrBin(0), fNmaxMixEv(0),
fDoOwnMix(0), fUseTrackMultBins(0),
+fFillPileUpHistograms(0), fFillHighMultHistograms(0),
fMakePlots(kFALSE),
fInputAODBranch(0x0), fInputAODName(""),
fOutputAODBranch(0x0), fNewAOD(kFALSE),
if(!clusters) return 0x0;
- for(iclus = first; iclus < clusters->GetEntriesFast(); iclus++){
+ for(iclus = first; iclus < clusters->GetEntriesFast(); iclus++)
+ {
AliVCluster *cluster= dynamic_cast<AliVCluster*> (clusters->At(iclus));
- if(cluster){
- if (cluster->GetID()==id) {
+ if(cluster)
+ {
+ if(cluster->GetID()==id)
+ {
return cluster;
}
}
}
-//______________________________________________________________________________
-TClonesArray * AliAnaCaloTrackCorrBaseClass::GetAODBranch(TString aodName) const
+//______________________________________________________________________________________
+TClonesArray * AliAnaCaloTrackCorrBaseClass::GetAODBranch(const TString & aodName) const
{
//Recover ouput and input AOD pointers for each event in the maker
fNZvertBin = 1;
fNrpBin = 1;
+ fCalorimeter = "EMCAL";
+
fTrackMultBins[0] = 0; fTrackMultBins[1] = 5; fTrackMultBins[2] = 10;
fTrackMultBins[3] = 15; fTrackMultBins[4] = 20; fTrackMultBins[5] = 30;
fTrackMultBins[6] = 40; fTrackMultBins[7] = 55; fTrackMultBins[8] = 70;
//Histograms, cuts
- virtual void AddToHistogramsName(TString add) { fAddToHistogramsName = add ; }
+ virtual void AddToHistogramsName(TString add) { fAddToHistogramsName = add ; }
virtual TString GetAddedHistogramsStringToName() const { return fAddToHistogramsName ; }
virtual TObjString * GetAnalysisCuts() { return 0x0 ; }
virtual TClonesArray * GetCreateOutputAODBranch() ;
virtual TString GetInputAODName() const { return fInputAODName ; }
- virtual void SetInputAODName(TString name) { fInputAODName = name ; }
+ virtual void SetInputAODName(TString name) { fInputAODName = name ; }
virtual TString GetOutputAODName() const { return fOutputAODName ; }
virtual void SetOutputAODName(TString name) { fNewAOD = kTRUE ; fOutputAODName = name; }
virtual TClonesArray * GetInputAODBranch() const { return fInputAODBranch ; }
virtual TClonesArray * GetOutputAODBranch() const { if(fNewAOD) return fOutputAODBranch; else return fInputAODBranch ; }
- virtual TClonesArray * GetAODBranch(TString aodBranchName) const ;
+ virtual TClonesArray * GetAODBranch(const TString & aodBranchName) const ;
//Track cluster arrays access methods
virtual TClonesArray* GetAODCaloClusters() const ; // Output AOD clusters, not used?
// Common analysis switchs
+ virtual TString GetCalorimeter() const { return fCalorimeter ; }
+ virtual void SetCalorimeter(TString & calo) { fCalorimeter = calo ; }
+
virtual Bool_t IsDataMC() const { return fDataMC ; }
virtual void SwitchOnDataMC() { fDataMC = kTRUE ;
if(!fMCUtils) fMCUtils = new AliMCAnalysisUtils() ; }
if(!fCaloPID) fCaloPID = new AliCaloPID() ; }
virtual void SwitchOffCaloPID() { fCheckCaloPID = kFALSE ; }
- virtual Bool_t MakePlotsOn() const { return fMakePlots ; }
- virtual void SwitchOnPlotsMaking() { fMakePlots = kTRUE ; }
- virtual void SwitchOffPlotsMaking() { fMakePlots = kFALSE ; }
+ virtual Bool_t MakePlotsOn() const { return fMakePlots ; }
+ virtual void SwitchOnPlotsMaking() { fMakePlots = kTRUE ; }
+ virtual void SwitchOffPlotsMaking() { fMakePlots = kFALSE ; }
+
+ virtual Bool_t IsPileUpAnalysisOn() const { return fFillPileUpHistograms ; }
+ virtual void SwitchOnFillPileUpHistograms() { fFillPileUpHistograms = kTRUE ; }
+ virtual void SwitchOffFillPileUpHistograms() { fFillPileUpHistograms = kFALSE; }
+ virtual Bool_t IsHighMultiplicityAnalysisOn() const { return fFillHighMultHistograms ; }
+ virtual void SwitchOnFillHighMultiplicityHistograms() { fFillHighMultHistograms = kTRUE ; }
+ virtual void SwitchOffFillHighMultiplicityHistograms(){ fFillHighMultHistograms = kFALSE ; }
+
// Cluster energy/momentum cut
virtual Float_t GetMaxPt() const { return fMaxPt ; }
virtual Bool_t IsTrackMatched(AliVCluster * cluster, AliVEvent* event) {
return GetCaloPID()->IsTrackMatched(cluster, fCaloUtils, event) ; }
- virtual Int_t GetModuleNumberCellIndexes(Int_t absId, TString calo, Int_t & icol, Int_t & irow, Int_t &iRCU) const {
+ virtual Int_t GetModuleNumberCellIndexes(Int_t absId, const TString & calo, Int_t & icol, Int_t & irow, Int_t &iRCU) const {
return fCaloUtils->GetModuleNumberCellIndexes(absId, calo, icol, irow,iRCU) ; }
virtual Int_t GetModuleNumber(AliAODPWG4Particle * part) const {
Bool_t fDataMC ; // Flag to access MC data when using ESD or AOD
Int_t fDebug ; // Debug level
+ TString fCalorimeter ; // Calorimeter selection
Bool_t fCheckFidCut ; // Do analysis for clusters in defined region
Bool_t fCheckRealCaloAcc ; // When analysis of MC particle kinematics, check their hit in Calorimeter in Real Geometry or use FidCut
Bool_t fCheckCaloPID ; // Do analysis for calorimeters
Float_t fMaxPt ; // Minimum pt of (trigger) particles in the analysis
Float_t fPairTimeCut; // Maximum difference between time of cluster pairs (ns)
Int_t fTRDSMCovered; // From which SM EMCal is covered by TRD
-
+
Int_t fNZvertBin ; // Number of bins in event container for vertex position
Int_t fNrpBin ; // Number of bins in event container for reaction plain
Int_t fNCentrBin ; // Number of bins in event container for centrality
Bool_t fDoOwnMix; // Do combinatorial background not the one provided by the frame
Bool_t fUseTrackMultBins; // Use track multiplicity and not centrality bins in mixing
Int_t fTrackMultBins[20]; // Multiplicity bins limits. Number of bins set with SetNTrackMult() that calls SetNCentrBin().
+ Bool_t fFillPileUpHistograms; // Fill pile-up related histograms
+ Bool_t fFillHighMultHistograms; // Histograms with centrality and event plane for triggers pT
Bool_t fMakePlots ; // Print plots
TClonesArray* fInputAODBranch ; //! Selected input particles branch
AliAnaCaloTrackCorrBaseClass( const AliAnaCaloTrackCorrBaseClass & bc) ; // cpy ctor
AliAnaCaloTrackCorrBaseClass & operator = (const AliAnaCaloTrackCorrBaseClass & bc) ; // cpy assignment
- ClassDef(AliAnaCaloTrackCorrBaseClass,25)
+ ClassDef(AliAnaCaloTrackCorrBaseClass,26)
} ;
//________________________________________
AliAnaCalorimeterQA::AliAnaCalorimeterQA() :
-AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""),
+AliAnaCaloTrackCorrBaseClass(),
//Switches
fFillAllCellTimeHisto(kTRUE),
//Bad cluster histograms
// printf("AliAnaCalorimeterQA::BadClusterHistograms() - Event %d - Calorimeter %s \n \t E %f, n cells %d, max cell absId %d, maxCellFrac %f\n",
- // GetReader()->GetEventNumber(), fCalorimeter.Data(),
+ // GetReader()->GetEventNumber(), GetCalorimeter().Data(),
// clus->E(),clus->GetNCells(),absIdMax,maxCellFraction);
fhBadClusterEnergy ->Fill(clus->E());
if(fFillAllCellTimeHisto)
{
Double_t time = cells->GetCellTime(absId);
- GetCaloUtils()->RecalibrateCellTime(time, fCalorimeter, absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(time, GetCalorimeter(), absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
Float_t diff = (tmax-time*1e9);
fhBadCellTimeSpreadRespectToCellMax->Fill(clus->E(), diff);
//Recalibrate cell energy if needed
amp = cells->GetCellAmplitude(id);
- GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp,GetCalorimeter(), id);
energy += amp;
time = cells->GetCellTime(id);
//Recalibrate energy and time
- GetCaloUtils()->RecalibrateCellAmplitude(amp , fCalorimeter, id);
- GetCaloUtils()->RecalibrateCellTime (time, fCalorimeter, id, GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellAmplitude(amp , GetCalorimeter(), id);
+ GetCaloUtils()->RecalibrateCellTime (time, GetCalorimeter(), id, GetReader()->GetInputEvent()->GetBunchCrossNumber());
w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(cells->GetCellAmplitude(id),energy);
aTime += time*1e9;
Float_t ecellsCut = 0;
if( GetDebug() > 0 )
- printf("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - %s cell entries %d\n", fCalorimeter.Data(), ncells );
+ printf("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - %s cell entries %d\n", GetCalorimeter().Data(), ncells );
//Init arrays and used variables
Int_t *nCellsInModule = new Int_t [fNModules];
if(GetDebug() > 2)
printf("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - Cell : amp %f, absId %d \n", cells->GetAmplitude(iCell), cells->GetCellNumber(iCell));
- Int_t nModule = GetModuleNumberCellIndexes(cells->GetCellNumber(iCell),fCalorimeter, icol, irow, iRCU);
+ Int_t nModule = GetModuleNumberCellIndexes(cells->GetCellNumber(iCell),GetCalorimeter(), icol, irow, iRCU);
if(GetDebug() > 2)
printf("\t module %d, column %d, row %d \n", nModule,icol,irow);
//Check if the cell is a bad channel
if(GetCaloUtils()->IsBadChannelsRemovalSwitchedOn())
{
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
if(GetCaloUtils()->GetEMCALChannelStatus(nModule,icol,irow)) continue;
}
highG = cells->GetCellHighGain(id);
// Amplitude recalibration if set
- GetCaloUtils()->RecalibrateCellAmplitude(amp, fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp, GetCalorimeter(), id);
// Time recalibration if set
- GetCaloUtils()->RecalibrateCellTime (time, fCalorimeter, id, GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime (time, GetCalorimeter(), id, GetReader()->GetInputEvent()->GetBunchCrossNumber());
//Transform time to ns
time *= 1.0e9;
}
// Remove exotic cells, defined only for EMCAL
- if(fCalorimeter=="EMCAL" &&
+ if(GetCalorimeter()=="EMCAL" &&
GetCaloUtils()->GetEMCALRecoUtils()->IsExoticCell(id, cells, bc)) continue;
fhAmplitude->Fill(amp);
Int_t icols = icol;
Int_t irows = irow;
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
icols = (nModule % 2) ? icol + fNMaxCols : icol;
if(nModule < 10 )
if(fFillAllCellTimeHisto)
{
- //printf("%s: time %g\n",fCalorimeter.Data(), time);
+ //printf("%s: time %g\n",GetCalorimeter().Data(), time);
Double_t v[3] = {0,0,0}; //vertex ;
GetReader()->GetVertex(v);
//Get Eta-Phi position of Cell
if(fFillAllPosHisto)
{
- if(fCalorimeter=="EMCAL" && GetCaloUtils()->IsEMCALGeoMatrixSet()){
+ if(GetCalorimeter()=="EMCAL" && GetCaloUtils()->IsEMCALGeoMatrixSet()){
Float_t celleta = 0.;
Float_t cellphi = 0.;
GetEMCALGeometry()->EtaPhiFromIndex(id, celleta, cellphi);
fhRCellE->Fill(rcell,amp) ;
fhXYZCell->Fill(cellpos[0],cellpos[1],cellpos[2]) ;
}//EMCAL Cells
- else if(fCalorimeter=="PHOS" && GetCaloUtils()->IsPHOSGeoMatrixSet()){
+ else if(GetCalorimeter()=="PHOS" && GetCaloUtils()->IsPHOSGeoMatrixSet()){
TVector3 xyz;
Int_t relId[4], module;
Float_t xCell, zCell;
for(Int_t imod = 0; imod < fNModules; imod++ )
{
if(GetDebug() > 1)
- printf("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - module %d calo %s cells %d\n", imod, fCalorimeter.Data(), nCellsInModule[imod]);
+ printf("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - module %d calo %s cells %d\n", imod, GetCalorimeter().Data(), nCellsInModule[imod]);
fhNCellsMod->Fill(nCellsInModule[imod],imod) ;
}
if(GetDebug() > 2)
printf("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - Cell : amp %f, absId %d \n", cells->GetAmplitude(iCell), cells->GetCellNumber(iCell));
- Int_t nModule = GetModuleNumberCellIndexes(cells->GetCellNumber(iCell),fCalorimeter, icol, irow, iRCU);
+ Int_t nModule = GetModuleNumberCellIndexes(cells->GetCellNumber(iCell),GetCalorimeter(), icol, irow, iRCU);
if(GetDebug() > 2)
printf("\t module %d, column %d, row %d \n", nModule,icol,irow);
//Check if the cell is a bad channel
if(GetCaloUtils()->IsBadChannelsRemovalSwitchedOn())
{
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
if(GetCaloUtils()->GetEMCALChannelStatus(nModule,icol,irow)) continue;
}
id = cells->GetCellNumber(iCell);
// Amplitude recalibration if set
- GetCaloUtils()->RecalibrateCellAmplitude(amp, fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp, GetCalorimeter(), id);
// Time recalibration if set
- GetCaloUtils()->RecalibrateCellTime (time, fCalorimeter, id, GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime (time, GetCalorimeter(), id, GetReader()->GetInputEvent()->GetBunchCrossNumber());
//Transform time to ns
time *= 1.0e9;
}
// Remove exotic cells, defined only for EMCAL
- if(fCalorimeter=="EMCAL" &&
+ if(GetCalorimeter()=="EMCAL" &&
GetCaloUtils()->GetEMCALRecoUtils()->IsExoticCell(id, cells, bc)) continue;
//E cross for exotic cells
//Get position of cell compare to cluster
- if(fCalorimeter=="EMCAL" && GetCaloUtils()->IsEMCALGeoMatrixSet()){
+ if(GetCalorimeter()=="EMCAL" && GetCaloUtils()->IsEMCALGeoMatrixSet()){
Double_t cellpos[] = {0, 0, 0};
GetEMCALGeometry()->GetGlobal(absId, cellpos);
fhDeltaCellClusterRE ->Fill(r-rcell, clEnergy) ;
}//EMCAL and its matrices are available
- else if(fCalorimeter=="PHOS" && GetCaloUtils()->IsPHOSGeoMatrixSet())
+ else if(GetCalorimeter()=="PHOS" && GetCaloUtils()->IsPHOSGeoMatrixSet())
{
TVector3 xyz;
Int_t relId[4], module;
Int_t dIphi = 0;
Int_t ietaMax=-1; Int_t iphiMax = 0; Int_t rcuMax = 0;
- Int_t smMax = GetModuleNumberCellIndexes(absIdMax,fCalorimeter, ietaMax, iphiMax, rcuMax);
+ Int_t smMax = GetModuleNumberCellIndexes(absIdMax,GetCalorimeter(), ietaMax, iphiMax, rcuMax);
for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
{
Int_t absId = clus->GetCellsAbsId()[ipos];
Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
- Int_t sm = GetModuleNumberCellIndexes(absId,fCalorimeter, ieta, iphi, rcu);
+ Int_t sm = GetModuleNumberCellIndexes(absId,GetCalorimeter(), ieta, iphi, rcu);
if(dIphi < TMath::Abs(iphi-iphiMax)) dIphi = TMath::Abs(iphi-iphiMax);
if(IsDataMC())
{
- Int_t tag = GetMCAnalysisUtils()->CheckOrigin(labels,nLabel, GetReader(),fCalorimeter);
+ Int_t tag = GetMCAnalysisUtils()->CheckOrigin(labels,nLabel, GetReader(),GetCalorimeter());
if( GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCPhoton) &&
!GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCPi0) &&
!GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCEta) &&
if(fFillAllCellTimeHisto)
{
Double_t time = cells->GetCellTime(absId);
- GetCaloUtils()->RecalibrateCellTime(time, fCalorimeter, absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(time, GetCalorimeter(), absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
Float_t diff = (tmax-time*1.0e9);
fhCellTimeSpreadRespectToCellMax->Fill(clus->E(), diff);
for(Int_t imod = 0; imod < fNModules; imod++ ) nClustersInModule[imod] = 0;
if(GetDebug() > 0)
- printf("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - In %s there are %d clusters \n", fCalorimeter.Data(), nCaloClusters);
+ printf("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - In %s there are %d clusters \n", GetCalorimeter().Data(), nCaloClusters);
// Loop over CaloClusters
for(Int_t iclus = 0; iclus < nCaloClusters; iclus++)
// Check only certain regions
Bool_t in = kTRUE;
- if(IsFiducialCutOn()) in = GetFiducialCut()->IsInFiducialCut(mom,fCalorimeter) ;
+ if(IsFiducialCutOn()) in = GetFiducialCut()->IsInFiducialCut(mom,GetCalorimeter()) ;
if(!in) continue;
// MC labels
//Get time of max cell
Double_t tmax = cells->GetCellTime(absIdMax);
- GetCaloUtils()->RecalibrateCellTime(tmax, fCalorimeter, absIdMax,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(tmax, GetCalorimeter(), absIdMax,GetReader()->GetInputEvent()->GetBunchCrossNumber());
tmax*=1.e9;
// Fill histograms related to single cluster
fhClusterMaxCellDiffNoCut->Fill(clus->E(),maxCellFraction);
Float_t ampMax = cells->GetCellAmplitude(absIdMax);
- GetCaloUtils()->RecalibrateCellAmplitude(ampMax,fCalorimeter, absIdMax);
+ GetCaloUtils()->RecalibrateCellAmplitude(ampMax,GetCalorimeter(), absIdMax);
if(fStudyExotic) ExoticHistograms(absIdMax, ampMax, clus, cells);
for(Int_t imod = 0; imod < fNModules; imod++ )
{
if(GetDebug() > 1)
- printf("AliAnaCalorimeterQA::ClusterLoopHistograms() - module %d calo %s clusters %d\n", imod, fCalorimeter.Data(), nClustersInModule[imod]);
+ printf("AliAnaCalorimeterQA::ClusterLoopHistograms() - module %d calo %s clusters %d\n", imod, GetCalorimeter().Data(), nClustersInModule[imod]);
fhNClustersMod->Fill(nClustersInModule[imod],imod);
}
Int_t charge = 0;
//Check the origin.
- Int_t tag = GetMCAnalysisUtils()->CheckOrigin(labels,nLabels, GetReader(),fCalorimeter);
+ Int_t tag = GetMCAnalysisUtils()->CheckOrigin(labels,nLabels, GetReader(),GetCalorimeter());
if ( GetReader()->ReadStack() &&
!GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCUnknown))
Int_t v0S = GetV0Signal(0)+GetV0Signal(1);
Int_t v0M = GetV0Multiplicity(0)+GetV0Multiplicity(1);
Int_t trM = GetTrackMultiplicity();
- if(fCalorimeter=="PHOS")
+ if(GetCalorimeter()=="PHOS")
{
fhCaloV0MCorrNClusters ->Fill(v0M,nclPHOS);
fhCaloV0MCorrEClusters ->Fill(v0M,sumClusterEnergyPHOS);
snprintf(onePar,buffersize,"--- AliAnaCalorimeterQA ---\n") ;
parList+=onePar ;
- snprintf(onePar,buffersize,"Calorimeter: %s\n",fCalorimeter.Data()) ;
+ snprintf(onePar,buffersize,"Calorimeter: %s\n",GetCalorimeter().Data()) ;
parList+=onePar ;
snprintf(onePar,buffersize,"Time Cut : %2.2f < T < %2.2f ns \n",fTimeCutMin, fTimeCutMax) ;
parList+=onePar ;
{
Int_t absId = clus->GetCellsAbsId()[icell];
Double_t time = cells->GetCellTime(absId);
- GetCaloUtils()->RecalibrateCellTime(time, fCalorimeter, absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(time, GetCalorimeter(), absId,GetReader()->GetInputEvent()->GetBunchCrossNumber());
Float_t diff = (tmax-time)*1e9;
fhExoDTime[idt]->Fill(en, diff);
// Init the number of modules, set in the class AliCalorimeterUtils
fNModules = GetCaloUtils()->GetNumberOfSuperModulesUsed();
- if(fCalorimeter=="PHOS" && fNModules > 4) fNModules = 4;
+ if(GetCalorimeter()=="PHOS" && fNModules > 4) fNModules = 4;
//Histograms
Int_t nptbins = GetHistogramRanges()->GetHistoPtBins(); Float_t ptmax = GetHistogramRanges()->GetHistoPtMax(); Float_t ptmin = GetHistogramRanges()->GetHistoPtMin();
fNMaxRows = 24;
fNRCU = 2 ;
//PHOS
- if(fCalorimeter=="PHOS")
+ if(GetCalorimeter()=="PHOS")
{
fNMaxCols = 56;
fNMaxRows = 64;
outputContainer->Add(fhCaloCorrECells);
//Calorimeter VS V0 signal
- fhCaloV0SCorrNClusters = new TH2F ("hCaloV0SNClusters",Form("# clusters in %s vs V0 signal",fCalorimeter.Data()), nv0sbins,nv0smin,nv0smax,nclbins,nclmin,nclmax);
+ fhCaloV0SCorrNClusters = new TH2F ("hCaloV0SNClusters",Form("# clusters in %s vs V0 signal",GetCalorimeter().Data()), nv0sbins,nv0smin,nv0smax,nclbins,nclmin,nclmax);
fhCaloV0SCorrNClusters->SetXTitle("V0 signal");
- fhCaloV0SCorrNClusters->SetYTitle(Form("number of clusters in %s",fCalorimeter.Data()));
+ fhCaloV0SCorrNClusters->SetYTitle(Form("number of clusters in %s",GetCalorimeter().Data()));
outputContainer->Add(fhCaloV0SCorrNClusters);
- fhCaloV0SCorrEClusters = new TH2F ("hCaloV0SEClusters",Form("summed energy of clusters in %s vs V0 signal",fCalorimeter.Data()), nv0sbins,nv0smin,nv0smax,nptbins,ptmin,ptmax*2);
+ fhCaloV0SCorrEClusters = new TH2F ("hCaloV0SEClusters",Form("summed energy of clusters in %s vs V0 signal",GetCalorimeter().Data()), nv0sbins,nv0smin,nv0smax,nptbins,ptmin,ptmax*2);
fhCaloV0SCorrEClusters->SetXTitle("V0 signal");
- fhCaloV0SCorrEClusters->SetYTitle(Form("#Sigma #it{E} of clusters in %s (GeV)",fCalorimeter.Data()));
+ fhCaloV0SCorrEClusters->SetYTitle(Form("#Sigma #it{E} of clusters in %s (GeV)",GetCalorimeter().Data()));
outputContainer->Add(fhCaloV0SCorrEClusters);
- fhCaloV0SCorrNCells = new TH2F ("hCaloV0SNCells",Form("# Cells in %s vs V0 signal",fCalorimeter.Data()), nv0sbins,nv0smin,nv0smax, ncebins,ncemin,ncemax);
+ fhCaloV0SCorrNCells = new TH2F ("hCaloV0SNCells",Form("# Cells in %s vs V0 signal",GetCalorimeter().Data()), nv0sbins,nv0smin,nv0smax, ncebins,ncemin,ncemax);
fhCaloV0SCorrNCells->SetXTitle("V0 signal");
- fhCaloV0SCorrNCells->SetYTitle(Form("number of Cells in %s",fCalorimeter.Data()));
+ fhCaloV0SCorrNCells->SetYTitle(Form("number of Cells in %s",GetCalorimeter().Data()));
outputContainer->Add(fhCaloV0SCorrNCells);
- fhCaloV0SCorrECells = new TH2F ("hCaloV0SECells",Form("summed energy of Cells in %s vs V0 signal",fCalorimeter.Data()), nv0sbins,nv0smin,nv0smax,nptbins,ptmin,ptmax*2);
+ fhCaloV0SCorrECells = new TH2F ("hCaloV0SECells",Form("summed energy of Cells in %s vs V0 signal",GetCalorimeter().Data()), nv0sbins,nv0smin,nv0smax,nptbins,ptmin,ptmax*2);
fhCaloV0SCorrECells->SetXTitle("V0 signal");
- fhCaloV0SCorrECells->SetYTitle(Form("#Sigma #it{E} of Cells in %s (GeV)",fCalorimeter.Data()));
+ fhCaloV0SCorrECells->SetYTitle(Form("#Sigma #it{E} of Cells in %s (GeV)",GetCalorimeter().Data()));
outputContainer->Add(fhCaloV0SCorrECells);
//Calorimeter VS V0 multiplicity
- fhCaloV0MCorrNClusters = new TH2F ("hCaloV0MNClusters",Form("# clusters in %s vs V0 signal",fCalorimeter.Data()), nv0mbins,nv0mmin,nv0mmax,nclbins,nclmin,nclmax);
+ fhCaloV0MCorrNClusters = new TH2F ("hCaloV0MNClusters",Form("# clusters in %s vs V0 signal",GetCalorimeter().Data()), nv0mbins,nv0mmin,nv0mmax,nclbins,nclmin,nclmax);
fhCaloV0MCorrNClusters->SetXTitle("V0 signal");
- fhCaloV0MCorrNClusters->SetYTitle(Form("number of clusters in %s",fCalorimeter.Data()));
+ fhCaloV0MCorrNClusters->SetYTitle(Form("number of clusters in %s",GetCalorimeter().Data()));
outputContainer->Add(fhCaloV0MCorrNClusters);
- fhCaloV0MCorrEClusters = new TH2F ("hCaloV0MEClusters",Form("summed energy of clusters in %s vs V0 signal",fCalorimeter.Data()), nv0mbins,nv0mmin,nv0mmax,nptbins,ptmin,ptmax*2);
+ fhCaloV0MCorrEClusters = new TH2F ("hCaloV0MEClusters",Form("summed energy of clusters in %s vs V0 signal",GetCalorimeter().Data()), nv0mbins,nv0mmin,nv0mmax,nptbins,ptmin,ptmax*2);
fhCaloV0MCorrEClusters->SetXTitle("V0 signal");
- fhCaloV0MCorrEClusters->SetYTitle(Form("#Sigma #it{E} of clusters in %s (GeV)",fCalorimeter.Data()));
+ fhCaloV0MCorrEClusters->SetYTitle(Form("#Sigma #it{E} of clusters in %s (GeV)",GetCalorimeter().Data()));
outputContainer->Add(fhCaloV0MCorrEClusters);
- fhCaloV0MCorrNCells = new TH2F ("hCaloV0MNCells",Form("# Cells in %s vs V0 signal",fCalorimeter.Data()), nv0mbins,nv0mmin,nv0mmax, ncebins,ncemin,ncemax);
+ fhCaloV0MCorrNCells = new TH2F ("hCaloV0MNCells",Form("# Cells in %s vs V0 signal",GetCalorimeter().Data()), nv0mbins,nv0mmin,nv0mmax, ncebins,ncemin,ncemax);
fhCaloV0MCorrNCells->SetXTitle("V0 signal");
- fhCaloV0MCorrNCells->SetYTitle(Form("number of Cells in %s",fCalorimeter.Data()));
+ fhCaloV0MCorrNCells->SetYTitle(Form("number of Cells in %s",GetCalorimeter().Data()));
outputContainer->Add(fhCaloV0MCorrNCells);
- fhCaloV0MCorrECells = new TH2F ("hCaloV0MECells",Form("summed energy of Cells in %s vs V0 signal",fCalorimeter.Data()), nv0mbins,nv0mmin,nv0mmax,nptbins,ptmin,ptmax*2);
+ fhCaloV0MCorrECells = new TH2F ("hCaloV0MECells",Form("summed energy of Cells in %s vs V0 signal",GetCalorimeter().Data()), nv0mbins,nv0mmin,nv0mmax,nptbins,ptmin,ptmax*2);
fhCaloV0MCorrECells->SetXTitle("V0 signal");
- fhCaloV0MCorrECells->SetYTitle(Form("#Sigma #it{E} of Cells in %s (GeV)",fCalorimeter.Data()));
+ fhCaloV0MCorrECells->SetYTitle(Form("#Sigma #it{E} of Cells in %s (GeV)",GetCalorimeter().Data()));
outputContainer->Add(fhCaloV0MCorrECells);
//Calorimeter VS Track multiplicity
- fhCaloTrackMCorrNClusters = new TH2F ("hCaloTrackMNClusters",Form("# clusters in %s vs # tracks",fCalorimeter.Data()), ntrmbins,ntrmmin,ntrmmax,nclbins,nclmin,nclmax);
+ fhCaloTrackMCorrNClusters = new TH2F ("hCaloTrackMNClusters",Form("# clusters in %s vs # tracks",GetCalorimeter().Data()), ntrmbins,ntrmmin,ntrmmax,nclbins,nclmin,nclmax);
fhCaloTrackMCorrNClusters->SetXTitle("# tracks");
- fhCaloTrackMCorrNClusters->SetYTitle(Form("number of clusters in %s",fCalorimeter.Data()));
+ fhCaloTrackMCorrNClusters->SetYTitle(Form("number of clusters in %s",GetCalorimeter().Data()));
outputContainer->Add(fhCaloTrackMCorrNClusters);
- fhCaloTrackMCorrEClusters = new TH2F ("hCaloTrackMEClusters",Form("summed energy of clusters in %s vs # tracks",fCalorimeter.Data()), ntrmbins,ntrmmin,ntrmmax,nptbins,ptmin,ptmax*2);
+ fhCaloTrackMCorrEClusters = new TH2F ("hCaloTrackMEClusters",Form("summed energy of clusters in %s vs # tracks",GetCalorimeter().Data()), ntrmbins,ntrmmin,ntrmmax,nptbins,ptmin,ptmax*2);
fhCaloTrackMCorrEClusters->SetXTitle("# tracks");
- fhCaloTrackMCorrEClusters->SetYTitle(Form("#Sigma #it{E} of clusters in %s (GeV)",fCalorimeter.Data()));
+ fhCaloTrackMCorrEClusters->SetYTitle(Form("#Sigma #it{E} of clusters in %s (GeV)",GetCalorimeter().Data()));
outputContainer->Add(fhCaloTrackMCorrEClusters);
- fhCaloTrackMCorrNCells = new TH2F ("hCaloTrackMNCells",Form("# Cells in %s vs # tracks",fCalorimeter.Data()), ntrmbins,ntrmmin,ntrmmax, ncebins,ncemin,ncemax);
+ fhCaloTrackMCorrNCells = new TH2F ("hCaloTrackMNCells",Form("# Cells in %s vs # tracks",GetCalorimeter().Data()), ntrmbins,ntrmmin,ntrmmax, ncebins,ncemin,ncemax);
fhCaloTrackMCorrNCells->SetXTitle("# tracks");
- fhCaloTrackMCorrNCells->SetYTitle(Form("number of Cells in %s",fCalorimeter.Data()));
+ fhCaloTrackMCorrNCells->SetYTitle(Form("number of Cells in %s",GetCalorimeter().Data()));
outputContainer->Add(fhCaloTrackMCorrNCells);
- fhCaloTrackMCorrECells = new TH2F ("hCaloTrackMECells",Form("summed energy of Cells in %s vs # tracks",fCalorimeter.Data()), ntrmbins,ntrmmin,ntrmmax,nptbins,ptmin,ptmax*2);
+ fhCaloTrackMCorrECells = new TH2F ("hCaloTrackMECells",Form("summed energy of Cells in %s vs # tracks",GetCalorimeter().Data()), ntrmbins,ntrmmin,ntrmmax,nptbins,ptmin,ptmax*2);
fhCaloTrackMCorrECells->SetXTitle("# tracks");
- fhCaloTrackMCorrECells->SetYTitle(Form("#Sigma #it{E} of Cells in %s (GeV)",fCalorimeter.Data()));
+ fhCaloTrackMCorrECells->SetYTitle(Form("#Sigma #it{E} of Cells in %s (GeV)",GetCalorimeter().Data()));
outputContainer->Add(fhCaloTrackMCorrECells);
fhCaloCenNClusters = new TH2F ("hCaloCenNClusters","# clusters in calorimeter vs centrality",100,0,100,nclbins,nclmin,nclmax);
Int_t colmaxs = fNMaxCols;
Int_t rowmaxs = fNMaxRows;
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
colmaxs=2*fNMaxCols;
rowmaxs=Int_t(fNModules/2)*fNMaxRows;
// Get energy in cross axis around maximum cell, for EMCAL only
Int_t icol =-1, irow=-1,iRCU = -1;
- Int_t imod = GetModuleNumberCellIndexes(absID, fCalorimeter, icol, irow, iRCU);
+ Int_t imod = GetModuleNumberCellIndexes(absID, GetCalorimeter(), icol, irow, iRCU);
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
//Get close cells index, energy and time, not in corners
//Recalibrate cell energy if needed
//Float_t ecell = cells->GetCellAmplitude(absID);
- //GetCaloUtils()->RecalibrateCellAmplitude(ecell,fCalorimeter, absID);
+ //GetCaloUtils()->RecalibrateCellAmplitude(ecell,GetCalorimeter(), absID);
Double_t tcell = cells->GetCellTime(absID);
- GetCaloUtils()->RecalibrateCellTime(tcell, fCalorimeter, absID,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(tcell, GetCalorimeter(), absID,GetReader()->GetInputEvent()->GetBunchCrossNumber());
Float_t ecell1 = 0, ecell2 = 0, ecell3 = 0, ecell4 = 0;
Double_t tcell1 = 0, tcell2 = 0, tcell3 = 0, tcell4 = 0;
if(absID1 > 0 )
{
ecell1 = cells->GetCellAmplitude(absID1);
- GetCaloUtils()->RecalibrateCellAmplitude(ecell1, fCalorimeter, absID1);
+ GetCaloUtils()->RecalibrateCellAmplitude(ecell1, GetCalorimeter(), absID1);
tcell1 = cells->GetCellTime(absID1);
- GetCaloUtils()->RecalibrateCellTime (tcell1, fCalorimeter, absID1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime (tcell1, GetCalorimeter(), absID1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
}
if(absID2 > 0 )
{
ecell2 = cells->GetCellAmplitude(absID2);
- GetCaloUtils()->RecalibrateCellAmplitude(ecell2, fCalorimeter, absID2);
+ GetCaloUtils()->RecalibrateCellAmplitude(ecell2, GetCalorimeter(), absID2);
tcell2 = cells->GetCellTime(absID2);
- GetCaloUtils()->RecalibrateCellTime (tcell2, fCalorimeter, absID2, GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime (tcell2, GetCalorimeter(), absID2, GetReader()->GetInputEvent()->GetBunchCrossNumber());
}
if(absID3 > 0 )
{
ecell3 = cells->GetCellAmplitude(absID3);
- GetCaloUtils()->RecalibrateCellAmplitude(ecell3, fCalorimeter, absID3);
+ GetCaloUtils()->RecalibrateCellAmplitude(ecell3, GetCalorimeter(), absID3);
tcell3 = cells->GetCellTime(absID3);
- GetCaloUtils()->RecalibrateCellTime (tcell3, fCalorimeter, absID3, GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime (tcell3, GetCalorimeter(), absID3, GetReader()->GetInputEvent()->GetBunchCrossNumber());
}
if(absID4 > 0 )
{
ecell4 = cells->GetCellAmplitude(absID4);
- GetCaloUtils()->RecalibrateCellAmplitude(ecell4, fCalorimeter, absID4);
+ GetCaloUtils()->RecalibrateCellAmplitude(ecell4, GetCalorimeter(), absID4);
tcell4 = cells->GetCellTime(absID4);
- GetCaloUtils()->RecalibrateCellTime (tcell4, fCalorimeter, absID4, GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime (tcell4, GetCalorimeter(), absID4, GetReader()->GetInputEvent()->GetBunchCrossNumber());
}
if(TMath::Abs(tcell-tcell1)*1.e9 > dtcut) ecell1 = 0 ;
//Check only certain regions
Bool_t in2 = kTRUE;
- if(IsFiducialCutOn()) in2 = GetFiducialCut()->IsInFiducialCut(mom2,fCalorimeter) ;
+ if(IsFiducialCutOn()) in2 = GetFiducialCut()->IsInFiducialCut(mom2,GetCalorimeter()) ;
if(!in2) continue;
//Get module of cluster
{
//Check if the data or settings are ok
- if(fCalorimeter != "PHOS" && fCalorimeter !="EMCAL")
- AliFatal(Form("Wrong calorimeter name <%s>", fCalorimeter.Data()));
+ if(GetCalorimeter() != "PHOS" && GetCalorimeter() !="EMCAL")
+ AliFatal(Form("Wrong calorimeter name <%s>", GetCalorimeter().Data()));
//if(GetReader()->GetDataType()== AliCaloTrackReader::kMC)
// AliFatal("Analysis of reconstructed data, MC reader not aplicable");
//Initialize the parameters of the analysis.
AddToHistogramsName("AnaCaloQA_");
- fCalorimeter = "EMCAL"; //or PHOS
fNModules = 22; // set maximum to maximum number of EMCAL modules
fNRCU = 2; // set maximum number of RCU in EMCAL per SM
if(!fStudyBadClusters) return kTRUE;
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
if(!GetCaloUtils()->GetEMCALRecoUtils()->IsRejectExoticCluster())
{
else // PHOS
{
Float_t ampMax = cells->GetCellAmplitude(absIdMax);
- GetCaloUtils()->RecalibrateCellAmplitude(ampMax, fCalorimeter, absIdMax);
+ GetCaloUtils()->RecalibrateCellAmplitude(ampMax, GetCalorimeter(), absIdMax);
if(ampMax < 0.01) return kFALSE;
printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
AliAnaCaloTrackCorrBaseClass::Print(" ");
- printf("Select Calorimeter %s \n",fCalorimeter.Data());
+ printf("Select Calorimeter %s \n",GetCalorimeter().Data());
printf("Time Cut: %3.1f < TOF < %3.1f\n", fTimeCutMin, fTimeCutMax);
printf("EMCAL Min Amplitude : %2.1f GeV/c\n", fEMCALCellAmpMin) ;
printf("PHOS Min Amplitude : %2.1f GeV/c\n", fPHOSCellAmpMin) ;
//Get List with CaloClusters , calo Cells, init min amplitude
TObjArray * caloClusters = NULL;
AliVCaloCells * cells = 0x0;
- if (fCalorimeter == "PHOS")
+ if (GetCalorimeter() == "PHOS")
{
fCellAmpMin = fPHOSCellAmpMin;
caloClusters = GetPHOSClusters();
cells = GetPHOSCells();
}
- else if (fCalorimeter == "EMCAL")
+ else if (GetCalorimeter() == "EMCAL")
{
fCellAmpMin = fEMCALCellAmpMin;
caloClusters = GetEMCALClusters();
cells = GetEMCALCells();
}
else
- AliFatal(Form("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - Wrong calorimeter name <%s>, END\n", fCalorimeter.Data()));
+ AliFatal(Form("AliAnaCalorimeterQA::MakeAnalysisFillHistograms() - Wrong calorimeter name <%s>, END\n", GetCalorimeter().Data()));
if( !caloClusters || !cells )
{
Bool_t inacceptance = kTRUE;
// Check same fidutial borders as in data analysis on top of real acceptance if real was requested.
- if( IsFiducialCutOn() && !GetFiducialCut()->IsInFiducialCut(mom,fCalorimeter) ) inacceptance = kFALSE ;
+ if( IsFiducialCutOn() && !GetFiducialCut()->IsInFiducialCut(mom,GetCalorimeter()) ) inacceptance = kFALSE ;
if(IsRealCaloAcceptanceOn()) // defined on base class
{
if(GetReader()->ReadStack() &&
- !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(fCalorimeter, primStack)) inacceptance = kFALSE ;
+ !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(GetCalorimeter(), primStack)) inacceptance = kFALSE ;
if(GetReader()->ReadAODMCParticles() &&
- !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(fCalorimeter, primAOD )) inacceptance = kFALSE ;
+ !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(GetCalorimeter(), primAOD )) inacceptance = kFALSE ;
}
if(!inacceptance) continue;
//Recalibrate cell energy if needed
Float_t amp = cells->GetCellAmplitude(id);
- GetCaloUtils()->RecalibrateCellAmplitude(amp, fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp, GetCalorimeter(), id);
energy += amp;
//Recalibrate cell energy if needed
Float_t amp = cells->GetCellAmplitude(id);
- GetCaloUtils()->RecalibrateCellAmplitude(amp, fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp, GetCalorimeter(), id);
fhECellClusterRatio ->Fill(energy,amp/energy);
fhECellClusterLogRatio->Fill(energy,TMath::Log(amp/energy));
}
//Recalculate shower shape for different W0
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
Float_t l0org = clus->GetM02();
Float_t l1org = clus->GetM20();
Int_t tagMC = -1;
if(IsDataMC() && clus->GetNLabels() > 0)
{
- Int_t tag = GetMCAnalysisUtils()->CheckOrigin(clus->GetLabels(),clus->GetNLabels(), GetReader(),fCalorimeter);
+ Int_t tag = GetMCAnalysisUtils()->CheckOrigin(clus->GetLabels(),clus->GetNLabels(), GetReader(),GetCalorimeter());
if( GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCPhoton) &&
!GetMCAnalysisUtils()->CheckTagBit(tag, AliMCAnalysisUtils::kMCPi0) &&
Float_t GetInvMassMinECut() const { return fMinInvMassECut ; }
void SetInvMassMinECut(Float_t cut) { fMinInvMassECut = cut ; }
-
- TString GetCalorimeter() const { return fCalorimeter ; }
- void SetCalorimeter(TString calo) { fCalorimeter = calo ; }
Double_t GetTimeCutMin() const { return fTimeCutMin ; }
Double_t GetTimeCutMax() const { return fTimeCutMax ; }
private:
- TString fCalorimeter ; // Calorimeter selection
-
//Switches
Bool_t fFillAllCellTimeHisto; // Fill all cell time histo
Bool_t fFillAllPosHisto; // Fill all the position related histograms
//__________________________________________________
AliAnaChargedParticles::AliAnaChargedParticles() :
AliAnaCaloTrackCorrBaseClass(),
- fFillPileUpHistograms(0), fFillTrackBCHistograms(0),
- fFillVertexBC0Histograms(0),
+ fFillTrackBCHistograms(0), fFillVertexBC0Histograms(0),
//Histograms
fhNtracks(0), fhPt(0), fhPtNoCut(0),
fhPtCutDCA(0), fhPtCutDCABCOK(0),
outputContainer->Add(fhPtTOFSignalVtxInBC0);
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
TString pileUpName[] = {"SPD","EMCAL","SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
fhEtaPhiTOFBCMinus->SetYTitle("#phi (rad)");
outputContainer->Add(fhEtaPhiTOFBCMinus);
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
fhEtaPhiTOFBC0PileUpSPD = new TH2F ("hEtaPhiTOFBC0PileUpSPD","eta-phi for tracks with hit on TOF, and tof corresponding to BC=0, SPD pile-up",netabins,etamin,etamax, nphibins,phimin,phimax);
fhEtaPhiTOFBC0PileUpSPD->SetXTitle("#eta ");
outputContainer->Add(fhPtDCAVtxInBC0NoTOFHit[i]);
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
fhPtDCAPileUp[i] = new TH2F(Form("hPtDCA%sPileUp",dcaName[i].Data()),
Form("Track DCA%s vs #it{p}_{T}distribution, SPD Pile-Up",dcaName[i].Data()),
if(fFillVertexBC0Histograms)
{
fhProductionVertexBC->Fill(vtxBC);
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if(GetReader()->IsPileUpFromSPD()) fhProductionVertexBCPileUp[0]->Fill(vtxBC);
if(GetReader()->IsPileUpFromEMCal()) fhProductionVertexBCPileUp[1]->Fill(vtxBC);
}
}
- if(fFillPileUpHistograms && GetReader()->IsPileUpFromSPD())
+ if(IsPileUpAnalysisOn() && GetReader()->IsPileUpFromSPD())
{
if(dcaCons == -999)
{
}
}
- if(fFillPileUpHistograms && GetReader()->IsPileUpFromSPD())
+ if(IsPileUpAnalysisOn() && GetReader()->IsPileUpFromSPD())
{
if(dcaCons == -999)
{
else
fhPtDCATOFBC0[2]->Fill(pt, dcaCons);
- if(fFillPileUpHistograms && GetReader()->IsPileUpFromSPD())
+ if(IsPileUpAnalysisOn() && GetReader()->IsPileUpFromSPD())
{
if(dcaCons == -999)
{
}
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if(GetReader()->IsPileUpFromSPD()) fhPtTOFSignalPileUp[0]->Fill(pt, tof);
if(GetReader()->IsPileUpFromEMCal()) fhPtTOFSignalPileUp[1]->Fill(pt, tof);
if(fFillTrackBCHistograms)
{
- if (trackBC ==0) { fhEtaPhiTOFBC0 ->Fill(eta,phi); if(fFillPileUpHistograms && GetReader()->IsPileUpFromSPD()) fhEtaPhiTOFBC0PileUpSPD ->Fill(eta,phi); }
- else if (trackBC < 0) { fhEtaPhiTOFBCPlus ->Fill(eta,phi); if(fFillPileUpHistograms && GetReader()->IsPileUpFromSPD()) fhEtaPhiTOFBCPlusPileUpSPD ->Fill(eta,phi); }
- else if (trackBC > 0) { fhEtaPhiTOFBCMinus->Fill(eta,phi); if(fFillPileUpHistograms && GetReader()->IsPileUpFromSPD()) fhEtaPhiTOFBCMinusPileUpSPD->Fill(eta,phi); }
+ if (trackBC ==0) { fhEtaPhiTOFBC0 ->Fill(eta,phi); if(IsPileUpAnalysisOn() && GetReader()->IsPileUpFromSPD()) fhEtaPhiTOFBC0PileUpSPD ->Fill(eta,phi); }
+ else if (trackBC < 0) { fhEtaPhiTOFBCPlus ->Fill(eta,phi); if(IsPileUpAnalysisOn() && GetReader()->IsPileUpFromSPD()) fhEtaPhiTOFBCPlusPileUpSPD ->Fill(eta,phi); }
+ else if (trackBC > 0) { fhEtaPhiTOFBCMinus->Fill(eta,phi); if(IsPileUpAnalysisOn() && GetReader()->IsPileUpFromSPD()) fhEtaPhiTOFBCMinusPileUpSPD->Fill(eta,phi); }
}
if(fFillVertexBC0Histograms)
fhEtaPhiNeg->Fill(eta,phi);
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if(GetReader()->IsPileUpFromSPD()) {fhPtPileUp[0]->Fill(pt);}
if(GetReader()->IsPileUpFromEMCal()) {fhPtPileUp[1]->Fill(pt);}
void MakeAnalysisFillAOD() ;
- void MakeAnalysisFillHistograms() ;
-
- void SwitchOnFillPileUpHistograms() { fFillPileUpHistograms = kTRUE ; }
- void SwitchOffFillPileUpHistograms() { fFillPileUpHistograms = kFALSE ; }
+ void MakeAnalysisFillHistograms() ;
void SwitchOnFillTrackBCHistograms() { fFillTrackBCHistograms = kTRUE ; }
void SwitchOffFillTrackBCHistograms() { fFillTrackBCHistograms = kFALSE ; }
private:
- Bool_t fFillPileUpHistograms; // Fill pile-up related histograms
Bool_t fFillTrackBCHistograms; // Fill histograms for tracks with TOF BC=0 or not related histograms
Bool_t fFillVertexBC0Histograms; // Fill histograms for tracks with vertex BC=0 or not related histograms
//___________________________________________
AliAnaClusterPileUp::AliAnaClusterPileUp() :
AliAnaCaloTrackCorrBaseClass(),
-fCalorimeter(""), fNCellsCut(0),
+fNCellsCut(0),
// Histograms
fhTimePtNoCut(0), fhTimePtSPD(0),
fhTimeNPileUpVertSPD(0), fhTimeNPileUpVertTrack(0),
snprintf(onePar,buffersize,"--- AliAnaClusterPileUp ---\n") ;
parList+=onePar ;
- snprintf(onePar,buffersize,"Calorimeter: %s\n",fCalorimeter.Data()) ;
+ snprintf(onePar,buffersize,"Calorimeter: %s\n",GetCalorimeter().Data()) ;
parList+=onePar ;
//Get parameters set in base class.
//Init
//Do some checks
- if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn())
+ if(GetCalorimeter() == "PHOS" && !GetReader()->IsPHOSSwitchedOn())
AliFatal("You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!");
- if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn())
+ if(GetCalorimeter() == "EMCAL" && !GetReader()->IsEMCALSwitchedOn())
AliFatal("You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!");
if(GetReader()->GetDataType() == AliCaloTrackReader::kMC)
//Initialize the parameters of the analysis.
AddToHistogramsName("AnaClusterPileUp_");
- fCalorimeter = "EMCAL" ;
fNCellsCut = 2;
}
//Select the calorimeter
TObjArray * pl = 0x0;
AliVCaloCells* cells = 0;
- if (fCalorimeter == "PHOS" )
+ if (GetCalorimeter() == "PHOS" )
{
pl = GetPHOSClusters();
cells = GetPHOSCells();
}
- else if (fCalorimeter == "EMCAL")
+ else if (GetCalorimeter() == "EMCAL")
{
pl = GetEMCALClusters();
cells = GetEMCALCells();
if(!pl)
{
- Info("MakeAnalysisFillAOD","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data());
+ Info("MakeAnalysisFillAOD","TObjArray with %s clusters is NULL!\n",GetCalorimeter().Data());
return;
}
// Loop on clusters
Int_t nCaloClusters = pl->GetEntriesFast();
- if(GetDebug() > 0) printf("AliAnaClusterPileUp::MakeAnalysisFillAOD() - input %s cluster entries %d\n", fCalorimeter.Data(), nCaloClusters);
+ if(GetDebug() > 0) printf("AliAnaClusterPileUp::MakeAnalysisFillAOD() - input %s cluster entries %d\n", GetCalorimeter().Data(), nCaloClusters);
//Init variables
TLorentzVector mom;
Int_t idMax = 0;
//Check acceptance selection
if(IsFiducialCutOn())
{
- Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,fCalorimeter) ;
+ Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,GetCalorimeter()) ;
if(! in ) continue;
}
printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
AliAnaCaloTrackCorrBaseClass::Print(" ");
- printf("Calorimeter = %s\n", fCalorimeter.Data()) ;
+ printf("Calorimeter = %s\n", GetCalorimeter().Data()) ;
printf(" \n") ;
}
// Analysis parameters setters getters
- TString GetCalorimeter() const { return fCalorimeter ; }
- void SetCalorimeter(TString & det) { fCalorimeter = det ; }
-
void SetNCellCut(Int_t n) { fNCellsCut = n ; }
Double_t GetNCellCut() const { return fNCellsCut ; }
private:
- TString fCalorimeter ; // Calorimeter of the cluster;
Int_t fNCellsCut ; // Accept for the analysis clusters with more than fNCellsCut cells
//Histograms
//________________________________
AliAnaElectron::AliAnaElectron() :
- AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""),
+ AliAnaCaloTrackCorrBaseClass(),
fMinDist(0.), fMinDist2(0.), fMinDist3(0.),
fTimeCutMin(-1), fTimeCutMax(999999),
fNCellsCut(0), fNLMCutMin(-1), fNLMCutMax(10),
//.......................................
//Check acceptance selection
if(IsFiducialCutOn()){
- Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,fCalorimeter) ;
+ Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,GetCalorimeter()) ;
if(! in ) return kFALSE ;
}
if(GetDebug() > 2) printf("Fiducial cut passed \n");
fhLam1E[pidIndex] ->Fill(energy,lambda1);
fhDispE[pidIndex] ->Fill(energy,disp);
- if(fCalorimeter == "EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter() == "EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
GetModuleNumber(cluster) >= GetFirstSMCoveredByTRD() )
{
fhLam0ETRD[pidIndex]->Fill(energy,lambda0);
fhPhiLam0HighE[pidIndex] ->Fill(phi, lambda0);
}
- if(fCalorimeter == "EMCAL")
+ if(GetCalorimeter() == "EMCAL")
{
GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
if(IsDataMC())
{
AliVCaloCells* cells = 0;
- if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
+ if(GetCalorimeter() == "EMCAL") cells = GetEMCALCells();
else cells = GetPHOSCells();
//Fill histograms to check shape of embedded clusters
fhMCELambda0[pidIndex][index] ->Fill(energy, lambda0);
- if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
+ if(GetCalorimeter() == "EMCAL" && !fFillOnlySimpleSSHisto)
{
fhMCEDispEta [pidIndex][index]-> Fill(energy,dEta);
fhMCEDispPhi [pidIndex][index]-> Fill(energy,dPhi);
snprintf(onePar,buffersize,"--- AliAnaElectron ---\n") ;
parList+=onePar ;
- snprintf(onePar,buffersize,"Calorimeter: %s\n",fCalorimeter.Data()) ;
+ snprintf(onePar,buffersize,"Calorimeter: %s\n",GetCalorimeter().Data()) ;
parList+=onePar ;
snprintf(onePar,buffersize," %2.2f < dEdx < %2.2f \n",fdEdxMin,fdEdxMax) ;
parList+=onePar ;
fhDispE[pidIndex]->SetXTitle("E (GeV) ");
outputContainer->Add(fhDispE[pidIndex]);
- if(fCalorimeter == "EMCAL" && GetFirstSMCoveredByTRD() >=0 )
+ if(GetCalorimeter() == "EMCAL" && GetFirstSMCoveredByTRD() >=0 )
{
fhLam0ETRD[pidIndex] = new TH2F (Form("h%sLam0ETRD",pidParticle[pidIndex].Data()),
Form("%s: #lambda_{0}^{2} vs E, EMCAL SM covered by TRD",pidParticle[pidIndex].Data()),
fhPhiLam0HighE[pidIndex]->SetXTitle("#phi");
outputContainer->Add(fhPhiLam0HighE[pidIndex]);
- if(fCalorimeter == "EMCAL")
+ if(GetCalorimeter() == "EMCAL")
{
fhDispEtaE[pidIndex] = new TH2F (Form("h%sDispEtaE",pidParticle[pidIndex].Data()),
Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",pidParticle[pidIndex].Data()),
fhMCELambda0[pidIndex][i]->SetXTitle("E (GeV)");
outputContainer->Add(fhMCELambda0[pidIndex][i]) ;
- if(fCalorimeter=="EMCAL" && !fFillOnlySimpleSSHisto)
+ if(GetCalorimeter()=="EMCAL" && !fFillOnlySimpleSSHisto)
{
fhMCEDispEta[pidIndex][i] = new TH2F (Form("h%sEDispEtaE_MC%s",pidParticle[pidIndex].Data(),pnamess[i].Data()),
Form("cluster from %s : %s like, #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data(),pidParticle[pidIndex].Data()),
//Init
//Do some checks
- if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD()){
+ if(GetCalorimeter() == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD()){
printf("AliAnaElectron::Init() - !!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n");
abort();
}
- else if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD()){
+ else if(GetCalorimeter() == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD()){
printf("AliAnaElectron::Init() - !!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n");
abort();
}
//Initialize the parameters of the analysis.
AddToHistogramsName("AnaElectron_");
- fCalorimeter = "EMCAL" ;
fMinDist = 2.;
fMinDist2 = 4.;
fMinDist3 = 5.;
//Select the Calorimeter of the photon
TObjArray * pl = 0x0;
- if(fCalorimeter == "PHOS")
+ if(GetCalorimeter() == "PHOS")
pl = GetPHOSClusters();
- else if (fCalorimeter == "EMCAL")
+ else if (GetCalorimeter() == "EMCAL")
pl = GetEMCALClusters();
if(!pl)
{
- Info("MakeAnalysisFillAOD","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data());
+ Info("MakeAnalysisFillAOD","TObjArray with %s clusters is NULL!\n",GetCalorimeter().Data());
return;
}
Int_t nCaloClusters = pl->GetEntriesFast();
//List to be used in conversion analysis, to tag the cluster as candidate for conversion
- if(GetDebug() > 0) printf("AliAnaElectron::MakeAnalysisFillAOD() - input %s cluster entries %d\n", fCalorimeter.Data(), nCaloClusters);
+ if(GetDebug() > 0) printf("AliAnaElectron::MakeAnalysisFillAOD() - input %s cluster entries %d\n", GetCalorimeter().Data(), nCaloClusters);
//----------------------------------------------------
// Fill AOD with PHOS/EMCAL AliAODPWG4Particle objects
// Cluster selection
//--------------------------------------
AliVCaloCells* cells = 0;
- if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
+ if(GetCalorimeter() == "EMCAL") cells = GetEMCALCells();
else cells = GetPHOSCells();
Int_t nMaxima = GetCaloUtils()->GetNumberOfLocalMaxima(calo, cells); // NLM
Int_t tag = -1 ;
if(IsDataMC())
{
- tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),fCalorimeter);
+ tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),GetCalorimeter());
if(GetDebug() > 0)
printf("AliAnaElectron::MakeAnalysisFillAOD() - Origin of candidate, bit map %d\n",tag);
aodpart.SetCaloLabel (calo ->GetID(),-1);
aodpart.SetTrackLabel(track->GetID(),-1);
- aodpart.SetDetector(fCalorimeter);
+ aodpart.SetDetector(GetCalorimeter());
//printf("Index %d, Id %d, iaod %d\n",icalo, calo->GetID(),GetOutputAODBranch()->GetEntriesFast());
//...............................................
else if(pdg == AliCaloPID::kChargedHadron) pidIndex = 1;
else continue ;
- if(ph->GetDetector() != fCalorimeter) continue;
+ if(ph->GetDetector() != GetCalorimeter()) continue;
if(GetDebug() > 2)
printf("AliAnaElectron::MakeAnalysisFillHistograms() - ID Electron: pt %f, phi %f, eta %f\n", ph->Pt(),ph->Phi(),ph->Eta()) ;
printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
AliAnaCaloTrackCorrBaseClass::Print(" ");
- printf("Calorimeter = %s\n", fCalorimeter.Data()) ;
+ printf("Calorimeter = %s\n", GetCalorimeter().Data()) ;
printf(" %2.2f < dEdx < %2.2f \n",fdEdxMin,fdEdxMax) ;
printf(" %2.2f < E/P < %2.2f \n",fEOverPMin,fEOverPMax) ;
printf("Min Distance to Bad Channel = %2.1f\n",fMinDist);
if(!fFillWeightHistograms || GetMixedEvent()) return;
AliVCaloCells* cells = 0;
- if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
+ if(GetCalorimeter() == "EMCAL") cells = GetEMCALCells();
else cells = GetPHOSCells();
// First recalculate energy in case non linearity was applied
//Recalibrate cell energy if needed
Float_t amp = cells->GetCellAmplitude(id);
- GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp,GetCalorimeter(), id);
energy += amp;
//Recalibrate cell energy if needed
Float_t amp = cells->GetCellAmplitude(id);
- GetCaloUtils()->RecalibrateCellAmplitude(amp, fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp, GetCalorimeter(), id);
//printf("energy %f, amp %f, rat %f, lograt %f\n",energy,amp,amp/energy,TMath::Log(amp/energy));
fhECellClusterRatio ->Fill(energy,amp/energy);
}
//Recalculate shower shape for different W0
- if(fCalorimeter=="EMCAL"){
+ if(GetCalorimeter()=="EMCAL"){
Float_t l0org = clus->GetM02();
Float_t l1org = clus->GetM20();
// Analysis parameters setters getters
//---------------------------------------
- TString GetCalorimeter() const { return fCalorimeter ; }
- void SetCalorimeter(TString & det) { fCalorimeter = det ; }
-
// ** Cluster selection methods **
void SetdEdxCut(Double_t min, Double_t max) { fdEdxMin = min ;
private:
- TString fCalorimeter ; // Calorimeter where the gamma is searched;
Float_t fMinDist ; // Minimal distance to bad channel to accept cluster
Float_t fMinDist2; // Cuts on Minimal distance to study acceptance evaluation
Float_t fMinDist3; // One more cut on distance used for acceptance-efficiency study
//__________________________________________
AliAnaGeneratorKine::AliAnaGeneratorKine() :
AliAnaCaloTrackCorrBaseClass(),
-fTriggerDetector(""),fCalorimeter(""),
+fTriggerDetector(""),
fFidCutTrigger(0),
fMinChargedPt(0), fMinNeutralPt(0),
fStack(0),
//Initialize the parameters of the analysis.
AddToHistogramsName("AnaGenKine_");
- fCalorimeter = "EMCAL";
fTriggerDetector = "EMCAL";
fMinChargedPt = 0.2;
}
//Calorimeter acceptance
- Bool_t inCalo = GetFiducialCut()->IsInFiducialCut(trigger,fCalorimeter) ;
+ Bool_t inCalo = GetFiducialCut()->IsInFiducialCut(trigger,GetCalorimeter()) ;
if(!inCalo) continue;
if( ptMaxNeutEMCAL < pt ) ptMaxNeutEMCAL = pt;
void MakeAnalysisFillHistograms() ;
void SetTriggerDetector( TString name ) { fTriggerDetector = name ; }
- void SetCalorimeter ( TString name ) { fCalorimeter = name ; }
void SetMinChargedPt ( Float_t pt ) { fMinChargedPt = pt ; }
void SetMinNeutralPt ( Float_t pt ) { fMinNeutralPt = pt ; }
private:
TString fTriggerDetector; //! trigger detector, for fiducial region
- TString fCalorimeter; //! detector neutral particles, for fiducial region
AliFiducialCut* fFidCutTrigger; //! fiducial cut for the trigger detector
//__________________________________________________________________
AliAnaInsideClusterInvariantMass::AliAnaInsideClusterInvariantMass() :
- AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""),
+ AliAnaCaloTrackCorrBaseClass(),
fMinNCells(0), fMinBadDist(0),
fHistoECut(0), fCheckSplitDistToBad(0), fFillAngleHisto(kFALSE),
fFillTMHisto(kFALSE), fFillTMResidualHisto(kFALSE), fFillSSExtraHisto(kFALSE),
// Int_t mcLabel = GetEMCALCells()->GetCellMCLabel(absIdCell);
// GetReader()->RemapMCLabelForAODs(mcLabel);
// Int_t ietac=-1; Int_t iphic = 0; Int_t rcuc = 0;
-// Int_t smc = GetModuleNumberCellIndexes(absIdCell,fCalorimeter, ietac, iphic, rcuc);
+// Int_t smc = GetModuleNumberCellIndexes(absIdCell,GetCalorimeter(), ietac, iphic, rcuc);
//
// printf(" \t cell i %d, abs %d, amp %2.3f, mclabel %d, (sm,ieta,iphi)=(%d,%d,%d)\n",icell,absIdCell,GetEMCALCells()->GetCellAmplitude(absIdCell),mcLabel,smc,ietac,iphic);
// }
// printf("Photon1 (eta,phi)=(%f,%f); Photon2 (eta,phi)=(%f,%f);\n",eta0,phi0*TMath::RadToDeg(),eta1,phi1*TMath::RadToDeg());
//
// Int_t ieta0=-1; Int_t iphi0 = 0; Int_t rcu0 = 0;
-// Int_t sm0 = GetModuleNumberCellIndexes(absId0,fCalorimeter, ieta0, iphi0, rcu0);
+// Int_t sm0 = GetModuleNumberCellIndexes(absId0,GetCalorimeter(), ieta0, iphi0, rcu0);
// Int_t ieta1=-1; Int_t iphi1 = 0; Int_t rcu1 = 0;
-// Int_t sm1 = GetModuleNumberCellIndexes(absId1,fCalorimeter, ieta1, iphi1, rcu1);
+// Int_t sm1 = GetModuleNumberCellIndexes(absId1,GetCalorimeter(), ieta1, iphi1, rcu1);
//
// printf("Photon1 (id,sm,eta,phi)=(%d,%d,%d,%d), Photon2 (id,sm,eta,phi)=(%d,%d,%d,%d)\n",
// absId0,sm0,ieta0,iphi0,absId1,sm1,ieta1,iphi1);
//
// Int_t ietam0=-1; Int_t iphim0 = 0; Int_t rcum0 = 0; Int_t smm0 = -1 ;
-// if(imax >= 0) smm0 = GetModuleNumberCellIndexes(list[imax] ,fCalorimeter, ietam0, iphim0, rcum0);
+// if(imax >= 0) smm0 = GetModuleNumberCellIndexes(list[imax] ,GetCalorimeter(), ietam0, iphim0, rcum0);
// Int_t ietam1=-1; Int_t iphim1 = 0; Int_t rcum1 = 0; Int_t smm1 = -1 ;
-// if(imax2 >= 0) smm1 = GetModuleNumberCellIndexes(list[imax2],fCalorimeter, ietam1, iphim1, rcum1);
+// if(imax2 >= 0) smm1 = GetModuleNumberCellIndexes(list[imax2],GetCalorimeter(), ietam1, iphim1, rcum1);
//
// printf("Max (id, sm,eta,phi)=(%d,%d,%d,%d), Max2 (id, sm,eta,phi)=(%d,%d,%d,%d)\n",
// list[imax],smm0,ietam0,iphim0,list[imax2],smm1,ietam1,iphim1);
if(!match0)
{
- if(imatch1!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax])) { match0 = kTRUE; imatch0 = imax ; }
+ if(imatch1!=imax && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[imax])) { match0 = kTRUE; imatch0 = imax ; }
//printf("imax - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam0,ieta0-ietam0, iphi0,iphim0,iphi0-iphim0);
- if(imatch1!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax2]) ) { match0 = kTRUE; imatch0 = imax2 ; }
+ if(imatch1!=imax2 && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[imax2]) ) { match0 = kTRUE; imatch0 = imax2 ; }
//printf("imax2 - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam1,ieta0-ietam1, iphi0,iphim1,iphi0-iphim1);
}
if(!match1)
{
- if(imatch0!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax]) ) { match1 = kTRUE; imatch1 = imax ; }
+ if(imatch0!=imax && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[imax]) ) { match1 = kTRUE; imatch1 = imax ; }
//printf("imax - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam0,ieta1-ietam0, iphi1,iphim0,iphi1-iphim0);
- if(imatch0!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax2])) { match1 = kTRUE; imatch1 = imax2 ; }
+ if(imatch0!=imax2 && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[imax2])) { match1 = kTRUE; imatch1 = imax2 ; }
//printf("imax2 - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam1,ieta1-ietam1, iphi1,iphim1,iphi1-iphim1);
}
// Decay photon cells are adjacent?
- if( (match0 || match1) && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,absId1) )
+ if( (match0 || match1) && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,absId1) )
{
// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
// printf("c) Both Photons hit a local maxima and in adjacent cells \n");
for(Int_t i = 0; i < nmaxima; i++)
{
Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
- GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu);
+ GetModuleNumberCellIndexes(list[i] ,GetCalorimeter(), ieta, iphi, rcu);
//printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
- if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[i]) ) adjacentOther1 = kTRUE;
+ if(GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[i]) ) adjacentOther1 = kTRUE;
//printf("Other Maxima: adjacentOther1 %d\n",adjacentOther1);
}
for(Int_t i = 0; i < nmaxima; i++)
{
Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
- GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu);
+ GetModuleNumberCellIndexes(list[i] ,GetCalorimeter(), ieta, iphi, rcu);
//printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
- if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[i]) ) adjacentOther0 = kTRUE;
+ if(GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[i]) ) adjacentOther0 = kTRUE;
//printf("Other Maxima: adjacentOther0 %d\n",adjacentOther0);
}
// Calculate weights and fill histograms
AliVCaloCells* cells = 0;
- if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
+ if(GetCalorimeter() == "EMCAL") cells = GetEMCALCells();
else cells = GetPHOSCells();
// First recalculate energy in case non linearity was applied
//Get amplitude of main local maxima, recalibrate if needed
Float_t amp1 = cells->GetCellAmplitude(absId1);
- GetCaloUtils()->RecalibrateCellAmplitude(amp1,fCalorimeter, absId1);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp1,GetCalorimeter(), absId1);
Float_t amp2 = cells->GetCellAmplitude(absId2);
- GetCaloUtils()->RecalibrateCellAmplitude(amp2,fCalorimeter, absId2);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp2,GetCalorimeter(), absId2);
if(amp1 < amp2) Info("FillSSWeightHistograms","Bad local maxima E ordering : id1 E %f, id2 E %f\n ",amp1,amp2);
if(amp1==0 || amp2==0) Info("FillSSWeightHistograms","Null E local maxima : id1 E %f, id2 E %f\n " ,amp1,amp2);
//Recalibrate cell energy if needed
Float_t amp = cells->GetCellAmplitude(id);
- GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp,GetCalorimeter(), id);
if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
{
//printf("eCell a) %f",amp);
}
//Recalculate shower shape for different W0
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
Float_t l0org = clus->GetM02();
Float_t l1org = clus->GetM20();
snprintf(onePar,buffersize,"--- AliAnaInsideClusterInvariantMass ---\n") ;
parList+=onePar ;
- snprintf(onePar,buffersize,"Calorimeter: %s\n", fCalorimeter.Data()) ;
+ snprintf(onePar,buffersize,"Calorimeter: %s\n", GetCalorimeter().Data()) ;
parList+=onePar ;
snprintf(onePar,buffersize,"fNLocMaxCutE =%2.2f \n", GetCaloUtils()->GetLocalMaximaCutE()) ;
parList+=onePar ;
// Assign mc index depending on MC bit set, to be used in histograms arrays
- tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader(),fCalorimeter);
+ tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader(),GetCalorimeter());
if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) &&
!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPi0;
//Init
//Do some checks
- if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD())
+ if(GetCalorimeter() == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD())
{
AliFatal("!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n");
}
- else if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD())
+ else if(GetCalorimeter() == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD())
{
AliFatal("!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n");
}
//Initialize the parameters of the analysis.
AddToHistogramsName("AnaPi0InsideClusterInvariantMass_");
- fCalorimeter = "EMCAL" ;
-
fMinNCells = 4 ;
fMinBadDist = 2 ;
//__________________________________________________________________
void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
{
- //Search for pi0 in fCalorimeter with shower shape analysis
+ //Search for pi0 in GetCalorimeter() with shower shape analysis
TObjArray * pl = 0x0;
AliVCaloCells* cells = 0x0;
//Select the Calorimeter of the photon
- if(fCalorimeter == "PHOS")
+ if(GetCalorimeter() == "PHOS")
{
pl = GetPHOSClusters();
cells = GetPHOSCells();
}
- else if (fCalorimeter == "EMCAL")
+ else if (GetCalorimeter() == "EMCAL")
{
pl = GetEMCALClusters();
cells = GetEMCALCells();
if(!pl || !cells)
{
- Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data());
+ Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",GetCalorimeter().Data());
return;
}
- if(fCalorimeter == "PHOS") return; // Not implemented for PHOS yet
+ if(GetCalorimeter() == "PHOS") return; // Not implemented for PHOS yet
for(Int_t icluster = 0; icluster < pl->GetEntriesFast(); icluster++)
{
Float_t e2 = lv2.Energy();
Double_t tof1 = cells->GetCellTime(absId1);
- GetCaloUtils()->RecalibrateCellTime(tof1, fCalorimeter, absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(tof1, GetCalorimeter(), absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
tof1*=1.e9;
Double_t tof2 = cells->GetCellTime(absId2);
- GetCaloUtils()->RecalibrateCellTime(tof2, fCalorimeter, absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(tof2, GetCalorimeter(), absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber());
tof2*=1.e9;
Double_t t12diff = tof1-tof2;
printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
AliAnaCaloTrackCorrBaseClass::Print("");
- printf("Calorimeter = %s\n", fCalorimeter.Data()) ;
+ printf("Calorimeter = %s\n", GetCalorimeter().Data()) ;
if(GetCaloUtils()) printf("Loc. Max. E > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutE());
if(GetCaloUtils()) printf("Loc. Max. E Diff > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutEDiff());
printf("Min. N Cells =%d \n", fMinNCells) ;
void MakeAnalysisFillHistograms() ;
void Print(const Option_t * opt) const;
-
- void SetCalorimeter(TString & det) { fCalorimeter = det ; }
void SetMinNCells(Int_t cut) { fMinNCells = cut ; }
private:
- TString fCalorimeter ; // Calorimeter where the gamma is searched
Int_t fMinNCells ; // Study clusters with ncells larger than cut
Float_t fMinBadDist ; // Minimal distance to bad channel to accept cluster
Float_t fHistoECut ; // Fixed E cut for some histograms
fListMixTrackEvents(), fListMixCaloEvents(),
fUseMixStoredInReader(0), fFillNeutralEventMixPool(0),
fM02MaxCut(0), fM02MinCut(0),
- fFillPileUpHistograms(0), fFillHighMultHistograms(0),
fSelectLeadingHadronAngle(0), fFillLeadHadOppositeHisto(0),
fMinLeadHadPhi(0), fMaxLeadHadPhi(0),
fMinLeadHadPt(0), fMaxLeadHadPt(0),
// Pile up studies
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if (outTOF==1)
{
}
//fill different multiplicity/centrality histogram
- if(fFillHighMultHistograms && cen >= 0 && cen < GetNCentrBin())
+ if(IsHighMultiplicityAnalysisOn() && cen >= 0 && cen < GetNCentrBin())
{
fhDeltaPhiChargedMult[cen]->Fill(ptTrig,deltaPhi);
fhDeltaEtaChargedMult[cen]->Fill(ptTrig,deltaEta);
}
// Pile up studies
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if (outTOF==1)
{
}
//fill different multiplicity/centrality histogram
- if(fFillHighMultHistograms && cen >= 0 && cen < GetNCentrBin())
+ if(IsHighMultiplicityAnalysisOn() && cen >= 0 && cen < GetNCentrBin())
{
fhXEMult[cen]->Fill(ptTrig,xE);
fhZTMult[cen]->Fill(ptTrig,zT);
// Pile up studies
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if (outTOF==1)
{
}
//fill different multiplicity/centrality histogram
- if(fFillHighMultHistograms && cen >= 0 && cen < GetNCentrBin())
+ if(IsHighMultiplicityAnalysisOn() && cen >= 0 && cen < GetNCentrBin())
{
fhXEUeMult[cen]->Fill(ptTrig,uexE);
fhZTUeMult[cen]->Fill(ptTrig,uezT);
fhEtaTrigger->SetYTitle("#eta ");
outputContainer->Add(fhEtaTrigger);
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
fhPtTriggerCentrality = new TH2F("hPtTriggerCentrality","Trigger particle #it{p}_{T} vs centrality",nptbins,ptmin,ptmax,100,0.,100) ;
fhPtTriggerCentrality->SetXTitle("#it{p}_{T}^{trig} (GeV/#it{c})");
outputContainer->Add(fhPtHbpZTUeLeftCharged) ;
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
fhDeltaPhiChargedOtherBC = new TH2F
("hDeltaPhiChargedOtherBC","#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, track BC!=0",
}
}
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
Int_t nMultiBins = GetNCentrBin();
fhDeltaPhiChargedMult = new TH2F*[nMultiBins] ;
fM02MaxCut = -1 ;
fSelectLeadingHadronAngle = kFALSE;
- fFillLeadHadOppositeHisto = kFALSE;
+ fFillLeadHadOppositeHisto = kFALSE;
fMinLeadHadPhi = 150*TMath::DegToRad();
fMaxLeadHadPhi = 210*TMath::DegToRad();
Float_t cen = GetEventCentrality();
Float_t ep = GetEventPlaneAngle();
- if(fFillHighMultHistograms) fhTriggerEventPlaneCentrality->Fill(cen,ep);
+ if(IsHighMultiplicityAnalysisOn()) fhTriggerEventPlaneCentrality->Fill(cen,ep);
Int_t mixEventBin = GetEventMixBin();
Int_t vzbin = GetEventVzBin();
if(fCorrelVzBin)
fhPtTriggerVzBin->Fill(pt,vzbin);
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
fhPtTriggerCentrality->Fill(pt,cen);
fhPtTriggerEventPlane->Fill(pt,ep);
//----------------------------------
// Trigger particle pT vs pile-up
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
Int_t vtxBC = GetReader()->GetVertexBC();
if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA) fhPtTriggerVtxBC0->Fill(pt);
// Track multiplicity or cent bin
Int_t cenbin = 0;
- if(fFillHighMultHistograms) cenbin = GetEventCentralityBin();
+ if(IsHighMultiplicityAnalysisOn()) cenbin = GetEventCentralityBin();
//
// In case of pi0/eta trigger, we may want to check their decay correlation,
void SwitchOnCorrelationVzBin() { fCorrelVzBin = kTRUE ; }
void SwitchOffCorrelationVzBin() { fCorrelVzBin = kFALSE ; }
- void SwitchOnFillPileUpHistograms() { fFillPileUpHistograms = kTRUE ; }
- void SwitchOffFillPileUpHistograms() { fFillPileUpHistograms = kFALSE ; }
-
- void SwitchOnFillHighMultiplicityHistograms() { fFillHighMultHistograms = kTRUE ; }
- void SwitchOffFillHighMultiplicityHistograms(){ fFillHighMultHistograms = kFALSE ; }
-
void SwitchOnFillTriggerAODWithReferences() { fFillAODWithReferences = kTRUE ; }
void SwitchOffFillTriggerAODWithReferences() { fFillAODWithReferences = kFALSE ; }
Float_t fM02MaxCut ; // Study photon clusters with l0 smaller than cut
Float_t fM02MinCut ; // Study photon clusters with l0 larger than cut
- Bool_t fFillPileUpHistograms; // Fill pile-up related histograms
- Bool_t fFillHighMultHistograms; // Histograms with centrality and event plane for triggers pT
-
Bool_t fSelectLeadingHadronAngle; // Select events with leading particle within a range
Bool_t fFillLeadHadOppositeHisto; // Fill histograms for leading hadrons in opposite side of trigger
//______________________________________________________________________________
AliAnaParticleIsolation::AliAnaParticleIsolation() :
AliAnaCaloTrackCorrBaseClass(),
-fCalorimeter(""), fIsoDetector(""),
+fIsoDetector(""),
fReMakeIC(0), fMakeSeveralIC(0),
-fFillPileUpHistograms(0),
fFillTMHisto(0), fFillSSHisto(1),
fFillUEBandSubtractHistograms(1), fFillCellHistograms(0),
-fFillHighMultHistograms(0), fFillTaggedDecayHistograms(0),
+fFillTaggedDecayHistograms(0),
fNDecayBits(0), fDecayBits(),
fFillNLMHistograms(0),
fLeadingOnly(0), fCheckLeadingWithNeutralClusters(0),
//Select the Calorimeter
TObjArray * pl = 0x0;
- if (fCalorimeter == "PHOS" )
+ if (GetCalorimeter() == "PHOS" )
pl = GetPHOSClusters();
- else if (fCalorimeter == "EMCAL")
+ else if (GetCalorimeter() == "EMCAL")
pl = GetEMCALClusters();
if(!pl) return ;
fhPtInCone ->Fill(ptTrig, mom.Pt());
fhPtClusterInCone->Fill(ptTrig, mom.Pt());
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if(GetReader()->IsPileUpFromSPD()) fhPtInConePileUp[0]->Fill(ptTrig,mom.Pt());
if(GetReader()->IsPileUpFromEMCal()) fhPtInConePileUp[1]->Fill(ptTrig,mom.Pt());
if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhPtInConePileUp[6]->Fill(ptTrig,mom.Pt());
}
- if(fFillHighMultHistograms) fhPtInConeCent->Fill(GetEventCentrality(),mom.Pt());
+ if(IsHighMultiplicityAnalysisOn()) fhPtInConeCent->Fill(GetEventCentrality(),mom.Pt());
coneptsumCluster+=mom.Pt();
if(mom.Pt() > coneptLeadCluster) coneptLeadCluster = mom.Pt();
fhPtInCone ->Fill(ptTrig,pTtrack);
fhPtTrackInCone->Fill(ptTrig,pTtrack);
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
ULong_t status = track->GetStatus();
Bool_t okTOF = ( (status & AliVTrack::kTOFout) == AliVTrack::kTOFout ) ;
if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhPtInConePileUp[6]->Fill(ptTrig,pTtrack);
}
- if(fFillHighMultHistograms) fhPtInConeCent->Fill(GetEventCentrality(),pTtrack);
+ if(IsHighMultiplicityAnalysisOn()) fhPtInConeCent->Fill(GetEventCentrality(),pTtrack);
coneptsumTrack+=pTtrack;
if(pTtrack > coneptLeadTrack) coneptLeadTrack = pTtrack;
Int_t iclus = -1;
TObjArray* clusters = 0x0;
- if (fCalorimeter == "EMCAL") clusters = GetEMCALClusters();
- else if(fCalorimeter == "PHOS" ) clusters = GetPHOSClusters();
+ if (GetCalorimeter() == "EMCAL") clusters = GetEMCALClusters();
+ else if(GetCalorimeter() == "PHOS" ) clusters = GetPHOSClusters();
Float_t energy = 0;
Float_t time = -1000;
Int_t iclus = -1;
TObjArray* clusters = 0x0;
- if (fCalorimeter == "EMCAL") clusters = GetEMCALClusters();
- else if(fCalorimeter == "PHOS" ) clusters = GetPHOSClusters();
+ if (GetCalorimeter() == "EMCAL") clusters = GetEMCALClusters();
+ else if(GetCalorimeter() == "PHOS" ) clusters = GetPHOSClusters();
if(!clusters) return;
fhPtLambda0MC[mcIndex][isolated]->Fill(pt,m02);
}
- if(fCalorimeter == "EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter() == "EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
GetModuleNumber(cluster) >= GetFirstSMCoveredByTRD() )
{
fhELambda0TRD [isolated]->Fill(energy, m02 );
snprintf(onePar, buffersize,"--- AliAnaParticleIsolation ---\n") ;
parList+=onePar ;
- snprintf(onePar, buffersize,"Calorimeter: %s\n",fCalorimeter.Data()) ;
+ snprintf(onePar, buffersize,"Calorimeter: %s\n",GetCalorimeter().Data()) ;
parList+=onePar ;
snprintf(onePar, buffersize,"Isolation Cand Detector: %s\n",fIsoDetector.Data()) ;
parList+=onePar ;
fhEtaPhiIso->SetYTitle("#phi");
outputContainer->Add(fhEtaPhiIso) ;
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
fhPtCentralityIso = new TH2F("hPtCentrality",
Form("centrality vs #it{p}_{T} for isolated particles, %s",parTitle.Data()),
} // pt trig bin loop
} // pt trig bin histograms
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
fhPtInConeCent = new TH2F("hPtInConeCent",
Form("#it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
} // control histograms for isolated and non isolated objects
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
fhPtTrackInConeOtherBC = new TH2F("hPtTrackInConeOtherBC",
Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC!=0",r),
}//ipt loop
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
for (Int_t i = 0; i < 7 ; i++)
{
SetAODObjArrayName("IsolationCone");
AddToHistogramsName("AnaIsolation_");
- fCalorimeter = "EMCAL" ;
fIsoDetector = "EMCAL" ;
fReMakeIC = kFALSE ;
void AliAnaParticleIsolation::MakeAnalysisFillAOD()
{
// Do analysis and fill aods
- // Search for the isolated photon in fCalorimeter with GetMinPt() < pt < GetMaxPt()
+ // Search for the isolated photon in GetCalorimeter() with GetMinPt() < pt < GetMaxPt()
// and if the particle is leading in the near side (if requested)
if(!GetInputAODBranch())
TObjArray * pl = 0x0; ;
//Select the calorimeter for candidate isolation with neutral particles
- if (fCalorimeter == "PHOS" )
+ if (GetCalorimeter() == "PHOS" )
pl = GetPHOSClusters();
- else if (fCalorimeter == "EMCAL")
+ else if (GetCalorimeter() == "EMCAL")
pl = GetEMCALClusters();
//Loop on AOD branch, filled previously in AliAnaPhoton, find leading particle to do isolation only with it
if(fFillNLMHistograms)
fhPtNLocMaxIso ->Fill(pt,aod->GetFiducialArea()) ; // remember to change method name
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
fhPtCentralityIso ->Fill(pt,GetEventCentrality()) ;
fhPtEventPlaneIso ->Fill(pt,GetEventPlaneAngle() ) ;
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if(GetReader()->IsPileUpFromSPD()) { fhEIsoPileUp[0] ->Fill(energy) ; fhPtIsoPileUp[0]->Fill(pt) ; }
if(GetReader()->IsPileUpFromEMCal()) { fhEIsoPileUp[1] ->Fill(energy) ; fhPtIsoPileUp[1]->Fill(pt) ; }
if(fFillNLMHistograms)
fhPtNLocMaxNoIso ->Fill(pt,aod->GetFiducialArea()); // remember to change method name
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
if(GetReader()->IsPileUpFromSPD()) { fhENoIsoPileUp[0] ->Fill(energy) ; fhPtNoIsoPileUp[0]->Fill(pt) ; }
if(GetReader()->IsPileUpFromEMCal()) { fhENoIsoPileUp[1] ->Fill(energy) ; fhPtNoIsoPileUp[1]->Fill(pt) ; }
// angle smaller than 3 cells 6 cm (0.014) in EMCal, 2.2 cm in PHOS (0.014*(2.2/6))
Float_t overlapAngle = 0;
Float_t minECalo = 0;
- if (fCalorimeter=="EMCAL")
+ if (GetCalorimeter()=="EMCAL")
{
overlapAngle = fMinCellsAngleOverlap*0.014 ;
minECalo = GetReader()->GetEMCALEMin();
}
- else if (fCalorimeter=="PHOS" )
+ else if (GetCalorimeter()=="PHOS" )
{
overlapAngle = fMinCellsAngleOverlap*0.00382;
minECalo = GetReader()->GetPHOSEMin();
if( partInConeE <= minECalo ) continue;
- if(!GetReader()->GetFiducialCut()->IsInFiducialCut(mcisoLV,fCalorimeter)) continue ;
+ if(!GetReader()->GetFiducialCut()->IsInFiducialCut(mcisoLV,GetCalorimeter())) continue ;
if(IsRealCaloAcceptanceOn()) // defined on base class
{
if(GetReader()->ReadStack() &&
- !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(fCalorimeter, mcisopStack)) continue ;
+ !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(GetCalorimeter(), mcisopStack)) continue ;
if(GetReader()->ReadAODMCParticles() &&
- !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(fCalorimeter, mcisopAOD )) continue ;
+ !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(GetCalorimeter(), mcisopAOD )) continue ;
}
}
}
printf("ReMake Isolation = %d \n", fReMakeIC) ;
printf("Make Several Isolation = %d \n", fMakeSeveralIC) ;
- printf("Calorimeter for isolation = %s \n", fCalorimeter.Data()) ;
+ printf("Calorimeter for isolation = %s \n", GetCalorimeter().Data()) ;
printf("Detector for candidate isolation = %s \n", fIsoDetector.Data()) ;
if(fMakeSeveralIC)
class AliAODPWG4Particle;
class AliAODPWG4ParticleCorrelation ;
-
class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
public:
// Analysis Setters and Getters
- TString GetCalorimeter() const { return fCalorimeter ; }
TString GetTriggerDetector() const { return fIsoDetector ; }
Int_t GetNCones() const { return fNCones ; }
Int_t GetNPtThresFrac() const { return fNPtThresFrac ; }
Int_t GetMCIndex(Int_t mcTag);
- void SetCalorimeter(TString & det) { fCalorimeter = det ; }
void SetTriggerDetector(TString & det) { fIsoDetector = det ; }
void SetNCones(Int_t ncs) { fNCones = ncs ; }
void SetNPtThresFrac(Int_t npt) { fNPtThresFrac = npt ; }
void SetSumPtThresholds(Int_t i, Float_t pt){ fSumPtThresholds[i] = pt ; }
void SetMinCellsAngleOverlap(Float_t n) { fMinCellsAngleOverlap = n ; }
-
Bool_t IsReIsolationOn() const { return fReMakeIC ; }
void SwitchOnReIsolation() { fReMakeIC = kTRUE ; }
Bool_t IsSeveralIsolationOn() const { return fMakeSeveralIC ; }
void SwitchOnSeveralIsolation() { fMakeSeveralIC = kTRUE ; }
void SwitchOffSeveralIsolation() { fMakeSeveralIC = kFALSE ; }
-
- void SwitchOnFillPileUpHistograms() { fFillPileUpHistograms = kTRUE ; }
- void SwitchOffFillPileUpHistograms() { fFillPileUpHistograms = kFALSE ; }
void SwitchOnTMHistoFill() { fFillTMHisto = kTRUE ; }
void SwitchOffTMHistoFill() { fFillTMHisto = kFALSE ; }
void SwitchOnCellHistoFill() { fFillCellHistograms = kTRUE ; }
void SwitchOffCellHistoFill() { fFillCellHistograms = kFALSE; }
- void SwitchOnHighMultiplicityHistoFill() { fFillHighMultHistograms = kTRUE ; }
- void SwitchOffHighMultiplicityHistoFill() { fFillHighMultHistograms = kFALSE; }
-
void SwitchOnNLMHistoFill() { fFillNLMHistograms = kTRUE ; }
void SwitchOffNLMHistoFill() { fFillNLMHistograms = kFALSE; }
TString fIsoDetector ; // Candidate particle for isolation detector ;
Bool_t fReMakeIC ; // Do isolation analysis
Bool_t fMakeSeveralIC ; // Do analysis for different IC
- Bool_t fFillPileUpHistograms; // Fill pile-up related histograms
Bool_t fFillTMHisto; // Fill track matching plots
Bool_t fFillSSHisto; // Fill Shower shape plots
Bool_t fFillUEBandSubtractHistograms; // Fill histograms working on the UE subtraction
Bool_t fFillCellHistograms; // Fill cell histograms
- Bool_t fFillHighMultHistograms; // Fill high multiplicity histograms
Bool_t fFillTaggedDecayHistograms; // Fill histograms for clusters tagged as decay
Int_t fNDecayBits ; // in case of study of decay triggers, select the decay bit
UInt_t fDecayBits[4] ; // in case of study of decay triggers, select the decay bit
//____________________________
AliAnaPhoton::AliAnaPhoton() :
-AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""),
+AliAnaCaloTrackCorrBaseClass(),
fMinDist(0.), fMinDist2(0.), fMinDist3(0.),
fRejectTrackMatch(0), fFillTMHisto(kFALSE),
fTimeCutMin(-10000), fTimeCutMax(10000),
fNCellsCut(0),
fNLMCutMin(-1), fNLMCutMax(10),
fFillSSHistograms(kFALSE), fFillOnlySimpleSSHisto(1),
-fFillPileUpHistograms(0),
fNOriginHistograms(8), fNPrimaryHistograms(4),
// Histograms
//Check acceptance selection
if(IsFiducialCutOn())
{
- Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,fCalorimeter) ;
+ Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,GetCalorimeter()) ;
if(! in ) return kFALSE ;
}
inacceptance = kTRUE;
// Check same fidutial borders as in data analysis on top of real acceptance if real was requested.
- if( IsFiducialCutOn() && !GetFiducialCut()->IsInFiducialCut(lv,fCalorimeter)) inacceptance = kFALSE ;
+ if( IsFiducialCutOn() && !GetFiducialCut()->IsInFiducialCut(lv,GetCalorimeter())) inacceptance = kFALSE ;
// Check if photons hit the Calorimeter acceptance
if(IsRealCaloAcceptanceOn()) // defined on base class
{
if(GetReader()->ReadStack() &&
- !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(fCalorimeter, primStack)) inacceptance = kFALSE ;
+ !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(GetCalorimeter(), primStack)) inacceptance = kFALSE ;
if(GetReader()->ReadAODMCParticles() &&
- !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(fCalorimeter, primAOD )) inacceptance = kFALSE ;
+ !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance(GetCalorimeter(), primAOD )) inacceptance = kFALSE ;
}
// Get tag of this particle photon from fragmentation, decay, prompt ...
// Set the origin of the photon.
- tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader(),fCalorimeter);
+ tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader(),GetCalorimeter());
if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
{
fhLam1E ->Fill(energy,lambda1);
fhDispE ->Fill(energy,disp);
- if(fCalorimeter == "EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter() == "EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
GetModuleNumber(cluster) >= GetFirstSMCoveredByTRD() )
{
fhLam0ETRD->Fill(energy,lambda0);
Float_t l0 = 0., l1 = 0.;
Float_t dispp= 0., dEta = 0., dPhi = 0.;
Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
- if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
+ if(GetCalorimeter() == "EMCAL" && !fFillOnlySimpleSSHisto)
{
GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
fhLam1ETM ->Fill(energy,lambda1);
fhDispETM ->Fill(energy,disp);
- if(fCalorimeter == "EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter() == "EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
GetModuleNumber(cluster) >= GetFirstSMCoveredByTRD() )
{
fhLam0ETMTRD->Fill(energy,lambda0);
if(IsDataMC())
{
AliVCaloCells* cells = 0;
- if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
+ if(GetCalorimeter() == "EMCAL") cells = GetEMCALCells();
else cells = GetPHOSCells();
//Fill histograms to check shape of embedded clusters
fhMCNCellsvsClusterMaxCellDiffE6 [mcIndex]->Fill(ncells, maxCellFraction);
}
- if(fCalorimeter == "EMCAL")
+ if(GetCalorimeter() == "EMCAL")
{
fhMCEDispEta [mcIndex]-> Fill(energy,dEta);
fhMCEDispPhi [mcIndex]-> Fill(energy,dPhi);
Int_t nSMod = GetModuleNumber(cluster);
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
nSMod >= GetFirstSMCoveredByTRD() )
{
fhTrackMatchedDEtaTRD[cut]->Fill(cluster->E(),dZ);
fhdEdx[cut] ->Fill(cluster->E(), dEdx);
fhEOverP[cut]->Fill(cluster->E(), eOverp);
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
nSMod >= GetFirstSMCoveredByTRD() )
fhEOverPTRD[cut]->Fill(cluster->E(), eOverp);
if(IsDataMC())
{
- Int_t tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(),GetReader(),fCalorimeter);
+ Int_t tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(),GetReader(),GetCalorimeter());
if ( !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion) )
{
snprintf(onePar,buffersize,"--- AliAnaPhoton ---\n") ;
parList+=onePar ;
- snprintf(onePar,buffersize,"Calorimeter: %s\n",fCalorimeter.Data()) ;
+ snprintf(onePar,buffersize,"Calorimeter: %s\n",GetCalorimeter().Data()) ;
parList+=onePar ;
snprintf(onePar,buffersize,"fMinDist =%2.2f (Minimal distance to bad channel to accept cluster) \n",fMinDist) ;
parList+=onePar ;
fhPtPhoton->SetXTitle("p_{T #gamma}(GeV/#it{c})");
outputContainer->Add(fhPtPhoton) ;
- fhPtCentralityPhoton = new TH2F("hPtCentralityPhoton","centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,100);
- fhPtCentralityPhoton->SetYTitle("Centrality");
- fhPtCentralityPhoton->SetXTitle("#it{p}_{T}(GeV/#it{c})");
- outputContainer->Add(fhPtCentralityPhoton) ;
-
- fhPtEventPlanePhoton = new TH2F("hPtEventPlanePhoton","centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,TMath::Pi());
- fhPtEventPlanePhoton->SetYTitle("Event plane angle (rad)");
- fhPtEventPlanePhoton->SetXTitle("#it{p}_{T} (GeV/#it{c})");
- outputContainer->Add(fhPtEventPlanePhoton) ;
+ if(IsHighMultiplicityAnalysisOn())
+ {
+ fhPtCentralityPhoton = new TH2F("hPtCentralityPhoton","centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,100);
+ fhPtCentralityPhoton->SetYTitle("Centrality");
+ fhPtCentralityPhoton->SetXTitle("#it{p}_{T}(GeV/#it{c})");
+ outputContainer->Add(fhPtCentralityPhoton) ;
+
+ fhPtEventPlanePhoton = new TH2F("hPtEventPlanePhoton","centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,TMath::Pi());
+ fhPtEventPlanePhoton->SetYTitle("Event plane angle (rad)");
+ fhPtEventPlanePhoton->SetXTitle("#it{p}_{T} (GeV/#it{c})");
+ outputContainer->Add(fhPtEventPlanePhoton) ;
+ }
fhEtaPhi = new TH2F
("hEtaPhi","cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
outputContainer->Add(fhDispETM);
}
- if(fCalorimeter == "EMCAL" && GetFirstSMCoveredByTRD() >= 0)
+ if(GetCalorimeter() == "EMCAL" && GetFirstSMCoveredByTRD() >= 0)
{
fhLam0ETRD = new TH2F ("hLam0ETRD","#lambda_{0}^{2} vs E, EMCAL SM covered by TRD", nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
fhLam0ETRD->SetYTitle("#lambda_{0}^{2}");
fhDispLam1HighE->SetYTitle("#lambda_{1}^{2}");
outputContainer->Add(fhDispLam1HighE);
- if(fCalorimeter == "EMCAL")
+ if(GetCalorimeter() == "EMCAL")
{
fhDispEtaE = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E", nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
fhDispEtaE->SetXTitle("#it{E} (GeV)");
outputContainer->Add(fhdEdx[i]);
outputContainer->Add(fhEOverP[i]);
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >=0 )
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >=0 )
{
fhTrackMatchedDEtaTRD[i] = new TH2F
(Form("hTrackMatchedDEtaTRD%s",cutTM[i].Data()),
}
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
TString pileUpName[] = {"SPD","EMCAL","SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
fhMCNCellsvsClusterMaxCellDiffE6[i]->SetYTitle("#it{E} (GeV)");
outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE6[i]) ;
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
fhMCEDispEta[i] = new TH2F (Form("hEDispEtaE_MC%s",pnamess[i].Data()),
Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data()),
//Init
//Do some checks
- if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD())
+ if(GetCalorimeter() == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD())
{
printf("AliAnaPhoton::Init() - !!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n");
abort();
}
- else if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD())
+ else if(GetCalorimeter() == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD())
{
printf("AliAnaPhoton::Init() - !!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n");
abort();
//Initialize the parameters of the analysis.
AddToHistogramsName("AnaPhoton_");
- fCalorimeter = "EMCAL" ;
fMinDist = 2.;
fMinDist2 = 4.;
fMinDist3 = 5.;
//Select the Calorimeter of the photon
TObjArray * pl = 0x0;
AliVCaloCells* cells = 0;
- if (fCalorimeter == "PHOS" )
+ if (GetCalorimeter() == "PHOS" )
{
pl = GetPHOSClusters();
cells = GetPHOSCells();
}
- else if (fCalorimeter == "EMCAL")
+ else if (GetCalorimeter() == "EMCAL")
{
pl = GetEMCALClusters();
cells = GetEMCALCells();
if(!pl)
{
- Info("MakeAnalysisFillAOD","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data());
+ Info("MakeAnalysisFillAOD","TObjArray with %s clusters is NULL!\n",GetCalorimeter().Data());
return;
}
TLorentzVector mom;
// Loop on raw clusters before filtering in the reader and fill control histogram
- if((GetReader()->GetEMCALClusterListName()=="" && fCalorimeter=="EMCAL") || fCalorimeter=="PHOS")
+ if((GetReader()->GetEMCALClusterListName()=="" && GetCalorimeter()=="EMCAL") || GetCalorimeter()=="PHOS")
{
for(Int_t iclus = 0; iclus < GetReader()->GetInputEvent()->GetNumberOfCaloClusters(); iclus++ )
{
AliVCluster * clus = GetReader()->GetInputEvent()->GetCaloCluster(iclus);
- if (fCalorimeter == "PHOS" && clus->IsPHOS() && clus->E() > GetReader()->GetPHOSPtMin() )
+ if (GetCalorimeter() == "PHOS" && clus->IsPHOS() && clus->E() > GetReader()->GetPHOSPtMin() )
{
fhClusterCutsE [0]->Fill(clus->E());
clus->GetMomentum(mom,GetVertex(0)) ;
fhClusterCutsPt[0]->Fill(mom.Pt());
}
- else if(fCalorimeter == "EMCAL" && clus->IsEMCAL() && clus->E() > GetReader()->GetEMCALPtMin())
+ else if(GetCalorimeter() == "EMCAL" && clus->IsEMCAL() && clus->E() > GetReader()->GetEMCALPtMin())
{
fhClusterCutsE [0]->Fill(clus->E());
TLorentzVector mom2 ;
Int_t nCaloClusters = pl->GetEntriesFast();
- if(GetDebug() > 0) printf("AliAnaPhoton::MakeAnalysisFillAOD() - input %s cluster entries %d\n", fCalorimeter.Data(), nCaloClusters);
+ if(GetDebug() > 0) printf("AliAnaPhoton::MakeAnalysisFillAOD() - input %s cluster entries %d\n", GetCalorimeter().Data(), nCaloClusters);
//----------------------------------------------------
// Fill AOD with PHOS/EMCAL AliAODPWG4Particle objects
Int_t label = calo->GetLabel();
aodph.SetLabel(label);
aodph.SetCaloLabel(calo->GetID(),-1);
- aodph.SetDetector(fCalorimeter);
+ aodph.SetDetector(GetCalorimeter());
//printf("Index %d, Id %d, iaod %d\n",icalo, calo->GetID(),GetOutputAODBranch()->GetEntriesFast());
//...............................................
if(IsDataMC())
{
- tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),fCalorimeter);
+ tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),GetCalorimeter());
aodph.SetTag(tag);
if(GetDebug() > 0)
// Fill histograms to undertand pile-up before other cuts applied
// Remember to relax time cuts in the reader
- if( fFillPileUpHistograms ) FillPileUpHistograms(calo,cells);
+ if( IsPileUpAnalysisOn() ) FillPileUpHistograms(calo,cells);
// Add number of local maxima to AOD, method name in AOD to be FIXED
aodph.SetFiducialArea(nMaxima);
printf("AliAnaPhoton::MakeAnalysisFillHistograms() - PDG %d, MC TAG %d, Calorimeter %s\n",
ph->GetIdentifiedParticleType(),ph->GetTag(), (ph->GetDetector()).Data()) ;
- //If PID used, fill histos with photons in Calorimeter fCalorimeter
+ //If PID used, fill histos with photons in Calorimeter GetCalorimeter()
if(IsCaloPIDOn() && pdg != AliCaloPID::kPhoton) continue;
- if(ph->GetDetector() != fCalorimeter) continue;
+ if(ph->GetDetector() != GetCalorimeter()) continue;
if(GetDebug() > 2)
printf("AliAnaPhoton::MakeAnalysisFillHistograms() - ID Photon: pt %f, phi %f, eta %f\n", ph->Pt(),ph->Phi(),ph->Eta()) ;
if (ecluster > 0.5) fhEtaPhiPhoton ->Fill(etacluster, phicluster);
else if(GetMinPt() < 0.5) fhEtaPhi05Photon->Fill(etacluster, phicluster);
- fhPtCentralityPhoton ->Fill(ptcluster,cen) ;
- fhPtEventPlanePhoton ->Fill(ptcluster,ep ) ;
+ if(IsHighMultiplicityAnalysisOn())
+ {
+ fhPtCentralityPhoton ->Fill(ptcluster,cen) ;
+ fhPtEventPlanePhoton ->Fill(ptcluster,ep ) ;
+ }
//Get original cluster, to recover some information
AliVCaloCells* cells = 0;
TObjArray * clusters = 0;
- if(fCalorimeter == "EMCAL")
+ if(GetCalorimeter() == "EMCAL")
{
cells = GetEMCALCells();
clusters = GetEMCALClusters();
printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
AliAnaCaloTrackCorrBaseClass::Print(" ");
- printf("Calorimeter = %s\n", fCalorimeter.Data()) ;
+ printf("Calorimeter = %s\n", GetCalorimeter().Data()) ;
printf("Min Distance to Bad Channel = %2.1f\n",fMinDist);
printf("Min Distance to Bad Channel 2 = %2.1f\n",fMinDist2);
printf("Min Distance to Bad Channel 3 = %2.1f\n",fMinDist3);
void SwitchOffTMHistoFill() { fFillTMHisto = kFALSE ; }
void FillPileUpHistograms(AliVCluster* cluster, AliVCaloCells *cells) ;
-
- void SwitchOnFillPileUpHistograms() { fFillPileUpHistograms = kTRUE ; }
- void SwitchOffFillPileUpHistograms() { fFillPileUpHistograms = kFALSE ; }
-
+
// Analysis parameters setters getters
-
- TString GetCalorimeter() const { return fCalorimeter ; }
- void SetCalorimeter(TString & det) { fCalorimeter = det ; }
// ** Cluster selection methods **
Int_t GetNLMCutMin() const { return fNLMCutMin ; }
Int_t GetNLMCutMax() const { return fNLMCutMax ; }
-
Bool_t IsTrackMatchRejectionOn() const { return fRejectTrackMatch ; }
void SwitchOnTrackMatchRejection() { fRejectTrackMatch = kTRUE ; }
void SwitchOffTrackMatchRejection() { fRejectTrackMatch = kFALSE ; }
private:
- TString fCalorimeter ; // Calorimeter where the gamma is searched;
Float_t fMinDist ; // Minimal distance to bad channel to accept cluster
Float_t fMinDist2; // Cuts on Minimal distance to study acceptance evaluation
Float_t fMinDist3; // One more cut on distance used for acceptance-efficiency study
Int_t fNLMCutMax ; // Remove clusters/cells with number of local maxima larger than this value
Bool_t fFillSSHistograms ; // Fill shower shape histograms
Bool_t fFillOnlySimpleSSHisto; // Fill selected cluster histograms, selected SS histograms
- Bool_t fFillPileUpHistograms; // Fill pile-up related histograms
Int_t fNOriginHistograms; // Fill only NOriginHistograms of the 14 defined types
Int_t fNPrimaryHistograms; // Fill only NPrimaryHistograms of the 7 defined types
//______________________________________________________
AliAnaPi0::AliAnaPi0() : AliAnaCaloTrackCorrBaseClass(),
-fEventsList(0x0),
-fCalorimeter(""), fNModules(22),
+fEventsList(0x0),
+fNModules(22),
fUseAngleCut(kFALSE), fUseAngleEDepCut(kFALSE), fAngleCut(0), fAngleMaxCut(7.),
fMultiCutAna(kFALSE), fMultiCutAnaSim(kFALSE),
fNPtCuts(0), fNAsymCuts(0), fNCellNCuts(0), fNPIDBits(0),
AddToHistogramsName("AnaPi0_");
- fCalorimeter = "PHOS";
fUseAngleCut = kFALSE;
fUseAngleEDepCut = kFALSE;
fAngleCut = 0.;
parList+=onePar ;
snprintf(onePar,buffersize,"Z vertex position: -%f < z < %f \n",GetZvertexCut(),GetZvertexCut()) ;
parList+=onePar ;
- snprintf(onePar,buffersize,"Calorimeter: %s \n",fCalorimeter.Data()) ;
+ snprintf(onePar,buffersize,"Calorimeter: %s \n",GetCalorimeter().Data()) ;
parList+=onePar ;
snprintf(onePar,buffersize,"Number of modules: %d \n",fNModules) ;
parList+=onePar ;
// Init the number of modules, set in the class AliCalorimeterUtils
fNModules = GetCaloUtils()->GetNumberOfSuperModulesUsed();
- if(fCalorimeter=="PHOS" && fNModules > 4) fNModules = 4;
+ if(GetCalorimeter()=="PHOS" && fNModules > 4) fNModules = 4;
//create event containers
fEventsList = new TList*[GetNCentrBin()*GetNZvertBin()*GetNRPBin()] ;
fhReMod = new TH2F*[fNModules] ;
fhMiMod = new TH2F*[fNModules] ;
- if(fCalorimeter == "PHOS")
+ if(GetCalorimeter() == "PHOS")
{
fhReDiffPHOSMod = new TH2F*[fNModules] ;
fhMiDiffPHOSMod = new TH2F*[fNModules] ;
fhReMod[imod]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
fhReMod[imod]->SetYTitle("#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
outputContainer->Add(fhReMod[imod]) ;
- if(fCalorimeter=="PHOS")
+ if(GetCalorimeter()=="PHOS")
{
snprintf(key, buffersize,"hReDiffPHOSMod_%d",imod) ;
snprintf(title, buffersize,"Real pairs PHOS, clusters in different Modules: %s",(pairnamePHOS[imod]).Data()) ;
fhMiMod[imod]->SetYTitle("#it{M}_{#gamma,#gamma} (GeV/#it{c}^{2})");
outputContainer->Add(fhMiMod[imod]) ;
- if(fCalorimeter=="PHOS"){
+ if(GetCalorimeter()=="PHOS"){
snprintf(key, buffersize,"hMiDiffPHOSMod_%d",imod) ;
snprintf(title, buffersize,"Mixed pairs PHOS, clusters in different Modules: %s",(pairnamePHOS[imod]).Data()) ;
fhMiDiffPHOSMod[imod] = new TH2F(key,title,nptbins,ptmin,ptmax,nmassbins,massmin,massmax) ;
// Check if photons hit the Calorimeter acceptance
if(IsRealCaloAcceptanceOn())
{
- if( !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance( fCalorimeter, phot1 )) inacceptance1 = kFALSE ;
- if( !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance( fCalorimeter, phot2 )) inacceptance2 = kFALSE ;
+ if( !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance( GetCalorimeter(), phot1 )) inacceptance1 = kFALSE ;
+ if( !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance( GetCalorimeter(), phot2 )) inacceptance2 = kFALSE ;
}
}
// Check if photons hit the Calorimeter acceptance
if(IsRealCaloAcceptanceOn())
{
- if( !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance( fCalorimeter, phot1 )) inacceptance1 = kFALSE ;
- if( !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance( fCalorimeter, phot2 )) inacceptance2 = kFALSE ;
+ if( !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance( GetCalorimeter(), phot1 )) inacceptance1 = kFALSE ;
+ if( !GetCaloUtils()->IsMCParticleInCalorimeterAcceptance( GetCalorimeter(), phot2 )) inacceptance2 = kFALSE ;
}
}
// Check if photons hit desired acceptance in the fidutial borders fixed in the analysis
if(IsFiducialCutOn())
{
- if( inacceptance1 && !GetFiducialCut()->IsInFiducialCut(lv1,fCalorimeter) ) inacceptance1 = kFALSE ;
- if( inacceptance2 && !GetFiducialCut()->IsInFiducialCut(lv2,fCalorimeter) ) inacceptance2 = kFALSE ;
+ if( inacceptance1 && !GetFiducialCut()->IsInFiducialCut(lv1,GetCalorimeter()) ) inacceptance1 = kFALSE ;
+ if( inacceptance2 && !GetFiducialCut()->IsInFiducialCut(lv2,GetCalorimeter()) ) inacceptance2 = kFALSE ;
}
if(fFillArmenterosThetaStar) FillArmenterosThetaStar(pdg,lvmeson,lv1,lv2);
- if(fCalorimeter=="EMCAL" && inacceptance1 && inacceptance2 && fCheckAccInSector)
+ if(GetCalorimeter()=="EMCAL" && inacceptance1 && inacceptance2 && fCheckAccInSector)
{
Int_t absID1=0;
Int_t absID2=0;
if(GetDebug() > 2)
printf("Accepted in %s?: m (%2.2f,%2.2f,%2.2f), p1 (%2.2f,%2.2f,%2.2f), p2 (%2.2f,%2.2f,%2.2f) : in1 %d, in2 %d\n",
- fCalorimeter.Data(),
+ GetCalorimeter().Data(),
mesonPt,mesonYeta,mesonPhi,
lv1.Pt(),lv1.Eta(),lv1.Phi()*TMath::RadToDeg(),
lv2.Pt(),lv2.Eta(),lv2.Phi()*TMath::RadToDeg(),
//Get shower shape information of clusters
TObjArray *clusters = 0;
- if (fCalorimeter=="EMCAL") clusters = GetEMCALClusters();
- else if(fCalorimeter=="PHOS" ) clusters = GetPHOSClusters() ;
+ if (GetCalorimeter()=="EMCAL") clusters = GetEMCALClusters();
+ else if(GetCalorimeter()=="PHOS" ) clusters = GetPHOSClusters() ;
//---------------------------------
//First loop on photons/clusters
if(module1==module2 && module1 >=0 && module1<fNModules)
fhReMod[module1]->Fill(pt,m) ;
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
// Same sector
Int_t j=0;
if(module1==module2 && module1 >=0 && module1<fNModules)
fhMiMod[module1]->Fill(pt,m) ;
- if(fCalorimeter=="EMCAL")
+ if(GetCalorimeter()=="EMCAL")
{
// Same sector
Int_t j=0;
void MakeAnalysisFillHistograms();
void InitParameters();
-
- //Calorimeter options
- TString GetCalorimeter() const { return fCalorimeter ; }
- void SetCalorimeter(TString & det) { fCalorimeter = det ; }
//-------------------------------
// EVENT Bin Methods
TList ** fEventsList ; //![GetNCentrBin()*GetNZvertBin()*GetNRPBin()] Containers for photons in stored events
- TString fCalorimeter ; // Select Calorimeter for IM
Int_t fNModules ; // Number of EMCAL/PHOS modules, set as many histogras as modules
Bool_t fUseAngleCut ; // Select pairs depending on their opening angle
//____________________________
AliAnaPi0EbE::AliAnaPi0EbE() :
AliAnaCaloTrackCorrBaseClass(),
-fAnaType(kIMCalo), fCalorimeter(""),
+fAnaType(kIMCalo),
fMinDist(0.),fMinDist2(0.), fMinDist3(0.),
fNLMCutMin(-1), fNLMCutMax(10),
fTimeCutMin(-10000), fTimeCutMax(10000),
fRejectTrackMatch(kTRUE), fSelectIsolatedDecay(kFALSE),
-fFillPileUpHistograms(0),
fFillWeightHistograms(kFALSE), fFillTMHisto(0),
fFillSelectClHisto(0), fFillOnlySimpleSSHisto(1),
-fFillEMCALBCHistograms(0), fFillHighMultHistograms(0),
+fFillEMCALBCHistograms(0),
fFillAllNLMHistograms(0),
fInputAODGammaConvName(""),
fCheckSplitDistToBad(0),
void AliAnaPi0EbE::FillPileUpHistograms(Float_t pt, Float_t time, AliVCluster * calo)
{
// Fill some histograms to understand pile-up
- if(!fFillPileUpHistograms) return;
+ if(!IsPileUpAnalysisOn()) return;
//printf("E %f, time %f\n",energy,time);
AliVEvent * event = GetReader()->GetInputEvent();
// cells in cluster
AliVCaloCells* cells = 0;
- if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
+ if(GetCalorimeter() == "EMCAL") cells = GetEMCALCells();
else cells = GetPHOSCells();
Float_t maxCellFraction = 0.;
Int_t absIdMax = GetCaloUtils()->GetMaxEnergyCell(cells,calo,maxCellFraction);
Double_t tmax = cells->GetCellTime(absIdMax);
- GetCaloUtils()->RecalibrateCellTime(tmax, fCalorimeter, absIdMax,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(tmax, GetCalorimeter(), absIdMax,GetReader()->GetInputEvent()->GetBunchCrossNumber());
tmax*=1.e9;
//Loop on cells inside cluster, max cell must be over 100 MeV and time in BC=0
AliVCaloCells * cell = 0x0;
Float_t maxCellFraction = 0;
- if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
+ if(GetCalorimeter() == "EMCAL" && !fFillOnlySimpleSSHisto)
{
cell = GetEMCALCells();
}
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
GetModuleNumber(cluster) < GetFirstSMCoveredByTRD() )
{
fhPtLambda0NoTRD ->Fill(pt, l0 );
fhEOverP->Fill(pt, eOverp);
// Change nSM for year > 2011 (< 4 in 2012-13, none after)
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
GetModuleNumber(cluster) < GetFirstSMCoveredByTRD() )
fhEOverPNoTRD->Fill(pt, eOverp);
fhMCPtLambda1[mcIndex] ->Fill(pt, l1);
if(fFillAllNLMHistograms) fhMCPtLambda0LocMax[mcIndex][indexMax]->Fill(pt,l0);
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >= 0 &&
GetModuleNumber(cluster) < GetFirstSMCoveredByTRD() )
fhMCPtLambda0NoTRD[mcIndex]->Fill(pt, l0 );
- if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
+ if(GetCalorimeter() == "EMCAL" && !fFillOnlySimpleSSHisto)
{
if(maxCellFraction < 0.5)
fhMCPtLambda0FracMaxCellCut[mcIndex]->Fill(pt, l0 );
if(!fFillWeightHistograms || GetMixedEvent()) return;
AliVCaloCells* cells = 0;
- if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
+ if(GetCalorimeter() == "EMCAL") cells = GetEMCALCells();
else cells = GetPHOSCells();
// First recalculate energy in case non linearity was applied
//Recalibrate cell energy if needed
Float_t amp = cells->GetCellAmplitude(id);
- GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp,GetCalorimeter(), id);
energy += amp;
//Recalibrate cell energy if needed
Float_t amp = cells->GetCellAmplitude(id);
- GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id);
+ GetCaloUtils()->RecalibrateCellAmplitude(amp,GetCalorimeter(), id);
fhECellClusterRatio ->Fill(energy,amp/energy);
fhECellClusterLogRatio->Fill(energy,TMath::Log(amp/energy));
}
//Recalculate shower shape for different W0
- if(fCalorimeter=="EMCAL"){
+ if(GetCalorimeter()=="EMCAL"){
Float_t l0org = clus->GetM02();
Float_t l1org = clus->GetM20();
parList+=onePar ;
snprintf(onePar,buffersize,"fAnaType=%d (selection type) \n",fAnaType) ;
parList+=onePar ;
- snprintf(onePar,buffersize,"Calorimeter: %s;",fCalorimeter.Data()) ;
+ snprintf(onePar,buffersize,"Calorimeter: %s;",GetCalorimeter().Data()) ;
parList+=onePar ;
snprintf(onePar,buffersize,"Local maxima in cluster: %d < nlm < %d;",fNLMCutMin,fNLMCutMax) ;
parList+=onePar ;
fhEtaPhi->SetXTitle("#eta");
outputContainer->Add(fhEtaPhi) ;
- if(fCalorimeter=="EMCAL" && fFillEMCALBCHistograms)
+ if(GetCalorimeter()=="EMCAL" && fFillEMCALBCHistograms)
{
fhEtaPhiEMCALBC0 = new TH2F
("hEtaPhiEMCALBC0","cluster, #it{E} > 2 GeV, #eta vs #phi, for clusters with |#it{t}| < 25 ns, EMCAL-BC=0",netabins,etamin,etamax,nphibins,phimin,phimax);
}
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
fhPtCentrality = new TH2F("hPtCentrality","centrality vs #it{p}_{T}",nptbins,ptmin,ptmax, 100,0,100);
fhPtCentrality->SetYTitle("centrality");
fhPtLambda1->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtLambda1) ;
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >=0 )
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >=0 )
{
fhPtLambda0NoTRD = new TH2F
("hPtLambda0NoTRD","Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs #lambda_{0}, not behind TRD",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
fhPtLambda1LocMax[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtLambda1LocMax[i]) ;
- if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
+ if(GetCalorimeter() == "EMCAL" && !fFillOnlySimpleSSHisto)
{
fhPtDispersionLocMax[i] = new TH2F(Form("hPtDispersionLocMax%d",i+1),
Form("Selected #pi^{0} (#eta) pairs: #it{p}_{T} vs dispersion^{2}, %s",nlm[i].Data()),
fhEOverP->SetYTitle("#it{E}/#it{p}");
outputContainer->Add(fhEOverP);
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >=0)
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >=0)
{
fhEOverPNoTRD = new TH2F ("hEOverPNoTRD","matched track E/p vs cluster E, SM not behind TRD ", nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
fhEOverPNoTRD->SetXTitle("#it{E} (GeV)");
fhMCPt[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhMCPt[i]) ;
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
fhMCPtCentrality[i] = new TH2F
(Form("hPtCentrality_MC%s",pname[i].Data()),
fhMCPtLambda1[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhMCPtLambda1[i]) ;
- if(fCalorimeter=="EMCAL" && GetFirstSMCoveredByTRD() >= 0)
+ if(GetCalorimeter()=="EMCAL" && GetFirstSMCoveredByTRD() >= 0)
{
fhMCPtLambda0NoTRD[i] = new TH2F(Form("hELambda0NoTRD_MC%s",pname[i].Data()),
Form("Selected pair, cluster from %s : #it{p}_{T} vs #lambda_{0}^{2}, NoTRD",ptype[i].Data()),
}
}
- if(fFillPileUpHistograms)
+ if(IsPileUpAnalysisOn())
{
TString pileUpName[] = {"SPD","EMCAL","SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
{
//Init
//Do some checks
- if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD()){
+ if(GetCalorimeter() == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD()){
printf("AliAnaPi0EbE::Init() - !!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n");
abort();
}
- else if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD()){
+ else if(GetCalorimeter() == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD()){
printf("AliAnaPi0EbE::Init() - !!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n");
abort();
}
fInputAODGammaConvName = "PhotonsCTS" ;
fAnaType = kIMCalo ;
- fCalorimeter = "EMCAL" ;
+ GetCalorimeter() = "EMCAL" ;
fMinDist = 2.;
fMinDist2 = 4.;
fMinDist3 = 5.;
//Get shower shape information of clusters
TObjArray *clusters = 0;
- if (fCalorimeter=="EMCAL") clusters = GetEMCALClusters();
- else if(fCalorimeter=="PHOS") clusters = GetPHOSClusters() ;
+ if (GetCalorimeter()=="EMCAL") clusters = GetEMCALClusters();
+ else if(GetCalorimeter()=="PHOS") clusters = GetPHOSClusters() ;
Int_t nphoton = GetInputAODBranch()->GetEntriesFast();
for(Int_t iphoton = 0; iphoton < nphoton-1; iphoton++)
//
// Select good pair (good phi, pt cuts, aperture and invariant mass)
//
- if(!GetNeutralMesonSelection()->SelectPair(mom1, mom2,fCalorimeter)) continue;
+ if(!GetNeutralMesonSelection()->SelectPair(mom1, mom2,GetCalorimeter())) continue;
if(GetDebug()>1)
printf("AliAnaPi0EbE::MakeInvMassInCalorimeter() - Selected gamma pair: pt %f, phi %f, eta%f \n",
//Get shower shape information of clusters
TObjArray *clusters = 0;
- if (fCalorimeter=="EMCAL") clusters = GetEMCALClusters();
- else if(fCalorimeter=="PHOS") clusters = GetPHOSClusters() ;
+ if (GetCalorimeter()=="EMCAL") clusters = GetEMCALClusters();
+ else if(GetCalorimeter()=="PHOS") clusters = GetPHOSClusters() ;
Int_t nCTS = inputAODGammaConv->GetEntriesFast();
Int_t nCalo = GetInputAODBranch()->GetEntriesFast();
//
// Select good pair (good phi, pt cuts, aperture and invariant mass)
//
- if(!GetNeutralMesonSelection()->SelectPair(mom1, mom2,fCalorimeter)) continue ;
+ if(!GetNeutralMesonSelection()->SelectPair(mom1, mom2,GetCalorimeter())) continue ;
if(GetDebug() > 1) printf("AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS() - Selected gamma pair: pt %f, phi %f, eta%f\n",
mom.Pt(), mom.Phi()*TMath::RadToDeg(), mom.Eta());
//_________________________________________________
void AliAnaPi0EbE::MakeShowerShapeIdentification()
{
- //Search for pi0 in fCalorimeter with shower shape analysis
+ //Search for pi0 in GetCalorimeter() with shower shape analysis
TObjArray * pl = 0x0;
AliVCaloCells * cells = 0x0;
//Select the Calorimeter of the photon
- if (fCalorimeter == "EMCAL" )
+ if (GetCalorimeter() == "EMCAL" )
{
pl = GetEMCALClusters();
cells = GetEMCALCells();
}
- else if (fCalorimeter == "PHOS")
+ else if (GetCalorimeter() == "PHOS")
{
AliFatal("kSSCalo case not implememted for PHOS");
return; // for coverity
if(!pl)
{
- Info("MakeShowerShapeIdentification","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data());
+ Info("MakeShowerShapeIdentification","TObjArray with %s clusters is NULL!\n",GetCalorimeter().Data());
return;
}
//Check acceptance selection
if(IsFiducialCutOn())
{
- Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,fCalorimeter) ;
+ Bool_t in = GetFiducialCut()->IsInFiducialCut(mom,GetCalorimeter()) ;
if(! in ) continue ;
}
Int_t tag = 0 ;
if(IsDataMC())
{
- tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),fCalorimeter);
+ tag = GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(),GetCalorimeter());
//GetMCAnalysisUtils()->CheckMultipleOrigin(calo->GetLabels(),calo->GetNLabels(), GetReader(), aodpi0.GetInputFileIndex(), tag);
if(GetDebug() > 0) printf("AliAnaPi0EbE::MakeShowerShapeIdentification() - Origin of candidate %d\n",tag);
}
//Check split-clusters with good time window difference
Double_t tof1 = cells->GetCellTime(absId1);
- GetCaloUtils()->RecalibrateCellTime(tof1, fCalorimeter, absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(tof1, GetCalorimeter(), absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
tof1*=1.e9;
Double_t tof2 = cells->GetCellTime(absId2);
- GetCaloUtils()->RecalibrateCellTime(tof2, fCalorimeter, absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber());
+ GetCaloUtils()->RecalibrateCellTime(tof2, GetCalorimeter(), absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber());
tof2*=1.e9;
Double_t t12diff = tof1-tof2;
FillPileUpHistograms(mom.Pt(),tofcluster,calo);
- if(fFillEMCALBCHistograms && fCalorimeter=="EMCAL")
+ if(fFillEMCALBCHistograms && GetCalorimeter()=="EMCAL")
FillEMCALBCHistograms(mom.E(), mom.Eta(), mom.Phi(), tofcluster);
//-----------------------
//Set the indeces of the original caloclusters
aodpi0.SetCaloLabel(calo->GetID(),-1);
- aodpi0.SetDetector(fCalorimeter);
+ aodpi0.SetDetector(GetCalorimeter());
if (distBad > fMinDist3) aodpi0.SetDistToBad(2) ;
else if(distBad > fMinDist2) aodpi0.SetDistToBad(1) ;
fhPtPhi ->Fill(pt ,phi);
fhEtaPhi ->Fill(eta ,phi);
- if(fFillHighMultHistograms)
+ if(IsHighMultiplicityAnalysisOn())
{
fhPtCentrality ->Fill(pt,cen) ;
fhPtEventPlane ->Fill(pt,ep ) ;
fhMCPtPhi[mcIndex] ->Fill(pt,phi);
fhMCPtEta[mcIndex] ->Fill(pt,eta);
- if(fFillHighMultHistograms) fhMCPtCentrality[mcIndex]->Fill(pt,cen);
+ if(IsHighMultiplicityAnalysisOn()) fhMCPtCentrality[mcIndex]->Fill(pt,cen);
if((mcIndex==kmcPi0Decay || mcIndex==kmcEtaDecay ||
mcIndex==kmcPi0 || mcIndex==kmcEta ) &&
printf("Analysis Type = %d \n", fAnaType) ;
if(fAnaType == kSSCalo)
{
- printf("Calorimeter = %s\n", fCalorimeter.Data()) ;
+ printf("Calorimeter = %s\n", GetCalorimeter().Data()) ;
printf("Min Distance to Bad Channel = %2.1f\n",fMinDist);
printf("Min Distance to Bad Channel 2 = %2.1f\n",fMinDist2);
printf("Min Distance to Bad Channel 3 = %2.1f\n",fMinDist3);
void SetInputAODGammaConvName(TString name) { fInputAODGammaConvName = name ; }
//Only for pi0 SS identification case
- void SetCalorimeter(TString & det) { fCalorimeter = det ; }
void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3 ; }
Bool_t IsTrackMatchRejectionOn() const { return fRejectTrackMatch ; }
void SwitchOnTrackMatchRejection() { fRejectTrackMatch = kTRUE ; }
void SwitchOffTrackMatchRejection() { fRejectTrackMatch = kFALSE ; }
-
- void SwitchOnFillPileUpHistograms() { fFillPileUpHistograms = kTRUE ; }
- void SwitchOffFillPileUpHistograms() { fFillPileUpHistograms = kFALSE ; }
void SwitchOnFillWeightHistograms() { fFillWeightHistograms = kTRUE ; }
void SwitchOffFillWeightHistograms() { fFillWeightHistograms = kFALSE ; }
void SwitchOnSplitClusterDistToBad() { fCheckSplitDistToBad = kTRUE ; }
void SwitchOffSplitClusterDistToBad() { fCheckSplitDistToBad = kFALSE ; }
- void SwitchOnHighMultiplicityHistoFill() { fFillHighMultHistograms = kTRUE ; }
- void SwitchOffHighMultiplicityHistoFill() { fFillHighMultHistograms = kFALSE; }
-
void SwitchOnAllNLMHistoFill() { fFillAllNLMHistograms = kTRUE ; }
void SwitchOffAllNLMHistoFill() { fFillAllNLMHistograms = kFALSE; }
anaTypes fAnaType; // Select analysis type
//Only for pi0 SS identification case, kSSCalo
- TString fCalorimeter ; // Calorimeter where the gamma is searched;
Float_t fMinDist ; // Minimal distance to bad channel to accept cluster
Float_t fMinDist2; // Cuts on Minimal distance to study acceptance evaluation
Float_t fMinDist3; // One more cut on distance used for acceptance-efficiency study
Bool_t fRejectTrackMatch ; // Remove clusters which have an associated TPC track
Bool_t fSelectIsolatedDecay; // Select pairs where at least one is declared isolated (run first AliAnaParticleIsolation)
- Bool_t fFillPileUpHistograms; // Fill pile-up related histograms
Bool_t fFillWeightHistograms ; // Fill weigth histograms
Bool_t fFillTMHisto; // Fill track matching plots
Bool_t fFillSelectClHisto; // Fill selected cluster histograms
Bool_t fFillOnlySimpleSSHisto; // Fill selected cluster histograms, selected SS histograms
Bool_t fFillEMCALBCHistograms; // Fill eta-phi BC dependent histograms
- Bool_t fFillHighMultHistograms; // Fill high multiplicity histograms
Bool_t fFillAllNLMHistograms; // Fill all NLM dependent histograms
//Only for combination of calorimeter and conversion photons, kIMCaloTracks