ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TFile.h>
#include <TAlienFile.h>
#include <TSystem.h>
#include <TGrid.h>
#include <TGridResult.h>
#include <Riostream.h>
#include <TObjArray.h>
#include <TKey.h>
#include <TStyle.h>
#include <TTree.h>
#include <TROOT.h>
#include <TPluginManager.h>
#include <TClass.h>
#include <iostream>
#include <stdio.h>
#include <TGeoGlobalMagField.h>
#include <TMap.h>
#include "AliRawReader.h"
#include "AliRawReaderRoot.h"
#include "AliRawReaderDate.h"
#include "AliITSQADataMakerRec.h"
#include "AliITSQASDDDataMakerRec.h"
#include "AliITSQAChecker.h"
#include "AliQAChecker.h"
#include "AliITSQASDDChecker.h"
#include "AliReconstructor.h"
#include "AliCDBManager.h"
#include "AliQAv1.h"
#include "AliMagF.h"
#include "AliGeomManager.h"
#include "AliITSInitGeometry.h"
#include "AliITSgeom.h"
#include "AliRecoParam.h"
#include "AliCDBPath.h"
#include "AliCDBEntry.h"
#include "AliRecoParam.h"
#include "AliDetectorRecoParam.h"
#include "AliITSReconstructor.h"
#include "AliITSRecPointContainer.h"
#include "AliLog.h"
#include "AliGRPObject.h"
#include "AliRunInfo.h"
#endif
void ITSQArecoparam(char *iFile, Int_t runNb=150000, Int_t idet=2, Int_t FirstEvt=0, Int_t MaxEvts=1000000)
{
  TString namefile(iFile);
  if(namefile.Contains("alien"))
    {
      TGrid::Connect("alien://"); 
      if(!gGrid) {
	printf("gGrid not found! exit macro\n");
	return;
      }
    }
  gStyle->SetPalette(1);
  Int_t ic=0;
  AliRawReader *rd=NULL; 
  if(strstr(iFile,".root")!=0){rd = new AliRawReaderRoot(iFile,FirstEvt);}
  else{rd=new AliRawReaderDate(iFile,FirstEvt);}
  //Int_t runNumber = rd->GetRunNumber();
  cout << "ITS Quality Assurance Prototype for run "<< runNb << endl; 
  //TStopwatch mytimer;
  //TString namefile(iFile);
  // Set OCDB if needed
  AliCDBManager* man = AliCDBManager::Instance();
  if (!man->IsDefaultStorageSet()) {
    printf("Setting a local default storage and run number \n");
    //  if(namefile.Contains("alien")){
      man->SetDefaultStorage("alien://folder=/alice/data/2011/OCDB");
      //}
      //else{man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");}
    man->SetRun(runNb);
    AliQAv1::SetQARefStorage("local://$ALICE_ROOT/QARef") ;
  }
  AliCDBManager::Instance()->GetAll(Form("ITS/Calib/*"));
  

  AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");

  AliGRPObject *fGRPData=NULL;
  
  TMap* m = dynamic_cast<TMap*>(entry->GetObject());  // old GRP entry

    if (m) {
       printf("Found a TMap in GRP/GRP/Data, converting it into an AliGRPObject");
       m->Print();
       fGRPData = new AliGRPObject();
       fGRPData->ReadValuesFromMap(m);
    }

    else {
       printf("Found an AliGRPObject in GRP/GRP/Data, reading it");
       fGRPData = dynamic_cast<AliGRPObject*>(entry->GetObject());  // new GRP entry
       entry->SetOwner(0);
    }


 if (!fGRPData) {
     printf("Error   No GRP entry found in OCDB!");
     return;
  }


  TString lhcState = fGRPData->GetLHCState();
  if (lhcState==AliGRPObject::GetInvalidString()) {
    printf("Error  GRP/GRP/Data entry:  missing value for the LHC state ! Using UNKNOWN");
    lhcState = "UNKNOWN";
  }

  TString beamType = fGRPData->GetBeamType();
  if (beamType==AliGRPObject::GetInvalidString()) {
    printf("Error   GRP/GRP/Data entry:  missing value for the beam type ! Using UNKNOWN");
    beamType = "UNKNOWN";
  }

  Float_t beamEnergy = fGRPData->GetBeamEnergy();
  if (beamEnergy==AliGRPObject::GetInvalidFloat()) {
    printf("Error   GRP/GRP/Data entry:  missing value for the beam energy ! Using 0");
    beamEnergy = 0;
  }

  TString runType = fGRPData->GetRunType();
  if (runType==AliGRPObject::GetInvalidString()) {
    printf("Error  GRP/GRP/Data entry:  missing value for the run type ! Using UNKNOWN");
    runType = "UNKNOWN";
  }

  Int_t activeDetectors = fGRPData->GetDetectorMask();
  if (activeDetectors==AliGRPObject::GetInvalidUInt()) {
    printf("Error  GRP/GRP/Data entry:  missing value for the detector mask ! Using 1074790399");
    activeDetectors = 1074790399;
  }

  AliRunInfo *fRunInfo = new AliRunInfo(lhcState, beamType, beamEnergy, runType, activeDetectors);
  fRunInfo->Dump();

 if ( TGeoGlobalMagField::Instance()->IsLocked() ) {
    if (TGeoGlobalMagField::Instance()->GetField()->TestBit(AliMagF::kOverrideGRP)) {
      printf("ExpertMode!!! GRP information will be ignored !");
      printf("ExpertMode!!! Running with the externally locked B field !");
    }
    else {
      printf("Destroying existing B field instance!");
      delete TGeoGlobalMagField::Instance();
    }    
  }
  if ( !TGeoGlobalMagField::Instance()->IsLocked() ) {
    // Construct the field map out of the information retrieved from GRP.
    Bool_t ok = kTRUE;
    // L3
    Float_t l3Current = fGRPData->GetL3Current((AliGRPObject::Stats)0);
    if (l3Current == AliGRPObject::GetInvalidFloat()) {
      printf("Error :  GRP/GRP/Data entry:  missing value for the L3 current !");
      ok = kFALSE;
    }
    
    Char_t l3Polarity = fGRPData->GetL3Polarity();
    if (l3Polarity == AliGRPObject::GetInvalidChar()) {
      printf("Error:   GRP/GRP/Data entry:  missing value for the L3 polarity !");
      ok = kFALSE;
    }

   // Dipole
    Float_t diCurrent = fGRPData->GetDipoleCurrent((AliGRPObject::Stats)0);
    if (diCurrent == AliGRPObject::GetInvalidFloat()) {
      printf("Error  GRP/GRP/Data entry:  missing value for the dipole current !");
      ok = kFALSE;
    }

    Char_t diPolarity = fGRPData->GetDipolePolarity();
    if (diPolarity == AliGRPObject::GetInvalidChar()) {
      printf("Error GRP/GRP/Data entry:  missing value for the dipole polarity !");
      ok = kFALSE;
    }


   Int_t  polConvention = fGRPData->IsPolarityConventionLHC() ? AliMagF::kConvLHC : AliMagF::kConvDCS2008;
   Bool_t uniformB = fGRPData->IsUniformBMap();
   
   if (ok) { 
     AliMagF* fld = AliMagF::CreateFieldMap(TMath::Abs(l3Current) * (l3Polarity ? -1:1), 
					    TMath::Abs(diCurrent) * (diPolarity ? -1:1), 
					    polConvention,uniformB,beamEnergy, beamType.Data());
     if (fld) {
       TGeoGlobalMagField::Instance()->SetField( fld );
       TGeoGlobalMagField::Instance()->Lock();
       printf("Running with the B field constructed out of GRP !");
     }
     else printf("Fatal Failed to create a B field map !");
   }
   else printf("Fatal  B field is neither set nor constructed from GRP ! Exitig...");
  }
  



  AliITSQADataMakerRec *itsQAdm = new AliITSQADataMakerRec(kTRUE,idet,0); //online kTRUE
  itsQAdm->SetWriteExpert() ;
  itsQAdm->SetRunNumber(runNb);  
  //________________________For the RecPoints____________________________________
  /************************************************/
  TPluginManager* pluginManager=NULL;
  TPluginHandler* pluginHandler=NULL; 
  AliReconstructor* reconstructor = NULL;
  AliITSRecPointContainer* rpcont=NULL;
  AliGeomManager::LoadGeometry("geometry.root");
  AliGeomManager::ApplyAlignObjsFromCDB("ITS");
  //   ITS initializations
  
  AliITSInitGeometry initgeom;
  AliITSgeom *geom = initgeom.CreateAliITSgeom();
  printf("Geometry name: %s\n",(initgeom.GetGeometryName()).Data());
  
  printf("Loading reconstruction parameter objects for detector ITS\n");
  AliRecoParam fRecoParam; 
  AliCDBPath path("ITS","Calib","RecoParam");
  AliCDBEntry *entry2=AliCDBManager::Instance()->Get(path.GetPath());
  Bool_t cacheStatus = AliCDBManager::Instance()->GetCacheFlag();
  if(!entry2){printf("Couldn't find RecoParam entry in OCDB for detector ITS");entry2=NULL;}
  else {
    TObject *recoParamObj = entry2->GetObject();
    if (dynamic_cast<TObjArray*>(recoParamObj)) {
      printf("RecoParam TObjArray\n");
      fRecoParam.AddDetRecoParamArray(0,dynamic_cast<TObjArray*>(recoParamObj));
    }
    else if (dynamic_cast<AliDetectorRecoParam*>(recoParamObj)) {
      printf("RecoParam AliDetectorRecoParam\n");
      printf("Single set of reconstruction parameters found for detector ITS");
      (dynamic_cast<AliDetectorRecoParam*>(recoParamObj))->SetAsDefault();
      fRecoParam.AddDetRecoParam(0,(dynamic_cast<AliDetectorRecoParam*>(recoParamObj)));
    }
    else {printf("Error: No valid RecoParam object found in the OCDB for detector ITS");}
    entry2->SetOwner(0);
  }
  if(!cacheStatus)entry2->SetObject(NULL);
  if(!cacheStatus){ delete entry2;}
  
  // load the reconstructor object
 pluginManager = gROOT->GetPluginManager();
  TString detName = "ITS";
  TString recName = "Ali" + detName + "Reconstructor";  
  
pluginHandler = pluginManager->FindHandler("AliReconstructor", "ITS");
  // if not, add a plugin for it
  if (!pluginHandler) {
    printf("defining plugin for ITS\n");
    TString libs = gSystem->GetLibraries();
    if (libs.Contains("lib" + detName + "base.so") ||
	(gSystem->Load("lib" + detName + "base.so") >= 0)) {pluginManager->AddHandler("AliReconstructor", detName,recName, detName + "rec", recName + "()");}
    else {pluginManager->AddHandler("AliReconstructor", detName,recName, detName, recName + "()");}
    pluginHandler = pluginManager->FindHandler("AliReconstructor", detName);
  }
  if (pluginHandler && (pluginHandler->LoadPlugin() == 0)) {reconstructor = (AliReconstructor*) pluginHandler->ExecPlugin(0);}
  if (fRecoParam.GetDetRecoParamArray(0) && !AliReconstructor::GetRecoParam(0)) {
    const AliDetectorRecoParam *par = fRecoParam.GetDetRecoParam(0);
    reconstructor->Init();
    reconstructor->SetRecoParam(par);
  }
  
  /*AliITSRecPointContainer**/ rpcont=AliITSRecPointContainer::Instance();
  rpcont->PrepareToRead();

  Int_t cycleLength = 5;  
  //cout << "Processing Run " << runNumber << endl;
  cout << "Init: " << AliQAv1::kRAWS << endl;
  
  TObjArray **objArray= itsQAdm->Init(AliQAv1::kRAWS, cycleLength);
  cout<<"raw tobjarray :"<<objArray<<"\n"<<endl;
  for(Int_t spec = 0 ; spec < 5 ; spec++){
    if(spec==1){
      itsQAdm->SetEventSpecie(AliRecoParam::kCosmic);
      AliQAv1::Instance()->SetEventSpecie(AliRecoParam::kCosmic);
      itsQAdm->InitRaws();
    }
    else{continue;}
  }
  itsQAdm->StartOfCycle(AliQAv1::kRAWS,runNb,kFALSE);
  /*********************************************************************/

    cout << "Init: " << AliQAv1::kRECPOINTS << endl;
    TObjArray **objArray1=  itsQAdm->Init(AliQAv1::kRECPOINTS, cycleLength);
    cout<<"recpoint tobjarray :"<<objArray1<<"\n"<<endl;
    for(Int_t spec = 0 ; spec < 5 ; spec++){
      if(spec==1){
	itsQAdm->SetEventSpecie(AliRecoParam::kCosmic);
	AliQAv1::Instance()->SetEventSpecie(AliRecoParam::kCosmic);
	itsQAdm->InitRecPoints();
      }
      else{continue;}
    }
    itsQAdm->StartOfCycle(AliQAv1::kRECPOINTS,runNb,kTRUE);

  /*********************************************************************/
  Int_t iev = 0;
  while(rd->NextEvent() && iev < MaxEvts ) {
    cout<<">>>>>>>   Processing event number: "<<++iev<<endl;
    /*******************************************************/
    if(itsQAdm->IsCycleDone()) {
      cout << "end of cycle" << endl;
      AliQAChecker::Instance()->SetRunNumber(AliCDBManager::Instance()->GetRun());	
      itsQAdm->EndOfCycle(AliQAv1::kRAWS);
      itsQAdm->StartOfCycle(AliQAv1::kRAWS,ic++,kFALSE);
    }
    /******************************************************/
    /*************************************************/

      if(itsQAdm->IsCycleDone()) {
	cout << "end of cycle" << endl;
	AliQAChecker::Instance()->SetRunNumber(AliCDBManager::Instance()->GetRun());
	itsQAdm->EndOfCycle(AliQAv1::kRECPOINTS);
	itsQAdm->StartOfCycle(AliQAv1::kRECPOINTS,ic,kTRUE);
      } 
 
    /*************************************************/
    cout<<"Beginning Exec"<<endl;
    cout<<"AliQAv1::kRAWS   "<<AliQAv1::kRAWS<<endl;
    itsQAdm->SetEventSpecie(AliRecoParam::kCosmic);
    AliQAv1::Instance()->SetEventSpecie(AliRecoParam::kCosmic);
    itsQAdm->Exec(AliQAv1::kRAWS,rd);
    /***************************************************/
    //  if(kRecPoints){
      cout<<"AliQAv1::kRECPOINTS   "<<AliQAv1::kRECPOINTS<<endl;
      cout << "DigitsToRecPoints" << endl;
      TTree* fTreeR = new TTree("TreeR", "Reconstructed Points Container"); //make a tree
      Char_t option[5];

      if(idet==0)sprintf(option,"ALL");
      else if(idet==1)sprintf(option,"SPD");
      else if(idet==2)sprintf(option,"SDD");
      else if(idet==3)sprintf(option,"SSD");
      printf("\t\t===========>option is %s\n",option);

      rpcont->PrepareToRead();
      reconstructor->Reconstruct(rd,fTreeR);

      itsQAdm->SetEventSpecie(AliRecoParam::kCosmic);
      AliQAv1::Instance()->SetEventSpecie(AliRecoParam::kCosmic)  ; 
      itsQAdm->Exec(AliQAv1::kRECPOINTS,fTreeR);
      cout<<"Finishing Exec"<<endl;
    
      ((AliITSReconstructor*)reconstructor)->ResetRecPoints();
      delete fTreeR; 
      fTreeR=NULL; 
      /*****************************************************/
    }

  cout << "end RAWS cycle: " << AliQAv1::kRAWS << endl;
  cout << "refStorage: " << AliQAv1::GetQARefStorage() << endl;
  cout << "end of cycle 2" << endl;
  AliQAChecker::Instance()->SetRunNumber(AliCDBManager::Instance()->GetRun());
  itsQAdm->EndOfCycle(AliQAv1::kRAWS);   
  cout << "Raws QA completed for " << iev << " events" << endl;
  /*******************************************************************/

    AliQAChecker::Instance()->SetRunNumber(AliCDBManager::Instance()->GetRun());
    itsQAdm->EndOfCycle(AliQAv1::kRECPOINTS);
    cout << "RecPoints QA completed for " << iev << " events" << endl;

  /*******************************************************************/
  itsQAdm->Finish(); // write to the output File

  cout << "Call AliITSQASDDDataMakerRec destructor" << endl;
  delete itsQAdm;
  itsQAdm=NULL;

}

