]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Add the eta and phi direction of the leading particle.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 13 May 2009 15:51:14 +0000 (15:51 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 13 May 2009 15:51:14 +0000 (15:51 +0000)
STEER/AliAODTagCreator.cxx
STEER/AliESDTagCreator.cxx
STEER/AliEventTag.cxx
STEER/AliEventTag.h

index ec457688270aaf1e80c4f68f41e628bc65a49481..4b0ba23d870cddbd0aeff5537975d7fe3b6c120d 100644 (file)
@@ -355,6 +355,7 @@ void AliAODTagCreator::CreateTags(const char* type)
        }
        
        // Add the event tag
+       printf("Got %13.3f \n", evTag->GetEtaMaxPt());
        fRunTag->AddEventTag(*evTag);
        delete evTag;
        // Last event
@@ -390,11 +391,21 @@ void AliAODTagCreator::FillEventTag(AliAODEvent* aod, AliEventTag* evTag)
     Int_t   nCh1GeV = 0, nCh3GeV = 0, nCh10GeV = 0;
     Int_t   nMu1GeV = 0, nMu3GeV = 0, nMu10GeV = 0;
     Int_t   nEl1GeV = 0, nEl3GeV = 0, nEl10GeV = 0;
-    Float_t maxPt =  .0, meanPt = .0, totalP =  .0;
+    Float_t maxPt =  .0, etamaxPt = -999., phimaxPt = -999., meanPt = .0, totalP =  .0;
 
     TRefArray tmp;
 
-    Int_t nTracks = fAODEvent->GetNTracks();
+
+    // Primary Vertex
+    AliAODVertex *pVertex = fAODEvent->GetPrimaryVertex();
+    if (pVertex) {
+       evTag->SetVertexX(pVertex->GetX());
+       evTag->SetVertexY(pVertex->GetY());
+       evTag->SetVertexZ(pVertex->GetZ());
+       Double_t covmatrix[6];
+       pVertex->GetCovarianceMatrix(covmatrix);
+       evTag->SetVertexZError(sqrt(covmatrix[5]));
+    }
     // loop over vertices 
     Int_t nVtxs = fAODEvent->GetNumberOfVertices();
     for (Int_t nVtx = 0; nVtx < nVtxs; nVtx++) {
@@ -403,11 +414,17 @@ void AliAODTagCreator::FillEventTag(AliAODEvent* aod, AliEventTag* evTag)
        if(vertex->GetType() == 2) nV0s      += 1;
        if(vertex->GetType() == 3) nCascades += 1;
     }
