#include "AliEMCALRecoUtils.h"
#include "AliESDCaloTrigger.h"
#include "AliESDEvent.h"
+#include "AliESDUtils.h"
#include "AliESDVertex.h"
#include "AliESDtrack.h"
#include "AliESDtrackCuts.h"
#include "AliInputEventHandler.h"
#include "AliLog.h"
#include "AliMagF.h"
+#include "AliMultiplicity.h"
#include "AliTrackerBase.h"
ClassImp(AliAnalysisTaskEMCALPi0PbPb)
cout << " fGeoName: \"" << fGeoName << "\"" << endl;
cout << " fMinNClusPerTr: " << fMinNClusPerTr << endl;
cout << " fTrClassNames: \"" << fTrClassNames << "\"" << endl;
- cout << " fDoNtuple: " << fDoNtuple << endl;
cout << " fTrCuts: " << fTrCuts << endl;
cout << " fPrimTrCuts: " << fPrimTrCuts << endl;
cout << " fDoTrMatGeom: " << fDoTrMatGeom << endl;
if (pos<0)
continue;
if (trigInTimeWindow)
- fAmpInTrigger[pos] = amp; // save for usage in CalcClusProperties
+ fAmpInTrigger[pos] = amp;
Float_t eta=-1, phi=-1;
fGeom->EtaPhiFromIndex(cidx[i],eta,phi);
Double_t en= cells->GetAmplitude(pos);
fHeader->fTrCluster = fEsdEv->GetHeader()->GetTriggerCluster();
fHeader->fOffTriggers = ((AliInputEventHandler*)(am->GetInputEventHandler()))->IsEventSelected();
fHeader->fFiredTriggers = fEsdEv->GetFiredTriggerClasses();
+ Float_t v0CorrR = 0;
+ fHeader->fV0 = AliESDUtils::GetCorrV0(fEsdEv,v0CorrR);
+ const AliMultiplicity *mult = fEsdEv->GetMultiplicity();
+ if (mult)
+ fHeader->fCl1 = mult->GetNumberOfITSClusters(1);
+ fHeader->fTr = AliESDtrackCuts::GetReferenceMultiplicity(fEsdEv,1);
}
AliCentrality *cent = InputEvent()->GetCentrality();
fHeader->fV0Cent = cent->GetCentralityPercentileUnchecked("V0M");
}
fHeader->fTcls = (UInt_t)val;
+ fHeader->fNSelTr = fSelTracks->GetEntries();
+ fHeader->fNSelPrimTr = fSelPrimTracks->GetEntries();
+
+ fHeader->fNCells = 0;
+ fHeader->fNCells1 = 0;
+ fHeader->fNCells2 = 0;
+ fHeader->fNCells5 = 0;
+ fHeader->fMaxCellE = 0;
+
+ AliVCaloCells *cells = fEsdCells;
+ if (!cells)
+ cells = fAodCells;
+
+ if (cells) {
+ Int_t ncells = cells->GetNumberOfCells();
+ for(Int_t j=0; j<ncells; ++j) {
+ Double_t cellen = cells->GetAmplitude(j);
+ if (cellen>1)
+ ++fHeader->fNCells1;
+ if (cellen>2)
+ ++fHeader->fNCells2;
+ if (cellen>5)
+ ++fHeader->fNCells5;
+ if (cellen>fHeader->fMaxCellE)
+ fHeader->fMaxCellE = cellen;
+ }
+ fHeader->fNCells = ncells;
+ }
+
+ fHeader->fNClus = 0;
+ fHeader->fNClus1 = 0;
+ fHeader->fNClus2 = 0;
+ fHeader->fNClus5 = 0;
+ fHeader->fMaxClusE = 0;
+
+ TObjArray *clusters = fEsdClusters;
+ if (!clusters)
+ clusters = fAodClusters;
+
+ if (clusters) {
+ Int_t nclus = clusters->GetEntries();
+ for(Int_t j=0; j<nclus; ++j) {
+ AliVCluster *clus = static_cast<AliVCluster*>(clusters->At(j));
+ Double_t clusen = clus->E();
+ if (clusen>1)
+ ++fHeader->fNClus1;
+ if (clusen>2)
+ ++fHeader->fNClus2;
+ if (clusen>5)
+ ++fHeader->fNClus5;
+ if (clusen>fHeader->fMaxClusE)
+ fHeader->fMaxClusE = clusen;
+ }
+ fHeader->fNClus = nclus;
+ }
+
+
if (fAodEv) {
am->LoadBranch("vertices");
AliAODVertex *pv = fAodEv->GetPrimaryVertex();
public:
AliStaHeader() : fRun(0), fOrbit(0), fPeriod(0), fBx(0), fL0(0), fL1(0), fL2(0),
fTrClassMask(0), fTrCluster(0), fOffTriggers(0), fFiredTriggers(),
- fTcls(0), fV0Cent(0), fCl1Cent(0), fTrCent(0), fCqual(-1),
- fPsi(0), fPsiRes(0) {;}
+ fTcls(0), fV0Cent(0), fV0(0), fCl1Cent(0), fCl1(0), fTrCent(0), fTr(0),
+ fCqual(-1), fPsi(0), fPsiRes(0), fNSelTr(0), fNSelPrimTr(0),
+ fNCells(0), fNCells1(0), fNCells2(0), fNCells5(0),
+ fNClus(0), fNClus1(0), fNClus2(0), fNClus5(0),
+ fMaxCellE(0), fMaxClusE(0) {;}
virtual ~AliStaHeader() {;}
public:
TString fFiredTriggers; // string with fired triggers
UInt_t fTcls; // custom trigger definition
Double32_t fV0Cent; //[0,0,16] v0 cent
+ Double32_t fV0; //[0,0,16] v0 result used for cent
Double32_t fCl1Cent; //[0,0,16] cl1 cent
+ Double32_t fCl1; //[0,0,16] cl1 result used for cent
Double32_t fTrCent; //[0,0,16] tr cent
+ Double32_t fTr; //[0,0,16] tr result used for cent
Int_t fCqual; // centrality quality
Double32_t fPsi; //[0,0,16] event-plane angle
Double32_t fPsiRes; //[0,0,16] event-plane ange resolution
+ UShort_t fNSelTr; // # selected tracks
+ UShort_t fNSelPrimTr; // # selected tracks (primary)
+ UShort_t fNCells; // # cells
+ UShort_t fNCells1; // # cells > 1 GeV
+ UShort_t fNCells2; // # cells > 2 GeV
+ UShort_t fNCells5; // # cells > 5 GeV
+ UShort_t fNClus; // # clus
+ UShort_t fNClus1; // # clus > 1 GeV
+ UShort_t fNClus2; // # clus > 2 GeV
+ UShort_t fNClus5; // # clus > 5 GeV
+ Double32_t fMaxCellE; //[0,0,16] maximum cell energy
+ Double32_t fMaxClusE; //[0,0,16] maximum clus energy
- ClassDef(AliStaHeader,2) // Header class
+ ClassDef(AliStaHeader,3) // Header class
};
class AliStaVertex