ROOT logo
Bool_t needRecPoints = kFALSE;

void MyAnalysisMacroTrackletMulti
(TString dataset="/alice/sim/LHC10f8c_130844",
 TString outFName = "trbg.root",
 Int_t   nEvents   = -1,
 Float_t etaMin     =-0.5,        // min eta range to fill in histos
 Float_t etaMax     = 0.5,        // max eta range to fill in histos
 Float_t zMin       = -7,         // process events with Z vertex min
 Float_t zMax       =  7,         //                     max positions
 Int_t   useCentVar = 0,          // centrality variable to use: 0=V0, 1=SPD2corr
 //
 Float_t cutSigNStd  = 1.5,        // cut on weighed distance used to extract signal
 Float_t cutSigDPhiS = -1,        // cut on dPhi-phiBent used to extract signal (if negative -> dphi*sqrt(cutSigNStd)
 Bool_t  useMC  = kTRUE,          // fill MC info (doRec=kTRUE)
 Float_t scaleMCV0 = 0.7520,      // rescale MC V0 to match the data
 //
 Bool_t doRec  = kTRUE,           // fill data histos from new reco
 Bool_t doInj  = kTRUE,           // create Inj. bg
 Bool_t doRot  = kFALSE,          // create Rot. bg
 Bool_t doMix  = kFALSE,//kTRUE,  // create Mix. bg
 // 
 // specific parameters for reconstruction
 float  phiRot      = 3.14159e+00, // angle for bg. generation with rotation
 float  injScale    = 1.,//0.7,    // inject injScale*Ncl(Lr1/Lr2) hits
 Bool_t scaleDTheta = kTRUE,       // scale dTheta by 1/sin^2(theta) in trackleting
 float  nStdDev     = 25.,         // number of st.dev. for tracklet cut to keep
 float  dphi        = 0.06,        // dphi window (sigma of tracklet cut)
 float  dtht        = 0.025,       // dtheta .... (if negative, abs will be used with additional cut on |dthetaX|, apart from w.distance
 float  phishift    = 0.0045,      // bending shift
 Bool_t remOvl      = kTRUE,       
 float  ovlPhiCut   = 0.005, 
 float  ovlZetaCut  = 0.05,
 Int_t  nEventsSkip = 0,
 //----------------------- Ntracklets selection parameters important for mixing, to be tuned
 Float_t ntMin      =   1,         // process events with ESDmult 
 Float_t ntMax      = 20000,       // within this range
 Float_t ntMixBinSz = 20000,       // ESDMult bin size for mixing
 //----------------------- Zv selection parameters important for mixing, to be tuned
 Float_t zMixBinSz  =  14,       //0.1,  // Zv. bin for mixing
 //---------------------------------------------------------------------------------
 //
 Bool_t checkReconstructables = kFALSE//kTRUE, // fill histos for reconstructable (needs useMC and doRec) 
 //
 )
{
  //  
  if (cutSigDPhiS<0) cutSigDPhiS = TMath::Sqrt(cutSigNStd)*dphi;
  //
  needRecPoints = doRec || doInj || doRot || doMix;
    //
  printf("Start Analysis for %s, max %d Events skipping %d, Event Cuts: %.1f<eta<%.1f, %.2f<Zv<%.2f\n",
	 dataset.Data(),nEvents,nEventsSkip,etaMin,etaMax,zMin,zMax);
  printf("Centrality variable: %d\n",useCentVar);
  printf("Tracklet cuts: dPhi:%.3f dTheta:%.3f phiShift:%.4f | Keep %.1f NstDev\n"
	 "Scale dTheta: %s | Signal Selection: NstDev:%.1f, dPhiS: %.3f\n", 
	 dphi,dtht,phishift,nStdDev,scaleDTheta ? "ON":"OFF",
	 cutSigNStd,cutSigDPhiS);
  //
  printf("UseMC: %s. V0 scale: %.4f\n",useMC ? "ON":"OFF",scaleMCV0);
  printf("Operations:  \n"
	 "Reco:%s (RemOvl:%s phi:%.3f zeta:%.3f)\n"
	 "Inj:%s (scale: %.2f)\n"
	 "Rot:%s (phi: %.4f)\n"
	 "Mix:%s (Nt:%.1f:%.1f:%.1f Zv:%.1f:%.1f:%.2f)\n", 
	 doRec ? "ON":"OFF",remOvl? "ON":"OFF",ovlPhiCut,ovlZetaCut,
	 doInj ? "ON":"OFF",injScale,
	 doRot ? "ON":"OFF",phiRot,
	 doMix ? "ON":"OFF",ntMin,ntMax,ntMixBinSz, zMin,zMax,zMixBinSz);
  //
  if (nEvents<0) nEvents = int(1e9);
  TString format = GetFormatFromDataSet(dataset);
  //
  // ALICE stuff
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) mgr = new AliAnalysisManager("Test train");
  //
  InputHandlerSetup(format,useMC);
  if (doMix) MixHandlerSetup(ntMin,ntMax,ntMixBinSz, zMin,zMax,zMixBinSz);
  // compile our task
  gProof->Load("AliITSMultRecBg.cxx++");
  gProof->Load("AliTrackletTaskMulti.cxx++");
  //
  printf("Loading Centrality task\n");
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
  //  taskCentrality->SetDebugLevel(2);
  if (useMC) taskCentrality->SetMCInput();
  //  taskCentrality->Dump();
  //
  // load and run AddTask macro
  gROOT->LoadMacro("AddMultTaskTrackletMulti.C");
  //
  // create our task
  AliTrackletTaskMulti *mltTask = AddMultTaskTrackletMulti(outFName.Data());
  //
  mltTask->SetUseCentralityVar(useCentVar);
  mltTask->SetDoNormalReco(doRec);
  mltTask->SetDoInjection(doInj);
  mltTask->SetDoRotation(doRot);
  mltTask->SetDoMixing(doMix);  
  //
  mltTask->SetUseMC(useMC);
  mltTask->SetCheckReconstructables(checkReconstructables);
  //
  mltTask->SetEtaMin(etaMin);
  mltTask->SetEtaMax(etaMax);
  mltTask->SetZVertexMin(zMin);
  mltTask->SetZVertexMax(zMax);
  //
  mltTask->SetDPhiSCut(cutSigDPhiS);
  mltTask->SetNStdCut(cutSigNStd);
  mltTask->SetScaleMCV0(scaleMCV0);
  //
  mltTask->SetScaleDThetaBySin2T(scaleDTheta);
  mltTask->SetNStdDev(nStdDev);
  mltTask->SetPhiWindow(dphi);
  mltTask->SetThetaWindow(dtht);
  mltTask->SetPhiShift(phishift);
  mltTask->SetPhiOverlapCut(ovlPhiCut);
  mltTask->SetZetaOverlapCut(ovlZetaCut);
  mltTask->SetPhiRot(phiRot);
  mltTask->SetInjScale(injScale);
  mltTask->SetRemoveOverlaps(remOvl);
  //
  printf("new Task: %p\n",mltTask);
  //
  printf("Requesting physics selection in %s mode\n",useMC ? "MC":"Data");
  gROOT->ProcessLine(".L $ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  AliPhysicsSelectionTask* physicsSelectionTask = AddTaskPhysicsSelection(useMC,0);
  mltTask->SelectCollisionCandidates();//AliVEvent::kMB);
  //
  // Run analysis
  mgr->InitAnalysis();
  // process dataset  
  mgr->StartAnalysis("proof", dataset.Data(), nEvents, nEventsSkip); 
  //
  TString evstCmd = "if [ -e event_stat.root ]; then \nmv event_stat.root evstat_"; 
  evstCmd += outFName;  evstCmd += " \nfi";
  gSystem->Exec( evstCmd.Data() );
  
}


