ROOT logo
//*--AUTHOR A.RUSTAMOV
using namespace std;
#include "hmdctrackgcorrpar.h"
#include "hmdctrackgfieldpar.h"
#include "hmdctrackgcorrections.h"
#include "hgeomvector.h"
#include "hmdctrackgspline.h"
#include "hmdctrackgfield.h"
#include "hparamlist.h"
#include <iostream>
#include "stdlib.h"

ClassImp(HMdcTrackGCorrPar);


HMdcTrackGCorrPar::HMdcTrackGCorrPar(const Char_t* name, const Char_t* title, const Char_t* context)
    :HParCond(name,title,context)
{
    fieldmap = new HMdcTrackGFieldPar("FieldmapParameters","FieldmapParameters");
    corr  = new HMdcTrackGCorrections("Corrections","Corrections");
    spline= new HMdcTrackGSpline("SplineMomentum","SplineMomentum");
    corr1=new HMdcTrackGCorrections("Corrections1","Corrections1");
    corrScan0=new HMdcTrackGCorrections("scan0","scan0");
    corrScan1=new HMdcTrackGCorrections("scan1","scan1");
    corrScan2=new HMdcTrackGCorrections("scan2","scan2");
    
}

HMdcTrackGCorrPar::~HMdcTrackGCorrPar()
{
    if(fieldmap)  delete fieldmap;
    if(corr)   delete corr;
    if(corr1) delete corr1;
    if(corrScan0) delete corrScan0;
    if(corrScan1) delete corrScan1;
    if(corrScan2) delete corrScan2;
    if(spline) delete spline;
}

void HMdcTrackGCorrPar::putParams(HParamList* l)
{
    // Puts all params of HMdcDigitPar to the parameter list of
    // HParamList (which ist used by the io);
    if (!l) return;
    l->add("doCorrections",doCorrections);
    l->addObject("corr",         corr);
    l->addObject("corr1",        corr1);
    l->addObject("corrScan0",    corrScan0);
    l->addObject("corrScan1",    corrScan1);
    l->addObject("corrScan2",    corrScan2);
}
Bool_t HMdcTrackGCorrPar::getParams(HParamList* l)
{
    if (!l) return kFALSE;
    if(!( l->fill("doCorrections",&doCorrections))) return kFALSE;
    if(!( l->fillObject("corr",corr))) return kFALSE;
    if(!( l->fillObject("corr1",corr1))) return kFALSE;
    if(!( l->fillObject("corrScan0",corrScan0))){cout<<"no coorrScan0, but it is Ok"<<endl; }//return kFALSE;
    if(!( l->fillObject("corrScan1",corrScan1))){cout<<"no coorrScan1, but it is Ok"<<endl; }// return kFALSE;
    if(!( l->fillObject("corrScan2",corrScan2))){cout<<"no coorrScan2, but it is Ok"<<endl; }// return kFALSE;				
    return kTRUE;
}
void HMdcTrackGCorrPar::clear()
{
///    field->clear();
    corr ->clear();
}
//void HMdcTrackGCorrPar::initFieldMap(TString input)
//{
//  field->init(input);
//}

void HMdcTrackGCorrPar:: initCorrectionsScan(TString *inputE,TString *inputP,TString *inputE3,TString *inputP3)
{
    corrScan0->init(inputE[0],inputP[0],inputE3[0],inputP3[0]);
    corrScan1->init(inputE[1],inputP[1],inputE3[1],inputP3[1]);
    corrScan2->init(inputE[2],inputP[2],inputE3[2],inputP3[2]);
    
}
void HMdcTrackGCorrPar::getCorrScan(HMdcTrackGCorrections *corrScanAll[])
{
   corrScanAll[0]=corrScan0;
   corrScanAll[1]=corrScan1;
   corrScanAll[2]=corrScan2;
}

void HMdcTrackGCorrPar:: initCorrections(TString inputE,TString inputP,TString inputE3,TString inputP3)
{
    corr->init(inputE,inputP,inputE3,inputP3);
}



void HMdcTrackGCorrPar:: initCorrections1(TString inputE,TString inputP,TString inputE3,TString inputP3)
{
    corr1->init(inputE,inputP,inputE3,inputP3);
}
    

Double_t HMdcTrackGCorrPar:: calcMomentum(HGeomVector* vector,Bool_t cond,Double_t target)
{
    return spline->calcMomentum(vector,cond,target);
}
Double_t HMdcTrackGCorrPar:: calcMomentum(HMdcSeg *seg[2] ,Bool_t cond,Double_t target)
{
  return spline->calcMomentum(seg,cond,target);
}



Double_t HMdcTrackGCorrPar:: calcMomentum123(HMdcSeg *seg[2] ,Bool_t cond,Double_t target)
{
  return spline->calcMomentum123(seg,cond,target);
}
void HMdcTrackGCorrPar::getDistance(Double_t * dist)
{
   spline->getDistance(dist);
}

Double_t HMdcTrackGCorrPar::getMetaDistance(Double_t x,Double_t y,Double_t z)
{
  return ( spline->getMetaDistance(x,y,z));
}


void HMdcTrackGCorrPar::Streamer(TBuffer &R__b)
{
   // Stream an object of class HMdcTrackGCorrPar.
   
      UInt_t R__s, R__c;
         if (R__b.IsReading()) {
	    Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
	    HParCond::Streamer(R__b);
	    R__b >> doCorrections;
	    R__b >> corr;
	    
	    if(R__v>2)
	    {
	    R__b >> corr1;
	    R__b >> corrScan0;
	    R__b >> corrScan1;
	    R__b >> corrScan2;
	    
	    }
	     else if(R__v>1)
		 {
		    R__b >> corr1;
		    if(corrScan0) delete corrScan0;
		    corrScan0=new HMdcTrackGCorrections(*corr1);//corr1;
		    if(corrScan1) delete corrScan1;
		    corrScan1=new HMdcTrackGCorrections(*corr1);//corr1;
		    if(corrScan2) delete corrScan2;
		    corrScan2=new HMdcTrackGCorrections(*corr1);//corr1;
		 }
	    else{
	       if(corr1) delete corr1;
	       corr1=new HMdcTrackGCorrections(*corr);//corr;
	       if(corrScan0) delete corrScan0;
	       corrScan0=new HMdcTrackGCorrections(*corr);//corr;
	       if(corrScan1) delete corrScan1;
	       corrScan1=new HMdcTrackGCorrections(*corr);//corr;
	       if(corrScan2) delete corrScan2;
	       corrScan2=new HMdcTrackGCorrections(*corr);//corr;
	       
	    }
	    R__b.CheckByteCount(R__s, R__c, HMdcTrackGCorrPar::IsA());
	 } else {
	    R__c = R__b.WriteVersion(HMdcTrackGCorrPar::IsA(), kTRUE);
	 HParCond::Streamer(R__b);
	 R__b << doCorrections;
	 R__b << corr;
	 R__b << corr1;
	 R__b << corrScan0;
	 R__b << corrScan1;
	 R__b << corrScan2;
	 R__b.SetByteCount(R__c, kTRUE);
	 }
}

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