AliAnalysisEtReconstructed::AliAnalysisEtReconstructed() :
AliAnalysisEt()
+ ,fQATree(0)
+ ,fMakeQATree(0)
+ ,fClusterMultiplicity(0)
+ ,fTrackMultiplicity(0)
+ ,fEventID(0)
,fCorrections(0)
,fPidCut(0)
,nChargedHadronsMeasured(0)
AliAnalysisEtReconstructed::~AliAnalysisEtReconstructed()
{//destructor
+ if(fMakeQATree){
+ //fQATree->Clear();
+ delete fQATree;
+ }
delete fCorrections;
delete fHistChargedPionEnergyDeposit; /** Energy deposited in calorimeter by charged pions */
delete fHistProtonEnergyDeposit; /** Energy deposited in calorimeter by protons */
Float_t etPIDAntiProtonsNoEff = 0.0;
Float_t etPiKPMatchedNoEff = 0.0;
Float_t multiplicity = fEsdtrackCutsTPC->GetReferenceMultiplicity(event,kTRUE);
-
+ fTrackMultiplicity = multiplicity;
+ fEventID = event->GetPeriodNumber();//This is not the event id
Float_t totalMatchedPt = 0.0;
Float_t totalPt = 0.0;
TRefArray *caloClusters = fSelector->GetClusters();
Int_t nCluster = caloClusters->GetEntries();
+ fClusterMultiplicity = nCluster;
+ //if we are making the QA tree and the cluster multiplicity (for PHOS) is less than expected, fill the QA tree so we know what event it was
+ if(fMakeQATree && fClusterMultiplicity < 5e-3*fTrackMultiplicity-1.5) fQATree->Fill();
for (int iCluster = 0; iCluster < nCluster; iCluster++ )
{
{ // add some extra histograms to the ones from base class
AliAnalysisEt::FillOutputList(list);
+ if(fMakeQATree){
+ list->Add(fQATree);
+ }
list->Add(fHistChargedPionEnergyDeposit);
list->Add(fHistProtonEnergyDeposit);
list->Add(fHistAntiProtonEnergyDeposit);
void AliAnalysisEtReconstructed::CreateHistograms()
{ // add some extra histograms to the ones from base class
AliAnalysisEt::CreateHistograms();
+ if(fMakeQATree){
+ fQATree = new TTree("fQATree", "fQATree");
+ fQATree->Branch("fClusterMultiplicity", &fClusterMultiplicity, "fClusterMultiplicity/I");
+ fQATree->Branch("fTrackMultiplicity", &fTrackMultiplicity, "fTrackMultiplicity/I");
+ fQATree->Branch("fEventID",&fEventID,"fEventID/I");
+ fQATree->Branch("fCentClass",&fCentClass,"fCentClass/I");
+ }
Float_t scale = 1;//scale up histograms if EMCal 2011 so we have the right range
if(fDataSet==2011 && !fHistogramNameSuffix.Contains("P")){
Float_t GetTotalNumberOfChargedHadrons(){return nChargedHadronsTotal;}
void SetEMinCorrection(const Double_t factor) { fEMinCorrection = factor; }
+ void MakeQATree(){fMakeQATree = kTRUE;}
protected:
virtual Double_t GetCorrectionModification(const AliESDCaloCluster& cluster,Int_t nonLinCorr, Int_t effCorr, Int_t cent);//nonLinCorr 0 = nominal 1 = high -1 = low, effCorr 0 = nominal 1 = high -1 = low
+ TTree *fQATree; //! Tree for holding information about funny events in PHOS
+ Bool_t fMakeQATree;//boolean for whether or not to make it
+ Int_t fClusterMultiplicity;
+ Int_t fTrackMultiplicity;
+ Int_t fEventID;
+
AliAnalysisHadEtCorrections *fCorrections;//!//corrections needed for hadronic et
Double_t fPidCut; // cut on the pid probability