ROOT logo
#ifndef ALIANAPHOTONINCALO_H
#define ALIANAPHOTONINCALO_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice     */

//_________________________________________________________________________
//
// Conversions pairs analysis
// Check if cluster comes from a conversion in the material in front of the calorimeter
// Do invariant mass of all pairs, if mass is close to 0, then it is conversion.
// Input are selected clusters with AliAnaPhoton
//
//-- Author: Gustavo Conesa (LPSC-IN2P3-CNRS)

// --- ROOT system ---
class TH2F;
class TH1F;
class TString ;
class TObjString;
class TList ;

// --- ANALYSIS system ---
#include "AliAnaCaloTrackCorrBaseClass.h"

class AliAnaPhotonConvInCalo : public AliAnaCaloTrackCorrBaseClass {

 public: 
  AliAnaPhotonConvInCalo() ;              // default ctor
  virtual ~AliAnaPhotonConvInCalo() { ; } // virtual dtor
	
  //---------------------------------------
  // General analysis frame methods
  //---------------------------------------
  
  TObjString * GetAnalysisCuts();
  
  TList      * GetCreateOutputObjects();
  
  void         InitParameters();

  void         MakeAnalysisFillAOD()  ;

  void         MakeAnalysisFillHistograms() ; 
  
  void         Print(const Option_t * opt)const ;
    
  //---------------------------------------
  // Analysis parameters setters getters
  //---------------------------------------
    
  Float_t      GetMassCut()                     const { return fMassCut            ; }
  void         SetMassCut(Float_t m)                  { fMassCut    = m            ; }
	
  Bool_t       AreConvertedPairsInAOD()         const { return fAddConvertedPairsToAOD   ; }
  void         SwitchOnAdditionConvertedPairsToAOD()  { fAddConvertedPairsToAOD = kTRUE  ; }
  void         SwitchOffAdditionConvertedPairsToAOD() { fAddConvertedPairsToAOD = kFALSE ; }  
	
  Bool_t       AreConvertedPairsRemoved()       const { return fRemoveConvertedPair      ; }
  void         SwitchOnConvertedPairsRemoval()        { fRemoveConvertedPair  = kTRUE    ; }
  void         SwitchOffConvertedPairsRemoval()       { fRemoveConvertedPair  = kFALSE   ; }    
  
  void         SetConvAsymCut(Float_t c)              { fConvAsymCut = c           ; }
  Float_t      GetConvAsymCut()                 const { return fConvAsymCut        ; }
  
  void         SetConvDEtaCut(Float_t c)              { fConvDEtaCut = c           ; }
  Float_t      GetConvDEtaCut()                 const { return fConvDEtaCut        ; }
  
  void         SetConvDPhiCut(Float_t min, Float_t max)  { fConvDPhiMinCut = min   ;  
                                                           fConvDPhiMaxCut = max   ; }
  Float_t      GetConvDPhiMinCut()              const { return fConvDPhiMinCut     ; }
  Float_t      GetConvDPhiMaxCut()              const { return fConvDPhiMaxCut     ; }
  
  private:
 
  Bool_t   fRemoveConvertedPair;          // Remove conversion pairs
  Bool_t   fAddConvertedPairsToAOD;       // Put Converted pairs in AOD
  Float_t  fMassCut;                      // Mass cut for the conversion pairs selection  
  Float_t  fConvAsymCut;                  // Select conversion pairs when asymmetry is smaller than cut
  Float_t  fConvDEtaCut;                  // Select conversion pairs when deta of pair smaller than cut
  Float_t  fConvDPhiMinCut;               // Select conversion pairs when dphi of pair lager than cut
  Float_t  fConvDPhiMaxCut;               // Select conversion pairs when dphi of pair smaller than cut

  TLorentzVector fMomentum ;              //! Cluster momentum
  TVector3       fProdVertex;             //! Production vertex
  
