ROOT logo
#include "AliNanoAODTrackMapping.h"
#include "TString.h"
#include "TObjArray.h"
#include "TObjString.h"
#include "AliLog.h"
#include <iostream>


ClassImp(AliNanoAODTrackMapping)

AliNanoAODTrackMapping * AliNanoAODTrackMapping::fInstance = 0;
TString  AliNanoAODTrackMapping::fMappingString = "";

AliNanoAODTrackMapping::AliNanoAODTrackMapping() :
  TObject(),
  fPt(-1),      	  
  fPhi(-1),		  
  fTheta(-1),		  
  fChi2PerNDF(-1),	  
  fPosX(-1),		  
  fPosY(-1),		  
  fPosZ(-1),		  
  fPDCAX(-1),		  
  fPDCAY(-1),		  
  fPDCAZ(-1),		  
  fPosDCAx(-1),	  
  fPosDCAy(-1),	  
  fRAtAbsorberEnd(-1),  
  fTPCncls(-1),	  
  fid(-1),		  
  fTPCnclsF(-1),	  
  fTPCNCrossedRows(-1), 
  fTrackPhiOnEMCal(-1), 
  fTrackEtaOnEMCal(-1), 
  fITSsignal(-1),	  
  fTPCsignal(-1),	  
  fTPCsignalTuned(-1),  
  fTPCsignalN(-1),	  
  fTPCmomentum(-1),	  
  fTPCTgl(-1),	  
  fTOFsignal(-1),	  
  fintegratedLenght(-1),
  fTOFsignalTuned(-1),  
  fHMPIDsignal(-1),	  
  fHMPIDoccupancy(-1),  
  fTRDsignal(-1),	  
  fTRDChi2(-1),	  
  fTRDnSlices(-1),	  
  fcovmat(-1)

{ 
  // default ctor

}

AliNanoAODTrackMapping::AliNanoAODTrackMapping(const char * mappingString) :
  TObject(),
  fPt(-1),      	  
  fPhi(-1),		  
  fTheta(-1),		  
  fChi2PerNDF(-1),	  
  fPosX(-1),		  
  fPosY(-1),		  
  fPosZ(-1),		  
  fPDCAX(-1),		  
  fPDCAY(-1),		  
  fPDCAZ(-1),		  
  fPosDCAx(-1),	  
  fPosDCAy(-1),	  
  fRAtAbsorberEnd(-1),  
  fTPCncls(-1),	  
  fid(-1),		  
  fTPCnclsF(-1),	  
  fTPCNCrossedRows(-1), 
  fTrackPhiOnEMCal(-1), 
  fTrackEtaOnEMCal(-1), 
  fITSsignal(-1),	  
  fTPCsignal(-1),	  
  fTPCsignalTuned(-1),  
  fTPCsignalN(-1),	  
  fTPCmomentum(-1),	  
  fTPCTgl(-1),	  
  fTOFsignal(-1),	  
  fintegratedLenght(-1),
  fTOFsignalTuned(-1),  
  fHMPIDsignal(-1),	  
  fHMPIDoccupancy(-1),  
  fTRDsignal(-1),	  
  fTRDChi2(-1),	  
  fTRDnSlices(-1),	  
  fcovmat(-1)

