ROOT logo

#if ! defined (__CINT__) || defined (__MAKECINT__)
#include "AliLog.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"
#include "AliAnalysisCuts.h"
#include "AliESDtrackCuts.h"
#include "PWGPP/TRD/AliTRDcheckESD.h"
#endif

AliESDtrackCuts* SetupESDcuts();
void AddCFContainers(AliTRDcheckESD* checkESD);

void AddTRDcheckESD(AliAnalysisManager *mgr)
{
  //AliLog::SetClassDebugLevel("AliTRDcheckESD", 5);
  //  AliInfo("aaaaaa6666666666");
  AliTRDcheckESD *checkESD = new AliTRDcheckESD((char*)"TRDcheckESD");
  checkESD->SetRefTrackFilter(SetupESDcuts());
  mgr->AddTask(checkESD);
  Bool_t mc = mgr->GetMCtruthEventHandler();
  checkESD->SetMC(mc);
  checkESD->SetCollision(/*kFALSE*/);
  checkESD->SetDebugLevel(0);
  checkESD->AddUserTrigger("WU");
  checkESD->AddUserTrigger("QU");
  checkESD->AddUserTrigger("SE");
  checkESD->AddUserTrigger("JT");
  
  AddCFContainers(checkESD);
  
  mgr->ConnectInput(checkESD,  0, mgr->GetCommonInputContainer());  
  mgr->ConnectOutput(checkESD, 1, mgr->CreateContainer(checkESD->GetName(), TObjArray::Class(), AliAnalysisManager::kOutputContainer, Form("%s:TRD_Performance",mgr->GetCommonFileName())));
}

AliESDtrackCuts* SetupESDcuts() {
  // Setup ESD cuts for the TPC reference tracks
  AliESDtrackCuts* esdCuts = new AliESDtrackCuts;
  esdCuts->SetPtRange(0.5, 100.0);
  esdCuts->SetEtaRange(-0.9, +0.9);
  esdCuts->SetRequireTPCRefit(kTRUE);
  esdCuts->SetAcceptKinkDaughters(kFALSE);
  esdCuts->SetMaxDCAToVertexXY(1.);
  esdCuts->SetMaxDCAToVertexZ(3.);
  esdCuts->SetMinNClustersTPC(70);
  esdCuts->SetRequireITSRefit(kTRUE);
  esdCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
  return esdCuts;
}


