Changes for #91932: commit to trunk amd port to Release AliAODTZERO
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 28 Feb 2012 10:16:11 +0000 (10:16 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 28 Feb 2012 10:16:11 +0000 (10:16 +0000)
ANALYSIS/AliAnalysisTaskESDfilter.cxx
STEER/AOD/AliAODTZERO.cxx
STEER/AOD/AliAODTZERO.h

index f13f8cd..05077d9 100644 (file)
@@ -1897,6 +1897,33 @@ void AliAnalysisTaskESDfilter::ConvertTZERO(const AliESDEvent& esd)
   aodTzero->SetPileupFlag(esdTzero->GetPileupFlag());\r
   aodTzero->SetSatelliteFlag(esdTzero->GetSatellite()); \r
 \r
+  Float_t rawTime[24];\r
+  for(Int_t ipmt=0; ipmt<24; ipmt++)\r
+    rawTime[ipmt] = esdTzero->GetTimeFull(ipmt,0);\r
+   \r
+  Int_t idxOfFirstPmtA = -1,       idxOfFirstPmtC = -1;\r
+  Float_t timeOfFirstPmtA = 9999, timeOfFirstPmtC = 9999;\r
+  for(int ipmt=0;  ipmt<12; ipmt++){\r
+    if( rawTime[ipmt] > -200 && rawTime[ipmt] < timeOfFirstPmtC && rawTime[ipmt]!=0){\r
+      timeOfFirstPmtC = rawTime[ipmt];\r
+      idxOfFirstPmtC  = ipmt;\r
+    }\r
+  }\r
+  for(int ipmt=12; ipmt<24; ipmt++){\r
+    if( rawTime[ipmt] > -200 && rawTime[ipmt] < timeOfFirstPmtA && rawTime[ipmt]!=0 ){\r
+      timeOfFirstPmtA = rawTime[ipmt];\r
+      idxOfFirstPmtA  = ipmt;\r
+    }\r
+  }\r
+\r
+  if(idxOfFirstPmtA != -1 && idxOfFirstPmtC != -1){\r
+    //speed of light in cm/ns   TMath::C()*1e-7 \r
+    Float_t vertexraw = TMath::C()*1e-7 * (rawTime[idxOfFirstPmtA] - rawTime[idxOfFirstPmtC])/2;\r
+    aodTzero->SetT0VertexRaw( vertexraw );\r
+  }else{\r
+    aodTzero->SetT0VertexRaw(99999);\r
+  }\r
+\r
 }\r
 \r
 \r
index 034ba51..69a737a 100644 (file)
@@ -14,9 +14,9 @@
  **************************************************************************/
 
 //-------------------------------------------------------------------------
-//     Container class for AOD VZERO data
-//     Author: Cvetan Cheshkov
-//     cvetan.cheshkov@cern.ch 2/02/2011
+//     Container class for AOD TZERO data
+//     Author: Filip Krizek 
+//     filip.krizek@cern.ch 23/02/2012
 //-------------------------------------------------------------------------
 
 #include "AliAODTZERO.h"
@@ -29,7 +29,8 @@ AliAODTZERO::AliAODTZERO()
   :TObject(),
    fPileup(0),
    fSattelite(0),
-   fBackground(0)
+   fBackground(0),
+   fT0VertexRaw(999)
 {   
   // Default constructor 
   for(Int_t j=0; j<3; j++){ 
@@ -43,7 +44,8 @@ AliAODTZERO::AliAODTZERO(const AliAODTZERO &source)
   :TObject(source),
    fPileup(source.fPileup),
    fSattelite(source.fSattelite),
-   fBackground(source.fBackground)
+   fBackground(source.fBackground),
+   fT0VertexRaw(source.fT0VertexRaw)
 {   
   // Default constructor 
   for(Int_t j=0; j<3; j++) {
@@ -59,9 +61,10 @@ AliAODTZERO& AliAODTZERO::operator=(const AliAODTZERO& source)
   //
   if(this==&source) return *this;
   // Assignment operator
-  fPileup     = source.fPileup;
-  fSattelite  = source.fSattelite;
-  fBackground = source.fBackground;
+  fPileup      = source.fPileup;
+  fSattelite   = source.fSattelite;
+  fBackground  = source.fBackground;
+  fT0VertexRaw = source.fT0VertexRaw;
 
   for(Int_t j=0; j<3; j++){
     fT0TOF[j]     = source.fT0TOF[j];
index 448b4f0..fff7826 100644 (file)
@@ -4,7 +4,7 @@
 //-------------------------------------------------------------------------
 //     Container class for AOD TZERO data
 //     Author: Filip Krizek
-//     filip.krizek@cern.ch 18/11/2011
+//     filip.krizek@cern.ch 23/02/2012
 //-------------------------------------------------------------------------
 
 #include <TObject.h>
@@ -30,6 +30,8 @@ public:
   Bool_t GetPileupFlag()     const {return fPileup;}
   Bool_t GetSatellite()      const {return fSattelite;}
   
+  Float_t GetT0VertexRaw()      const {return fT0VertexRaw;}
+  
   //Setters
   void SetT0TOF(Int_t icase, Double32_t time) { fT0TOF[icase] = time;}
   void SetT0TOFbest(Int_t icase, Double32_t time) { fT0TOFbest[icase] = time;}
@@ -37,8 +39,9 @@ public:
   void SetBackgroundFlag(Bool_t back = false) {fBackground = back;}
   void SetPileupFlag(Bool_t back = false) {fPileup  = back;}
   void SetSatelliteFlag(Bool_t sat = false) { fSattelite = sat;}
-       
   
+  void SetT0VertexRaw(Float_t vtx) { fT0VertexRaw = vtx;}
+       
   
 protected:
   Double32_t   fT0TOF[3];    // interaction time in ps with 1st time( A&C, A, C)
@@ -46,8 +49,9 @@ protected:
   Bool_t       fSattelite;   // sattelite flag
   Bool_t       fBackground;  // sattelite flag
   Double32_t   fT0TOFbest[3];// interaction time in ps ( A&C, A, C) with best time
+  Float_t      fT0VertexRaw; // raw T0 vertex without any cuts 
 
-  ClassDef(AliAODTZERO,1)
+  ClassDef(AliAODTZERO,2)
 };
 
 #endif