  // Histograms
  TH1F * fhPtPhotonConv   ;               //! Number of identified photon vs transerse momentum 
  TH2F * fhEtaPhiPhotonConv  ;            //! Pseudorapidity vs Phi of identified  photon for transerse momentum > 0.5, for converted
  TH2F * fhEtaPhi05PhotonConv  ;          //! Pseudorapidity vs Phi of identified  photon for transerse momentum < 0.5, for converted
  TH2F * fhConvDeltaEta;                  //! Small mass photons, correlation in eta
  TH2F * fhConvDeltaPhi;                  //! Small mass photons, correlation in phi
  TH2F * fhConvDeltaEtaPhi;               //! Small mass photons, correlation in phi and eta
  TH2F * fhConvAsym;                      //! Small mass photons, correlation in energy asymmetry
  TH2F * fhConvPt;                        //! Small mass photons, pT of pair
  
  //Vertex distance
  TH2F * fhConvDistEta;                   //! Approx distance to vertex vs cluster Eta 
  TH2F * fhConvDistEn;                    //! Approx distance to vertex vs Energy
  TH2F * fhConvDistMass;                  //! Approx distance to vertex vs Mass
  TH2F * fhConvDistEtaCutEta;             //! Approx distance to vertex vs cluster Eta, dEta < 0.05 
  TH2F * fhConvDistEnCutEta;              //! Approx distance to vertex vs Energy, dEta < 0.05
  TH2F * fhConvDistMassCutEta;            //! Approx distance to vertex vs Mass, dEta < 0.05
  TH2F * fhConvDistEtaCutMass;            //! Approx distance to vertex vs cluster Eta, dEta < 0.05, m < 10 MeV 
  TH2F * fhConvDistEnCutMass;             //! Approx distance to vertex vs Energy, dEta < 0.05, m < 10 MeV
  TH2F * fhConvDistEtaCutAsy;             //! Approx distance to vertex vs cluster Eta, dEta < 0.05, m < 10 MeV, A < 0.1
  TH2F * fhConvDistEnCutAsy;              //! Approx distance to vertex vs energy, dEta < 0.05, m < 10 MeV, A < 0.1

  //Conversion pairs analysis histograms
  TH1F * fhPtConversionTagged;            //! Number of identified gamma from Conversion , tagged as conversion 
  TH1F * fhPtAntiNeutronTagged;           //! Number of identified gamma from AntiNeutrons gamma, tagged as conversion 
  TH1F * fhPtAntiProtonTagged;            //! Number of identified gamma from AntiProtons gamma, tagged as conversion 
  TH1F * fhPtUnknownTagged;               //! Number of identified gamma from unknown, tagged as conversion 
  
  TH2F * fhConvDeltaEtaMCConversion;      //! Small mass cluster pairs, correlation in eta, origin of both clusters is conversion
  TH2F * fhConvDeltaPhiMCConversion;      //! Small mass cluster pairs, correlation in phi, origin of both clusters is conversion
  TH2F * fhConvDeltaEtaPhiMCConversion;   //! Small mass cluster pairs, correlation in eta-phi, origin of both clusters is conversion
  TH2F * fhConvAsymMCConversion;          //! Small mass cluster pairs, correlation in energy asymmetry, origin of both clusters is conversion
  TH2F * fhConvPtMCConversion;            //! Small mass cluster pairs, pt of pair, origin of both clusters is conversion
  TH2F * fhConvDispersionMCConversion;    //! Small mass cluster pairs, dispersion of cluster 1 vs cluster 2
  TH2F * fhConvM02MCConversion;           //! Small mass cluster pairs, m02 of cluster 1 vs cluster 2 

