Third step towards VZERO AOD: inclusing in the AliAODEvent and in esd-filtering analy...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 3 Feb 2011 15:40:18 +0000 (15:40 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 3 Feb 2011 15:40:18 +0000 (15:40 +0000)
ANALYSIS/AliAnalysisTaskESDfilter.cxx
STEER/AliAODEvent.cxx
STEER/AliAODEvent.h
STEER/AliAODVZERO.cxx
STEER/AliAODVZERO.h
STEER/AliESDEvent.h
STEER/AliMCEvent.h
STEER/AliMixedEvent.h
STEER/AliVEvent.h

index 291a353..bf92524 100644 (file)
@@ -219,6 +219,10 @@ void AliAnalysisTaskESDfilter::ConvertESDtoAOD() {
     header->SetDiamond(diamxy,diamcov);\r
     header->SetDiamondZ(esd->GetDiamondZ(),esd->GetSigma2DiamondZ());\r
 //\r
+//  VZERO\r
+    AliAODVZERO* vzeroData = AODEvent()->GetVZEROData();\r
+    *vzeroData = *esd->GetVZEROData();\r
+//\r
 //\r
     Int_t nV0s      = esd->GetNumberOfV0s();\r
     Int_t nCascades = 0; // esd->GetNumberOfCascades();\r
index 066ec5c..ad72914 100644 (file)
@@ -47,7 +47,8 @@ ClassImp(AliAODEvent)
                                                      "caloClusters",
                                                      "fmdClusters",
                                                      "pmdClusters",
-                                                     "dimuons"
+                                                     "dimuons",
+                                                     "AliAODVZERO"
                                                      
 };
 //______________________________________________________________________________
@@ -68,7 +69,8 @@ AliAODEvent::AliAODEvent() :
   fCaloClusters(0),
   fFmdClusters(0),
   fPmdClusters(0),
-  fDimuons(0)
+  fDimuons(0),
+  fAODVZERO(0)
 {
   // default constructor
 }
@@ -91,7 +93,8 @@ AliAODEvent::AliAODEvent(const AliAODEvent& aod):
   fCaloClusters(new TClonesArray(*aod.fCaloClusters)),
   fFmdClusters(new TClonesArray(*aod.fFmdClusters)),
   fPmdClusters(new TClonesArray(*aod.fPmdClusters)),
-  fDimuons(new TClonesArray(*aod.fDimuons))
+  fDimuons(new TClonesArray(*aod.fDimuons)),
+  fAODVZERO(new AliAODVZERO(*aod.fAODVZERO))
 {
   // Copy constructor
   AddObject(fHeader);
@@ -107,6 +110,7 @@ AliAODEvent::AliAODEvent(const AliAODEvent& aod):
   AddObject(fFmdClusters);
   AddObject(fPmdClusters);
   AddObject(fDimuons);
+  AddObject(fAODVZERO);
   fConnected = aod.fConnected;
   GetStdContent();
   CreateStdFolders();
@@ -267,6 +271,7 @@ void AliAODEvent::CreateStdContent()
   AddObject(new TClonesArray("AliAODFmdCluster", 0));
   AddObject(new TClonesArray("AliAODPmdCluster", 0));
   AddObject(new TClonesArray("AliAODDimuon", 0));
+  AddObject(new AliAODVZERO());
   // set names
   SetStdNames();
 
@@ -350,6 +355,7 @@ void AliAODEvent::GetStdContent()
   fFmdClusters   = (TClonesArray*)fAODObjects->FindObject("fmdClusters");
   fPmdClusters   = (TClonesArray*)fAODObjects->FindObject("pmdClusters");
   fDimuons       = (TClonesArray*)fAODObjects->FindObject("dimuons");
+  fAODVZERO      = (AliAODVZERO*)fAODObjects->FindObject("AliAODVZERO");
 }
 
 //______________________________________________________________________________
index e9f09fb..565c9ce 100644 (file)
@@ -30,6 +30,7 @@
 #include "AliAODPmdCluster.h"
 #include "AliAODFmdCluster.h"
 #include "AliAODDimuon.h"
+#include "AliAODVZERO.h"
 
 class TTree;
 class TFolder;
@@ -51,6 +52,7 @@ class AliAODEvent : public AliVEvent {
                       kAODFmdClusters,
                       kAODPmdClusters,
                       kAODDimuons,
+                      kAODVZERO,
                       kAODListN
   };
 
@@ -234,6 +236,10 @@ class AliAODEvent : public AliVEvent {
   virtual Int_t        EventIndexForPHOSCell(Int_t)    const {return 0;}
   virtual Int_t        EventIndexForEMCALCell(Int_t)   const {return 0;} 
   AliCentrality*       GetCentrality() {return fHeader->GetCentralityP();} 
+
+  // VZERO 
+  AliAODVZERO *GetVZEROData() const { return fAODVZERO; }
+
   private :
 
   TList   *fAODObjects; //  list of AODObjects
@@ -253,10 +259,11 @@ class AliAODEvent : public AliVEvent {
   TClonesArray    *fFmdClusters;  //! FMDclusters
   TClonesArray    *fPmdClusters;  //! PMDclusters
   TClonesArray    *fDimuons;      //! dimuons
+  AliAODVZERO     *fAODVZERO;     //! VZERO AOD
 
   static const char* fAODListName[kAODListN]; //!
 
-  ClassDef(AliAODEvent, 6);
+  ClassDef(AliAODEvent, 7);
 };
 
 #endif
index e316f14..5673d31 100644 (file)
@@ -118,6 +118,37 @@ AliAODVZERO& AliAODVZERO::operator=(const AliAODVZERO& source)
 }
 
 //__________________________________________________________________________
+AliAODVZERO& AliAODVZERO::operator=(const AliVVZERO& source)
+{
+  // Assignment operator
+  // used in esd->aod filter
+  if(this==&source) return *this;
+  AliVVZERO::operator=(source);
+
+  fV0ATime = source.GetV0ATime();
+  fV0CTime = source.GetV0CTime();
+  fV0ADecision = source.GetV0ADecision();
+  fV0CDecision = source.GetV0CDecision();
+
+  for(Int_t j=0; j<64; j++) {
+    fMultiplicity[j] = source.GetMultiplicity(j);
+    fBBFlag[j] = source.GetBBFlag(j);
+    fBGFlag[j] = source.GetBGFlag(j);
+  }
+
+  fBBtriggerV0A = fBGtriggerV0A = fBBtriggerV0C = fBGtriggerV0C = 0;
+  for(Int_t j=0; j<32; j++) {
+    if (source.BBTriggerV0A(j)) fBBtriggerV0A |= (1 << j);
+    if (source.BGTriggerV0A(j)) fBGtriggerV0A |= (1 << j);
+    if (source.BBTriggerV0C(j)) fBBtriggerV0C |= (1 << j);
+    if (source.BGTriggerV0C(j)) fBGtriggerV0C |= (1 << j);
+  }
+
+  return *this;
+
+}
+
+//__________________________________________________________________________
 Short_t AliAODVZERO::GetNbPMV0A() const
 {
   // Returns the number of
index 7d76d06..b711190 100644 (file)
@@ -16,6 +16,7 @@ public:
   AliAODVZERO(const AliAODVZERO& source);
   AliAODVZERO(const AliVVZERO& source);
   AliAODVZERO &operator=(const AliAODVZERO& source);
+  AliAODVZERO &operator=(const AliVVZERO& source);
 
   virtual ~AliAODVZERO() {};
 
index 95c5f1f..e78d2d4 100644 (file)
@@ -41,8 +41,9 @@
 
 #include "AliTOFHeader.h"
 
+#include "AliESDVZERO.h"
+
 class AliESDfriend;
-class AliESDVZERO;
 class AliESDHLTtrack;
 class AliESDVertex;
 class AliESDPmdTrack;
index 7cd80d9..caae4cd 100644 (file)
@@ -134,6 +134,8 @@ public:
   virtual Int_t        EventIndexForPHOSCell(Int_t)    const {return 0;}
   virtual Int_t        EventIndexForEMCALCell(Int_t)   const {return 0;} 
   AliCentrality*       GetCentrality()  {return 0;} 
+
+  virtual AliVVZERO *GetVZEROData() const {return 0;}
 private:
     virtual void      ReorderAndExpandTreeTR();
     virtual Int_t     FindIndexAndEvent(Int_t oldidx, AliMCEvent*& event) const;
index 101e039..d1a7bcc 100644 (file)
@@ -113,6 +113,8 @@ public:
   // Primary vertex
     virtual const AliVVertex   *GetPrimaryVertex() const {return fMeanVertex;}
     virtual Bool_t ComputeVtx(TObjArray *vertices, Double_t *pos,Double_t *sig,Int_t *nContributors);
+  // VZERO
+  virtual AliVVZERO *GetVZEROData() const {return 0;}
 private:
   TList   fEventList;            //! List of Events
   Int_t   fNEvents;              //! Number of Events 
index 6218d54..7e2c7ad 100644 (file)
@@ -23,6 +23,7 @@
 #include "AliVCaloCells.h"
 #include "TRefArray.h"
 class AliCentrality;
+class AliVVZERO;
 
 class AliVEvent : public TObject {
 
@@ -133,6 +134,8 @@ public:
   virtual Int_t        EventIndexForPHOSCell(Int_t icell)   const = 0;
   virtual Int_t        EventIndexForEMCALCell(Int_t icell)  const = 0;  
 
+  virtual AliVVZERO *GetVZEROData() const = 0;
+
   ClassDef(AliVEvent,1)  // base class for AliEvent data
 };
 #endif