ROOT logo
//-*- Mode: C++ -*-
#ifndef ALIESDCentrality_H
#define ALIESDCentrality_H
/* This file is property of and copyright by the ALICE HLT Project        *
 * ALICE Experiment at CERN, All rights reserved.                         *
 * See cxx source for full Copyright notice                               */

//*****************************************************
//   Class AliCentralitySelectionTask
//   author: Alberica Toia
//*****************************************************

#include "TNamed.h"

/** 
 * Class to hold the centrality for ESDs 
 */
class AliESDCentrality : public TNamed
{
 public:
  /** 
   * constructor
   */
  AliESDCentrality();  
  /** 
   * Destructor
   */
  ~AliESDCentrality();  
  /** 
   * Copy constructor 
   * 
   * @param cnt Object to copy from
   */
  AliESDCentrality(const AliESDCentrality& cnt); 
  /** 
   * Assignment operator
   * 
   * @param cnt Object to assign from
   * 
   * @return Reference to this object
   */
  AliESDCentrality& operator=(const AliESDCentrality& cnt);   

  /** 
   * set centrality result
   * 
   * @param cent Centrality result
   */
  void SetCentralityV0M(Float_t cent) {fCentralityV0M = cent;} 
  /** 
   * set centrality result
   * 
   * @param cent Centrality result
   */
  void SetCentralityFMD(Float_t cent) {fCentralityFMD = cent;}
  /** 
   * set centrality result
   * 
   * @param cent Centrality result
   */
  void SetCentralityTRK(Float_t cent) {fCentralityTRK = cent;}
  /** 
   * set centrality result
   * 
   * @param cent Centrality result
   */
  void SetCentralityTKL(Float_t cent) {fCentralityTKL = cent;}
  /** 
   * set centrality result
   * 
   * @param cent Centrality result
   */
  void SetCentralityCL0(Float_t cent) {fCentralityCL0 = cent;}
  /** 
   * set centrality result
   * 
   * @param cent Centrality result
   */
  void SetCentralityV0MvsFMD(Float_t cent) {fCentralityV0MvsFMD = cent;}
  /** 
   * set centrality result
   * 
   * @param cent Centrality result
   */
  void SetCentralityTKLvsV0M(Float_t cent) {fCentralityTKLvsV0M = cent;}
  /** 
   * set centrality result
   * 
   * @param cent Centrality result
   */
  void SetCentralityZEMvsZDC(Float_t cent) {fCentralityZEMvsZDC = cent;}

  /** 
   * Get the centrality result 
   * 
   * @param method Method to use 
   * 
   * @return Centrality 
   */
  Float_t GetCentralityPercentile(const char *method);
  /** 
   * Get the centrality class for 10% bins 
   * 
   * @param method Method
   * 
   * @return Bin number
   */
  Int_t   GetCentralityClass10(const char *method);
  /** 
   * Get the centrality class for 5% bins 
   * 
   * @param method Method
   * 
   * @return Bin number
   */
  Int_t   GetCentralityClass5(const char *method);
  /** 
   * Check if event is in a given centrality class
   * 
   * @param a       Lower bound
   * @param b       Upper bound
   * @param method  Method
   * 
   * @return true if so. 
   */
  Bool_t  IsEventInCentralityClass(Float_t a, Float_t b, const char *method);

 private:
  Float_t fCentralityV0M;   // Centrality from V0
  Float_t fCentralityFMD;   // Centrality from FMD
  Float_t fCentralityTRK;   // Centrality from tracks
  Float_t fCentralityTKL;   // Centrality from tracklets
  Float_t fCentralityCL0;   // Centrality from Clusters in layer 0
  Float_t fCentralityV0MvsFMD;   // Centrality from V0 vs FMD
  Float_t fCentralityTKLvsV0M;   // Centrality from tracklets vs V0
  Float_t fCentralityZEMvsZDC;   // Centrality from ZEM vs ZDC

  ClassDef(AliESDCentrality, 2)
};

inline
AliESDCentrality::AliESDCentrality() : TNamed("ESDCentrality", "Centrality"),
  fCentralityV0M(0),
  fCentralityFMD(0),
  fCentralityTRK(0),
  fCentralityTKL(0),
  fCentralityCL0(0),
  fCentralityV0MvsFMD(0),
  fCentralityTKLvsV0M(0),
  fCentralityZEMvsZDC(0)
{
  /// constructor
}