  TH2F * fhConvDeltaEtaMCAntiNeutron;     //! Small mass cluster pairs, correlation in eta, origin of both clusters is anti neutron
  TH2F * fhConvDeltaPhiMCAntiNeutron;     //! Small mass cluster pairs, correlation in phi, origin of both clusters is anti neutron
  TH2F * fhConvDeltaEtaPhiMCAntiNeutron;  //! Small mass cluster pairs, correlation in eta-phi, origin of both clusters is anti neutron
  TH2F * fhConvAsymMCAntiNeutron;         //! Small mass cluster pairs, correlation in energy asymmetry, origin of both clusters is anti neutron
  TH2F * fhConvPtMCAntiNeutron;           //! Small mass cluster pairs, pt of pair, origin of both clusters is anti neutron
  TH2F * fhConvDispersionMCAntiNeutron;   //! Small mass cluster pairs, dispersion of cluster 1 vs cluster 2, origin of both clusters is anti neutron
  TH2F * fhConvM02MCAntiNeutron;          //! Small mass cluster pairs, m02 of cluster 1 vs cluster 2, origin of both clusters is anti neutron

  TH2F * fhConvDeltaEtaMCAntiProton;      //! Small mass cluster pairs, correlation in eta, origin of both clusters is anti proton
  TH2F * fhConvDeltaPhiMCAntiProton;      //! Small mass cluster pairs, correlation in phi, origin of both clusters is anti proton
  TH2F * fhConvDeltaEtaPhiMCAntiProton;   //! Small mass cluster pairs, correlation in eta-phi, origin of both clusters is anti proton
  TH2F * fhConvAsymMCAntiProton;          //! Small mass cluster pairs, correlation in energy asymmetry, origin of both clusters is anti proton
  TH2F * fhConvPtMCAntiProton;            //! Small mass cluster pairs, pt of pairs, origin of both clusters is anti proton
  TH2F * fhConvDispersionMCAntiProton;    //! Small mass cluster pairs, dispersion of cluster 1 vs cluster 2, origin of both clusters is anti proton
  TH2F * fhConvM02MCAntiProton;           //! Small mass cluster pairs, m02 of cluster 1 vs cluster 2, origin of both clusters is anti proton

  TH2F * fhConvDeltaEtaMCString;          //! Small mass cluster pairs, correlation in eta, origin of both clusters is string
  TH2F * fhConvDeltaPhiMCString;          //! Small mass cluster pairs, correlation in phi, origin of both clusters is string
  TH2F * fhConvDeltaEtaPhiMCString;       //! Small mass cluster pairs, correlation in eta-phi, origin of both clusters is string
  TH2F * fhConvAsymMCString;              //! Small mass cluster pairs, correlation in energy asymmetry, origin of both clusters is string
  TH2F * fhConvPtMCString;                //! Small mass cluster pairs, pt of pairs, origin of both clusters is string
  TH2F * fhConvDispersionMCString;        //! Small mass cluster pairs, dispersion of cluster 1 vs cluster 2, origin of both clusters is string
  TH2F * fhConvM02MCString;               //! Small mass cluster pairs, m02 of cluster 1 vs cluster 2, origin of both clusters is string
  TH2F * fhConvDistMCConversion;          //! Calculated conversion distance vs real distance to vertex       
  TH2F * fhConvDistMCConversionCuts;      //! Calculated conversion distance vs real distance to vertex        

  AliAnaPhotonConvInCalo(              const AliAnaPhotonConvInCalo & g) ; // cpy ctor
  AliAnaPhotonConvInCalo & operator = (const AliAnaPhotonConvInCalo & g) ; // cpy assignment
  
  ClassDef(AliAnaPhotonConvInCalo,1)

} ;
 