TString GetFormatFromDataSet(TString dataset) {
  
//   Info("runAAF.C","Detecting format from dataset (may take while, depends on network connection)...");
  TString dsTreeName;
  if (dataset.Contains("#")) {
    Info("runAAF.C",Form("Detecting format from dataset name '%s' ...",dataset.Data()));
    dsTreeName=dataset(dataset.Last('#'),dataset.Length());
  } else {
    Info("runAAF.C",Form("Detecting format from dataset '%s' (may take while, depends on network connection) ...",dataset.Data()));
    TFileCollection *ds = gProof->GetDataSet(dataset.Data());
    if (!ds) {
      Error(Form("Dataset %s doesn't exist on proof cluster!!!!",dataset.Data()));
      return "";
    }
    dsTreeName = ds->GetDefaultTreeName();
  }

  if (dsTreeName.Contains("esdTree")) {
    Info("runAAF.C","ESD input format detected ...");
    return "ESD";
  } else if (dsTreeName.Contains("aodTree"))  {
    Info("runAAF.C","AOD input format detected ...");
    return "AOD";
  } else {
    Error("runAAF.C",Form("Tree %s is not supported !!!",dsTreeName.Data()));
    Error("runAAF.C",Form("Maybe set your DS to %s#esdTree or %s#aodTree",dataset.Data(),dataset.Data()));
  }
  
  return "";
}