{
  // ctor
  //std::cout << "Standard construct " << mappingString << std::endl;
  
  if (fInstance) {
    AliWarning("Cannot instantiate this class twice");
    if (fMappingString != mappingString) AliFatal ("Attempt to initialize with a differnt mapping string");
    return ;
  }
  fMappingString = mappingString;

  static const char * validatorString[] = {"pt", "theta", "phi", "chi2perNDF", "posx", "posy", "posz", "covmat", "posDCAx","posDCAy", "pDCAx", "pDCAy", "pDCAz", "RAtAbsorberEnd", "TPCnclsF", "TPCNCrossedRows", "TrackPhiOnEMCal", "TrackEtaOnEMCal", "TrackPtOnEMCal", "ITSsignal", "TPCsignal", "TPCsignalTuned", "TPCsignalN", "TPCmomentum", "TPCTgl", "TOFsignal", "integratedLenght", "TOFsignalTuned", "HMPIDsignal", "HMPIDoccupancy", "TRDsignal", "TRDChi2", "TRDnSlices", 0};
  
  // Tokenize list of variables
  TString varString(mappingString);
  TObjArray * vars = varString.Tokenize(",");
  // Allocate the internal array, based on size of the tokens array
  fSize = vars->GetSize();
  // Loop over all tokens, check sanity of the vars,
  TIter it(vars);
  TObjString *token  = 0;
  Int_t index=0;
  while ((token = (TObjString*) it.Next())) {
    TString var = token->GetString().Strip(TString::kBoth, ' '); // remove trailing and leading spaces        
    // Check if string  ...
    // ... is in the allowed list
    Bool_t isValid = kFALSE;
    Int_t ivalidator = 0;
    while (validatorString[ivalidator]) {
      if(var == validatorString[ivalidator++]) isValid = kTRUE;
    }
    //... it is custom    
    if (!( isValid || var.BeginsWith("cst")) ) AliFatal(Form("Invalid var [%s]", var.Data()));
    // If the variable is valid, add it to the list. We have to create a new TObjstring because otherwise it is deleted with the tokens
    if     (var == "pt"               ) fPt                = index;
    else if(var == "phi"              ) fPhi               = index;
    else if(var == "theta"            ) fTheta             = index; // FIXME: consider adding a "eta" variable explicitly (possibly with a check for theta aldready there), so that you don't have to carry over also "theta" in case you only need eta.
    else if(var == "chi2perNDF"       ) fChi2PerNDF        = index;
    else if(var == "posx"             ) fPosX              = index;
    else if(var == "posy"             ) fPosY              = index;
    else if(var == "posz"             ) fPosZ              = index;
    else if(var == "pDCAx"            ) fPDCAX             = index;
    else if(var == "pDCAy"            ) fPDCAY             = index;
    else if(var == "pDCAz"            ) fPDCAZ             = index;
    else if(var == "posDCAx"          ) fPosDCAx           = index;
    else if(var == "posDCAy"          ) fPosDCAy           = index;
    else if(var == "RAtAbsorberEnd"   ) fRAtAbsorberEnd    = index;
    else if(var == "TPCncls"          ) fTPCncls           = index;
    else if(var == "id"               ) fid                = index;
    else if(var == "TPCnclsF"         ) fTPCnclsF          = index;
    else if(var == "TPCNCrossedRows"  ) fTPCNCrossedRows   = index;
    else if(var == "TrackPhiOnEMCal"  ) fTrackPhiOnEMCal   = index;
    else if(var == "TrackEtaOnEMCal"  ) fTrackEtaOnEMCal   = index;
    else if(var == "TrackPtOnEMCal"   ) fTrackPtOnEMCal    = index;
    else if(var == "ITSsignal"        ) fITSsignal         = index;
    else if(var == "TPCsignal"        ) fTPCsignal         = index;
    else if(var == "TPCsignalTuned"   ) fTPCsignalTuned    = index;
    else if(var == "TPCsignalN"       ) fTPCsignalN        = index;
    else if(var == "TPCmomentum"      ) fTPCmomentum       = index;
    else if(var == "TPCTgl"           ) fTPCTgl            = index;
    else if(var == "TOFsignal"        ) fTOFsignal         = index;
    else if(var == "integratedLenght" ) fintegratedLenght  = index;
    else if(var == "TOFsignalTuned"   ) fTOFsignalTuned    = index;
    else if(var == "HMPIDsignal"      ) fHMPIDsignal       = index;
    else if(var == "HMPIDoccupancy"   ) fHMPIDoccupancy    = index;
    else if(var == "TRDsignal"        ) fTRDsignal         = index;
    else if(var == "TRDChi2"          ) fTRDChi2           = index;
    else if(var == "TRDnSlices"       ) fTRDnSlices        = index;
    else if(var == "covmat"           ) AliFatal("cov matrix To be implemented");
    else {
      fMapCstVar[var] = index;
      std::cout << "ADDING " << index << " " << fMapCstVar[var] << " " << var.Data() << std::endl;
      
    }

    // init kin vars to 0
    index++;
  }
  fSize = index;
  if(vars) vars->Delete();
 
  fInstance = this;

}