void ITSQArecoparam(Int_t runNb=150000,Int_t year=2011,Char_t period[10]="LHC11a",Int_t idet=2,Int_t FirstEvt=0, Int_t MaxEvts=1000000)
{
  //TString namefile(iFile);
  //if(namefile.Contains("alien"))
  //{
      TGrid::Connect("alien://");
      if(!gGrid) {
        printf("gGrid not found! exit macro\n");
        return;
      }
      //}

  gSystem->AddIncludePath("-I. -I$ALICE_ROOT/include");

  char path2[200];

  sprintf(path2,"/alice/data/");
  printf("path %s\n",path2);
  char rawfilename[200];
  sprintf(rawfilename,"%04i/%s/%09i/raw/%02i%09i*.*.root",year,period,runNb,year-2000,runNb);


  Int_t number=0;

  TGridResult *gr = gGrid->Query(path2,rawfilename);
  if (gr->GetEntries() < 1) {
    printf("In this run there are not raws files: Exit macro\n");
    return;
  }
  //if(gr->GetEntries() > 10) number=3;
  //else number=3;
  Bool_t chunkok=kFALSE;
  TString filenamedef; //= gr->GetKey(number,"turl");
  //printf("-> FILE %s \n",filename);
  while(chunkok==kFALSE || number<gr->GetEntries())
    {
      const char* filename = gr->GetKey(number,"turl");
      printf("-> FILE %s \n",filename);
      TString namefile(filename);
      if(namefile.Contains(".10.root")==kFALSE){chunkok=kTRUE; filenamedef.Form("%s",filename); break;} 
      else{
	chunkok=kFALSE;
	number++;
      }
      if(number==gr->GetEntries()-1) {chunkok=kTRUE; filenamedef.Form("%s",filename); break;}       
    }

  char *filetouse=(char*)filenamedef.Data();//=filenamedef.Data(); //=NULL;
  //sprintf(filetouse,"%s",(char*)filenamedef.Data());

  printf("File to use = %s\n\n",filetouse);

  Int_t runn=runNb;

  printf("Run: %d \n",runn);

  ITSQArecoparam(filetouse,runn,idet,FirstEvt,MaxEvts);

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