Bool_t InputHandlerSetup(TString format = "esd", Bool_t useKine = kTRUE)
{
  format.ToLower();

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();

  AliAnalysisDataContainer *cin = mgr->GetCommonInputContainer();

  if (cin) return;

  if (!format.CompareTo("esd"))
  {
    AliESDInputHandler *esdInputHandler = dynamic_cast<AliESDInputHandler*>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());

    if (!esdInputHandler)
    {
      Info("CustomAnalysisTaskInputSetup", "Creating esdInputHandler ...");
      if (needRecPoints)
	esdInputHandler = new AliESDInputHandlerRP();
      else 
	esdInputHandler = new AliESDInputHandler();
      //
      mgr->SetInputEventHandler(esdInputHandler);
    }
    //
    if (useKine)
    {
      AliMCEventHandler* mcInputHandler = dynamic_cast<AliMCEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());

      if (!mcInputHandler)
      {
        Info("CustomAnalysisTaskInputSetup", "Creating mcInputHandler ...");
        AliMCEventHandler* mcInputHandler = new AliMCEventHandler();
        mgr->SetMCtruthEventHandler(mcInputHandler);
      }
    }

  }
  else if (!format.CompareTo("aod"))
  {
    AliAODInputHandler *aodInputHandler = dynamic_cast<AliAODInputHandler*>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());

    if (!aodInputHandler)
    {
      Info("CustomAnalysisTaskInputSetup", "Creating aodInputHandler ...");
      aodInputHandler = new AliAODInputHandler();
      mgr->SetInputEventHandler(aodInputHandler);
    }
  }
  else
  {
    Info("Wrong input format!!! Only ESD and AOD are supported. Skipping Task ...");
    return kFALSE;
  }

  return kTRUE;
}

void MixHandlerSetup(float ntMin,float ntMax,float ntMixBinSz,
		     float zMin, float zMax, float zMixBinSz)
{
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) return;
  int bufferSize = 1;
  AliESDInputHandlerRP *esdH = dynamic_cast<AliESDInputHandlerRP*>(mgr->GetInputEventHandler());
  if (!esdH) return;
  //
  AliMixEventInputHandler *esdMixH = new AliMixEventInputHandler(bufferSize);
  esdMixH->SetInputHandlerForMixing(esdH);
  AliMixEventPool *evPool = new AliMixEventPool("MyPool");
  AliMixEventCutObj *tracklets = new AliMixEventCutObj(AliMixEventCutObj::kNumberTracklets, ntMin,ntMax,ntMixBinSz);
  AliMixEventCutObj *zvertex = new AliMixEventCutObj(AliMixEventCutObj::kZVertex, zMin,zMax, zMixBinSz);
  //  evPool->AddCut(tracklets);
  evPool->AddCut(zvertex);
  //evPool->Init();
  evPool->Print();
  esdMixH->SetEventPool(evPool);
  esdH->SetMixingHandler(esdMixH);
}