Int_t AliNanoAODTrackMapping::GetVarIndex(TString varName){

    if     (varName == "pt"               ) return fPt               ;
    else if(varName == "phi"              ) return fPhi              ;
    else if(varName == "theta"            ) return fTheta            ; 
    else if(varName == "chi2perNDF"       ) return fChi2PerNDF       ;
    else if(varName == "posx"             ) return fPosX             ;
    else if(varName == "posy"             ) return fPosY             ;
    else if(varName == "posz"             ) return fPosZ             ;
    else if(varName == "pDCAx"            ) return fPDCAX            ;
    else if(varName == "pDCAy"            ) return fPDCAY            ;
    else if(varName == "pDCAz"            ) return fPDCAZ            ;
    else if(varName == "posDCAx"          ) return fPosDCAx          ;
    else if(varName == "posDCAy"          ) return fPosDCAy          ;
    else if(varName == "RAtAbsorberEnd"   ) return fRAtAbsorberEnd   ;
    else if(varName == "TPCncls"          ) return fTPCncls          ;
    else if(varName == "id"               ) return fid               ;
    else if(varName == "TPCnclsF"         ) return fTPCnclsF         ;
    else if(varName == "TPCNCrossedRows"  ) return fTPCNCrossedRows  ;
    else if(varName == "TrackPhiOnEMCal"  ) return fTrackPhiOnEMCal  ;
    else if(varName == "TrackEtaOnEMCal"  ) return fTrackEtaOnEMCal  ;
    else if(varName == "TrackPtOnEMCal"   ) return fTrackPtOnEMCal   ;
    else if(varName == "ITSsignal"        ) return fITSsignal        ;
    else if(varName == "TPCsignal"        ) return fTPCsignal        ;
    else if(varName == "TPCsignalTuned"   ) return fTPCsignalTuned   ;
    else if(varName == "TPCsignalN"       ) return fTPCsignalN       ;
    else if(varName == "TPCmomentum"      ) return fTPCmomentum      ;
    else if(varName == "TPCTgl"           ) return fTPCTgl           ;
    else if(varName == "TOFsignal"        ) return fTOFsignal        ;
    else if(varName == "integratedLenght" ) return fintegratedLenght ;
    else if(varName == "TOFsignalTuned"   ) return fTOFsignalTuned   ;
    else if(varName == "HMPIDsignal"      ) return fHMPIDsignal      ;
    else if(varName == "HMPIDoccupancy"   ) return fHMPIDoccupancy   ;
    else if(varName == "TRDsignal"        ) return fTRDsignal        ;
    else if(varName == "TRDChi2"          ) return fTRDChi2          ;
    else if(varName == "TRDnSlices"       ) return fTRDnSlices       ;

    std::map<TString,Int_t>::iterator it = fMapCstVar.find(varName); // FIXME: do I need to delete "it"?
    if(it != fMapCstVar.end()) {
      //element found;
	return it->second;
    }

    return -1;
  
}

