+ TH1F * fhClusterCuts[10]; //! control histogram on the different photon selection cuts
+ TH2F * fhNCellsE; //! number of cells in cluster vs E
+ TH2F * fhCellsE; //! energy of cells in cluster vs E of cluster
+ TH2F * fhMaxCellDiffClusterE; //! Fraction of energy carried by cell with maximum energy
+ TH2F * fhTimePt; //! time of photon cluster vs pt
+
+ TH2F * fhEtaPhi ; //! Pseudorapidity vs Phi of clusters for E > 0.5
+ TH2F * fhEtaPhiEMCALBC0 ; //! Pseudorapidity vs Phi of clusters for E > 0.5
+ TH2F * fhEtaPhiEMCALBC1 ; //! Pseudorapidity vs Phi of clusters for E > 0.5
+ TH2F * fhEtaPhiEMCALBCN ; //! Pseudorapidity vs Phi of clusters for E > 0.5
+
+ TH2F * fhEtaPhiTriggerEMCALBC[11] ; //! Pseudorapidity vs Phi of clusters for E > 2
+ TH2F * fhTimeTriggerEMCALBC [11] ; //! Time distribution of clusters, when trigger is in a given BC
+ TH2F * fhTimeTriggerEMCALBCPileUpSPD[11]; //! Time distribution of clusters, when trigger is in a given BC, tagged as pile-up SPD
+
+ TH2F * fhEtaPhiTriggerEMCALBCUM[11] ; //! Pseudorapidity vs Phi of clusters for E > 2, not matched to trigger
+ TH2F * fhTimeTriggerEMCALBCUM [11] ; //! Time distribution of clusters, when trigger is in a given BC, not matched to trigger
+
+ TH2F * fhEtaPhiTriggerEMCALBCCluster [11] ; //! Pseudorapidity vs Phi of trigger clusters
+ TH2F * fhTimeTriggerEMCALBCCluster ; //! Time distribution of clusters, when trigger cluster is in a given BC
+ TH2F * fhEtaPhiTriggerEMCALBCUMCluster[11] ; //! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger
+ TH2F * fhTimeTriggerEMCALBCUMCluster ; //! Time distribution of highest energy cluster in event, when trigger is in a given BC, not
+
+ TH2F * fhEtaPhiTriggerEMCALBCClusterOverTh ; //! Pseudorapidity vs Phi of trigger clusters, over nominal threshold
+ TH2F * fhEtaPhiTriggerEMCALBCUMClusterOverTh ; //! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, over nominal threshold
+ TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh1 ; //! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
+ TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh1 ; //! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, 2 GeV below nominal threshold
+ TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh2 ; //! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
+ TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh2 ; //! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, 2 GeV below nominal threshold
+
+ TH2F * fhEtaPhiTriggerEMCALBCExotic ; //! Pseudorapidity vs Phi of trigger exotic clusters
+ TH2F * fhTimeTriggerEMCALBCExotic ; //! Time distribution of clusters, when trigger exotic cluster
+ TH2F * fhEtaPhiTriggerEMCALBCUMExotic ; //! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger
+ TH2F * fhTimeTriggerEMCALBCUMExotic ; //! Time distribution of highest energy exotic cluster in event, not matched to trigger
+
+ TH2F * fhEtaPhiTriggerEMCALBCBad ; //! Pseudorapidity vs Phi of trigger exotic clusters
+ TH2F * fhTimeTriggerEMCALBCBad ; //! Time distribution of clusters, when trigger exotic
+ TH2F * fhEtaPhiTriggerEMCALBCUMBad ; //! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger
+ TH2F * fhTimeTriggerEMCALBCUMBad ; //! Time distribution of highest energy exotic cluster in event, not matched to trigger
+
+ TH2F * fhEtaPhiTriggerEMCALBCBadExotic ; //! Pseudorapidity vs Phi of trigger exotic and bad clusters
+ TH2F * fhTimeTriggerEMCALBCBadExotic ; //! Time distribution of clusters, when trigger exotic and bad cluster
+ TH2F * fhEtaPhiTriggerEMCALBCUMBadExotic ; //! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger
+ TH2F * fhTimeTriggerEMCALBCUMBadExotic ; //! Time distribution of highest energy exotic cluster in event, not matched to trigger
+
+ TH2F * fhEtaPhiTriggerEMCALBCExoticCluster ; //! Pseudorapidity vs Phi of trigger exotic clusters
+ TH2F * fhTimeTriggerEMCALBCExoticCluster ; //! Time distribution of clusters, when trigger exotic cluster
+ TH2F * fhEtaPhiTriggerEMCALBCUMExoticCluster ; //! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger
+ TH2F * fhTimeTriggerEMCALBCUMExoticCluster ; //! Time distribution of highest energy exotic cluster in event, not matched to trigger
+
+ TH2F * fhEtaPhiTriggerEMCALBCBadCluster ; //! Pseudorapidity vs Phi of trigger bad clusters
+ TH2F * fhTimeTriggerEMCALBCBadCluster ; //! Time distribution of clusters, when trigger bad cluster is in a given BC
+ TH2F * fhEtaPhiTriggerEMCALBCUMBadCluster ; //! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger
+ TH2F * fhTimeTriggerEMCALBCUMBadCluster ; //! Time distribution of highest energy bad cluster in event, when trigger is in a given BC, not
+
+ TH2F * fhEtaPhiTriggerEMCALBCBadExoticCluster ; //! Pseudorapidity vs Phi of trigger exotic and bad clusters
+ TH2F * fhTimeTriggerEMCALBCBadExoticCluster ; //! Time distribution of clusters, when trigger exotic and bad cluster
+ TH2F * fhEtaPhiTriggerEMCALBCUMBadExoticCluster; //! Pseudorapidity vs Phi of highest E exotic and bad cluster in event, not matched to trigger
+ TH2F * fhTimeTriggerEMCALBCUMBadExoticCluster ; //! Time distribution of highest energy exotic and bad cluster in event, not matched to trigger
+
+ TH2F * fhTimeTriggerEMCALBCBadMaxCell ; //! Time distribution of trigger clusters, when trigger bad max cell
+ TH2F * fhTimeTriggerEMCALBCUMBadMaxCell ; //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found
+ TH2F * fhTimeTriggerEMCALBCBadMaxCellExotic ; //! Time distribution of trigger clusters, when trigger exotic cluster with bad max cell
+ TH2F * fhTimeTriggerEMCALBCUMBadMaxCellExotic ; //! Time distribution of highest energy exotic with bad max cell cluster in event, when trigger is not found
+
+ TH2F * fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster ; //! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched open time trigger
+ TH2F * fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster ; //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched open time trigger
+ TH2F * fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster; //! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched with neigbour patchs
+ TH2F * fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster ; //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched with neigbour patchs
+ TH2F * fhEtaPhiTriggerEMCALBCUMReMatchBothCluster;//! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched open both
+ TH2F * fhTimeTriggerEMCALBCUMReMatchBothCluster ; //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched open both
+
+ TH2F * fhTimeTriggerEMCALBC0UMReMatchOpenTime ; //! Time distribution of clusters, not matched to trigger, rematched open time trigger
+ TH2F * fhTimeTriggerEMCALBC0UMReMatchCheckNeigh ; //! Time distribution of clusters, not matched to trigger, rematched with neighbour patchs
+ TH2F * fhTimeTriggerEMCALBC0UMReMatchBoth ; //! Time distribution of clusters, not matched to trigger, rematched open both
+
+ TH2F * fhEtaPhiNoTrigger ; //! Pseudorapidity vs Phi of highest E exotic cluster in event, no trigger at all
+ TH2F * fhTimeNoTrigger ; //! Time distribution of highest energy exotic cluster in event, no trigger at all
+
+ TH1F * fhEPhoton ; //! Number of identified photon vs energy
+ TH1F * fhPtPhoton ; //! Number of identified photon vs transerse momentum
+ TH2F * fhPhiPhoton ; //! Azimuthal angle of identified photon vs transerse momentum
+ TH2F * fhEtaPhoton ; //! Pseudorapidity of identified photon vs transerse momentum
+ TH2F * fhEtaPhiPhoton ; //! Pseudorapidity vs Phi of identified photon for E > 0.5
+ TH2F * fhEtaPhi05Photon ; //! Pseudorapidity vs Phi of identified photon for E < 0.5
+ TH2F * fhEtaPhiPhotonEMCALBC0 ; //! Pseudorapidity vs Phi of identified photon for E > 0.5
+ TH2F * fhEtaPhiPhotonEMCALBC1 ; //! Pseudorapidity vs Phi of identified photon for E > 0.5
+ TH2F * fhEtaPhiPhotonEMCALBCN ; //! Pseudorapidity vs Phi of identified photon for E > 0.5
+ TH2F * fhEtaPhiPhotonTriggerEMCALBC[11]; //! Pseudorapidity vs Phi of photons for E > 0.5
+ TH2F * fhTimePhotonTriggerEMCALBC [11]; //! Time distribution of photons, when trigger is in a given BC
+ TH2F * fhTimePhotonTriggerEMCALBCPileUpSPD[11] ; //! Time distribution of photons, when trigger is in a given BC, tagged as pile-up SPD
+ TH2F * fhEtaPhiPhotonTriggerEMCALBCUM[11]; //! Pseudorapidity vs Phi of photons for E > 2, not matched to trigger
+ TH2F * fhTimePhotonTriggerEMCALBCUM [11]; //! Time distribution of photons, when trigger is in a given BC, not matched to trigger
+
+ TH2F * fhTimePhotonTriggerEMCALBC0UMReMatchOpenTime ; //! Time distribution of photons in event, when trigger is not found, rematched open time trigger
+ TH2F * fhTimePhotonTriggerEMCALBC0UMReMatchCheckNeigh ; //! Time distribution of photons in event, when trigger is not found, rematched with neigbour patchs
+ TH2F * fhTimePhotonTriggerEMCALBC0UMReMatchBoth ; //! Time distribution of photons in event, when trigger is not found, rematched open both
+
+ TH2F * fhPtCentralityPhoton ; //! centrality vs photon pT
+ TH2F * fhPtEventPlanePhoton ; //! event plane vs photon pT