inline
AliESDCentrality::AliESDCentrality(const AliESDCentrality& cnt) : 
  TNamed(cnt), 
  fCentralityV0M(cnt.fCentralityV0M),
  fCentralityFMD(cnt.fCentralityFMD),
  fCentralityTRK(cnt.fCentralityTRK),
  fCentralityTKL(cnt.fCentralityTKL),
  fCentralityCL0(cnt.fCentralityCL0),
  fCentralityV0MvsFMD(cnt.fCentralityV0MvsFMD),
  fCentralityTKLvsV0M(cnt.fCentralityTKLvsV0M),
  fCentralityZEMvsZDC(cnt.fCentralityZEMvsZDC)
{
  /// Copy constructor
}

inline
AliESDCentrality& AliESDCentrality::operator=(const AliESDCentrality& c)
{
  /// Assignment operator
  if (this!=&c) {
    TNamed::operator=(c);
    fCentralityV0M = c.fCentralityV0M;
    fCentralityFMD = c.fCentralityFMD;
    fCentralityTRK = c.fCentralityTRK;
    fCentralityTKL = c.fCentralityTKL;
    fCentralityCL0 = c.fCentralityCL0;
    fCentralityV0MvsFMD = c.fCentralityV0MvsFMD;
    fCentralityTKLvsV0M = c.fCentralityTKLvsV0M;
    fCentralityZEMvsZDC = c.fCentralityZEMvsZDC;
  }

  return *this;
}

inline
AliESDCentrality::~AliESDCentrality()
{
  /// destructor
}

inline
Float_t AliESDCentrality::GetCentralityPercentile(const char *x)
{
  TString method = x;
  if(method.CompareTo("V0M")==0)      return fCentralityV0M;
  if(method.CompareTo("FMD")==0)      return fCentralityFMD;
  if(method.CompareTo("TRK")==0)      return fCentralityTRK;
  if(method.CompareTo("TKL")==0)      return fCentralityTKL;
  if(method.CompareTo("CL0")==0)      return fCentralityCL0;
  if(method.CompareTo("V0MvsFMD")==0) return fCentralityV0MvsFMD;
  if(method.CompareTo("TKLvsV0M")==0) return fCentralityTKLvsV0M;
  if(method.CompareTo("ZENvsZDC")==0) return fCentralityZEMvsZDC;
  return -1;
}

inline
Int_t AliESDCentrality::GetCentralityClass10(const char *x)
{
  TString method = x;
  if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 10.0);
  if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 10.0);
  if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 10.0);
  if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 10.0);
  if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 10.0);
  if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 10.0);
  if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 10.0);
  if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 10.0);
  return -1;
}

Int_t AliESDCentrality::GetCentralityClass5(const char *x)
{
 TString method = x;
  if(method.CompareTo("V0M")==0)      return (Int_t) (fCentralityV0M / 5.0);
  if(method.CompareTo("FMD")==0)      return (Int_t) (fCentralityFMD / 5.0);
  if(method.CompareTo("TRK")==0)      return (Int_t) (fCentralityTRK / 5.0);
  if(method.CompareTo("TKL")==0)      return (Int_t) (fCentralityTKL / 5.0);
  if(method.CompareTo("CL0")==0)      return (Int_t) (fCentralityCL0 / 5.0);
  if(method.CompareTo("V0MvsFMD")==0) return (Int_t) (fCentralityV0MvsFMD / 5.0);
  if(method.CompareTo("TKLvsV0M")==0) return (Int_t) (fCentralityTKLvsV0M / 5.0);
  if(method.CompareTo("ZENvsZDC")==0) return (Int_t) (fCentralityZEMvsZDC / 5.0);
  return -1;
}

inline
Bool_t AliESDCentrality::IsEventInCentralityClass(Float_t a, Float_t b, const char *x)
{
  TString method = x;
  if ((method.CompareTo("V0M")==0) && (fCentralityV0M >=a && fCentralityV0M < b)) return kTRUE;
  if ((method.CompareTo("FMD")==0) && (fCentralityFMD >=a && fCentralityFMD < b)) return kTRUE;
  if ((method.CompareTo("TRK")==0) && (fCentralityTRK >=a && fCentralityTRK < b)) return kTRUE;
  if ((method.CompareTo("TKL")==0) && (fCentralityTKL >=a && fCentralityTKL < b)) return kTRUE;
  if ((method.CompareTo("CL0")==0) && (fCentralityCL0 >=a && fCentralityCL0 < b)) return kTRUE;
  if ((method.CompareTo("V0MvsFMD")==0) && (fCentralityV0MvsFMD >=a && fCentralityV0MvsFMD < b)) return kTRUE;
  if ((method.CompareTo("TKLvsV0M")==0) && (fCentralityTKLvsV0M >=a && fCentralityTKLvsV0M < b)) return kTRUE;
  if ((method.CompareTo("ZEMvsZDC")==0) && (fCentralityZEMvsZDC >=a && fCentralityZEMvsZDC < b)) return kTRUE;
  else return kFALSE;
}