#endif//ALIANAPHOTONINCALO_H



 AliAnaPhotonConvInCalo.h:1
 AliAnaPhotonConvInCalo.h:2
 AliAnaPhotonConvInCalo.h:3
 AliAnaPhotonConvInCalo.h:4
 AliAnaPhotonConvInCalo.h:5
 AliAnaPhotonConvInCalo.h:6
 AliAnaPhotonConvInCalo.h:7
 AliAnaPhotonConvInCalo.h:8
 AliAnaPhotonConvInCalo.h:9
 AliAnaPhotonConvInCalo.h:10
 AliAnaPhotonConvInCalo.h:11
 AliAnaPhotonConvInCalo.h:12
 AliAnaPhotonConvInCalo.h:13
 AliAnaPhotonConvInCalo.h:14
 AliAnaPhotonConvInCalo.h:15
 AliAnaPhotonConvInCalo.h:16
 AliAnaPhotonConvInCalo.h:17
 AliAnaPhotonConvInCalo.h:18
 AliAnaPhotonConvInCalo.h:19
 AliAnaPhotonConvInCalo.h:20
 AliAnaPhotonConvInCalo.h:21
 AliAnaPhotonConvInCalo.h:22
 AliAnaPhotonConvInCalo.h:23
 AliAnaPhotonConvInCalo.h:24
 AliAnaPhotonConvInCalo.h:25
 AliAnaPhotonConvInCalo.h:26
 AliAnaPhotonConvInCalo.h:27
 AliAnaPhotonConvInCalo.h:28
 AliAnaPhotonConvInCalo.h:29
 AliAnaPhotonConvInCalo.h:30
 AliAnaPhotonConvInCalo.h:31
 AliAnaPhotonConvInCalo.h:32
 AliAnaPhotonConvInCalo.h:33
 AliAnaPhotonConvInCalo.h:34
 AliAnaPhotonConvInCalo.h:35
 AliAnaPhotonConvInCalo.h:36
 AliAnaPhotonConvInCalo.h:37
 AliAnaPhotonConvInCalo.h:38
 AliAnaPhotonConvInCalo.h:39
 AliAnaPhotonConvInCalo.h:40
 AliAnaPhotonConvInCalo.h:41
 AliAnaPhotonConvInCalo.h:42
 AliAnaPhotonConvInCalo.h:43
 AliAnaPhotonConvInCalo.h:44
 AliAnaPhotonConvInCalo.h:45
 AliAnaPhotonConvInCalo.h:46
 AliAnaPhotonConvInCalo.h:47
 AliAnaPhotonConvInCalo.h:48
 AliAnaPhotonConvInCalo.h:49
 AliAnaPhotonConvInCalo.h:50
 AliAnaPhotonConvInCalo.h:51
 AliAnaPhotonConvInCalo.h:52
 AliAnaPhotonConvInCalo.h:53
 AliAnaPhotonConvInCalo.h:54
 AliAnaPhotonConvInCalo.h:55
 AliAnaPhotonConvInCalo.h:56
 AliAnaPhotonConvInCalo.h:57
 AliAnaPhotonConvInCalo.h:58
 AliAnaPhotonConvInCalo.h:59
 AliAnaPhotonConvInCalo.h:60
 AliAnaPhotonConvInCalo.h:61
 AliAnaPhotonConvInCalo.h:62
 AliAnaPhotonConvInCalo.h:63
 AliAnaPhotonConvInCalo.h:64
 AliAnaPhotonConvInCalo.h:65
 AliAnaPhotonConvInCalo.h:66
 AliAnaPhotonConvInCalo.h:67
 AliAnaPhotonConvInCalo.h:68
 AliAnaPhotonConvInCalo.h:69
 AliAnaPhotonConvInCalo.h:70
 AliAnaPhotonConvInCalo.h:71
 AliAnaPhotonConvInCalo.h:72
 AliAnaPhotonConvInCalo.h:73
 AliAnaPhotonConvInCalo.h:74
 AliAnaPhotonConvInCalo.h:75
 AliAnaPhotonConvInCalo.h:76
 AliAnaPhotonConvInCalo.h:77
 AliAnaPhotonConvInCalo.h:78
 AliAnaPhotonConvInCalo.h:79
 AliAnaPhotonConvInCalo.h:80
 AliAnaPhotonConvInCalo.h:81
 AliAnaPhotonConvInCalo.h:82
 AliAnaPhotonConvInCalo.h:83
 AliAnaPhotonConvInCalo.h:84
 AliAnaPhotonConvInCalo.h:85
 AliAnaPhotonConvInCalo.h:86
 AliAnaPhotonConvInCalo.h:87
 AliAnaPhotonConvInCalo.h:88
 AliAnaPhotonConvInCalo.h:89
 AliAnaPhotonConvInCalo.h:90
 AliAnaPhotonConvInCalo.h:91
 AliAnaPhotonConvInCalo.h:92
 AliAnaPhotonConvInCalo.h:93
 AliAnaPhotonConvInCalo.h:94
 AliAnaPhotonConvInCalo.h:95
 AliAnaPhotonConvInCalo.h:96
 AliAnaPhotonConvInCalo.h:97
 AliAnaPhotonConvInCalo.h:98
 AliAnaPhotonConvInCalo.h:99
 AliAnaPhotonConvInCalo.h:100
 AliAnaPhotonConvInCalo.h:101
 AliAnaPhotonConvInCalo.h:102
 AliAnaPhotonConvInCalo.h:103
 AliAnaPhotonConvInCalo.h:104
 AliAnaPhotonConvInCalo.h:105
 AliAnaPhotonConvInCalo.h:106
 AliAnaPhotonConvInCalo.h:107
 AliAnaPhotonConvInCalo.h:108
 AliAnaPhotonConvInCalo.h:109
 AliAnaPhotonConvInCalo.h:110
 AliAnaPhotonConvInCalo.h:111
 AliAnaPhotonConvInCalo.h:112
 AliAnaPhotonConvInCalo.h:113
 AliAnaPhotonConvInCalo.h:114
 AliAnaPhotonConvInCalo.h:115
 AliAnaPhotonConvInCalo.h:116
 AliAnaPhotonConvInCalo.h:117
 AliAnaPhotonConvInCalo.h:118
 AliAnaPhotonConvInCalo.h:119
 AliAnaPhotonConvInCalo.h:120
 AliAnaPhotonConvInCalo.h:121
 AliAnaPhotonConvInCalo.h:122
 AliAnaPhotonConvInCalo.h:123
 AliAnaPhotonConvInCalo.h:124
 AliAnaPhotonConvInCalo.h:125
 AliAnaPhotonConvInCalo.h:126
 AliAnaPhotonConvInCalo.h:127
 AliAnaPhotonConvInCalo.h:128
 AliAnaPhotonConvInCalo.h:129
 AliAnaPhotonConvInCalo.h:130
 AliAnaPhotonConvInCalo.h:131
 AliAnaPhotonConvInCalo.h:132
 AliAnaPhotonConvInCalo.h:133
 AliAnaPhotonConvInCalo.h:134
 AliAnaPhotonConvInCalo.h:135
 AliAnaPhotonConvInCalo.h:136
 AliAnaPhotonConvInCalo.h:137
 AliAnaPhotonConvInCalo.h:138
 AliAnaPhotonConvInCalo.h:139
 AliAnaPhotonConvInCalo.h:140
 AliAnaPhotonConvInCalo.h:141
 AliAnaPhotonConvInCalo.h:142
 AliAnaPhotonConvInCalo.h:143
 AliAnaPhotonConvInCalo.h:144
 AliAnaPhotonConvInCalo.h:145
 AliAnaPhotonConvInCalo.h:146
 AliAnaPhotonConvInCalo.h:147
 AliAnaPhotonConvInCalo.h:148
 AliAnaPhotonConvInCalo.h:149
 AliAnaPhotonConvInCalo.h:150
 AliAnaPhotonConvInCalo.h:151
 AliAnaPhotonConvInCalo.h:152
 AliAnaPhotonConvInCalo.h:153
 AliAnaPhotonConvInCalo.h:154
 AliAnaPhotonConvInCalo.h:155
 AliAnaPhotonConvInCalo.h:156
 AliAnaPhotonConvInCalo.h:157
 AliAnaPhotonConvInCalo.h:158