void AddPhysicsSelection(Bool_t isMC)
{
  // physics selection a la Michele
  if(!isMC) {
    //AliPhysicsSelection * physSel = physicsSelectionTask->GetPhysicsSelection();
    //    physSel->AddCollisionTriggerClass("+CMBAC-B-NOPF-ALL");
    /*
    physSel->AddCollisionTriggerClass("+CMBS1C-B-NOPF-ALL");
    physSel->AddCollisionTriggerClass("+CMBS1A-B-NOPF-ALL");
    */
    //
    //    physSel->AddCollisionTriggerClass("+CMBS2C-B-NOPF-ALL");
    //    physSel->AddCollisionTriggerClass("+CMBS2A-B-NOPF-ALL");
    //
    // This are needed only to fill the statistics tables
    //    physSel->AddBGTriggerClass("+CMBAC-C-NOPF-ALL");
    //    physSel->AddBGTriggerClass("+CMBAC-A-NOPF-ALL");
    //    physSel->AddBGTriggerClass("+CMBAC-E-NOPF-ALL");
    //
    /*
    physSel->AddBGTriggerClass("+CMBS1C-C-NOPF-ALL");
    physSel->AddBGTriggerClass("+CMBS1C-A-NOPF-ALL");
    physSel->AddBGTriggerClass("+CMBS1C-E-NOPF-ALL");
    //
    physSel->AddBGTriggerClass("+CMBS1A-C-NOPF-ALL");
    physSel->AddBGTriggerClass("+CMBS1A-A-NOPF-ALL");
    physSel->AddBGTriggerClass("+CMBS1A-E-NOPF-ALL");
    //
    */
    /*
    //
    physSel->AddBGTriggerClass("+CMBS2C-C-NOPF-ALL");
    physSel->AddBGTriggerClass("+CMBS2C-A-NOPF-ALL");
    physSel->AddBGTriggerClass("+CMBS2C-E-NOPF-ALL");
    //
    physSel->AddBGTriggerClass("+CMBS2A-C-NOPF-ALL");
    physSel->AddBGTriggerClass("+CMBS2A-A-NOPF-ALL");
    physSel->AddBGTriggerClass("+CMBS2A-E-NOPF-ALL");
    */
  } 
  // if you use the following line, your task only gets the selected events
  //  task->SelectCollisionCandidates(AliVEvent::kUserDefined);
  //  task->SelectCollisionCandidates();
  //
  //Alternatively, in the UserExec of your task:
  //Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kUserDefined);
  //
}
 MyAnalysisMacroTrackletMulti.C:1
 MyAnalysisMacroTrackletMulti.C:2
 MyAnalysisMacroTrackletMulti.C:3
 MyAnalysisMacroTrackletMulti.C:4
 MyAnalysisMacroTrackletMulti.C:5
 MyAnalysisMacroTrackletMulti.C:6
 MyAnalysisMacroTrackletMulti.C:7
 MyAnalysisMacroTrackletMulti.C:8
 MyAnalysisMacroTrackletMulti.C:9
 MyAnalysisMacroTrackletMulti.C:10
 MyAnalysisMacroTrackletMulti.C:11
 MyAnalysisMacroTrackletMulti.C:12
 MyAnalysisMacroTrackletMulti.C:13
 MyAnalysisMacroTrackletMulti.C:14
 MyAnalysisMacroTrackletMulti.C:15
 MyAnalysisMacroTrackletMulti.C:16
 MyAnalysisMacroTrackletMulti.C:17
 MyAnalysisMacroTrackletMulti.C:18
 MyAnalysisMacroTrackletMulti.C:19
 MyAnalysisMacroTrackletMulti.C:20
 MyAnalysisMacroTrackletMulti.C:21
 MyAnalysisMacroTrackletMulti.C:22
 MyAnalysisMacroTrackletMulti.C:23
 MyAnalysisMacroTrackletMulti.C:24
 MyAnalysisMacroTrackletMulti.C:25
 MyAnalysisMacroTrackletMulti.C:26
 MyAnalysisMacroTrackletMulti.C:27
 MyAnalysisMacroTrackletMulti.C:28
 MyAnalysisMacroTrackletMulti.C:29
 MyAnalysisMacroTrackletMulti.C:30
 MyAnalysisMacroTrackletMulti.C:31
 MyAnalysisMacroTrackletMulti.C:32
 MyAnalysisMacroTrackletMulti.C:33
 MyAnalysisMacroTrackletMulti.C:34
 MyAnalysisMacroTrackletMulti.C:35
 MyAnalysisMacroTrackletMulti.C:36
 MyAnalysisMacroTrackletMulti.C:37
 MyAnalysisMacroTrackletMulti.C:38
 MyAnalysisMacroTrackletMulti.C:39
 MyAnalysisMacroTrackletMulti.C:40
 MyAnalysisMacroTrackletMulti.C:41
 MyAnalysisMacroTrackletMulti.C:42
 MyAnalysisMacroTrackletMulti.C:43
 MyAnalysisMacroTrackletMulti.C:44
 MyAnalysisMacroTrackletMulti.C:45
 MyAnalysisMacroTrackletMulti.C:46
 MyAnalysisMacroTrackletMulti.C:47
 MyAnalysisMacroTrackletMulti.C:48
 MyAnalysisMacroTrackletMulti.C:49
 MyAnalysisMacroTrackletMulti.C:50
 MyAnalysisMacroTrackletMulti.C:51
 MyAnalysisMacroTrackletMulti.C:52
 MyAnalysisMacroTrackletMulti.C:53
 MyAnalysisMacroTrackletMulti.C:54
 MyAnalysisMacroTrackletMulti.C:55
 MyAnalysisMacroTrackletMulti.C:56
 MyAnalysisMacroTrackletMulti.C:57
 MyAnalysisMacroTrackletMulti.C:58
 MyAnalysisMacroTrackletMulti.C:59
 MyAnalysisMacroTrackletMulti.C:60
 MyAnalysisMacroTrackletMulti.C:61
 MyAnalysisMacroTrackletMulti.C:62
 MyAnalysisMacroTrackletMulti.C:63
 MyAnalysisMacroTrackletMulti.C:64
 MyAnalysisMacroTrackletMulti.C:65
 MyAnalysisMacroTrackletMulti.C:66
 MyAnalysisMacroTrackletMulti.C:67
 MyAnalysisMacroTrackletMulti.C:68
 MyAnalysisMacroTrackletMulti.C:69
 MyAnalysisMacroTrackletMulti.C:70
 MyAnalysisMacroTrackletMulti.C:71
 MyAnalysisMacroTrackletMulti.C:72
 MyAnalysisMacroTrackletMulti.C:73
 MyAnalysisMacroTrackletMulti.C:74
 MyAnalysisMacroTrackletMulti.C:75
 MyAnalysisMacroTrackletMulti.C:76
 MyAnalysisMacroTrackletMulti.C:77
 MyAnalysisMacroTrackletMulti.C:78
 MyAnalysisMacroTrackletMulti.C:79
 MyAnalysisMacroTrackletMulti.C:80
 MyAnalysisMacroTrackletMulti.C:81
 MyAnalysisMacroTrackletMulti.C:82
 MyAnalysisMacroTrackletMulti.C:83
 MyAnalysisMacroTrackletMulti.C:84
 MyAnalysisMacroTrackletMulti.C:85
 MyAnalysisMacroTrackletMulti.C:86
 MyAnalysisMacroTrackletMulti.C:87
 MyAnalysisMacroTrackletMulti.C:88
 MyAnalysisMacroTrackletMulti.C:89
 MyAnalysisMacroTrackletMulti.C:90
 MyAnalysisMacroTrackletMulti.C:91
 MyAnalysisMacroTrackletMulti.C:92
 MyAnalysisMacroTrackletMulti.C:93
 MyAnalysisMacroTrackletMulti.C:94
 MyAnalysisMacroTrackletMulti.C:95
 MyAnalysisMacroTrackletMulti.C:96
 MyAnalysisMacroTrackletMulti.C:97
 MyAnalysisMacroTrackletMulti.C:98
 MyAnalysisMacroTrackletMulti.C:99
 MyAnalysisMacroTrackletMulti.C:100
 MyAnalysisMacroTrackletMulti.C:101
 MyAnalysisMacroTrackletMulti.C:102
 MyAnalysisMacroTrackletMulti.C:103
 MyAnalysisMacroTrackletMulti.C:104
 MyAnalysisMacroTrackletMulti.C:105
 MyAnalysisMacroTrackletMulti.C:106
 MyAnalysisMacroTrackletMulti.C:107
 MyAnalysisMacroTrackletMulti.C:108
 MyAnalysisMacroTrackletMulti.C:109
 MyAnalysisMacroTrackletMulti.C:110
 MyAnalysisMacroTrackletMulti.C:111
 MyAnalysisMacroTrackletMulti.C:112
 MyAnalysisMacroTrackletMulti.C:113
 MyAnalysisMacroTrackletMulti.C:114
 MyAnalysisMacroTrackletMulti.C:115
 MyAnalysisMacroTrackletMulti.C:116
 MyAnalysisMacroTrackletMulti.C:117
 MyAnalysisMacroTrackletMulti.C:118
 MyAnalysisMacroTrackletMulti.C:119
 MyAnalysisMacroTrackletMulti.C:120
 MyAnalysisMacroTrackletMulti.C:121
 MyAnalysisMacroTrackletMulti.C:122
 MyAnalysisMacroTrackletMulti.C:123
 MyAnalysisMacroTrackletMulti.C:124
 MyAnalysisMacroTrackletMulti.C:125
 MyAnalysisMacroTrackletMulti.C:126
 MyAnalysisMacroTrackletMulti.C:127
 MyAnalysisMacroTrackletMulti.C:128
 MyAnalysisMacroTrackletMulti.C:129
 MyAnalysisMacroTrackletMulti.C:130
 MyAnalysisMacroTrackletMulti.C:131
 MyAnalysisMacroTrackletMulti.C:132
 MyAnalysisMacroTrackletMulti.C:133
 MyAnalysisMacroTrackletMulti.C:134
 MyAnalysisMacroTrackletMulti.C:135
 MyAnalysisMacroTrackletMulti.C:136
 MyAnalysisMacroTrackletMulti.C:137
 MyAnalysisMacroTrackletMulti.C:138
 MyAnalysisMacroTrackletMulti.C:139
 MyAnalysisMacroTrackletMulti.C:140
 MyAnalysisMacroTrackletMulti.C:141
 MyAnalysisMacroTrackletMulti.C:142
 MyAnalysisMacroTrackletMulti.C:143
 MyAnalysisMacroTrackletMulti.C:144
 MyAnalysisMacroTrackletMulti.C:145
 MyAnalysisMacroTrackletMulti.C:146
 MyAnalysisMacroTrackletMulti.C:147
 MyAnalysisMacroTrackletMulti.C:148
 MyAnalysisMacroTrackletMulti.C:149
 MyAnalysisMacroTrackletMulti.C:150
 MyAnalysisMacroTrackletMulti.C:151
 MyAnalysisMacroTrackletMulti.C:152
 MyAnalysisMacroTrackletMulti.C:153
 MyAnalysisMacroTrackletMulti.C:154
 MyAnalysisMacroTrackletMulti.C:155
 MyAnalysisMacroTrackletMulti.C:156
 MyAnalysisMacroTrackletMulti.C:157
 MyAnalysisMacroTrackletMulti.C:158
 MyAnalysisMacroTrackletMulti.C:159
 MyAnalysisMacroTrackletMulti.C:160
 MyAnalysisMacroTrackletMulti.C:161
 MyAnalysisMacroTrackletMulti.C:162
 MyAnalysisMacroTrackletMulti.C:163
 MyAnalysisMacroTrackletMulti.C:164
 MyAnalysisMacroTrackletMulti.C:165
 MyAnalysisMacroTrackletMulti.C:166
 MyAnalysisMacroTrackletMulti.C:167
 MyAnalysisMacroTrackletMulti.C:168
 MyAnalysisMacroTrackletMulti.C:169
 MyAnalysisMacroTrackletMulti.C:170
 MyAnalysisMacroTrackletMulti.C:171
 MyAnalysisMacroTrackletMulti.C:172
 MyAnalysisMacroTrackletMulti.C:173
 MyAnalysisMacroTrackletMulti.C:174
 MyAnalysisMacroTrackletMulti.C:175
 MyAnalysisMacroTrackletMulti.C:176
 MyAnalysisMacroTrackletMulti.C:177
 MyAnalysisMacroTrackletMulti.C:178
 MyAnalysisMacroTrackletMulti.C:179
 MyAnalysisMacroTrackletMulti.C:180
 MyAnalysisMacroTrackletMulti.C:181
 MyAnalysisMacroTrackletMulti.C:182
 MyAnalysisMacroTrackletMulti.C:183
 MyAnalysisMacroTrackletMulti.C:184
 MyAnalysisMacroTrackletMulti.C:185
 MyAnalysisMacroTrackletMulti.C:186
 MyAnalysisMacroTrackletMulti.C:187
 MyAnalysisMacroTrackletMulti.C:188
 MyAnalysisMacroTrackletMulti.C:189
 MyAnalysisMacroTrackletMulti.C:190
 MyAnalysisMacroTrackletMulti.C:191
 MyAnalysisMacroTrackletMulti.C:192
 MyAnalysisMacroTrackletMulti.C:193
 MyAnalysisMacroTrackletMulti.C:194
 MyAnalysisMacroTrackletMulti.C:195
 MyAnalysisMacroTrackletMulti.C:196
 MyAnalysisMacroTrackletMulti.C:197
 MyAnalysisMacroTrackletMulti.C:198
 MyAnalysisMacroTrackletMulti.C:199
 MyAnalysisMacroTrackletMulti.C:200
 MyAnalysisMacroTrackletMulti.C:201
 MyAnalysisMacroTrackletMulti.C:202
 MyAnalysisMacroTrackletMulti.C:203
 MyAnalysisMacroTrackletMulti.C:204
 MyAnalysisMacroTrackletMulti.C:205
 MyAnalysisMacroTrackletMulti.C:206
 MyAnalysisMacroTrackletMulti.C:207
 MyAnalysisMacroTrackletMulti.C:208
 MyAnalysisMacroTrackletMulti.C:209
 MyAnalysisMacroTrackletMulti.C:210
 MyAnalysisMacroTrackletMulti.C:211
 MyAnalysisMacroTrackletMulti.C:212
 MyAnalysisMacroTrackletMulti.C:213
 MyAnalysisMacroTrackletMulti.C:214
 MyAnalysisMacroTrackletMulti.C:215
 MyAnalysisMacroTrackletMulti.C:216
 MyAnalysisMacroTrackletMulti.C:217
 MyAnalysisMacroTrackletMulti.C:218
 MyAnalysisMacroTrackletMulti.C:219
 MyAnalysisMacroTrackletMulti.C:220
 MyAnalysisMacroTrackletMulti.C:221
 MyAnalysisMacroTrackletMulti.C:222
 MyAnalysisMacroTrackletMulti.C:223
 MyAnalysisMacroTrackletMulti.C:224
 MyAnalysisMacroTrackletMulti.C:225
 MyAnalysisMacroTrackletMulti.C:226
 MyAnalysisMacroTrackletMulti.C:227
 MyAnalysisMacroTrackletMulti.C:228
 MyAnalysisMacroTrackletMulti.C:229
 MyAnalysisMacroTrackletMulti.C:230
 MyAnalysisMacroTrackletMulti.C:231
 MyAnalysisMacroTrackletMulti.C:232
 MyAnalysisMacroTrackletMulti.C:233
 MyAnalysisMacroTrackletMulti.C:234
 MyAnalysisMacroTrackletMulti.C:235
 MyAnalysisMacroTrackletMulti.C:236
 MyAnalysisMacroTrackletMulti.C:237
 MyAnalysisMacroTrackletMulti.C:238
 MyAnalysisMacroTrackletMulti.C:239
 MyAnalysisMacroTrackletMulti.C:240
 MyAnalysisMacroTrackletMulti.C:241
 MyAnalysisMacroTrackletMulti.C:242
 MyAnalysisMacroTrackletMulti.C:243
 MyAnalysisMacroTrackletMulti.C:244
 MyAnalysisMacroTrackletMulti.C:245
 MyAnalysisMacroTrackletMulti.C:246
 MyAnalysisMacroTrackletMulti.C:247
 MyAnalysisMacroTrackletMulti.C:248
 MyAnalysisMacroTrackletMulti.C:249
 MyAnalysisMacroTrackletMulti.C:250
 MyAnalysisMacroTrackletMulti.C:251
 MyAnalysisMacroTrackletMulti.C:252
 MyAnalysisMacroTrackletMulti.C:253
 MyAnalysisMacroTrackletMulti.C:254
 MyAnalysisMacroTrackletMulti.C:255
 MyAnalysisMacroTrackletMulti.C:256
 MyAnalysisMacroTrackletMulti.C:257
 MyAnalysisMacroTrackletMulti.C:258
 MyAnalysisMacroTrackletMulti.C:259
 MyAnalysisMacroTrackletMulti.C:260
 MyAnalysisMacroTrackletMulti.C:261
 MyAnalysisMacroTrackletMulti.C:262
 MyAnalysisMacroTrackletMulti.C:263
 MyAnalysisMacroTrackletMulti.C:264
 MyAnalysisMacroTrackletMulti.C:265
 MyAnalysisMacroTrackletMulti.C:266
 MyAnalysisMacroTrackletMulti.C:267
 MyAnalysisMacroTrackletMulti.C:268
 MyAnalysisMacroTrackletMulti.C:269
 MyAnalysisMacroTrackletMulti.C:270
 MyAnalysisMacroTrackletMulti.C:271
 MyAnalysisMacroTrackletMulti.C:272
 MyAnalysisMacroTrackletMulti.C:273
 MyAnalysisMacroTrackletMulti.C:274
 MyAnalysisMacroTrackletMulti.C:275
 MyAnalysisMacroTrackletMulti.C:276
 MyAnalysisMacroTrackletMulti.C:277
 MyAnalysisMacroTrackletMulti.C:278
 MyAnalysisMacroTrackletMulti.C:279
 MyAnalysisMacroTrackletMulti.C:280
 MyAnalysisMacroTrackletMulti.C:281
 MyAnalysisMacroTrackletMulti.C:282
 MyAnalysisMacroTrackletMulti.C:283
 MyAnalysisMacroTrackletMulti.C:284
 MyAnalysisMacroTrackletMulti.C:285
 MyAnalysisMacroTrackletMulti.C:286
 MyAnalysisMacroTrackletMulti.C:287
 MyAnalysisMacroTrackletMulti.C:288
 MyAnalysisMacroTrackletMulti.C:289
 MyAnalysisMacroTrackletMulti.C:290
 MyAnalysisMacroTrackletMulti.C:291
 MyAnalysisMacroTrackletMulti.C:292
 MyAnalysisMacroTrackletMulti.C:293
 MyAnalysisMacroTrackletMulti.C:294
 MyAnalysisMacroTrackletMulti.C:295
 MyAnalysisMacroTrackletMulti.C:296
 MyAnalysisMacroTrackletMulti.C:297
 MyAnalysisMacroTrackletMulti.C:298
 MyAnalysisMacroTrackletMulti.C:299
 MyAnalysisMacroTrackletMulti.C:300
 MyAnalysisMacroTrackletMulti.C:301
 MyAnalysisMacroTrackletMulti.C:302
 MyAnalysisMacroTrackletMulti.C:303
 MyAnalysisMacroTrackletMulti.C:304