From 5fdc214ba7efd6d9dc90c44242204a52e8224edb Mon Sep 17 00:00:00 2001 From: skowron Date: Sun, 27 Jun 2004 10:29:44 +0000 Subject: [PATCH] Fixing Coding Conventions --- EVGEN/AliGenHBTosl.cxx | 212 ++++++++++++++++++++++++++--------------- EVGEN/AliGenHBTosl.h | 48 +++++----- 2 files changed, 162 insertions(+), 98 deletions(-) diff --git a/EVGEN/AliGenHBTosl.cxx b/EVGEN/AliGenHBTosl.cxx index bac48365fac..f6c7357e31d 100644 --- a/EVGEN/AliGenHBTosl.cxx +++ b/EVGEN/AliGenHBTosl.cxx @@ -48,7 +48,6 @@ // // //////////////////////////////////////////////////////////// -#include #include @@ -67,6 +66,7 @@ #include "AliGenGeVSim.h" #include "AliGenHIJINGpara.h" + /***********************************************************/ ClassImp(AliGenHBTosl) @@ -78,13 +78,13 @@ AliGenHBTosl::AliGenHBTosl(): fQBackground(0x0), fQSecondSignal(0x0), fQSecondBackground(0x0), - fQRange(0.15), + fQRange(0.06), fQNBins(60), fGenerator(0x0), fBufferSize(5), - fNBinsToScale(Int_t(fQNBins*0.2)), - fDebug(0), - fMaxIterations(300), + fNBinsToScale(Int_t(fQNBins*0.1)), + fDebug(kFALSE), + fMaxIterations(1000), fMaxChiSquereChange(0.01), fMaxChiSquerePerNDF(1.5), fQRadius(8.0), @@ -92,7 +92,8 @@ AliGenHBTosl::AliGenHBTosl(): fSamplePhiMin(-0.01), fSamplePhiMax(TMath::TwoPi()+0.01), fSignalRegion(0.0), - fMinFill(300) + fMinFill(1000), + fLogFile(0x0) { //default constructor } @@ -106,14 +107,14 @@ AliGenHBTosl::AliGenHBTosl(Int_t n, Int_t pid): fQBackground(0x0), fQSecondSignal(0x0), fQSecondBackground(0x0), - fQRange(0.15), + fQRange(0.06), fQNBins(60), fGenerator(0x0), fBufferSize(5), - fNBinsToScale(Int_t(fQNBins*0.2)), - fDebug(0), + fNBinsToScale(Int_t(fQNBins*0.1)), + fDebug(kFALSE), fSignalShapeCreated(kFALSE), - fMaxIterations(300), + fMaxIterations(1000), fMaxChiSquereChange(0.01), fMaxChiSquerePerNDF(1.5), fQRadius(8.0), @@ -121,7 +122,8 @@ AliGenHBTosl::AliGenHBTosl(Int_t n, Int_t pid): fSamplePhiMin(-0.01), fSamplePhiMax(TMath::TwoPi()+0.01), fSignalRegion(0.0), - fMinFill(300) + fMinFill(1000), + fLogFile(0x0) { //default constructor } @@ -137,8 +139,9 @@ AliGenHBTosl::~AliGenHBTosl() delete fGenerator; delete fQSecondSignal; delete fQSecondBackground; - + delete fLogFile; } +/***********************************************************/ void AliGenHBTosl::Init() { @@ -175,36 +178,44 @@ void AliGenHBTosl::Init() */ fGenerator->SetOrigin(fOrigin[0],fOrigin[1],fOrigin[2]); - static const Double_t degtoradcf = 180./TMath::Pi(); + static const Double_t kDegToRadCF = 180./TMath::Pi(); fGenerator->SetMomentumRange(fPtMin,fPtMax); - fGenerator->SetPhiRange(degtoradcf*fPhiMin,degtoradcf*fPhiMax); + fGenerator->SetPhiRange(kDegToRadCF*fPhiMin,kDegToRadCF*fPhiMax); fGenerator->SetYRange(fYMin,fYMax); - fGenerator->SetThetaRange(degtoradcf*fThetaMin,degtoradcf*fThetaMax); + fGenerator->SetThetaRange(kDegToRadCF*fThetaMin,kDegToRadCF*fThetaMax); fGenerator->Init(); } - fQCoarseBackground = new TH3D("fQCoarseBackground","",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); - fQCoarseSignal = new TH3D("fQCoarseSignal","fQCoarseSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); +// fQCoarseBackground = new TH3D("fQCoarseBackground","",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); +// fQCoarseSignal = new TH3D("fQCoarseSignal","fQCoarseSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); +// fQCoarseBackground->Sumw2(); +// fQCoarseSignal->Sumw2(); + fQSignal = new TH3D("fQSignal1","fQSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); fQBackground = new TH3D("fQBackground1","fQBackground",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); fQSecondSignal = new TH3D("fQSignal2","fQSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); fQSecondBackground = new TH3D("fQBackground2","fQBackground",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); - fQCoarseBackground->Sumw2(); - fQCoarseSignal->Sumw2(); fQSignal->Sumw2(); fQBackground->Sumw2(); fQSecondSignal->Sumw2(); fQSecondBackground->Sumw2(); + + fLogFile = new ofstream("BadEvent",ios::out); + } /***********************************************************/ void AliGenHBTosl::Generate() { //the main method - Info("Generate","Attempts to generate %d particles.",fNpart); + + ofstream& logfile = *fLogFile; + logfile<<"Generate"<<"Attempts to generate "<Sumw2(); + FillCoarse(); //create coarse background - just to know the spectrum } + + fQCoarseSignal = new TH3D("fQCoarseSignal","fQCoarseSignal",fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange, fQNBins,-fQRange,fQRange); + fQCoarseSignal->Sumw2(); FillCoarseSignal();//create first coarse signal by brutal multplication coarse background and required function shape } @@ -310,7 +327,8 @@ void AliGenHBTosl::Generate() } TH3D* work = new TH3D("work","work",fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange); - + work->SetDirectory(0x0); + work->Sumw2(); Double_t*** chiarray = new Double_t** [fQNBins+1]; Double_t*** sigarray = new Double_t** [fQNBins+1]; @@ -349,20 +367,35 @@ void AliGenHBTosl::Generate() } } } - - printf("\n"); + + char msg[1000]; + logfile<GetXaxis()->GetBinCenter(30); + Double_t ty = work->GetYaxis()->GetBinCenter(30); + Double_t tz = work->GetZaxis()->GetBinCenter(k); + sprintf(msg,"% 6.5f ",GetQOutQSideQLongCorrTheorValue(tx,ty,tz)); + logfile<GetBinContent(1,1,k)); + sprintf(msg,"% 6.5f ",work->GetBinContent(30,30,k)); + logfile<GetZaxis()->GetBinCenter(zmax); - qside = work->GetYaxis()->GetBinCenter(ymax); - qout = work->GetXaxis()->GetBinCenter(xmax); + Double_t qlongc = work->GetZaxis()->GetBinCenter(zmax); + Double_t qsidec = work->GetYaxis()->GetBinCenter(ymax); + Double_t qoutc = work->GetXaxis()->GetBinCenter(xmax); - Info("Generate","Fill bin (%d,%d,%d)",xmax,ymax,zmax); + + sprintf(msg,"Generate Fill bin chi2(%d,%d,%d)=%f",xmax,ymax,zmax,chiarray[xmax][ymax][zmax]); + logfile<Uniform(qout-binwdh,qout+binwdh); - qside = gRandom->Uniform(qside-binwdh,qside+binwdh); - qlong = gRandom->Uniform(qlong-binwdh,qlong+binwdh); + qout = gRandom->Uniform(qoutc -binwdh, qoutc +binwdh); + qside = gRandom->Uniform(qsidec-binwdh, qsidec+binwdh); + qlong = gRandom->Uniform(qlongc-binwdh, qlongc+binwdh); TParticle* first = 0; while (j < genstack->GetNtrack()) @@ -484,7 +519,7 @@ void AliGenHBTosl::Generate() SetTrack(first,etmp,stack); SetTrack(second,etmp,stack); - Double_t y = GetQOutQSideQLongCorrTheorValue(qout,qside,qlong); + Double_t y = GetQOutQSideQLongCorrTheorValue(qoutc,qsidec,qlongc); sigarray[xmax][ymax][zmax] ++; chiarray[xmax][ymax][zmax] = scale*sigarray[xmax][ymax][zmax]/fQBackground->GetBinContent(xmax,ymax,zmax); @@ -494,7 +529,9 @@ void AliGenHBTosl::Generate() Mix(fStackBuffer,fQBackground,fQSecondSignal); //upgrate background Mix(stack,fQSignal,fQSecondBackground); //upgrate signal - + + delete work; + for (Int_t i = 1; i<=fQNBins; i++) { for (Int_t k = 1; k<=fQNBins; k++) @@ -706,6 +743,14 @@ Int_t AliGenHBTosl::GetThreeD(TParticle* first,TParticle* second, Double_t qout, void AliGenHBTosl::StartSignal() { //Starts the signal histograms + ofstream& logfile = *fLogFile; + logfile<<"\n\n\n\n"; + logfile<<"************************************************"<Reset(); } - const Double_t ndf = fQNBins*fQNBins*fQNBins; + StartSignalPass1(); + //We alread have detailed histograms and we do not need Coarse anymore + delete fQCoarseSignal; + delete fQCoarseBackground; + fQCoarseSignal = 0x0; + fQCoarseBackground = 0x0; + + + const Double_t kNDF = fQNBins*fQNBins*fQNBins; TH3D* work = new TH3D("work","work",fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange,fQNBins,-fQRange,fQRange); work->Sumw2(); @@ -767,7 +820,6 @@ void AliGenHBTosl::StartSignal() Bool_t shortloop = kTRUE; TCanvas* c1 = new TCanvas(); - StartSignalPass1(); printf("\n"); Info("StartSignal","\n\n\n\nSecond Pass\n\n\n\n"); @@ -775,8 +827,8 @@ void AliGenHBTosl::StartSignal() while ( ( (chisqrPerDF > fMaxChiSquereChange) || flag) && (niterations++ < fMaxIterations) ) { - printf("StartSignal\n"); - printf(" Row 1 Theory, 2 current value, 3 Chi2 \n"); + logfile<<"StartSignal\n"; + logfile<<" Row 1 Theory, 2 current value, 3 Chi2 \n"; Double_t chisqrnew = 0.0; flag = kFALSE; @@ -841,36 +893,41 @@ void AliGenHBTosl::StartSignal() } - printf("\n"); + char msg[1000]; - for (Int_t k = 1; k < 11; k++) + printf("\n"); + + for (Int_t k = 25; k < 36; k++) { - Double_t tx = work->GetXaxis()->GetBinCenter(1); - Double_t ty = work->GetYaxis()->GetBinCenter(1); + Double_t tx = work->GetXaxis()->GetBinCenter(30); + Double_t ty = work->GetYaxis()->GetBinCenter(30); Double_t tz = work->GetZaxis()->GetBinCenter(k); - printf("% 6.5f ",GetQOutQSideQLongCorrTheorValue(tx,ty,tz)); + sprintf(msg,"% 6.5f ",GetQOutQSideQLongCorrTheorValue(tx,ty,tz)); + logfile<GetBinContent(1,1,k)); + sprintf(msg,"%6.5f ",work->GetBinContent(30,30,k)); + logfile< 20) break; - cout<GetBinContent(1,1,1) - <<" "<GetBinContent(1,1,2) - <<" "<GetBinContent(1,1,3) - <<" "<GetBinContent(1,1,4) - <<" "<GetBinContent(1,1,5) + cout<GetBinContent(30,30,28) + <<" "<GetBinContent(30,30,29) + <<" "<GetBinContent(30,30,30) + <<" "<GetBinContent(30,30,31) + <<" "<GetBinContent(30,30,32) <<"\n"; fflush(0); @@ -1595,7 +1653,7 @@ void AliGenHBTosl::TestCoarseSignal() } /***********************************************************/ -void AliGenHBTosl::SetTrack(TParticle* p, Int_t& ntr) +void AliGenHBTosl::SetTrack(TParticle* p, Int_t& ntr) { //Shortcut to PushTrack(bla,bla,bla,bla.............) if (p->P() == 0.0) @@ -1628,7 +1686,7 @@ void AliGenHBTosl::SetTrack(TParticle* p, Int_t& ntr) } /***********************************************************/ -void AliGenHBTosl::SetTrack(TParticle* p, Int_t& ntr, AliStack* stack) +void AliGenHBTosl::SetTrack(TParticle* p, Int_t& ntr, AliStack* stack) const { //Shortcut to SetTrack(bla,bla,bla,bla.............) if (p->P() == 0.0) @@ -1697,11 +1755,13 @@ Double_t AliGenHBTosl::Rotate(Double_t x,Double_t y,Double_t z) TVector3 v(x,y,z); Double_t a1 = -TMath::ATan2(v.Y(),v.X()); - ::Info("Rotate","Xpr = %f Ypr = %f",xprime,yprime); - ::Info("Rotate","Calc sin = %f, and %f",sinphi,TMath::Sin(a1)); - ::Info("Rotate","Calc cos = %f, and %f",cosphi,TMath::Cos(a1)); - - + if (GetDebug()>5) + { + ::Info("Rotate","Xpr = %f Ypr = %f",xprime,yprime); + ::Info("Rotate","Calc sin = %f, and %f",sinphi,TMath::Sin(a1)); + ::Info("Rotate","Calc cos = %f, and %f",cosphi,TMath::Cos(a1)); + } + Double_t xprimezlength = TMath::Hypot(xprime,z); Double_t sintheta = z/xprimezlength; @@ -1738,17 +1798,17 @@ AliStack* AliGenHBTosl::RotateStack() Double_t AliGenHBTosl::GetQInvCorrTheorValue(Double_t qinv) const { //Function (deprecated) - static const Double_t factorsqrd = 0.197*0.197;//squared conversion factor SI<->eV + static const Double_t kFactorsqrd = 0.197*0.197;//squared conversion factor SI<->eV - return 1.0 + 0.5*TMath::Exp(-qinv*qinv*fQRadius*fQRadius/factorsqrd); + return 1.0 + 0.5*TMath::Exp(-qinv*qinv*fQRadius*fQRadius/kFactorsqrd); } /***********************************************************/ Double_t AliGenHBTosl::GetQOutQSideQLongCorrTheorValue(Double_t& out, Double_t& side, Double_t& lon) const { //Theoretical function. Wa want to get correlation of the shape of this function - static const Double_t factorsqrd = 0.197*0.197;//squared conversion factor SI<->eV - return 1.0 + 0.7*TMath::Exp(-fQRadius*fQRadius*(out*out+side*side+lon*lon)/factorsqrd); + static const Double_t kFactorsqrd = 0.197*0.197;//squared conversion factor SI<->eV + return 1.0 + 0.7*TMath::Exp(-fQRadius*fQRadius*(out*out+side*side+lon*lon)/kFactorsqrd); } /***********************************************************/ diff --git a/EVGEN/AliGenHBTosl.h b/EVGEN/AliGenHBTosl.h index dcca9b82801..c1ca4fe6add 100644 --- a/EVGEN/AliGenHBTosl.h +++ b/EVGEN/AliGenHBTosl.h @@ -56,6 +56,8 @@ class AliStack; class TParticle; class TVector; +#include + class AliGenHBTosl: public AliGenerator { public: @@ -93,8 +95,8 @@ class AliGenHBTosl: public AliGenerator Double_t GetQOutQSideQLongCorrTheorValue(Double_t& out, Double_t& side, Double_t& lon) const; Double_t Scale(TH3D* num,TH3D* den); - void SetTrack(TParticle* p, Int_t& ntr); - void SetTrack(TParticle* p, Int_t& ntr, AliStack* stack); + void SetTrack(TParticle* p, Int_t& ntr) ; + void SetTrack(TParticle* p, Int_t& ntr, AliStack* stack) const ; AliStack* RotateStack(); void SwapGeneratingHistograms(); @@ -103,40 +105,42 @@ class AliGenHBTosl: public AliGenerator Bool_t CheckParticle(TParticle* p, TParticle* aupair,AliStack* stack); private: TH3D* fQCoarseBackground;//Initial Background - TH3D* fQCoarseSignal;// - TH3D* fQSignal; - TH3D* fQBackground; + TH3D* fQCoarseSignal;//signal calculated by multiplying coarse background and model function + TH3D* fQSignal;//generating signal histogram + TH3D* fQBackground;//generating background histogram - TH3D* fQSecondSignal; - TH3D* fQSecondBackground; + TH3D* fQSecondSignal;//second signal histogram + TH3D* fQSecondBackground;//seconf background histogram - Float_t fQRange; - Int_t fQNBins; - AliGenerator* fGenerator; + Float_t fQRange;//range of generating histograms + Int_t fQNBins;//number of bins of generating histograms + AliGenerator* fGenerator;//input generator - TList* fStackBuffer; - Int_t fBufferSize; - Int_t fNBinsToScale; - Int_t fDebug; - Bool_t fSignalShapeCreated; + TList* fStackBuffer;//List with stacks + Int_t fBufferSize;//defines number of events used for background mixing + Int_t fNBinsToScale;//defines how many bins are used to calculate scaling factor + Bool_t fDebug;//debug flag + Bool_t fSignalShapeCreated;//flag indicating that generating histograms are ready Int_t fMaxIterations; //maximal nuber of iterations on startup Float_t fMaxChiSquereChange;//value of ChiSqr change in %, when sturtup process in stable Float_t fMaxChiSquerePerNDF;//value of the chi2 where generating histograms are considered as good - Double_t fQRadius; + Double_t fQRadius;//simulated radius - Int_t fPID; + Int_t fPID;//pid of particle //we limit mixing to some finit phi range to make it faster - Float_t fSamplePhiMin;// - Float_t fSamplePhiMax;// + Float_t fSamplePhiMin;//min phi + Float_t fSamplePhiMax;//max phi - Float_t fSignalRegion; + Float_t fSignalRegion;//Defines signal region - Int_t fMinFill; + Int_t fMinFill;//Minimal allowed fill in background histograms - fill is continued until all bins have more than this - Bool_t fSwapped; + Bool_t fSwapped;//indicates if generating histograms were already swapped + + ofstream* fLogFile;//! File where logs are stored ClassDef(AliGenHBTosl,1) }; -- 2.39.3