+    Int_t nTracks = fAODEvent->GetNTracks();
     for (Int_t nTr = 0; nTr < nTracks; nTr++) {
        AliAODTrack *track = fAODEvent->GetTrack(nTr);
        
        Double_t fPt = track->Pt();
-       if(fPt > maxPt) maxPt = fPt;
+       if(fPt > maxPt) {
+           maxPt = fPt;
+           etamaxPt = track->Eta();
+           phimaxPt = track->Phi();
+       }
+       
        if(track->Charge() > 0) {
            nPos++;
            if(fPt > fLowPtCut)      nCh1GeV++;
@@ -501,4 +518,6 @@ void AliAODTagCreator::FillEventTag(AliAODEvent* aod, AliEventTag* evTag)
     evTag->SetTotalMomentum(totalP);
     evTag->SetMeanPt(meanPt);
     evTag->SetMaxPt(maxPt);
+    evTag->SetEtaMaxPt(etamaxPt);
+    evTag->SetPhiMaxPt(phimaxPt);
 }
index 9d33e1f3365db2891c55a806b023c3ea96b3ba30..53476bab6aaa3c57425dfbc27a5e2aa7226dca4b 100644 (file)
@@ -228,7 +228,7 @@ void AliESDTagCreator::CreateTag(TChain* chain, const char *type) {
   Int_t nCh1GeV, nCh3GeV, nCh10GeV;
   Int_t nMu1GeV, nMu3GeV, nMu10GeV;
   Int_t nEl1GeV, nEl3GeV, nEl10GeV;
-  Float_t maxPt = .0, meanPt = .0, totalP = .0;
+  Float_t maxPt = .0, etamaxPt = -999., phimaxPt = -999., meanPt = .0, totalP = .0;
   Int_t fVertexflag;
   Int_t iRunNumber = 0;
   TString fVertexName;
@@ -292,7 +292,7 @@ void AliESDTagCreator::CreateTag(TChain* chain, const char *type) {
     nCh1GeV = 0; nCh3GeV = 0; nCh10GeV = 0;
     nMu1GeV = 0; nMu3GeV = 0; nMu10GeV = 0;
     nEl1GeV = 0; nEl3GeV = 0; nEl10GeV = 0;
-    maxPt = .0; meanPt = .0; totalP = .0;
+    maxPt = .0; etamaxPt = -999.; phimaxPt = -999.; meanPt = .0; totalP = .0;
     fVertexflag = 1;
     
     chain->GetEntry(iEventNumber);    
@@ -336,7 +336,11 @@ void AliESDTagCreator::CreateTag(TChain* chain, const char *type) {
       Double_t fPt = TMath::Sqrt(pt2);
       totalP += momentum;
       meanPt += fPt;
-      if(fPt > maxPt) maxPt = fPt;
+      if(fPt > maxPt) {
+         maxPt = fPt;
+         phimaxPt = esdTrack->Phi();
+         etamaxPt = esdTrack->Eta();
+      }
       
       if(esdTrack->GetSign() > 0) {
        nPos++;
@@ -514,6 +518,8 @@ void AliESDTagCreator::CreateTag(TChain* chain, const char *type) {
     evTag->SetTotalMomentum(totalP);
     evTag->SetMeanPt(meanPt);
     evTag->SetMaxPt(maxPt);
+    evTag->SetEtaMaxPt(etamaxPt);
+    evTag->SetPhiMaxPt(phimaxPt);
     
     tag->SetRunId(iInitRunNumber);
     if(fIsSim) tag->SetDataType(0);
@@ -595,7 +601,7 @@ void AliESDTagCreator::CreateTag(TFile* file, const char *guid, const char *md5,
   Int_t nCh1GeV, nCh3GeV, nCh10GeV;
   Int_t nMu1GeV, nMu3GeV, nMu10GeV;
   Int_t nEl1GeV, nEl3GeV, nEl10GeV;
-  Float_t maxPt = .0, meanPt = .0, totalP = .0;
+  Float_t maxPt = .0, etamaxPt = -999., phimaxPt = -999., meanPt = .0, totalP = .0;
   Int_t fVertexflag;
   Int_t iRunNumber = 0;
   TString fVertexName;
@@ -650,6 +656,8 @@ void AliESDTagCreator::CreateTag(TFile* file, const char *guid, const char *md5,
     nEl3GeV = 0;
     nEl10GeV = 0;
     maxPt = .0;
+    etamaxPt = -999.;
+    phimaxPt = -999.;
     meanPt = .0;
     totalP = .0;
     fVertexflag = 1;
@@ -681,8 +689,13 @@ void AliESDTagCreator::CreateTag(TFile* file, const char *guid, const char *md5,
       Double_t fPt = TMath::Sqrt(pt2);
       totalP += momentum;
       meanPt += fPt;
-      if(fPt > maxPt) maxPt = fPt;
+      if(fPt > maxPt) {
+         maxPt = fPt;
+         etamaxPt = esdTrack->Eta();
+         phimaxPt = esdTrack->Phi();
+      }
       
+             
       if(esdTrack->GetSign() > 0) {
        nPos++;
        if(fPt > fLowPtCut) nCh1GeV++;
@@ -850,6 +863,8 @@ void AliESDTagCreator::CreateTag(TFile* file, const char *guid, const char *md5,
     evTag->SetTotalMomentum(totalP);
     evTag->SetMeanPt(meanPt);
     evTag->SetMaxPt(maxPt);
+    evTag->SetEtaMaxPt(etamaxPt);
+    evTag->SetPhiMaxPt(phimaxPt);
     
     tag->SetRunId(iInitRunNumber);
     if(fIsSim) tag->SetDataType(0);
@@ -941,7 +956,7 @@ void AliESDTagCreator::CreateTag(TFile* file, const char *filepath, Int_t Counte
   Int_t nCh1GeV, nCh3GeV, nCh10GeV;
   Int_t nMu1GeV, nMu3GeV, nMu10GeV;
   Int_t nEl1GeV, nEl3GeV, nEl10GeV;
-  Float_t maxPt = .0, meanPt = .0, totalP = .0;
+  Float_t maxPt = .0, etamaxPt = -999, phimaxPt = -999., meanPt = .0, totalP = .0;
   Int_t fVertexflag;
   Int_t iRunNumber = 0;
   TString fVertexName;
@@ -990,6 +1005,8 @@ void AliESDTagCreator::CreateTag(TFile* file, const char *filepath, Int_t Counte
     nEl3GeV = 0;
     nEl10GeV = 0;
     maxPt = .0;
+    etamaxPt = -999.;
+    phimaxPt = -999.;
     meanPt = .0;
     totalP = .0;
     fVertexflag = 1;
@@ -1021,7 +1038,12 @@ void AliESDTagCreator::CreateTag(TFile* file, const char *filepath, Int_t Counte
       Double_t fPt = TMath::Sqrt(pt2);
       totalP += momentum;
       meanPt += fPt;
-      if(fPt > maxPt) maxPt = fPt;
+      if(fPt > maxPt) {
+         maxPt = fPt;
+         etamaxPt = esdTrack->Eta();
+         phimaxPt = esdTrack->Phi();
+      }
+      
       
       if(esdTrack->GetSign() > 0) {
        nPos++;
@@ -1187,6 +1209,8 @@ void AliESDTagCreator::CreateTag(TFile* file, const char *filepath, Int_t Counte
     evTag->SetTotalMomentum(totalP);
     evTag->SetMeanPt(meanPt);
     evTag->SetMaxPt(maxPt);
+    evTag->SetEtaMaxPt(etamaxPt);
+    evTag->SetPhiMaxPt(phimaxPt);
     
     tag->SetRunId(iInitRunNumber);
     if(fIsSim) tag->SetDataType(0);
@@ -1278,7 +1302,7 @@ void AliESDTagCreator::CreateESDTags(Int_t fFirstEvent, Int_t fLastEvent, AliGRP
   Int_t nCh1GeV, nCh3GeV, nCh10GeV;
   Int_t nMu1GeV, nMu3GeV, nMu10GeV;
   Int_t nEl1GeV, nEl3GeV, nEl10GeV;
-  Float_t maxPt = .0, meanPt = .0, totalP = .0;
+  Float_t maxPt = .0, etamaxPt = -999., phimaxPt = -999., meanPt = .0, totalP = .0;
   Int_t fVertexflag;
   Int_t iRunNumber = 0;
   TString fVertexName("default");
@@ -1344,6 +1368,8 @@ void AliESDTagCreator::CreateESDTags(Int_t fFirstEvent, Int_t fLastEvent, AliGRP
     nEl3GeV = 0;
     nEl10GeV = 0;
     maxPt = .0;
+    etamaxPt = -999.;
+    phimaxPt = -999.;
     meanPt = .0;
     totalP = .0;
     fVertexflag = 0;
@@ -1373,7 +1399,11 @@ void AliESDTagCreator::CreateESDTags(Int_t fFirstEvent, Int_t fLastEvent, AliGRP
       Double_t fPt = TMath::Sqrt(pt2);
       totalP += momentum;
       meanPt += fPt;
-      if(fPt > maxPt) maxPt = fPt;
+      if(fPt > maxPt) {
+         maxPt = fPt;
+         phimaxPt = esdTrack->Eta();
+         etamaxPt = esdTrack->Phi();
+      }
       
       if(esdTrack->GetSign() > 0) {
        nPos++;
@@ -1541,6 +1571,8 @@ void AliESDTagCreator::CreateESDTags(Int_t fFirstEvent, Int_t fLastEvent, AliGRP
     evTag->SetTotalMomentum(totalP);
     evTag->SetMeanPt(meanPt);
     evTag->SetMaxPt(maxPt);
+    evTag->SetEtaMaxPt(etamaxPt);
+    evTag->SetPhiMaxPt(phimaxPt);
     
     tag->SetLHCTag(lhcLuminosity,lhcState);
     tag->SetDetectorTag(detectorMask);
index 55af91d0b6257b9da20c45c85a9cdd0f9b480a4f..65e2be83f5b269eca275c76e30eca3d76bb24182 100644 (file)
@@ -91,6 +91,8 @@ ClassImp(AliEventTag)
     fTotalP(-10.0),
     fMeanPt(-10.0),
     fMaxPt(-10.0),
+    fEtaMaxPt(-13.0),
+    fPhiMaxPt(+13.0),
     fTotalNeutralP(-10.0),
     fMeanNeutralPt(-10.0),
     fMaxNeutralPt(-10.0),
@@ -175,6 +177,8 @@ AliEventTag::AliEventTag(const AliEventTag & evTag) :
   fTotalP(evTag.fTotalP),
   fMeanPt(evTag.fMeanPt),
   fMaxPt(evTag.fMaxPt),
+  fEtaMaxPt(evTag.fEtaMaxPt),
+  fPhiMaxPt(evTag.fPhiMaxPt),
   fTotalNeutralP(evTag.fTotalNeutralP),
   fMeanNeutralPt(evTag.fMeanNeutralPt),
   fMaxNeutralPt(evTag.fMaxNeutralPt),
@@ -261,6 +265,8 @@ AliEventTag & AliEventTag::operator=(const AliEventTag &evTag) {
     SetTotalMomentum(evTag.GetTotalMomentum());
     SetMeanPt(evTag.GetMeanPt());
     SetMaxPt(evTag.GetMaxPt());
+    SetEtaMaxPt(evTag.GetEtaMaxPt());
+    SetPhiMaxPt(evTag.GetPhiMaxPt());
     SetNeutralTotalMomentum(evTag.GetNeutralTotalMomentum());
     SetNeutralMeanPt(evTag.GetNeutralMeanPt());
     SetNeutralMaxPt(evTag.GetNeutralMaxPt());
index b98c1059dfefe3589be0ff14962da5378dfe9435..87c5116cdbce3b7834947eca17001bb4f0cd56b1 100644 (file)
@@ -93,6 +93,8 @@ class AliEventTag : public TObject {
   void SetTotalMomentum(Float_t P) {fTotalP = P;}
   void SetMeanPt(Float_t Pt) {fMeanPt = Pt;}
   void SetMaxPt(Float_t Pt) {fMaxPt = Pt;}
+  void SetEtaMaxPt(Float_t eta) {fEtaMaxPt = eta;}
+  void SetPhiMaxPt(Float_t phi) {fPhiMaxPt = phi;}
   void SetNeutralTotalMomentum(Float_t f) {fTotalNeutralP = f;}
   void SetNeutralMeanPt(Float_t f) {fMeanNeutralPt = f;}
   void SetNeutralMaxPt(Float_t f) {fMaxNeutralPt = f;}
@@ -108,7 +110,7 @@ class AliEventTag : public TObject {
   void SetMTotV0C(Int_t mult) {fMTotV0C = mult;}
   void SetNbPMV0A(Short_t npmt) {fNbPMV0A = npmt;}
   void SetNbPMV0C(Short_t npmt) {fNbPMV0C = npmt;}
-
+  void SetEventId(Int_t /*id*/) {;}
   //____________________________________________________//
   UInt_t GetPeriodNumber() const {return fPeriodNumber;}
   UInt_t GetOrbitNumber() const {return fOrbitNumber;}
@@ -176,6 +178,8 @@ class AliEventTag : public TObject {
   Float_t     GetTotalMomentum() const {return fTotalP;}
   Float_t     GetMeanPt() const {return fMeanPt;}
   Float_t     GetMaxPt() const {return fMaxPt;}
+  Float_t     GetEtaMaxPt() const {return fEtaMaxPt;}
+  Float_t     GetPhiMaxPt() const {return fPhiMaxPt;}
   Float_t     GetNeutralTotalMomentum() const {return fTotalNeutralP;}
   Float_t     GetNeutralMeanPt() const {return fMeanNeutralPt;}
   Float_t     GetNeutralMaxPt() const {return fMaxNeutralPt;}
@@ -259,6 +263,8 @@ class AliEventTag : public TObject {
   Float_t   fTotalP;                       //Sum of the momentum per event
   Float_t   fMeanPt;                       //Mean Pt per event
   Float_t   fMaxPt;                        //Max Pt for each event
+  Float_t   fEtaMaxPt;                     //Eta of the particle with max pt (leading particle)
+  Float_t   fPhiMaxPt;                     //Phi of the particle with max pt (leading particle)  
   Float_t   fTotalNeutralP;                //Sum of the momentum per event for neutral
   Float_t   fMeanNeutralPt;                //Mean Pt per event for neutral
   Float_t   fMaxNeutralPt;                 //Max Pt for each event for neutral
@@ -275,8 +281,8 @@ class AliEventTag : public TObject {
   Short_t   fNbPMV0A;                       //Total number of fired channels in V0 A side
   Short_t   fNbPMV0C;                       //Total number of fired channels in V0 C side
 
-  ClassDef(AliEventTag,12)  //(ClassName, ClassVersion)
-    };
+  ClassDef(AliEventTag,13)  //(ClassName, ClassVersion)
+      };
 //___________________________________________________________________________