void AddCFContainers(AliTRDcheckESD* checkESD) {
  //
  // configure output CF containers
  //
  Double_t bcLimits[3501]; for(Int_t i=0; i<=3500; ++i) bcLimits[i] = -0.5+Double_t(i);
  //Double_t phiLimits[181]; for(Int_t i=0; i<=180; ++i) phiLimits[i] = 0.0+i*2.0*TMath::Pi()/180.0;
  Double_t phiParamLimits[181]; for(Int_t i=0; i<=180; ++i) phiParamLimits[i] = -1.0*TMath::Pi()+i*2.0*TMath::Pi()/180.0;
  Double_t ptLimits[19] = {0.0, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 
                           3.5, 4.0, 4.5,  5.0, 6.0,  7.0, 8.0,  9.0, 10.0};
  Double_t chargeLimits[3] = {-1.5,0.0,1.5};
  Double_t etaLimits[91]; for(Int_t i=0;i<=90;++i) etaLimits[i] = -0.9+i*1.8/90.;
  Double_t trdTrkltsLimits[8] = {-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5};
  Double_t trigLimits[AliTRDcheckESD::kNMaxAssignedTriggers+1]; for(Int_t i=0;i<=AliTRDcheckESD::kNMaxAssignedTriggers;++i) trigLimits[i] = 0.5+Double_t(i);
  Double_t evMultLimits[6] = {0.0, 700., 1400., 2100., 2800., 3500.};
  Double_t pLimits[18] = {0.0, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.7, 2.0, 2.5, 
                          3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 9.0, 12.0};
  Double_t qtotLimits[101]; for(Int_t i=0;i<=100;++i) qtotLimits[i] = 0.0+i*10000./100.;
  Double_t layerLimits[7] = {-0.5,0.5,1.5,2.5,3.5,4.5,5.5};
  Double_t sliceLimits[9] = {-0.5,0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5};
  Double_t pLossLimits[101]; for(Int_t i=0;i<=100;++i) pLossLimits[i] = -500.+i*1000.0/100.;
  Double_t trdClustersLimits[201]; for(Int_t i=0;i<=200;++i) trdClustersLimits[i] = -0.5+i*200.0/200.;
  //Double_t trdQualityLimits[101]; for(Int_t i=0;i<=100;++i) trdQualityLimits[i] = 0.0+i*2.0/100.;
  Double_t trdBudgetLimits[101]; for(Int_t i=0;i<=100;++i) trdBudgetLimits[i] = 0.0+i*100.0/100.;
  Double_t trdChi2Limits[101]; for(Int_t i=0;i<=100;++i) trdChi2Limits[i] = 0.0+i*10.0/100.;
  Double_t trackletClustersLimits[31]; for(Int_t i=0;i<=30;++i) trackletClustersLimits[i] = 0.0+i*1.0;
  Double_t trackletClsRowsLimits[31]; for(Int_t i=0;i<=30;++i) trackletClsRowsLimits[i] = 0.0+Double_t(i)*1.0/30.0;
  //Double_t outerParamRadLimits[51]; for(Int_t i=0;i<=50;++i) outerParamRadLimits[i] = 0.0+Double_t(i)*500.0/50.0;
    
  // BC container
  cout << "Container 1 :: BunchCrossingsCF" << endl;
  Int_t bcSteps[3] = {AliTRDcheckESD::kTPCreference, AliTRDcheckESD::kTRD, AliTRDcheckESD::kTOF};
  UInt_t bcVars[3] = {AliTRDcheckESD::kEventBC, AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackPt};
  TArrayD bcBinning[3] = {TArrayD(3501, bcLimits), TArrayD(181,phiParamLimits), TArrayD(19,ptLimits)};
  checkESD->AddCFContainer("BunchCrossingsCF", "Matching vs bunch crossings", 3, bcSteps, 3, bcVars, bcBinning);
  
  // (phi,eta) matching container
  cout << "Container 2 :: MatchingPhiEta" << endl;
  Int_t matchPhiEtaSteps[3] = {AliTRDcheckESD::kTPCreference, AliTRDcheckESD::kTRD, AliTRDcheckESD::kTOF};
  UInt_t matchPhiEtaVars[5] = {AliTRDcheckESD::kTrackCharge,       AliTRDcheckESD::kTrackPhiTRD,    AliTRDcheckESD::kTrackEtaTRD,
                               AliTRDcheckESD::kTrackTrdTracklets, AliTRDcheckESD::kEventTrigger};
  TArrayD matchPhiEtaBinning[5] = {TArrayD(3,chargeLimits),    TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                                   TArrayD(8,trdTrkltsLimits), TArrayD(AliTRDcheckESD::kNMaxAssignedTriggers+1, trigLimits)};
  checkESD->AddCFContainer("MatchingPhiEta", "(phi,eta) matching CF", 3, matchPhiEtaSteps, 5, matchPhiEtaVars, matchPhiEtaBinning);
  
  // pt matching container
  cout << "Container 3 :: MatchingPt" << endl;
  Int_t matchPtSteps[3] = {AliTRDcheckESD::kTPCreference, AliTRDcheckESD::kTRD, AliTRDcheckESD::kTOF};
  UInt_t matchPtVars[6] = {AliTRDcheckESD::kEventMult, AliTRDcheckESD::kTrackCharge,       AliTRDcheckESD::kTrackPhiTRD,
                           AliTRDcheckESD::kTrackPt,   AliTRDcheckESD::kTrackTrdTracklets, AliTRDcheckESD::kEventTrigger};
  TArrayD matchPtBinning[6] = {TArrayD(6,evMultLimits), TArrayD(3, chargeLimits),    TArrayD(181, phiParamLimits),
                               TArrayD(19, ptLimits),   TArrayD(8, trdTrkltsLimits), TArrayD(AliTRDcheckESD::kNMaxAssignedTriggers+1, trigLimits)};
  checkESD->AddCFContainer("MatchingPt", "(pt,phi,multiplicity) matching", 3, matchPtSteps, 6, matchPtVars, matchPtBinning);
  
  // qtot, vs event multiplicity and p
  cout << "Container 4 :: CentralityCF" << endl;
  Int_t qtotCentSteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t qtotCentVars[3] = {AliTRDcheckESD::kEventMult, AliTRDcheckESD::kTrackP,
                            AliTRDcheckESD::kTrackletQtot};
  TArrayD qtotCentBinning[3] = {TArrayD(6,evMultLimits),
                                TArrayD(18, pLimits), TArrayD(101, qtotLimits)};
  checkESD->AddCFContainer("CentralityCF", "qtot vs event multiplicity and p", 1, qtotCentSteps, 3, qtotCentVars, qtotCentBinning);
  
  // qtot, vs event multiplicity and p
  cout << "Container 5 :: ClustersCF" << endl;
  Int_t clsCentSteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t clsCentVars[3] = {AliTRDcheckESD::kEventMult, AliTRDcheckESD::kTrackP,
                           AliTRDcheckESD::kTrackTrdClusters};
  TArrayD clsCentBinning[3] = {TArrayD(6,evMultLimits),
                               TArrayD(18, pLimits), TArrayD(201, trdClustersLimits)};
  checkESD->AddCFContainer("ClustersCF", "clusters/track vs event multiplicity and p", 1, clsCentSteps, 3, clsCentVars, clsCentBinning);
  
  // qtot vs (phi,eta) and layer
  cout << "Container 6 :: QtotCF" << endl;
  Int_t qtotSteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t qtotVars[4] = {AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackEtaTRD, 
                        AliTRDcheckESD::kTrackletQtot, AliTRDcheckESD::kTrackletLayer};
  TArrayD qtotBinning[4] = {TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                            TArrayD(101, qtotLimits), TArrayD(7, layerLimits)};
  checkESD->AddCFContainer("QtotCF", "qtot vs (phi,eta) and layer", 1, qtotSteps, 4, qtotVars, qtotBinning);
  
  // pulse height vs p and slice
  cout << "Container 7 :: PulseHeightCF" << endl;
  Int_t phSteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t phVars[4] = {AliTRDcheckESD::kEventTrigger, AliTRDcheckESD::kTrackletP, 
                      AliTRDcheckESD::kTrackletPHslice, AliTRDcheckESD::kTrackletSlice};
  TArrayD phBinning[4] = {TArrayD(AliTRDcheckESD::kNMaxAssignedTriggers+1, trigLimits), TArrayD(18,pLimits),
                          TArrayD(101, qtotLimits), TArrayD(9,sliceLimits)};
  checkESD->AddCFContainer("PulseHeightCF", "PH vs p and slice", 1, phSteps, 4, phVars, phBinning);  
    
  // TRD quality
  /*cout << "Container 8 :: TRD quality" << endl;
  Int_t trdQualitySteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t trdQualityVars[5] = {AliTRDcheckESD::kTrackP, AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackEtaTRD,
                              AliTRDcheckESD::kTrackTrdQuality, AliTRDcheckESD::kTrackCharge};
  TArrayD trdQualityBinning[5] = {TArrayD(18, pLimits), TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                                  TArrayD(101, trdQualityLimits), TArrayD(3, chargeLimits)};
  checkESD->AddCFContainer("trdQuality", "TRD quality vs (p,phi,eta,charge)", 1, trdQualitySteps, 
			   5, trdQualityVars, trdQualityBinning);
  */
  // TRD chi2
  cout << "Container 9 :: TRD chi2" << endl;
  Int_t trdChi2Steps[1] = {AliTRDcheckESD::kTRD};
  UInt_t trdChi2Vars[5] = {AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackEtaTRD,
                           AliTRDcheckESD::kTrackTrdChi2,
                           AliTRDcheckESD::kTrackPt, AliTRDcheckESD::kTrackCharge};
  TArrayD trdChi2Binning[5] = {TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                               TArrayD(101, trdChi2Limits),
                               TArrayD(19, ptLimits), TArrayD(3, chargeLimits)};
  checkESD->AddCFContainer("trdChi2", "TRD chi2 vs (phi,eta,pt,charge)", 1, trdChi2Steps, 
			   5, trdChi2Vars, trdChi2Binning);
  
  // TRD material budget
  cout << "Container 10 :: TRD material budget" << endl;
  Int_t trdBudgetSteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t trdBudgetVars[3] = {AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackEtaTRD,
                             AliTRDcheckESD::kTrackTRDBudget};
  TArrayD trdBudgetBinning[3] = {TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                                 TArrayD(101, trdBudgetLimits)};
  checkESD->AddCFContainer("trdBudget", "TRD budget vs (phi,eta)", 1, trdBudgetSteps, 
			   3, trdBudgetVars, trdBudgetBinning);
  
  // ploss vs (phi,eta) and layer
  cout << "Container 11 :: Momentum loss" << endl;
  Int_t plossSteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t plossVars[5] = {AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackEtaTRD, 
                         AliTRDcheckESD::kTrackPlossTRDlayer, AliTRDcheckESD::kTrackletLayer,
                         AliTRDcheckESD::kTrackCharge};
  TArrayD plossBinning[5] = {TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                             TArrayD(101, pLossLimits), TArrayD(7, layerLimits),
                             TArrayD(3, chargeLimits)};
  checkESD->AddCFContainer("Ploss", "p loss vs (phi,eta,layer,charge)", 1, plossSteps, 5, plossVars, plossBinning);

  // clusters per tracklet  
  cout << "Container 12 :: Clusters per tracklet" << endl;
  Int_t clustersSteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t clustersVars[5] = {AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackEtaTRD, 
                            AliTRDcheckESD::kTrackletLayer, AliTRDcheckESD::kTrackletClusters,
                            AliTRDcheckESD::kTrackCharge};
  TArrayD clustersBinning[5] = {TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                                TArrayD(7, layerLimits), TArrayD(31, trackletClustersLimits),
                                TArrayD(3,chargeLimits)};
  checkESD->AddCFContainer("clustersPerTracklet", "tracklet clusters vs (phi,eta,layer,charge)", 1, clustersSteps, 5, clustersVars, clustersBinning);

  // clusters/crossed rows  
  cout << "Container 13 :: Clusters/crossed rows" << endl;
  Int_t clsRowsSteps[1] = {AliTRDcheckESD::kTRD};
  UInt_t clsRowsVars[5] = {AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackEtaTRD, 
                            AliTRDcheckESD::kTrackletLayer, AliTRDcheckESD::kTrackletClustersVsRows,
                            AliTRDcheckESD::kTrackCharge};
  TArrayD clsRowsBinning[5] = {TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                                TArrayD(7, layerLimits), TArrayD(31, trackletClsRowsLimits),
                                TArrayD(3,chargeLimits)};
  checkESD->AddCFContainer("clustersVsRows", "tracklet/rows vs (phi,eta,layer,charge)", 1, clsRowsSteps, 5, clsRowsVars, clsRowsBinning);
/*  
  // outer param radius  
  cout << "Container 13 :: Outer param" << endl;
  Int_t outerParamSteps[1] = {AliTRDcheckESD::kTPCreference};
  UInt_t outerParamVars[5] = {AliTRDcheckESD::kTrackPhiTRD, AliTRDcheckESD::kTrackEtaTRD, 
                              AliTRDcheckESD::kTrackOuterParamRadius, AliTRDcheckESD::kTrackTrdTracklets,
                              AliTRDcheckESD::kTrackPt};
  TArrayD outerParamBinning[5] = {TArrayD(181, phiParamLimits), TArrayD(91, etaLimits),
                                  TArrayD(51, outerParamRadLimits), TArrayD(8,trdTrkltsLimits),
                                  TArrayD(19, ptLimits)};
  checkESD->AddCFContainer("outerParam", "outer param radius vs (phi,eta,pt,n-tracklets)", 1, outerParamSteps, 5, outerParamVars, outerParamBinning);
*/
}

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