]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
store a bit more information on cells/clusters
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 20 Apr 2011 13:54:00 +0000 (13:54 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 20 Apr 2011 13:54:00 +0000 (13:54 +0000)
PWG4/CaloCalib/AliAnalysisTaskEMCALPi0PbPb.cxx
PWG4/CaloCalib/AliAnalysisTaskEMCALPi0PbPb.h

index d9cbdf6ee4ed59b3c631ccfb42b90b2363200eae..5f0b3a8d09c73bb4b1c5f4e4e12fca449ef611f0 100644 (file)
@@ -25,6 +25,7 @@
 #include "AliEMCALRecoUtils.h"
 #include "AliESDCaloTrigger.h"
 #include "AliESDEvent.h"
+#include "AliESDUtils.h"
 #include "AliESDVertex.h"
 #include "AliESDtrack.h"
 #include "AliESDtrackCuts.h"
@@ -33,6 +34,7 @@
 #include "AliInputEventHandler.h"
 #include "AliLog.h"
 #include "AliMagF.h"
+#include "AliMultiplicity.h"
 #include "AliTrackerBase.h"
 
 ClassImp(AliAnalysisTaskEMCALPi0PbPb)
@@ -180,7 +182,6 @@ void AliAnalysisTaskEMCALPi0PbPb::UserCreateOutputObjects()
   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;
@@ -755,7 +756,7 @@ void AliAnalysisTaskEMCALPi0PbPb::CalcCaloTriggers()
       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);
@@ -1331,6 +1332,12 @@ void AliAnalysisTaskEMCALPi0PbPb::FillNtuple()
     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");
@@ -1359,6 +1366,63 @@ void AliAnalysisTaskEMCALPi0PbPb::FillNtuple()
   }
   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();
index dbfe8fa0c08cdb9c418e4f308dc62f0fe8089350..9e9ef9139f5117ea358fab5b552f53fe06589dad 100644 (file)
@@ -188,8 +188,11 @@ class AliStaHeader
  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:
@@ -206,13 +209,28 @@ class AliStaHeader
   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