]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/EMCALTasks/AliAnalysisTaskEMCALPhoton.h
Corrected end-of-line behavior
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALPhoton.h
index f3ec467511b1622f6528d7ccf0e286248c5a2f47..caed174f1967915453224ba6f0bbf8fae6e9ddfb 100644 (file)
-#ifndef AliAnalysisTaskEMCALPhoton_h\r
-#define AliAnalysisTaskEMCALPhoton_h\r
-\r
-// $Id$\r
-\r
-class TH1;\r
-class TH2;\r
-class TObjArray;\r
-class AliESDEvent;\r
-class AliMCEvent;\r
-class AliStack;\r
-class AliESDtrack;\r
-class AliESDtrackCuts;\r
-class AliESDCaloCells;\r
-class AliAODEvent;\r
-class AliAODCaloCells;\r
-class AliEMCALGeometry;\r
-class AliOADBContainer;\r
-class AliVCluster;\r
-class AliVCaloCells;\r
-class AliAnalysisTaskEMCALClusterizeFast;\r
-class TParticle;\r
-class TGeoHMatrix;\r
-class AliPhotonHeaderObj;\r
-class AliPhotonConvObj;\r
-class AliPhotonClusterObj;\r
-class AliPhotonCellObj;\r
-\r
-#include "AliAnalysisTaskSE.h"\r
-\r
-class AliAnalysisTaskEMCALPhoton : public AliAnalysisTaskSE {\r
- public:\r
-  AliAnalysisTaskEMCALPhoton();\r
-  AliAnalysisTaskEMCALPhoton(const char *name);\r
-  virtual ~AliAnalysisTaskEMCALPhoton() {}\r
-\r
-  void         UserCreateOutputObjects();\r
-  void         UserExec(Option_t *option);\r
-  void         Terminate(Option_t *);\r
-\r
-  void         SetTrackCuts(AliESDtrackCuts *c)                                  { fTrCuts             =    c;    }\r
-  void         SetPrimTrackCuts(AliESDtrackCuts *c)                              { fPrTrCuts           =    c;    }\r
-  void         SetTimeResTOF(Float_t tr = 130.)                                  { fTimeResTOF         =    tr;   }\r
-  void         SetMipResponseTPC(Float_t mr = 47.9)                              { fMipResponseTPC     =    mr;   }\r
-  void         SetGeoName(const char *n)                                         { fGeoName            =    n;    }\r
-  void         SetPeriod(const char *n)                                          { fPeriod             =    n;    }\r
-  void         SetTrainMode(Bool_t t)                                            { fIsTrain            =    t;    }\r
-  void         SetGridMode(Bool_t g)                                             { fIsGrid             =    g;    }\r
-  void         SetClusThreshold(Double_t et)                                     { fClusThresh         =    et;   }\r
-  void         SetClusterizer(AliAnalysisTaskEMCALClusterizeFast *c)             { fClusterizer        =    c;    }\r
-  void         SetMcMode(Bool_t mc)                                              { fIsMC               =    mc;   }\r
-  void         SetDebugMode(Bool_t d)                                            { fDebug              =    d;    }\r
-  void         SetRedoV0(Bool_t v)                                               { fRedoV0             =    v;    }\r
-  void         FindConversions();\r
-  void         FillMyCells();\r
-  void         FillMyClusters();\r
-  void         FillMyAltClusters();\r
-  void         FillIsoTracks();\r
-  void         FillMcPart(  Int_t itrack, Int_t label);\r
-  void         GetMcParts();\r
-  Double_t     GetMcIsolation( Int_t itrack, Double_t radius, Double_t pt)                 const;\r
-  Double_t     GetTrackIsolation(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.)       const;\r
-  Double_t     GetPhiBandEt(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.)            const;\r
- // Double_t     GetPhiBandEt(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.)            const;\r
-  Double_t     GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);\r
-  Double_t     GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; \r
-  \r
- protected:\r
-  AliESDtrackCuts                       *fTrCuts;                 // track cuts\r
-  AliESDtrackCuts                       *fPrTrCuts;               // primary track cuts\r
-  TObjArray                             *fSelTracks;             //!pointer to selected inclusive tracks\r
-  TObjArray                             *fSelPrimTracks;         //!pointer to selected primary tracks\r
-  TClonesArray                          *fTracks;                //!track input array\r
-  TClonesArray                          *fPhotConvArray;         //!array of AliPhotonConvObj\r
-  TClonesArray                          *fMyClusts;              //!array of AliPhotonClusterObj\r
-  TClonesArray                          *fMyAltClusts;           //!array of AliPhotonClusterObj from the alternative clusterizer\r
-  TClonesArray                          *fMyCells;               //!array of AliPhotonCellObj\r
-  TClonesArray                          *fMyTracks;              //!array of AliPhotonTrackObj\r
-  TClonesArray                          *fMyMcParts;             //!array of AliPhotonMcPartObj\r
-  AliPhotonHeaderObj                    *fHeader;                //!\r
-  AliOADBContainer                      *fOADBContainer;         //!OADB container used to load misalignment matrices\r
-  TClonesArray                          *fCaloClusters;          //!pointer to EMCal clusters\r
-  TClonesArray                          *fCaloClustersNew;       //!pointer to EMCal clusters v2\r
-  TClonesArray                          *fAODMCParticles;        //!MC particles array for AOD analysis\r
-  AliVCaloCells                         *fVCells;                //!pointer to EMCal cells      \r
-  AliEMCALGeometry                      *fGeom;                   // geometry utils\r
-  Float_t                                fTimeResTOF;            //TOF time resolution for track PID\r
-  Float_t                                fMipResponseTPC;        //TPC mip response for track pid\r
-  TString                                fGeoName;                // geometry name (def = EMCAL_FIRSTYEARV1)\r
-  TString                                fPeriod;                 // string to the LHC period\r
-  Bool_t                                 fIsTrain;                //variable to set train mode\r
-  Bool_t                                 fIsMC;                   //variable to switch mcparts branch on/off\r
-  Bool_t                                 fDebug;                 //variable to switch debug on/off\r
-  Bool_t                                 fRedoV0;                 //variable to recalculate V0s - must be off for A-A collisions\r
-  Bool_t                                 fIsGrid;                //variable to set grid mode\r
-  Double_t                               fClusThresh;            //!energy threshold for cluster be saved\r
-  AliAnalysisTaskEMCALClusterizeFast    *fClusterizer;           //!pointer for alternative clusterizer\r
-  TString                                fCaloClustersName;      //alternative clusterizer name\r
-\r
-  \r
-  \r
- private:\r
-  AliESDEvent                           *fESD;      //! ESD object\r
-  AliAODEvent                           *fAOD;      //! AOD object\r
-  AliVEvent                             *fVev;      //!virtual event obj \r
-  AliMCEvent                            *fMCEvent;    //! MC event object\r
-  AliStack                              *fStack;     //!MC particles stack object\r
-  TGeoHMatrix                           *fGeomMatrix[12];//! Geometry misalignment matrices for EMCal\r
-  \r
-  TList                                 *fOutputList;            //! Output list\r
-  TTree                                 *fTree;                  //!output tree\r
-  Int_t                                  fMyMcIndex; //!counter of the saved mc particlesx\r
-  \r
-  //conversion histograms\r
-  TH2F                                  *fNV0sBefAndAftRerun;      //!check the number of V0s before and after rerun\r
-  TH2F                                  *fConversionVtxXY;         //! X x Y of found conversion vertices\r
-  TH1F                                  *fInvMassV0;               //!invariant mass from v0->GetEffMass()\r
-  TH1F                                  *fInvMassV0KF;             //!invariant mass from the v0 tracks\r
-  TH1F                                  *fInvMassV0SS;             //!invariant mass from the tracks in the "dirty" finder\r
-  TH2F                                  *fDedxPAll;               //!dE/dx vs p of all selected tracks\r
-  \r
-\r
-   \r
-  AliAnalysisTaskEMCALPhoton(const AliAnalysisTaskEMCALPhoton&); // not implemented\r
-  AliAnalysisTaskEMCALPhoton& operator=(const AliAnalysisTaskEMCALPhoton&); // not implemented\r
-  \r
-  ClassDef(AliAnalysisTaskEMCALPhoton, 1); // example of analysis\r
-};\r
-\r
-#endif\r
-\r
-#ifndef AliPhotonObjs_h\r
-#define AliPhotonObjs_h\r
-\r
-class AliPhotonHeaderObj : public TObject\r
-{\r
-  public: AliPhotonHeaderObj() :\r
-  TObject(), fInputFileName(""), fTrClassMask(0), fTrCluster(0), fV0Cent(0), fV0(0), fCl1Cent(0), \r
-    fCl1(0), fTrCent(0), fTr(0), fNClus(0), fNCells(0), fTrackMult(0), fNMcParts(0)  {;}\r
-  public:\r
-  TString       fInputFileName;  // used for normalization purposes in MC productions\r
-  ULong64_t     fTrClassMask;    //         trigger class mask\r
-  UChar_t       fTrCluster;      //         trigger cluster mask\r
-  Double32_t    fV0Cent;         //[0,0,16] v0 cent\r
-  Double32_t    fV0;             //[0,0,16] v0 result used for cent \r
-  Double32_t    fCl1Cent;        //[0,0,16] cl1 cent\r
-  Double32_t    fCl1;            //[0,0,16] cl1 result used for cent \r
-  Double32_t    fTrCent;         //[0,0,16] tr cent\r
-  Double32_t    fTr;             //[0,0,16] tr result used for cent \r
-  Int_t         fNClus;\r
-  Int_t         fNCells;\r
-  Int_t         fTrackMult;\r
-  Int_t         fNMcParts;\r
-\r
-  ClassDef(AliPhotonHeaderObj,5)\r
-};\r
-\r
-class AliPhotonConvObj : public TObject\r
-{\r
-  public: AliPhotonConvObj() : \r
-        TObject(), fPt(0), fEta(0), fPhi(0), fVR(0), fVEta(0), fVPhi(0), fMass(0), fMcLabel(-1),\r
-               fNegPt(0), fNegEta(0), fNegPhi(0), fNegDedx(0), fNegMcLabel(-1),\r
-               fPosPt(0), fPosEta(0), fPosPhi(0), fPosDedx(0), fPosMcLabel(-1) {;}\r
- public:\r
-  Double32_t    fPt;               //[0,0,16] pt\r
-  Double32_t    fEta;              //[0,0,16] eta\r
-  Double32_t    fPhi;              //[0,0,16] phi\r
-  Double32_t    fVR;               //[0,0,16] prod r (cylinder)\r
-  Double32_t    fVEta;             //[0,0,16] prod eta\r
-  Double32_t    fVPhi;             //[0,0,16] prod phi\r
-  Double32_t    fMass;             //[0,0,16] if correctly filled, should be <50 MeV\r
-  Short_t       fMcLabel;          //corresponding MC label\r
-\r
-  //negative daughter\r
-  Double32_t    fNegPt;               //[0,0,16] pt\r
-  Double32_t    fNegEta;              //[0,0,16] eta\r
-  Double32_t    fNegPhi;              //[0,0,16] phi\r
-  Double32_t    fNegDedx;             //[0,0,16] if correctly filled, should be <50 MeV\r
-  Short_t       fNegMcLabel;          //corresponding MC label\r
-\r
-  //positive daughter\r
-  Double32_t    fPosPt;               //[0,0,16] pt\r
-  Double32_t    fPosEta;              //[0,0,16] eta\r
-  Double32_t    fPosPhi;              //[0,0,16] phi\r
-  Double32_t    fPosDedx;             //[0,0,16] if correctly filled, should be <50 MeV\r
-  Short_t       fPosMcLabel;          //corresponding MC label\r
-\r
-  ClassDef(AliPhotonConvObj,1) // conversion class\r
-\r
-};\r
-class AliPhotonClusterObj : public TObject\r
-{\r
-  public: AliPhotonClusterObj() : \r
-  TObject(), fE(0), fEt(0), fR(0), fEta(0), fPhi(0), fN(0),fEmax(0),fTmax(0), fIdmax(0), fEcross(0),fDisp(-1), \r
-        fM20(-1), fM02(-1),fTrDEta(0), fTrDPhi(0), fTrEp(-1), fTrDedx(-1), fTrIso01(0), fTrIso02(0), fTrIso03(0), fTrIso04(0), \r
-        fTrPhiBand01(0), fTrPhiBand02(0), fTrPhiBand03(0), fTrPhiBand04(0), fCellsAbsId(""),fMcLabel(-1)\r
-        {;}\r
- public:\r
-  Double32_t   fE;\r
-  Double32_t   fEt;\r
-  Double32_t   fR;\r
-  Double32_t   fEta;\r
-  Double32_t   fPhi;\r
-  UShort_t     fN;\r
-  Double_t     fEmax;\r
-  Double_t     fTmax;\r
-  Short_t      fIdmax;\r
-  Double_t     fEcross;\r
-  Double32_t   fDisp;\r
-  Double32_t   fM20;\r
-  Double32_t   fM02;\r
-  Double32_t   fTrDEta;\r
-  Double32_t   fTrDPhi;\r
-  Double32_t   fTrEp;\r
-  Double32_t   fTrDedx;\r
-  Double32_t   fTrIso01;\r
-  Double32_t   fTrIso02;\r
-  Double32_t   fTrIso03;\r
-  Double32_t   fTrIso04;\r
-  Double32_t   fTrPhiBand01;\r
-  Double32_t   fTrPhiBand02;\r
-  Double32_t   fTrPhiBand03;\r
-  Double32_t   fTrPhiBand04;\r
-  TString      fCellsAbsId;           //cluster cells absid\r
-  Short_t      fMcLabel;\r
-  \r
-  \r
-  \r
-  ClassDef(AliPhotonClusterObj,6) // cluster class\r
-\r
-};\r
-\r
-class AliPhotonCellObj : public TObject\r
-{\r
-  public: AliPhotonCellObj() : \r
-        TObject(), fAbsID(-1), fE(0), fEt(0), fEta(0), fPhi(0), fTime(0)\r
-        {;}\r
- public:\r
-  Short_t      fAbsID;\r
-  Double32_t   fE;\r
-  Double32_t   fEt;\r
-  Double32_t   fEta;\r
-  Double32_t   fPhi;\r
-  Double32_t   fTime;\r
-  \r
-  \r
-  \r
-  ClassDef(AliPhotonCellObj,1) // cell class\r
-\r
-};\r
-\r
-class AliPhotonTrackObj : public TObject\r
-{\r
-  public: AliPhotonTrackObj() :\r
-        TObject(), fPt(0), fEta(0), fPhi(0), fDedx(0), fCharge(0), fMcLabel(-1) {;}\r
-  public:\r
-  Double32_t fPt;\r
-  Double32_t fEta;\r
-  Double32_t fPhi;\r
-  Double32_t fDedx;\r
-  Short_t    fCharge;\r
-  Short_t    fMcLabel;\r
-\r
-  ClassDef(AliPhotonTrackObj,3)\r
-};\r
-\r
-class AliPhotonMcPartObj : public TObject\r
-{\r
-  public: AliPhotonMcPartObj() :\r
-  TObject(), fLabel(-1), fPdg(0), fPt(0), fEta(0), fPhi(0), \r
-    fVR(0), fVEta(0), fVPhi(0), fMother(-1), fFirstD(-1),\r
-    fLastD(-1), fStatus(-1), fIso(-1), fIso3(-1) {;}\r
-  public:\r
-  Short_t    fLabel;\r
-  Short_t    fPdg;\r
-  Double32_t fPt;\r
-  Double32_t fEta;\r
-  Double32_t fPhi;\r
-  Double32_t fVR;\r
-  Double32_t fVEta;\r
-  Double32_t fVPhi;\r
-  Short_t    fMother;\r
-  Short_t    fFirstD;\r
-  Short_t    fLastD;\r
-  Short_t    fStatus;\r
-  Double32_t fIso;\r
-  Double32_t fIso3; //in cone of radius 0.3\r
-\r
-  ClassDef(AliPhotonMcPartObj,3)\r
-};\r
-\r
-#endif\r
+#ifndef AliAnalysisTaskEMCALPhoton_h
+#define AliAnalysisTaskEMCALPhoton_h
+
+// $Id$
+
+class TH1;
+class TH2;
+class TObjArray;
+class AliESDEvent;
+class AliMCEvent;
+class AliStack;
+class AliESDtrack;
+class AliESDtrackCuts;
+class AliESDCaloCells;
+class AliAODEvent;
+class AliAODCaloCells;
+class AliEMCALGeometry;
+class AliOADBContainer;
+class AliVCluster;
+class AliVCaloCells;
+class AliAnalysisTaskEMCALClusterizeFast;
+class TParticle;
+class TGeoHMatrix;
+class AliPhotonHeaderObj;
+class AliPhotonConvObj;
+class AliPhotonClusterObj;
+class AliPhotonCellObj;
+
+#include "AliAnalysisTaskSE.h"
+
+class AliAnalysisTaskEMCALPhoton : public AliAnalysisTaskSE {
+ public:
+  AliAnalysisTaskEMCALPhoton();
+  AliAnalysisTaskEMCALPhoton(const char *name);
+  virtual ~AliAnalysisTaskEMCALPhoton() {}
+
+  void         UserCreateOutputObjects();
+  void         UserExec(Option_t *option);
+  void         Terminate(Option_t *);
+
+  void         SetTrackCuts(AliESDtrackCuts *c)                                  { fTrCuts             =    c;    }
+  void         SetPrimTrackCuts(AliESDtrackCuts *c)                              { fPrTrCuts           =    c;    }
+  void         SetTimeResTOF(Float_t tr = 130.)                                  { fTimeResTOF         =    tr;   }
+  void         SetMipResponseTPC(Float_t mr = 47.9)                              { fMipResponseTPC     =    mr;   }
+  void         SetGeoName(const char *n)                                         { fGeoName            =    n;    }
+  void         SetPeriod(const char *n)                                          { fPeriod             =    n;    }
+  void         SetTrainMode(Bool_t t)                                            { fIsTrain            =    t;    }
+  void         SetGridMode(Bool_t g)                                             { fIsGrid             =    g;    }
+  void         SetClusThreshold(Double_t et)                                     { fClusThresh         =    et;   }
+  void         SetClusterizer(AliAnalysisTaskEMCALClusterizeFast *c)             { fClusterizer        =    c;    }
+  void         SetMcMode(Bool_t mc)                                              { fIsMC               =    mc;   }
+  void         SetDebugMode(Bool_t d)                                            { fDebug              =    d;    }
+  void         SetRedoV0(Bool_t v)                                               { fRedoV0             =    v;    }
+  void         FindConversions();
+  void         FillMyCells();
+  void         FillMyClusters();
+  void         FillMyAltClusters();
+  void         FillIsoTracks();
+  void         FillMcPart(  Int_t itrack, Int_t label);
+  void         GetMcParts();
+  Double_t     GetMcIsolation( Int_t itrack, Double_t radius, Double_t pt)                 const;
+  Double_t     GetTrackIsolation(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.)       const;
+  Double_t     GetPhiBandEt(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.)            const;
+ // Double_t     GetPhiBandEt(Double_t cEta, Double_t cPhi, Double_t radius=0.2, Double_t pt=0.)            const;
+  Double_t     GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);
+  Double_t     GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; 
+  
+ protected:
+  AliESDtrackCuts                       *fTrCuts;                 // track cuts
+  AliESDtrackCuts                       *fPrTrCuts;               // primary track cuts
+  TObjArray                             *fSelTracks;             //!pointer to selected inclusive tracks
+  TObjArray                             *fSelPrimTracks;         //!pointer to selected primary tracks
+  TClonesArray                          *fTracks;                //!track input array
+  TClonesArray                          *fPhotConvArray;         //!array of AliPhotonConvObj
+  TClonesArray                          *fMyClusts;              //!array of AliPhotonClusterObj
+  TClonesArray                          *fMyAltClusts;           //!array of AliPhotonClusterObj from the alternative clusterizer
+  TClonesArray                          *fMyCells;               //!array of AliPhotonCellObj
+  TClonesArray                          *fMyTracks;              //!array of AliPhotonTrackObj
+  TClonesArray                          *fMyMcParts;             //!array of AliPhotonMcPartObj
+  AliPhotonHeaderObj                    *fHeader;                //!
+  AliOADBContainer                      *fOADBContainer;         //!OADB container used to load misalignment matrices
+  TClonesArray                          *fCaloClusters;          //!pointer to EMCal clusters
+  TClonesArray                          *fCaloClustersNew;       //!pointer to EMCal clusters v2
+  TClonesArray                          *fAODMCParticles;        //!MC particles array for AOD analysis
+  AliVCaloCells                         *fVCells;                //!pointer to EMCal cells      
+  AliEMCALGeometry                      *fGeom;                   // geometry utils
+  Float_t                                fTimeResTOF;            //TOF time resolution for track PID
+  Float_t                                fMipResponseTPC;        //TPC mip response for track pid
+  TString                                fGeoName;                // geometry name (def = EMCAL_FIRSTYEARV1)
+  TString                                fPeriod;                 // string to the LHC period
+  Bool_t                                 fIsTrain;                //variable to set train mode
+  Bool_t                                 fIsMC;                   //variable to switch mcparts branch on/off
+  Bool_t                                 fDebug;                 //variable to switch debug on/off
+  Bool_t                                 fRedoV0;                 //variable to recalculate V0s - must be off for A-A collisions
+  Bool_t                                 fIsGrid;                //variable to set grid mode
+  Double_t                               fClusThresh;            //!energy threshold for cluster be saved
+  AliAnalysisTaskEMCALClusterizeFast    *fClusterizer;           //!pointer for alternative clusterizer
+  TString                                fCaloClustersName;      //alternative clusterizer name
+
+  
+  
+ private:
+  AliESDEvent                           *fESD;      //! ESD object
+  AliAODEvent                           *fAOD;      //! AOD object
+  AliVEvent                             *fVev;      //!virtual event obj 
+  AliMCEvent                            *fMCEvent;    //! MC event object
+  AliStack                              *fStack;     //!MC particles stack object
+  TGeoHMatrix                           *fGeomMatrix[12];//! Geometry misalignment matrices for EMCal
+  
+  TList                                 *fOutputList;            //! Output list
+  TTree                                 *fTree;                  //!output tree
+  Int_t                                  fMyMcIndex; //!counter of the saved mc particlesx
+  
+  //conversion histograms
+  TH2F                                  *fNV0sBefAndAftRerun;      //!check the number of V0s before and after rerun
+  TH2F                                  *fConversionVtxXY;         //! X x Y of found conversion vertices
+  TH1F                                  *fInvMassV0;               //!invariant mass from v0->GetEffMass()
+  TH1F                                  *fInvMassV0KF;             //!invariant mass from the v0 tracks
+  TH1F                                  *fInvMassV0SS;             //!invariant mass from the tracks in the "dirty" finder
+  TH2F                                  *fDedxPAll;               //!dE/dx vs p of all selected tracks
+  
+
+   
+  AliAnalysisTaskEMCALPhoton(const AliAnalysisTaskEMCALPhoton&); // not implemented
+  AliAnalysisTaskEMCALPhoton& operator=(const AliAnalysisTaskEMCALPhoton&); // not implemented
+  
+  ClassDef(AliAnalysisTaskEMCALPhoton, 1); // example of analysis
+};
+
+#endif
+
+#ifndef AliPhotonObjs_h
+#define AliPhotonObjs_h
+
+class AliPhotonHeaderObj : public TObject
+{
+  public: AliPhotonHeaderObj() :
+  TObject(), fInputFileName(""), fTrClassMask(0), fTrCluster(0), fV0Cent(0), fV0(0), fCl1Cent(0), 
+    fCl1(0), fTrCent(0), fTr(0), fNClus(0), fNCells(0), fTrackMult(0), fNMcParts(0)  {;}
+  public:
+  TString       fInputFileName;  // used for normalization purposes in MC productions
+  ULong64_t     fTrClassMask;    //         trigger class mask
+  UChar_t       fTrCluster;      //         trigger cluster mask
+  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         fNClus;
+  Int_t         fNCells;
+  Int_t         fTrackMult;
+  Int_t         fNMcParts;
+
+  ClassDef(AliPhotonHeaderObj,5)
+};
+
+class AliPhotonConvObj : public TObject
+{
+  public: AliPhotonConvObj() : 
+        TObject(), fPt(0), fEta(0), fPhi(0), fVR(0), fVEta(0), fVPhi(0), fMass(0), fMcLabel(-1),
+               fNegPt(0), fNegEta(0), fNegPhi(0), fNegDedx(0), fNegMcLabel(-1),
+               fPosPt(0), fPosEta(0), fPosPhi(0), fPosDedx(0), fPosMcLabel(-1) {;}
+ public:
+  Double32_t    fPt;               //[0,0,16] pt
+  Double32_t    fEta;              //[0,0,16] eta
+  Double32_t    fPhi;              //[0,0,16] phi
+  Double32_t    fVR;               //[0,0,16] prod r (cylinder)
+  Double32_t    fVEta;             //[0,0,16] prod eta
+  Double32_t    fVPhi;             //[0,0,16] prod phi
+  Double32_t    fMass;             //[0,0,16] if correctly filled, should be <50 MeV
+  Short_t       fMcLabel;          //corresponding MC label
+
+  //negative daughter
+  Double32_t    fNegPt;               //[0,0,16] pt
+  Double32_t    fNegEta;              //[0,0,16] eta
+  Double32_t    fNegPhi;              //[0,0,16] phi
+  Double32_t    fNegDedx;             //[0,0,16] if correctly filled, should be <50 MeV
+  Short_t       fNegMcLabel;          //corresponding MC label
+
+  //positive daughter
+  Double32_t    fPosPt;               //[0,0,16] pt
+  Double32_t    fPosEta;              //[0,0,16] eta
+  Double32_t    fPosPhi;              //[0,0,16] phi
+  Double32_t    fPosDedx;             //[0,0,16] if correctly filled, should be <50 MeV
+  Short_t       fPosMcLabel;          //corresponding MC label
+
+  ClassDef(AliPhotonConvObj,1) // conversion class
+
+};
+class AliPhotonClusterObj : public TObject
+{
+  public: AliPhotonClusterObj() : 
+  TObject(), fE(0), fEt(0), fR(0), fEta(0), fPhi(0), fN(0),fEmax(0),fTmax(0), fIdmax(0), fEcross(0),fDisp(-1), 
+        fM20(-1), fM02(-1),fTrDEta(0), fTrDPhi(0), fTrEp(-1), fTrDedx(-1), fTrIso01(0), fTrIso02(0), fTrIso03(0), fTrIso04(0), 
+        fTrPhiBand01(0), fTrPhiBand02(0), fTrPhiBand03(0), fTrPhiBand04(0), fCellsAbsId(""),fMcLabel(-1)
+        {;}
+ public:
+  Double32_t   fE;
+  Double32_t   fEt;
+  Double32_t   fR;
+  Double32_t   fEta;
+  Double32_t   fPhi;
+  UShort_t     fN;
+  Double_t     fEmax;
+  Double_t     fTmax;
+  Short_t      fIdmax;
+  Double_t     fEcross;
+  Double32_t   fDisp;
+  Double32_t   fM20;
+  Double32_t   fM02;
+  Double32_t   fTrDEta;
+  Double32_t   fTrDPhi;
+  Double32_t   fTrEp;
+  Double32_t   fTrDedx;
+  Double32_t   fTrIso01;
+  Double32_t   fTrIso02;
+  Double32_t   fTrIso03;
+  Double32_t   fTrIso04;
+  Double32_t   fTrPhiBand01;
+  Double32_t   fTrPhiBand02;
+  Double32_t   fTrPhiBand03;
+  Double32_t   fTrPhiBand04;
+  TString      fCellsAbsId;           //cluster cells absid
+  Short_t      fMcLabel;
+  
+  
+  
+  ClassDef(AliPhotonClusterObj,6) // cluster class
+
+};
+
+class AliPhotonCellObj : public TObject
+{
+  public: AliPhotonCellObj() : 
+        TObject(), fAbsID(-1), fE(0), fEt(0), fEta(0), fPhi(0), fTime(0)
+        {;}
+ public:
+  Short_t      fAbsID;
+  Double32_t   fE;
+  Double32_t   fEt;
+  Double32_t   fEta;
+  Double32_t   fPhi;
+  Double32_t   fTime;
+  
+  
+  
+  ClassDef(AliPhotonCellObj,1) // cell class
+
+};
+
+class AliPhotonTrackObj : public TObject
+{
+  public: AliPhotonTrackObj() :
+        TObject(), fPt(0), fEta(0), fPhi(0), fDedx(0), fCharge(0), fMcLabel(-1) {;}
+  public:
+  Double32_t fPt;
+  Double32_t fEta;
+  Double32_t fPhi;
+  Double32_t fDedx;
+  Short_t    fCharge;
+  Short_t    fMcLabel;
+
+  ClassDef(AliPhotonTrackObj,3)
+};
+
+class AliPhotonMcPartObj : public TObject
+{
+  public: AliPhotonMcPartObj() :
+  TObject(), fLabel(-1), fPdg(0), fPt(0), fEta(0), fPhi(0), 
+    fVR(0), fVEta(0), fVPhi(0), fMother(-1), fFirstD(-1),
+    fLastD(-1), fStatus(-1), fIso(-1), fIso3(-1) {;}
+  public:
+  Short_t    fLabel;
+  Short_t    fPdg;
+  Double32_t fPt;
+  Double32_t fEta;
+  Double32_t fPhi;
+  Double32_t fVR;
+  Double32_t fVEta;
+  Double32_t fVPhi;
+  Short_t    fMother;
+  Short_t    fFirstD;
+  Short_t    fLastD;
+  Short_t    fStatus;
+  Double32_t fIso;
+  Double32_t fIso3; //in cone of radius 0.3
+
+  ClassDef(AliPhotonMcPartObj,3)
+};
+
+#endif