#endif //ALIESDCENTRALITY_H
 AliESDCentrality.C:1
 AliESDCentrality.C:2
 AliESDCentrality.C:3
 AliESDCentrality.C:4
 AliESDCentrality.C:5
 AliESDCentrality.C:6
 AliESDCentrality.C:7
 AliESDCentrality.C:8
 AliESDCentrality.C:9
 AliESDCentrality.C:10
 AliESDCentrality.C:11
 AliESDCentrality.C:12
 AliESDCentrality.C:13
 AliESDCentrality.C:14
 AliESDCentrality.C:15
 AliESDCentrality.C:16
 AliESDCentrality.C:17
 AliESDCentrality.C:18
 AliESDCentrality.C:19
 AliESDCentrality.C:20
 AliESDCentrality.C:21
 AliESDCentrality.C:22
 AliESDCentrality.C:23
 AliESDCentrality.C:24
 AliESDCentrality.C:25
 AliESDCentrality.C:26
 AliESDCentrality.C:27
 AliESDCentrality.C:28
 AliESDCentrality.C:29
 AliESDCentrality.C:30
 AliESDCentrality.C:31
 AliESDCentrality.C:32
 AliESDCentrality.C:33
 AliESDCentrality.C:34
 AliESDCentrality.C:35
 AliESDCentrality.C:36
 AliESDCentrality.C:37
 AliESDCentrality.C:38
 AliESDCentrality.C:39
 AliESDCentrality.C:40
 AliESDCentrality.C:41
 AliESDCentrality.C:42
 AliESDCentrality.C:43
 AliESDCentrality.C:44
 AliESDCentrality.C:45
 AliESDCentrality.C:46
 AliESDCentrality.C:47
 AliESDCentrality.C:48
 AliESDCentrality.C:49
 AliESDCentrality.C:50
 AliESDCentrality.C:51
 AliESDCentrality.C:52
 AliESDCentrality.C:53
 AliESDCentrality.C:54
 AliESDCentrality.C:55
 AliESDCentrality.C:56
 AliESDCentrality.C:57
 AliESDCentrality.C:58
 AliESDCentrality.C:59
 AliESDCentrality.C:60
 AliESDCentrality.C:61
 AliESDCentrality.C:62
 AliESDCentrality.C:63
 AliESDCentrality.C:64
 AliESDCentrality.C:65
 AliESDCentrality.C:66
 AliESDCentrality.C:67
 AliESDCentrality.C:68
 AliESDCentrality.C:69
 AliESDCentrality.C:70
 AliESDCentrality.C:71
 AliESDCentrality.C:72
 AliESDCentrality.C:73
 AliESDCentrality.C:74
 AliESDCentrality.C:75
 AliESDCentrality.C:76
 AliESDCentrality.C:77
 AliESDCentrality.C:78
 AliESDCentrality.C:79
 AliESDCentrality.C:80
 AliESDCentrality.C:81
 AliESDCentrality.C:82
 AliESDCentrality.C:83
 AliESDCentrality.C:84
 AliESDCentrality.C:85
 AliESDCentrality.C:86
 AliESDCentrality.C:87
 AliESDCentrality.C:88
 AliESDCentrality.C:89
 AliESDCentrality.C:90
 AliESDCentrality.C:91
 AliESDCentrality.C:92
 AliESDCentrality.C:93
 AliESDCentrality.C:94
 AliESDCentrality.C:95
 AliESDCentrality.C:96
 AliESDCentrality.C:97
 AliESDCentrality.C:98
 AliESDCentrality.C:99
 AliESDCentrality.C:100
 AliESDCentrality.C:101
 AliESDCentrality.C:102
 AliESDCentrality.C:103
 AliESDCentrality.C:104
 AliESDCentrality.C:105
 AliESDCentrality.C:106
 AliESDCentrality.C:107
 AliESDCentrality.C:108
 AliESDCentrality.C:109
 AliESDCentrality.C:110
 AliESDCentrality.C:111
 AliESDCentrality.C:112
 AliESDCentrality.C:113
 AliESDCentrality.C:114
 AliESDCentrality.C:115
 AliESDCentrality.C:116
 AliESDCentrality.C:117
 AliESDCentrality.C:118
 AliESDCentrality.C:119
 AliESDCentrality.C:120
 AliESDCentrality.C:121
 AliESDCentrality.C:122
 AliESDCentrality.C:123
 AliESDCentrality.C:124
 AliESDCentrality.C:125
 AliESDCentrality.C:126
 AliESDCentrality.C:127
 AliESDCentrality.C:128
 AliESDCentrality.C:129
 AliESDCentrality.C:130
 AliESDCentrality.C:131
 AliESDCentrality.C:132
 AliESDCentrality.C:133
 AliESDCentrality.C:134
 AliESDCentrality.C:135
 AliESDCentrality.C:136
 AliESDCentrality.C:137
 AliESDCentrality.C:138
 AliESDCentrality.C:139
 AliESDCentrality.C:140
 AliESDCentrality.C:141
 AliESDCentrality.C:142
 AliESDCentrality.C:143
 AliESDCentrality.C:144
 AliESDCentrality.C:145
 AliESDCentrality.C:146
 AliESDCentrality.C:147
 AliESDCentrality.C:148
 AliESDCentrality.C:149
 AliESDCentrality.C:150
 AliESDCentrality.C:151
 AliESDCentrality.C:152
 AliESDCentrality.C:153
 AliESDCentrality.C:154
 AliESDCentrality.C:155
 AliESDCentrality.C:156
 AliESDCentrality.C:157
 AliESDCentrality.C:158
 AliESDCentrality.C:159
 AliESDCentrality.C:160
 AliESDCentrality.C:161
 AliESDCentrality.C:162
 AliESDCentrality.C:163
 AliESDCentrality.C:164
 AliESDCentrality.C:165
 AliESDCentrality.C:166
 AliESDCentrality.C:167
 AliESDCentrality.C:168
 AliESDCentrality.C:169
 AliESDCentrality.C:170
 AliESDCentrality.C:171
 AliESDCentrality.C:172
 AliESDCentrality.C:173
 AliESDCentrality.C:174
 AliESDCentrality.C:175
 AliESDCentrality.C:176
 AliESDCentrality.C:177
 AliESDCentrality.C:178
 AliESDCentrality.C:179
 AliESDCentrality.C:180
 AliESDCentrality.C:181
 AliESDCentrality.C:182
 AliESDCentrality.C:183
 AliESDCentrality.C:184
 AliESDCentrality.C:185
 AliESDCentrality.C:186
 AliESDCentrality.C:187
 AliESDCentrality.C:188
 AliESDCentrality.C:189
 AliESDCentrality.C:190
 AliESDCentrality.C:191
 AliESDCentrality.C:192
 AliESDCentrality.C:193
 AliESDCentrality.C:194
 AliESDCentrality.C:195
 AliESDCentrality.C:196
 AliESDCentrality.C:197
 AliESDCentrality.C:198
 AliESDCentrality.C:199
 AliESDCentrality.C:200
 AliESDCentrality.C:201
 AliESDCentrality.C:202
 AliESDCentrality.C:203
 AliESDCentrality.C:204
 AliESDCentrality.C:205
 AliESDCentrality.C:206
 AliESDCentrality.C:207
 AliESDCentrality.C:208
 AliESDCentrality.C:209
 AliESDCentrality.C:210
 AliESDCentrality.C:211
 AliESDCentrality.C:212
 AliESDCentrality.C:213
 AliESDCentrality.C:214
 AliESDCentrality.C:215
 AliESDCentrality.C:216
 AliESDCentrality.C:217
 AliESDCentrality.C:218
 AliESDCentrality.C:219
 AliESDCentrality.C:220
 AliESDCentrality.C:221
 AliESDCentrality.C:222
 AliESDCentrality.C:223
 AliESDCentrality.C:224
 AliESDCentrality.C:225
 AliESDCentrality.C:226
 AliESDCentrality.C:227
 AliESDCentrality.C:228
 AliESDCentrality.C:229
 AliESDCentrality.C:230
 AliESDCentrality.C:231
 AliESDCentrality.C:232
 AliESDCentrality.C:233
 AliESDCentrality.C:234
 AliESDCentrality.C:235
 AliESDCentrality.C:236
 AliESDCentrality.C:237
 AliESDCentrality.C:238
 AliESDCentrality.C:239
 AliESDCentrality.C:240
 AliESDCentrality.C:241
 AliESDCentrality.C:242
 AliESDCentrality.C:243
 AliESDCentrality.C:244
 AliESDCentrality.C:245
 AliESDCentrality.C:246
 AliESDCentrality.C:247
 AliESDCentrality.C:248
 AliESDCentrality.C:249
 AliESDCentrality.C:250
 AliESDCentrality.C:251
 AliESDCentrality.C:252
 AliESDCentrality.C:253
 AliESDCentrality.C:254
 AliESDCentrality.C:255
 AliESDCentrality.C:256
 AliESDCentrality.C:257
 AliESDCentrality.C:258