ROOT logo
class AliAnalysisGrid;

void RunAnalysisITS(TString pluginmode="",Int_t firstrun=177173,Int_t lastrun=177173,
		    Bool_t readMC=kFALSE,
		    Bool_t runAlign=kFALSE,
		    Bool_t runITS=kFALSE,
		    Bool_t runImpPar=kTRUE,
		    Bool_t runVtx=kFALSE,
		    Bool_t runSPD=kFALSE) 
{
  //
  // Macro to analyze ESDs from raw data reconstruction
  // A.Dainese, andrea.dainese@pd.infn.it
  //

  gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -g"); 

  //
  TString analysisMode = "grid"; // "local", "grid", or "proof" (not yet)

  Long64_t nentries=1000000000000000,firstentry=0;
  Bool_t useAlienPlugin=kFALSE;
  Bool_t uselibPWGPP=kTRUE;
  TString loadMacroPath="./";
  Bool_t readHLT=kFALSE;
  //

  if(analysisMode=="grid") {
    // Connect to AliEn
    TGrid::Connect("alien://");
  } else if(analysisMode=="proof") {
    // Connect to the PROOF cluster
    printf("PROOF mode not yet functional..\n");
    return;
    TProof::Open("alicecaf");
    //TProof::Reset("alicecaf");
  }

  // Load analysis libraries
  gSystem->Load("libANALYSIS.so");
  gSystem->Load("libANALYSISalice.so");
  if(uselibPWGPP) {gSystem->Load("libTENDER.so");gSystem->Load("libPWGPP.so");}

  // Create Alien plugin, if requested
  if(useAlienPlugin) {  
    AliAnalysisGrid *alienHandler = CreateAlienHandler(pluginmode,uselibPWGPP,firstrun,lastrun);
    if(!alienHandler) return;
  }

  TChain *chainESD = 0;
  if(!useAlienPlugin) {
    // Prepare input chain
    //    chainESD = CreateESDChain("/home/dainesea/alignData/RAWdata_CosmicsSum09/RecoSPD/chunk.",13,13);
    chainESD=new TChain("esdTree");
    //chainESD->Add("alien:///alice/cern.ch/user/s/sitta/output/000088361/ESDs/pass1/09000088361017.10/AliESDs.root");
    chainESD->Add("AliESDs.root");
  }

  // Create the analysis manager
  AliAnalysisManager *mgr  = new AliAnalysisManager("My Manager","My Manager");
  // Enable debug printouts
  mgr->SetDebugLevel(10);
  // Connect plug-in to the analysis manager
  if(useAlienPlugin) mgr->SetGridHandler(alienHandler);

  // Add ESD handler
  Bool_t readRP=kFALSE;
  AliESDInputHandler *esdH = 0;
  if(readRP) {
    esdH = new AliESDInputHandlerRP();
  } else {
    esdH = new AliESDInputHandler();
  }
  esdH->SetActiveBranches("ESDfriend");
  esdH->SetReadFriends(1);
  if(readHLT) esdH->SetReadHLT();
  mgr->SetInputEventHandler(esdH);
  if(readMC) {
    AliMCEventHandler  *mcH = new AliMCEventHandler();
    mgr->SetMCtruthEventHandler(mcH); 
  }
  //-------------------------------------------------------------------

  
  //-------------------------------------------------------------------
  // Analysis tasks (wagons of the train)   
  //
  TString taskName;
  
  if(runAlign) {
    if(!uselibPWGPP) gROOT->LoadMacro("AliAlignmentDataFilterITS.cxx++g");
    taskName="AddTaskAlignmentDataFilterITS.C"; 
    taskName.Prepend(loadMacroPath.Data());
    gROOT->LoadMacro(taskName.Data());
    AliAlignmentDataFilterITS *alignTask = AddTaskAlignmentDataFilterITS();
  }
  if(runITS) {
    if(!uselibPWGPP) gROOT->LoadMacro("AliAnalysisTaskITSTrackingCheck.cxx++g");
    taskName="AddTaskPerformanceITS.C"; 
    taskName.Prepend(loadMacroPath.Data());
    gROOT->LoadMacro(taskName.Data());
    AliAnalysisTaskITSTrackingCheck *itsTask = AddTaskPerformanceITS(readMC,kFALSE,kFALSE,0,1000000,1);  
  }
  if(runImpPar) {
    if(!uselibPWGPP) gROOT->LoadMacro("AliAnalysisTaskSEImpParRes.cxx++g");
    taskName="AddTaskImpParRes.C"; 
    taskName.Prepend(loadMacroPath.Data());
    gROOT->LoadMacro(taskName.Data());
    AliAnalysisTaskSEImpParRes *d0Task = AddTaskImpParRes(readMC,-1,kFALSE,kFALSE,0,1000000,0);  
  }
  if(runVtx) {
    if(!uselibPWGPP) gROOT->LoadMacro("AliAnalysisTaskVertexESD.cxx++g");
    taskName="AddTaskVertexESD.C"; 
    taskName.Prepend(loadMacroPath.Data());
    gROOT->LoadMacro(taskName.Data());
    AliAnalysisTaskVertexESD *vtxTask = AddTaskVertexESD(readMC);
  }
  if(runSPD) {
    if(!uselibPWGPP) gROOT->LoadMacro("AliAnalysisTaskSPD.cxx++g");
    taskName="AddTaskSPDQA.C"; 
    taskName.Prepend("$ALICE_ROOT/PWGPP/PilotTrain/");
    gROOT->LoadMacro(taskName.Data());
    AliAnalysisTaskSPD *spdTask = AddTaskSPDQA();
  }
  /*  
  if(!uselibPWGPP) gROOT->LoadMacro("AliTrackMatchingTPCITSCosmics.cxx++g");
  taskName="AddTaskTrackMatchingTPCITS.C"; 
  taskName.Prepend(loadMacroPath.Data());
  gROOT->LoadMacro(taskName.Data());
  AliTrackMatchingTPCITSCosmics *tpcitsTask = AddTaskTrackMatchingTPCITS();
  if(readHLT) tpcitsTask->SetReadHLTESD(kTRUE);  
  */

  
  // Apply the event selection
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  Bool_t bkgRej=kTRUE;
  //AliPhysicsSelectionTask *physSelTask = AddTaskPhysicsSelection(readMC,bkgRej);
  

  //
  // Run the analysis
  //    
  if(chainESD) printf("CHAIN HAS %d ENTRIES\n",(Int_t)chainESD->GetEntries());

  if(!mgr->InitAnalysis()) return;
  mgr->PrintStatus();
  if(analysisMode=="grid" && !useAlienPlugin) analysisMode="local";
  mgr->StartAnalysis(analysisMode.Data(),chainESD,nentries,firstentry);

  return;
}
//_____________________________________________________________________________
//
AliAnalysisGrid* CreateAlienHandler(TString pluginmode="test",
				    Bool_t uselibPWGPP=kFALSE,
				    Int_t firstrun,Int_t lastrun)
{
  // Check if user has a valid token, otherwise make one. This has limitations.
  // One can always follow the standard procedure of calling alien-token-init then
  //   source /tmp/gclient_env_$UID in the current shell.
   if (!AliAnalysisGrid::CreateToken()) return NULL;
   AliAnalysisAlien *plugin = new AliAnalysisAlien();
   // Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
   plugin->SetRunMode(pluginmode.Data());
   plugin->SetUser("dainesea");
   plugin->SetNtestFiles(1);
   // Set versions of used packages
   plugin->SetAPIVersion("V1.1x");
   plugin->SetROOTVersion("v5-26-00b-6");
   plugin->SetAliROOTVersion("v4-19-15-AN");
   // Define alien work directory where all files will be copied. Relative to alien $HOME.
   TString wdname="analysisITS_Runs_";
   wdname+=firstrun;
   wdname.Append("_");
   wdname+=lastrun;
   plugin->SetGridWorkingDir(wdname.Data());
   // Declare alien output directory. Relative to working directory.
   plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
   // Declare input data to be processed.
   // Method 1: Create automatically XML collections using alien 'find' command.
   // Define production directory LFN
   plugin->SetGridDataDir("/alice/data/2010/LHC10b");
   // Set data search pattern
   plugin->SetDataPattern("pass2/*AliESDs.root");
   //plugin->SetDataPattern("ESD.tag.root");
   Int_t n=0;
   FILE *in = fopen("/home/dainesea/alignData/RAWdata_pp10/goodruns_pp10.txt","r");
   if(!in) printf("run file not found\n");
   Int_t lines=0; 
   Float_t runnumber; 
   while(1) {
     Int_t ncol = fscanf(in,"%f",&runnumber);
     if(ncol<1) break;
     if(runnumber<firstrun || runnumber>lastrun) continue;
     TString runnumberstring="000";
     Int_t runnumberint=(Int_t)runnumber;
     runnumberstring+=runnumberint;
     n++; plugin->AddRunNumber(runnumberstring.Data());
   }
   fclose(in);
   plugin->SetNrunsPerMaster(n);
   // Method 2: Declare existing data files (raw collections, xml collections, root file)
   // If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir())
   // XML collections added via this method can be combined with the first method if
   // the content is compatible (using or not tags)
   // e.g.: find -z -x 80015 /alice/data/2009/LHC09c/000080015/ESDs/ ESD.tag.root > 80015.xml
   //plugin->AddDataFile("79876.xml");
   //plugin->AddDataFile("80015.xml");
   //plugin->AddDataFile("80261.xml");
   //   plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root");
   // Declare the analysis source files names separated by blancs. To be compiled runtime
   // using ACLiC on the worker nodes.
   if(!uselibPWGPP) {
     plugin->SetAnalysisSource("AliAnalysisTaskITSTrackingCheck.cxx AliAlignmentDataFilterITS.cxx AliAnalysisTaskSEImpParRes.cxx AliAnalysisTaskVertexESD.cxx");
     //plugin->SetAnalysisSource("AliAnalysisTaskVertexESD.cxx");
     //plugin->SetAnalysisSource("AliAlignmentDataFilterITS.cxx");
     //plugin->SetAnalysisSource("AliTrackMatchingTPCITSCosmics.cxx");
   }
   // Declare all libraries (other than the default ones for the framework. These will be
   // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here.
   //plugin->SetAdditionalLibs("AliAlignmentDataFilterITS.h AliAlignmentDataFilterITS.cxx libProof.so libRAWDatabase.so libRAWDatarec.so libCDB.so libSTEER.so libITSbase.so libITSrec.so");
   plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -g");
   if(!uselibPWGPP) {
     //plugin->SetAdditionalLibs("AliAlignmentDataFilterITS.h AliAlignmentDataFilterITS.cxx libProof.so libRAWDatabase.so libRAWDatarec.so libCDB.so libSTEER.so libITSbase.so libITSrec.so");
     plugin->SetAdditionalLibs("AliAlignmentDataFilterITS.h AliAlignmentDataFilterITS.cxx AliAnalysisTaskITSTrackingCheck.h AliAnalysisTaskITSTrackingCheck.cxx AliAnalysisTaskSEImpParRes.h AliAnalysisTaskSEImpParRes.cxx AliAnalysisTaskVertexESD.h AliAnalysisTaskVertexESD.cxx libGui.so libProof.so libRAWDatabase.so libRAWDatarec.so libCDB.so libSTEER.so libITSbase.so libITSrec.so");
     //plugin->SetAdditionalLibs("AliAnalysisTaskVertexESD.h AliAnalysisTaskVertexESD.cxx libProof.so libRAWDatabase.so libRAWDatarec.so libCDB.so libSTEER.so libITSbase.so libITSrec.so");
   } else {
     plugin->SetAdditionalLibs("libGui.so libProof.so libMinuit.so libRAWDatabase.so libRAWDatarec.so libCDB.so libSTEER.so libITSbase.so libITSrec.so libTPCbase.so libTPCrec.so libTRDbase.so libTRDrec.so libTENDER.so libPWGPP.so");
   }
   // Declare the output file names separated by blancs.
   // (can be like: file.root or file.root@ALICE::Niham::File)
   plugin->SetDefaultOutputs(kTRUE);
   // Optionally define the files to be archived.
   //   plugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:*.root@ALICE::NIHAM::File");
   plugin->SetOutputArchive("log_archive.zip:stdout,stderr");
   // Optionally set a name for the generated analysis macro (default MyAnalysis.C)
   plugin->SetAnalysisMacro("AnalysisITS.C");
   plugin->SetExecutable("analysisITS.sh");
   plugin->SetExecutableCommand("root.exe -b -q");
   // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore)
   plugin->SetSplitMaxInputFileNumber(5);
   // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
   //plugin->SetMaxInitFailed(5);
   // Optionally resubmit threshold.
   //plugin->SetMasterResubmitThreshold(90);
   // Optionally set time to live (default 30000 sec)
   plugin->SetTTL(80000);
   // Optionally set input format (default xml-single)
   plugin->SetInputFormat("xml-single");
   // Optionally modify the name of the generated JDL (default analysis.jdl)
   plugin->SetJDLName("TaskAnalysisITS.jdl");
   // Optionally modify job price (default 1)
   //plugin->SetPrice(1);      
   // Optionally modify split mode (default 'se')    
   plugin->SetSplitMode("se");
   // Optionally set the preferred SE    
   plugin->SetPreferedSE("ALICE::CNAF::SE");
   
   return plugin;
}
//-----------------------------------------------------------------------------
TChain *CreateESDChain(TString esdpath=".",Int_t ifirst=-1,Int_t ilast=-1) {


  TChain *chainESD = new TChain("esdTree");

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