ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/
//
// Container for TRD Threshold parameters stored in the OADB
//
// Author: Markus Fasel <M.Fasel@gsi.de>
//
#include <TList.h>
#include <TMath.h>
#include <TSortedList.h>

#include "AliLog.h"

#include "AliTRDPIDParams.h"

ClassImp(AliTRDPIDParams)
//ClassImp(AliTRDPIDParams::AliTRDPIDThresholds)
//ClassImp(AliTRDPIDParams::AliTRDPIDCentrality)

const Double_t AliTRDPIDParams::kVerySmall = 1e-5;

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDParams():
  TNamed(),
  fEntries(NULL)
{
  //
  // Dummy constructor
  //
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDParams(const char *name) :
  TNamed(name, ""),
  fEntries(NULL)
{
  //
  // Default constructor
  //
  fEntries = new TList;
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDParams(const AliTRDPIDParams &ref):
TNamed(ref),
fEntries(NULL)
{
    //
    // Copy constructor
    //

    fEntries=(TList*)ref.fEntries->Clone();
}

//____________________________________________________________
AliTRDPIDParams::~AliTRDPIDParams(){
  //
  // Destructor
  //
  delete fEntries;
}

//____________________________________________________________
void AliTRDPIDParams::AddCentralityClass(Double_t minCentrality, Double_t maxCentrality){
  // 
  // Add new centrality class
  //
  
  // check whether centrality class already exists
  AliTRDPIDCentrality *checklow = FindCentrality(minCentrality + 0.01),
                      *checkhigh = FindCentrality(maxCentrality - 0.01);

  if(!checklow && ! checkhigh)
    fEntries->Add(new AliTRDPIDCentrality(minCentrality, maxCentrality));
}

//____________________________________________________________ 
AliTRDPIDParams::AliTRDPIDCentrality *AliTRDPIDParams::FindCentrality(Double_t val) const {
  //
  // Find centrality bin
  //
  TIter centralities(fEntries);
  AliTRDPIDCentrality *obj(NULL), *tmp(NULL);
  while((obj = dynamic_cast<AliTRDPIDCentrality *>(centralities()))){
    if(val >= obj->GetMinCentrality() && val <= obj->GetMaxCentrality()){
      tmp = obj;
      break;
    }
  }
  return tmp;
}

//____________________________________________________________
Bool_t AliTRDPIDParams::GetThresholdParameters(Int_t ntracklets, Double_t efficiency, Double_t *params, Double_t centrality) const{
  //
  // Retrieve params
  // Use IsEqual definition
  //
  AliTRDPIDCentrality *cent = FindCentrality(centrality);
  if(!cent)cent = FindCentrality(-1);// try default class
  if(!cent){
      AliDebug(1, "Centrality class not available");
      return kFALSE;
  }
  
  cent->GetThresholdParameters(ntracklets, efficiency, params);
  return kTRUE;
}

//____________________________________________________________
void AliTRDPIDParams::SetThresholdParameters(Int_t ntracklets, Double_t effMin, Double_t effMax, Double_t *params, Double_t centrality){
  //
  // Set new threshold parameters
  //
  AliTRDPIDCentrality *cent = FindCentrality(centrality);
  if(cent) cent->SetThresholdParameters(ntracklets, effMin, effMax, params);
  else AliDebug(1, "Centrality class not available");
}

//____________________________________________________________
void AliTRDPIDParams::Print(Option_t *) const {
  TIter centIter(fEntries);
  AliTRDPIDCentrality *cent;
  while((cent = dynamic_cast<AliTRDPIDCentrality *>(centIter()))) cent->Print(NULL);
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDThresholds::AliTRDPIDThresholds():
  TObject(),
  fNTracklets(0)
{
   // 
   // Default constructor
   //
   memset(fParams, 0, sizeof(Double_t) * 4);
   memset(fEfficiency, 0, sizeof(Double_t) * 2);
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDThresholds::AliTRDPIDThresholds(Int_t nTracklets, Double_t effMin, Double_t effMax, Double_t *params) :
  TObject(),
  fNTracklets(nTracklets)
{
  //
  // Default Constructor 
  //
  fEfficiency[0] = effMin;
  fEfficiency[1] = effMax;  
  if(params) memcpy(fParams, params, sizeof(Double_t) * 4);
  else memset(fParams, 0, sizeof(Double_t) * 4);
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDThresholds::AliTRDPIDThresholds(Int_t nTracklets, Double_t eff, Double_t *params) :
  TObject(),
  fNTracklets(nTracklets)
{
  //
  // Constructor used to find object in sorted list
  //
  fEfficiency[0] = fEfficiency[1] = eff;  
  if(params) memcpy(fParams, params, sizeof(Double_t) * 4);
  else memset(fParams, 0, sizeof(Double_t) * 4);
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDThresholds::AliTRDPIDThresholds(const AliTRDPIDThresholds &ref) :
  TObject(ref),
  fNTracklets(ref.fNTracklets)
{
  //
  // Copy constructor
  //
  memcpy(fParams, ref.fParams, sizeof(Double_t) * 4);
  memcpy(fEfficiency, ref.fEfficiency, sizeof(Double_t) * 2);
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDThresholds &AliTRDPIDParams::AliTRDPIDThresholds::operator=(const AliTRDPIDThresholds &ref){
  //
  // Assignment operator
  //
  if(&ref == this) return *this;

  TObject::operator=(ref);

  fNTracklets = ref.fNTracklets;
  memcpy(fEfficiency, ref.fEfficiency, sizeof(Double_t) * 2);
  memcpy(fParams, ref.fParams, sizeof(Double_t) * 4);
  return *this;
}
        
//____________________________________________________________
Int_t AliTRDPIDParams::AliTRDPIDThresholds::Compare(const TObject *ref) const{
  //
  // Compares two objects
  // Order:
  //   First compare number of tracklets, if they are equal compare electron efficiency
  //
  const AliTRDPIDThresholds *refObj = static_cast<const AliTRDPIDThresholds *>(ref);
  if(fNTracklets < refObj->GetNTracklets()) return -1;
  else if(fNTracklets > refObj->GetNTracklets()) return 1;
  else{
    if(fEfficiency[1] < refObj->GetElectronEfficiency(0)) return -1;
    else if(fEfficiency[0] > refObj->GetElectronEfficiency(1)) return 1;
    else return 0;
  }
}

//____________________________________________________________
Bool_t AliTRDPIDParams::AliTRDPIDThresholds::IsEqual(const TObject *ref) const {
  //
  // Check for equality 
  // Tracklets and Efficiency are used
  //
  const AliTRDPIDThresholds *refObj = dynamic_cast<const AliTRDPIDThresholds *>(ref);
  if(!refObj) return kFALSE;
  Bool_t eqNTracklets = fNTracklets == refObj->GetNTracklets();
  Bool_t eqEff = kFALSE;
  Bool_t hasRange = TMath::Abs(fEfficiency[1] - fEfficiency[0]) > kVerySmall;
  Bool_t hasRangeRef = TMath::Abs(refObj->GetElectronEfficiency(1) - refObj->GetElectronEfficiency(0)) > kVerySmall;
  if(hasRange && hasRangeRef){
    // Both have ranges, check if they match
    eqEff = TMath::Abs(fEfficiency[0] - refObj->GetElectronEfficiency(0)) < kVerySmall && TMath::Abs(fEfficiency[1] - refObj->GetElectronEfficiency(1)) < kVerySmall;
  } else if(hasRange){
    // this object has ranges, check if the efficiency of ref is inside the range
    eqEff = refObj->GetElectronEfficiency(0) >= fEfficiency[0] && refObj->GetElectronEfficiency(0) < fEfficiency[1];
  } else {
    // ref has ranges, check if this is in range
    eqEff = fEfficiency[0] >= refObj->GetElectronEfficiency(0) && fEfficiency[0] < refObj->GetElectronEfficiency(1);
  }
  
  return  eqNTracklets && eqEff;
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDCentrality::AliTRDPIDCentrality():
  fEntries(NULL),
  fMinCentrality(-1.),
  fMaxCentrality(-1.)
{
  //
  // Dummy constructor
  //
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDCentrality::AliTRDPIDCentrality(Double_t minCentrality, Double_t maxCentrality):
  fEntries(NULL),
  fMinCentrality(minCentrality),
  fMaxCentrality(maxCentrality)
{
  //
  // Default constructor
  //
  fEntries = new TSortedList;
  fEntries->SetOwner();
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDCentrality::AliTRDPIDCentrality(const AliTRDPIDParams::AliTRDPIDCentrality &ref):
TObject(),
fEntries(NULL),
  fMinCentrality(ref.fMinCentrality),
  fMaxCentrality(ref.fMaxCentrality)
{
  //
  // Copy constructor
  //
  fEntries = new TSortedList;
  // Coply entries to the new list
  TIter entries(ref.fEntries);
  TObject *o;
  while((o = entries())) fEntries->Add(o);
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDCentrality &AliTRDPIDParams::AliTRDPIDCentrality::operator=(const AliTRDPIDCentrality &ref){
  //
  // Assignment operator
  //
  if(&ref != this){
    if(fEntries) delete fEntries;
    fEntries = new TSortedList;
    TIter entries(ref.fEntries);
    TObject *o;
    while((o = entries())) fEntries->Add(o);
    fMinCentrality = ref.fMinCentrality;
    fMaxCentrality = ref.fMaxCentrality;
  }
  return *this;
}

//____________________________________________________________
AliTRDPIDParams::AliTRDPIDCentrality::~AliTRDPIDCentrality(){
  //
  // Destructor
  //
  if(fEntries) delete fEntries;
}

//____________________________________________________________
Bool_t AliTRDPIDParams::AliTRDPIDCentrality::GetThresholdParameters(Int_t ntracklets, Double_t efficiency, Double_t *params) const{
  // 
  // Get the threshold parameters
  //
  AliTRDPIDThresholds test(ntracklets, efficiency);
  TObject *result = fEntries->FindObject(&test);
  if(!result){ 
    AliDebug(1, Form("No threshold params found for %d tracklets and an electron efficiency of %f", ntracklets, efficiency));
    return kFALSE;
  }
  AliTRDPIDThresholds *parResult = static_cast<AliTRDPIDThresholds *>(result);
  AliDebug(1, Form("Threshold params found: NTracklets %d, Electron Efficiency %f", parResult->GetNTracklets(), parResult->GetElectronEfficiency()));
  memcpy(params, parResult->GetThresholdParams(), sizeof(Double_t) * 4);
  return kTRUE;
}

//____________________________________________________________
void AliTRDPIDParams::AliTRDPIDCentrality::SetThresholdParameters(Int_t ntracklets, Double_t effMin, Double_t effMax, Double_t *params){
  // 
  // Store new Params in the Object
  //
  if(effMin > effMax){
    AliError("Min. efficiency has to be >= max. efficiency");
    return;
  }
  AliDebug(1, Form("Save Parameters for %d tracklets at and electron efficiency of [%f|%f]", ntracklets, effMin, effMax));
  fEntries->Add(new AliTRDPIDThresholds(ntracklets, effMin, effMax, params));
}

//____________________________________________________________
void AliTRDPIDParams::AliTRDPIDCentrality::Print(Option_t *) const {
  printf("Min. Centrality: %f, Max. Centrality: %f\n", fMinCentrality, fMaxCentrality);
  printf("Available thresholds:\n");
  printf("_________________________________________\n");
  TIter objects(fEntries);
  AliTRDPIDThresholds *par;
  while((par = dynamic_cast<AliTRDPIDThresholds *>(objects()))){
    printf("Number of tracklets %d, Electron efficiency %f\n", par->GetNTracklets(), 0.5*(par->GetElectronEfficiency(0)+par->GetElectronEfficiency(1)));
  }
}

 AliTRDPIDParams.cxx:1
 AliTRDPIDParams.cxx:2
 AliTRDPIDParams.cxx:3
 AliTRDPIDParams.cxx:4
 AliTRDPIDParams.cxx:5
 AliTRDPIDParams.cxx:6
 AliTRDPIDParams.cxx:7
 AliTRDPIDParams.cxx:8
 AliTRDPIDParams.cxx:9
 AliTRDPIDParams.cxx:10
 AliTRDPIDParams.cxx:11
 AliTRDPIDParams.cxx:12
 AliTRDPIDParams.cxx:13
 AliTRDPIDParams.cxx:14
 AliTRDPIDParams.cxx:15
 AliTRDPIDParams.cxx:16
 AliTRDPIDParams.cxx:17
 AliTRDPIDParams.cxx:18
 AliTRDPIDParams.cxx:19
 AliTRDPIDParams.cxx:20
 AliTRDPIDParams.cxx:21
 AliTRDPIDParams.cxx:22
 AliTRDPIDParams.cxx:23
 AliTRDPIDParams.cxx:24
 AliTRDPIDParams.cxx:25
 AliTRDPIDParams.cxx:26
 AliTRDPIDParams.cxx:27
 AliTRDPIDParams.cxx:28
 AliTRDPIDParams.cxx:29
 AliTRDPIDParams.cxx:30
 AliTRDPIDParams.cxx:31
 AliTRDPIDParams.cxx:32
 AliTRDPIDParams.cxx:33
 AliTRDPIDParams.cxx:34
 AliTRDPIDParams.cxx:35
 AliTRDPIDParams.cxx:36
 AliTRDPIDParams.cxx:37
 AliTRDPIDParams.cxx:38
 AliTRDPIDParams.cxx:39
 AliTRDPIDParams.cxx:40
 AliTRDPIDParams.cxx:41
 AliTRDPIDParams.cxx:42
 AliTRDPIDParams.cxx:43
 AliTRDPIDParams.cxx:44
 AliTRDPIDParams.cxx:45
 AliTRDPIDParams.cxx:46
 AliTRDPIDParams.cxx:47
 AliTRDPIDParams.cxx:48
 AliTRDPIDParams.cxx:49
 AliTRDPIDParams.cxx:50
 AliTRDPIDParams.cxx:51
 AliTRDPIDParams.cxx:52
 AliTRDPIDParams.cxx:53
 AliTRDPIDParams.cxx:54
 AliTRDPIDParams.cxx:55
 AliTRDPIDParams.cxx:56
 AliTRDPIDParams.cxx:57
 AliTRDPIDParams.cxx:58
 AliTRDPIDParams.cxx:59
 AliTRDPIDParams.cxx:60
 AliTRDPIDParams.cxx:61
 AliTRDPIDParams.cxx:62
 AliTRDPIDParams.cxx:63
 AliTRDPIDParams.cxx:64
 AliTRDPIDParams.cxx:65
 AliTRDPIDParams.cxx:66
 AliTRDPIDParams.cxx:67
 AliTRDPIDParams.cxx:68
 AliTRDPIDParams.cxx:69
 AliTRDPIDParams.cxx:70
 AliTRDPIDParams.cxx:71
 AliTRDPIDParams.cxx:72
 AliTRDPIDParams.cxx:73
 AliTRDPIDParams.cxx:74
 AliTRDPIDParams.cxx:75
 AliTRDPIDParams.cxx:76
 AliTRDPIDParams.cxx:77
 AliTRDPIDParams.cxx:78
 AliTRDPIDParams.cxx:79
 AliTRDPIDParams.cxx:80
 AliTRDPIDParams.cxx:81
 AliTRDPIDParams.cxx:82
 AliTRDPIDParams.cxx:83
 AliTRDPIDParams.cxx:84
 AliTRDPIDParams.cxx:85
 AliTRDPIDParams.cxx:86
 AliTRDPIDParams.cxx:87
 AliTRDPIDParams.cxx:88
 AliTRDPIDParams.cxx:89
 AliTRDPIDParams.cxx:90
 AliTRDPIDParams.cxx:91
 AliTRDPIDParams.cxx:92
 AliTRDPIDParams.cxx:93
 AliTRDPIDParams.cxx:94
 AliTRDPIDParams.cxx:95
 AliTRDPIDParams.cxx:96
 AliTRDPIDParams.cxx:97
 AliTRDPIDParams.cxx:98
 AliTRDPIDParams.cxx:99
 AliTRDPIDParams.cxx:100
 AliTRDPIDParams.cxx:101
 AliTRDPIDParams.cxx:102
 AliTRDPIDParams.cxx:103
 AliTRDPIDParams.cxx:104
 AliTRDPIDParams.cxx:105
 AliTRDPIDParams.cxx:106
 AliTRDPIDParams.cxx:107
 AliTRDPIDParams.cxx:108
 AliTRDPIDParams.cxx:109
 AliTRDPIDParams.cxx:110
 AliTRDPIDParams.cxx:111
 AliTRDPIDParams.cxx:112
 AliTRDPIDParams.cxx:113
 AliTRDPIDParams.cxx:114
 AliTRDPIDParams.cxx:115
 AliTRDPIDParams.cxx:116
 AliTRDPIDParams.cxx:117
 AliTRDPIDParams.cxx:118
 AliTRDPIDParams.cxx:119
 AliTRDPIDParams.cxx:120
 AliTRDPIDParams.cxx:121
 AliTRDPIDParams.cxx:122
 AliTRDPIDParams.cxx:123
 AliTRDPIDParams.cxx:124
 AliTRDPIDParams.cxx:125
 AliTRDPIDParams.cxx:126
 AliTRDPIDParams.cxx:127
 AliTRDPIDParams.cxx:128
 AliTRDPIDParams.cxx:129
 AliTRDPIDParams.cxx:130
 AliTRDPIDParams.cxx:131
 AliTRDPIDParams.cxx:132
 AliTRDPIDParams.cxx:133
 AliTRDPIDParams.cxx:134
 AliTRDPIDParams.cxx:135
 AliTRDPIDParams.cxx:136
 AliTRDPIDParams.cxx:137
 AliTRDPIDParams.cxx:138
 AliTRDPIDParams.cxx:139
 AliTRDPIDParams.cxx:140
 AliTRDPIDParams.cxx:141
 AliTRDPIDParams.cxx:142
 AliTRDPIDParams.cxx:143
 AliTRDPIDParams.cxx:144
 AliTRDPIDParams.cxx:145
 AliTRDPIDParams.cxx:146
 AliTRDPIDParams.cxx:147
 AliTRDPIDParams.cxx:148
 AliTRDPIDParams.cxx:149
 AliTRDPIDParams.cxx:150
 AliTRDPIDParams.cxx:151
 AliTRDPIDParams.cxx:152
 AliTRDPIDParams.cxx:153
 AliTRDPIDParams.cxx:154
 AliTRDPIDParams.cxx:155
 AliTRDPIDParams.cxx:156
 AliTRDPIDParams.cxx:157
 AliTRDPIDParams.cxx:158
 AliTRDPIDParams.cxx:159
 AliTRDPIDParams.cxx:160
 AliTRDPIDParams.cxx:161
 AliTRDPIDParams.cxx:162
 AliTRDPIDParams.cxx:163
 AliTRDPIDParams.cxx:164
 AliTRDPIDParams.cxx:165
 AliTRDPIDParams.cxx:166
 AliTRDPIDParams.cxx:167
 AliTRDPIDParams.cxx:168
 AliTRDPIDParams.cxx:169
 AliTRDPIDParams.cxx:170
 AliTRDPIDParams.cxx:171
 AliTRDPIDParams.cxx:172
 AliTRDPIDParams.cxx:173
 AliTRDPIDParams.cxx:174
 AliTRDPIDParams.cxx:175
 AliTRDPIDParams.cxx:176
 AliTRDPIDParams.cxx:177
 AliTRDPIDParams.cxx:178
 AliTRDPIDParams.cxx:179
 AliTRDPIDParams.cxx:180
 AliTRDPIDParams.cxx:181
 AliTRDPIDParams.cxx:182
 AliTRDPIDParams.cxx:183
 AliTRDPIDParams.cxx:184
 AliTRDPIDParams.cxx:185
 AliTRDPIDParams.cxx:186
 AliTRDPIDParams.cxx:187
 AliTRDPIDParams.cxx:188
 AliTRDPIDParams.cxx:189
 AliTRDPIDParams.cxx:190
 AliTRDPIDParams.cxx:191
 AliTRDPIDParams.cxx:192
 AliTRDPIDParams.cxx:193
 AliTRDPIDParams.cxx:194
 AliTRDPIDParams.cxx:195
 AliTRDPIDParams.cxx:196
 AliTRDPIDParams.cxx:197
 AliTRDPIDParams.cxx:198
 AliTRDPIDParams.cxx:199
 AliTRDPIDParams.cxx:200
 AliTRDPIDParams.cxx:201
 AliTRDPIDParams.cxx:202
 AliTRDPIDParams.cxx:203
 AliTRDPIDParams.cxx:204
 AliTRDPIDParams.cxx:205
 AliTRDPIDParams.cxx:206
 AliTRDPIDParams.cxx:207
 AliTRDPIDParams.cxx:208
 AliTRDPIDParams.cxx:209
 AliTRDPIDParams.cxx:210
 AliTRDPIDParams.cxx:211
 AliTRDPIDParams.cxx:212
 AliTRDPIDParams.cxx:213
 AliTRDPIDParams.cxx:214
 AliTRDPIDParams.cxx:215
 AliTRDPIDParams.cxx:216
 AliTRDPIDParams.cxx:217
 AliTRDPIDParams.cxx:218
 AliTRDPIDParams.cxx:219
 AliTRDPIDParams.cxx:220
 AliTRDPIDParams.cxx:221
 AliTRDPIDParams.cxx:222
 AliTRDPIDParams.cxx:223
 AliTRDPIDParams.cxx:224
 AliTRDPIDParams.cxx:225
 AliTRDPIDParams.cxx:226
 AliTRDPIDParams.cxx:227
 AliTRDPIDParams.cxx:228
 AliTRDPIDParams.cxx:229
 AliTRDPIDParams.cxx:230
 AliTRDPIDParams.cxx:231
 AliTRDPIDParams.cxx:232
 AliTRDPIDParams.cxx:233
 AliTRDPIDParams.cxx:234
 AliTRDPIDParams.cxx:235
 AliTRDPIDParams.cxx:236
 AliTRDPIDParams.cxx:237
 AliTRDPIDParams.cxx:238
 AliTRDPIDParams.cxx:239
 AliTRDPIDParams.cxx:240
 AliTRDPIDParams.cxx:241
 AliTRDPIDParams.cxx:242
 AliTRDPIDParams.cxx:243
 AliTRDPIDParams.cxx:244
 AliTRDPIDParams.cxx:245
 AliTRDPIDParams.cxx:246
 AliTRDPIDParams.cxx:247
 AliTRDPIDParams.cxx:248
 AliTRDPIDParams.cxx:249
 AliTRDPIDParams.cxx:250
 AliTRDPIDParams.cxx:251
 AliTRDPIDParams.cxx:252
 AliTRDPIDParams.cxx:253
 AliTRDPIDParams.cxx:254
 AliTRDPIDParams.cxx:255
 AliTRDPIDParams.cxx:256
 AliTRDPIDParams.cxx:257
 AliTRDPIDParams.cxx:258
 AliTRDPIDParams.cxx:259
 AliTRDPIDParams.cxx:260
 AliTRDPIDParams.cxx:261
 AliTRDPIDParams.cxx:262
 AliTRDPIDParams.cxx:263
 AliTRDPIDParams.cxx:264
 AliTRDPIDParams.cxx:265
 AliTRDPIDParams.cxx:266
 AliTRDPIDParams.cxx:267
 AliTRDPIDParams.cxx:268
 AliTRDPIDParams.cxx:269
 AliTRDPIDParams.cxx:270
 AliTRDPIDParams.cxx:271
 AliTRDPIDParams.cxx:272
 AliTRDPIDParams.cxx:273
 AliTRDPIDParams.cxx:274
 AliTRDPIDParams.cxx:275
 AliTRDPIDParams.cxx:276
 AliTRDPIDParams.cxx:277
 AliTRDPIDParams.cxx:278
 AliTRDPIDParams.cxx:279
 AliTRDPIDParams.cxx:280
 AliTRDPIDParams.cxx:281
 AliTRDPIDParams.cxx:282
 AliTRDPIDParams.cxx:283
 AliTRDPIDParams.cxx:284
 AliTRDPIDParams.cxx:285
 AliTRDPIDParams.cxx:286
 AliTRDPIDParams.cxx:287
 AliTRDPIDParams.cxx:288
 AliTRDPIDParams.cxx:289
 AliTRDPIDParams.cxx:290
 AliTRDPIDParams.cxx:291
 AliTRDPIDParams.cxx:292
 AliTRDPIDParams.cxx:293
 AliTRDPIDParams.cxx:294
 AliTRDPIDParams.cxx:295
 AliTRDPIDParams.cxx:296
 AliTRDPIDParams.cxx:297
 AliTRDPIDParams.cxx:298
 AliTRDPIDParams.cxx:299
 AliTRDPIDParams.cxx:300
 AliTRDPIDParams.cxx:301
 AliTRDPIDParams.cxx:302
 AliTRDPIDParams.cxx:303
 AliTRDPIDParams.cxx:304
 AliTRDPIDParams.cxx:305
 AliTRDPIDParams.cxx:306
 AliTRDPIDParams.cxx:307
 AliTRDPIDParams.cxx:308
 AliTRDPIDParams.cxx:309
 AliTRDPIDParams.cxx:310
 AliTRDPIDParams.cxx:311
 AliTRDPIDParams.cxx:312
 AliTRDPIDParams.cxx:313
 AliTRDPIDParams.cxx:314
 AliTRDPIDParams.cxx:315
 AliTRDPIDParams.cxx:316
 AliTRDPIDParams.cxx:317
 AliTRDPIDParams.cxx:318
 AliTRDPIDParams.cxx:319
 AliTRDPIDParams.cxx:320
 AliTRDPIDParams.cxx:321
 AliTRDPIDParams.cxx:322
 AliTRDPIDParams.cxx:323
 AliTRDPIDParams.cxx:324
 AliTRDPIDParams.cxx:325
 AliTRDPIDParams.cxx:326
 AliTRDPIDParams.cxx:327
 AliTRDPIDParams.cxx:328
 AliTRDPIDParams.cxx:329
 AliTRDPIDParams.cxx:330
 AliTRDPIDParams.cxx:331
 AliTRDPIDParams.cxx:332
 AliTRDPIDParams.cxx:333
 AliTRDPIDParams.cxx:334
 AliTRDPIDParams.cxx:335
 AliTRDPIDParams.cxx:336
 AliTRDPIDParams.cxx:337
 AliTRDPIDParams.cxx:338
 AliTRDPIDParams.cxx:339
 AliTRDPIDParams.cxx:340
 AliTRDPIDParams.cxx:341
 AliTRDPIDParams.cxx:342
 AliTRDPIDParams.cxx:343
 AliTRDPIDParams.cxx:344
 AliTRDPIDParams.cxx:345
 AliTRDPIDParams.cxx:346
 AliTRDPIDParams.cxx:347
 AliTRDPIDParams.cxx:348
 AliTRDPIDParams.cxx:349
 AliTRDPIDParams.cxx:350
 AliTRDPIDParams.cxx:351
 AliTRDPIDParams.cxx:352
 AliTRDPIDParams.cxx:353
 AliTRDPIDParams.cxx:354
 AliTRDPIDParams.cxx:355