const char * AliNanoAODTrackMapping::GetVarName(Int_t index) const {
  // Get Variable name from index
    if     (index == fPt               )  return "pt"               ;
    else if(index == fPhi              )  return "phi"              ;
    else if(index == fTheta            )  return "theta"            ;
    else if(index == fChi2PerNDF       )  return "chi2perNDF"       ;
    else if(index == fPosX             )  return "posx"             ;
    else if(index == fPosY             )  return "posy"             ;
    else if(index == fPosZ             )  return "posz"             ;
    else if(index == fPDCAX            )  return "pDCAx"            ;
    else if(index == fPDCAY            )  return "pDCAy"            ;
    else if(index == fPDCAZ            )  return "pDCAz"            ;
    else if(index == fPosDCAx          )  return "posDCAx"          ;
    else if(index == fPosDCAy          )  return "posDCAy"          ;
    else if(index == fRAtAbsorberEnd   )  return "RAtAbsorberEnd"   ;
    else if(index == fTPCncls          )  return "TPCncls"          ;
    else if(index == fid               )  return "id"               ;
    else if(index == fTPCnclsF         )  return "TPCnclsF"         ;
    else if(index == fTPCNCrossedRows  )  return "TPCNCrossedRows"  ;
    else if(index == fTrackPhiOnEMCal  )  return "TrackPhiOnEMCal"  ;
    else if(index == fTrackEtaOnEMCal  )  return "TrackEtaOnEMCal"  ;
    else if(index == fTrackPtOnEMCal   )  return "TrackPtOnEMCal"   ;
    else if(index == fITSsignal        )  return "ITSsignal"        ;
    else if(index == fTPCsignal        )  return "TPCsignal"        ;
    else if(index == fTPCsignalTuned   )  return "TPCsignalTuned"   ;
    else if(index == fTPCsignalN       )  return "TPCsignalN"       ;
    else if(index == fTPCmomentum      )  return "TPCmomentum"      ;
    else if(index == fTPCTgl           )  return "TPCTgl"           ;
    else if(index == fTOFsignal        )  return "TOFsignal"        ;
    else if(index == fintegratedLenght )  return "integratedLenght" ;
    else if(index == fTOFsignalTuned   )  return "TOFsignalTuned"   ;
    else if(index == fHMPIDsignal      )  return "HMPIDsignal"      ;
    else if(index == fHMPIDoccupancy   )  return "HMPIDoccupancy"   ;
    else if(index == fTRDsignal        )  return "TRDsignal"        ;
    else if(index == fTRDChi2          )  return "TRDChi2"          ;
    else if(index == fTRDnSlices       )  return "TRDnSlices"       ;
    if (index >= fSize) {
      AliWarning(Form("Invalid index %d", index));
      return "<Invalid index>";
    }
    else {
      std::map<TString,Int_t>::const_iterator it ;
      for (it = fMapCstVar.begin(); it != fMapCstVar.end(); ++it) {
	if(it->second == index) return it->first.Data();
      }      
    }
    return "<YOU SHOULD NEVER GET THIS>";// Should never happen
}

void  AliNanoAODTrackMapping::Print(const Option_t* /*opt*/) const {
  std::cout << "Printing AliNanoAODTrackMapping" << std::endl;
  
  for (Int_t ivar = 0; ivar<fSize; ivar++) {
    std::cout << " " << ivar << " " << GetVarName(ivar) << std::endl;
  }

}


void  AliNanoAODTrackMapping::LoadInstance() {
    
    if(!fInstance) { // try to get it from the current file
      Printf("AliNanoAODTrackMapping::LoadInstance() instance from file");
      // Try to get it from the UserInfo of the AOD tree; FIXME: shall we try to probe the Analysis manager?
      // FIXME: to be implmented Otherwise, try to get it from the esdTree
      TTree * tree = (TTree*)gDirectory->Get("aodTree") ? (TTree*)gDirectory->Get("aodTree"): (TTree*)gFile->Get("aodTree");
      if(!tree) {
	std::cout << "NO TREE?" << std::endl;
	gDirectory->ls();
	gFile->ls();
      } 
	

      if(tree) {
	tree->GetUserInfo()->Print();
	fInstance = new AliNanoAODTrackMapping(*((AliNanoAODTrackMapping*) tree->GetUserInfo()->FindObject("AliNanoAODTrackMapping")));
	// Otherwise try to get it from the current directory
	std::cout << " from tree: " << fInstance << std::endl;
	
      }
      if(!fInstance) fInstance = (AliNanoAODTrackMapping *) gDirectory->Get("AliNanoAODTrackMapping");
      if(!fInstance) {
	Printf("AliNanoAODTrackMapping::LoadInstance(): Not initialized and cannot find in current file");
	gSystem->Exit(1);
      }
    }


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