+++ /dev/null
-const static Int_t iRICH = 3;//0-1-3
-const static Bool_t IsRichUp=kFALSE;
-const static Int_t kEventsPerFile=50;
-
-enum EGenTypes {kGun0,kGun1,kGun7,kPP7,kPara};
-const static EGenTypes kGen=kPara;
-
-Int_t iPIPE = 0;//central before RICH
-Int_t iITS = 0;
-Int_t iTPC = 0;
-Int_t iTRD = 0;
-Int_t iTOF = 0;
-Int_t iFRAME = 0;
-
-Int_t iMAG = 0;//central after RICH
-Int_t iCRT = 0;
-Int_t iHALL = 0;
-
-Int_t iPHOS = 0;
-
-Int_t iSTART = 0;//forward
-Int_t iFMD = 0;
-Int_t iSHIL = 0;
-Int_t iABSO = 1;
-Int_t iPMD = 0;
-Int_t iDIPO = 0;
-Int_t iEMCAL = 0;
-Int_t iVZERO = 0;
-Int_t iMUON = 0;
-Int_t iZDC = 0;
-
-AliRICH *gRICH;
-
-void Config()
-{
- ::Info("kir","Start RICH VERSION %i debug %i",iRICH,gAlice->GetDebug());
-
- int n,pid,chamber;
- double p;
- Geant3(); File(); Decayer(); Field(); Other();
-
-
- if(IsRichUp) AliRICHParam::AngleRot(0);
- AliRICH *pRICH;
- switch(iRICH){
- case 0:
- gRICH=new AliRICHv0("RICH","coarse RICH for material budget");
- break;
- case 1:
- gRICH=new AliRICHv1("RICH","detailed RICH for full simulation");
- break;
- case 3:
- gRICH=new AliRICHv3("RICH","old parametrised RICH with rotation");
- break;
- }
- switch(kGen){
- case kPP7: Pythia7(pid=kPiPlus,p=4); break;
- case kGun7: Gun7(pid=kProton); break;
- case kGun1: Gun1(n=1,pid=kPiPlus,p=4,chamber=4); break;
- case kGun0: Gun1(n=1,pid=kNeutron,p=4,chamber=4); break;
- case kPara: Para(); break;
- default: Fatal("Config","No generator"); break;
- }
- ::Info("kir","Stop.");
-}//void Config()
-
-void Gun1(Int_t iNprim,Int_t iPID,Double_t p,Int_t iChamber)
-{
- Double_t theta=gRICH->C(iChamber)->ThetaD();
- Double_t phi =gRICH->C(iChamber)->PhiD();
- theta-=2;
- ::Info("kir-Gun1","%i primarie(s) of %i PID with p=%f GeV at (%f,%f)",iNprim,iPID,p,theta,phi);
-
- AliGenFixed *pGen=new AliGenFixed(iNprim);
- pGen->SetMomentum(p);
- pGen->SetPhiRange(phi);
- pGen->SetThetaRange(theta);
- pGen->SetOrigin(0,0,0);
- pGen->SetPart(iPID);
- pGen->Init();
-}//Gun()
-
-void Para()
-{
- Int_t iNprim=85700;
- ::Info("kir-Para","%i primaries",iNprim);
-
- AliGenHIJINGpara *pGen=new AliGenHIJINGpara(iNprim);
- pGen->SetMomentumRange(0,999); //GeV
- pGen->SetPhiRange(0,360); //degree
- pGen->SetThetaRange(Eta2Theta(8),Eta2Theta(-8)); //degree
- pGen->SetOrigin(0,0,0); //IP, cm
- pGen->SetSigma(0,0,0); //IP sigma, cm
- pGen->Init();
-}
-
-
-void Gun7(Int_t iPID)
-{
- ::Info("kir-Gun7","7 primaries of %i PID with 1.5 < p < 4.5 GeV/c",iPID);
- AliGenCocktail *pCocktail=new AliGenCocktail();
- for(int i=1;i<=7;i++){
- AliGenFixed *pFixed=new AliGenFixed(1);
- pFixed->SetMomentum(1.5+(i-1)*0.5);
- pFixed->SetPhiRange(gRICH->C(i)->PhiD()+3);
- pFixed->SetThetaRange(gRICH->C(i)->ThetaD()+2);
- pFixed->SetOrigin(0,0,0);
- pFixed->SetPart(iPID);
- pCocktail->AddGenerator(pFixed,Form("Fixed %i",i),1);
- }
- pCocktail->Init();
-}
-
-void Pythia7(Int_t iPID,Double_t p)
-{
- ::Info("kir-Pythia","7 primaries of %i PID with p=%f GeV plus Pythia",iPID,p);
- AliGenCocktail *pCocktail=new AliGenCocktail();
- for(int i=1;i<=7;i++){
- AliGenFixed *pFixed=new AliGenFixed(1);
- pFixed->SetMomentum(p);
- pFixed->SetPhiRange(gRICH->C(i)->PhiD());
- pFixed->SetThetaRange(gRICH->C(i)->ThetaD()+2);
- pFixed->SetOrigin(0,0,0);
- pFixed->SetPart(iPID);
- pCocktail->AddGenerator(pFixed,Form("Fixed %i",i),1);
- }
-
- AliGenPythia *pPythia = new AliGenPythia(-1);
- pPythia->SetMomentumRange(0,999999);
- pPythia->SetPhiRange(0,360);
- pPythia->SetThetaRange(0., 180.);
- pPythia->SetYRange(-12,12);
- pPythia->SetPtRange(0,1000);
- pPythia->SetStrucFunc(kCTEQ4L);
- pPythia->SetProcess(kPyMb);
- pPythia->SetEnergyCMS(14000.);
-
- pCocktail->AddGenerator(pPythia,"Pythia",1);
- pCocktail->Init();
-}
-
-
-
-void Scan()
-{
-}
-
-
-void File()
-{
- ::Info("kir-File","Create galice.root, %i events per file",kEventsPerFile);
-
- AliRunLoader *pRL = AliRunLoader::Open("galice.root",AliConfig::fgkDefaultEventFolderName,"recreate");
- if(!pRL)
- Fatal("my/AliceConfig.C::File","Can not instatiate the Run Loader");
-
- pRL->SetCompressionLevel(2);
- pRL->SetNumberOfEventsPerFile(kEventsPerFile);
- gAlice->SetRunLoader(pRL);
-}
-
-void Geant3()
-{
- ::Info("kir-Geant3","Initialize the actual MC code.");
-
- gSystem->Load("libgeant321.so");
- new TGeant3("C++ Interface to Geant");
-}//void Geant3()
-
-void Decayer()
-{
- ::Info("kir-Decayer","Initialise external decayer.");
- TVirtualMCDecayer *pDecayer = new AliDecayerPythia();
- pDecayer->SetForceDecay(kAll);
- pDecayer->Init();
- gMC->SetExternalDecayer(pDecayer);
-
- gMC->SetProcess("DCAY",1);
- gMC->SetProcess("PAIR",1);
- gMC->SetProcess("COMP",1);
- gMC->SetProcess("PHOT",1);
- gMC->SetProcess("PFIS",0);
- gMC->SetProcess("DRAY",0);
- gMC->SetProcess("ANNI",1);
- gMC->SetProcess("BREM",1);
- gMC->SetProcess("MUNU",1);
- gMC->SetProcess("CKOV",1);
- gMC->SetProcess("HADR",1);
- gMC->SetProcess("LOSS",2);
- gMC->SetProcess("MULS",1);
- gMC->SetProcess("RAYL",1);
-
- Float_t cut = 1.e-3; // 1MeV cut by default
- Float_t tofmax = 1.e10;
-
- gMC->SetCut("CUTGAM", cut);
- gMC->SetCut("CUTELE", cut);
- gMC->SetCut("CUTNEU", cut);
- gMC->SetCut("CUTHAD", cut);
- gMC->SetCut("CUTMUO", cut);
- gMC->SetCut("BCUTE", cut);
- gMC->SetCut("BCUTM", cut);
- gMC->SetCut("DCUTE", cut);
- gMC->SetCut("DCUTM", cut);
- gMC->SetCut("PPCUTM", cut);
- gMC->SetCut("TOFMAX", tofmax);
-}
-
-void Field()
-{
- ::Info("kir-Field","Set default magnetic field L3 0.4T.");
- //AliMagFMaps* pField = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1);
- gAlice->SetField();
-}
-
-void Other()
-{
- ::Info("kir-Other","Init all other detectors");
- AliBODY *BODY = new AliBODY("BODY", "Alice envelop");
-
- if(iMAG){
- new AliMAG("MAG", "Magnet");
- }
-
- if(iABSO){
- new AliABSOv0("ABSO", "Muon Absorber");
- }
-
- if(iDIPO){
- new AliDIPOv2("DIPO", "Dipole version 2");
- }
-
- if(iHALL){
- new AliHALL("HALL", "Alice Hall");
- }
-
- if(iFRAME){
- AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
- FRAME->SetHoles(1);
- }
-
- if(iSHIL){
- new AliSHILv2("SHIL", "Shielding Version 2");
- }
-
- if(iPIPE){
- AliPIPEv0("PIPE", "Beam Pipe");
- }
-
- if(iITS){
- AliITSvPPRasymm *ITS = new AliITSvPPRasymm("ITS","New ITS PPR detailed version with asymmetric services");
- ITS->SetMinorVersion(2); // don't touch this parameter if you're not an ITS developer
- ITS->SetReadDet(kFALSE); // don't touch this parameter if you're not an ITS developer
- ITS->SetThicknessDet1(200.); // detector thickness on layer 1 must be in the range [100,300]
- ITS->SetThicknessDet2(200.); // detector thickness on layer 2 must be in the range [100,300]
- ITS->SetThicknessChip1(200.); // chip thickness on layer 1 must be in the range [150,300]
- ITS->SetThicknessChip2(200.); // chip thickness on layer 2 must be in the range [150,300]
- ITS->SetRails(0); // 1 --> rails in ; 0 --> rails out
- ITS->SetCoolingFluid(1); // 1 --> water ; 0 --> freon
- ITS->SetEUCLID(0);
- }
-
- if(iTPC){
- AliTPC *TPC = new AliTPCv2("TPC", "Default");
- TPC->SetSecAU(-1);
- TPC->SetSecAL(-1);
- }
-
- if(iTOF){
- new AliTOFv2FHoles("TOF", "TOF with Holes");
- }
-
- if(iZDC){
- new AliZDCv2("ZDC", "normal ZDC");
- }
-
- if(iTRD){
- AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
- TRD->SetGasMix(1);
- TRD->SetPHOShole();
- TRD->SetRICHhole();
- AliTRDsim *TRDsim = TRD->CreateTR();
- }
-
- if(iFMD){
- AliFMD *FMD = new AliFMDv1("FMD", "normal FMD");
- FMD->SetRingsSi1(256);
- FMD->SetRingsSi2(128);
- FMD->SetSectorsSi1(20);
- FMD->SetSectorsSi2(40);
- }
-
- if(iMUON){
- new AliMUONv1("MUON", "default");
- }
- if(iPHOS){
- new AliPHOSv1("PHOS", "IHEP");
- }
-
- if(iPMD){
- new AliPMDv1("PMD", "normal PMD");
- }
-
- if(iSTART){
- new AliSTARTv1("START", "START Detector");
- }
-
- if(iEMCAL){
- new AliEMCALv1("EMCAL", "EMCALArch1a");
- }
-
- if(iCRT){
- new AliCRTv0("CRT", "normal ACORDE");
- }
-
- if(iVZERO){
- new AliVZEROv2("VZERO", "normal VZERO");
- }
-
- ::Info("kir-Other","Stop.");
-}//Other()
-
-Float_t Eta2Theta(Float_t arg)
-{
- return (180./TMath::Pi())*2.*atan(exp(-arg));
-}
-
kPMD=8192,kDIPO=16384,kEMCAL=32768,kVZERO=65536,kMUON=131072,kZDC=262144,kSHILD=524288};
enum EProcesses {kDCAY=1,kPAIR=2,kCOMP=4,kPHOT=8,kPFIS=16,kDRAY=32,kANNI=64,kBREM=128,kMUNU=256,kCKOV=512,kHADR=1024,kLOSS=2048,kMULS=4096,
kRAYL=8192};
- enum EGenTypes {kGun1,kGun7,kHijing,kHijingPara};
- KirConfig();
- ~KirConfig() {Info("ctor","");fMain->CleanUp(); delete fMain;}
- void AddDetector(Int_t id) {fDetectors+=id;}
- void RemoveDetector(Int_t id) {fDetectors-=id;}
- void AddProcess(Int_t id) {fProcesses+=id;}
- void RemoveProcess(Int_t id) {fProcesses-=id;}
- Bool_t IsDetectorOn(Int_t id) const{return fDetectors&id;}
- Bool_t IsProcessOn(Int_t id) const{return fProcesses&id;}
- void CreateConfigFile();
+ enum EGenTypes {kGun1,kGun7,kPythia7,kHijing,kHijingPara};
+
+ KirConfig(const char*sFileName);
+ ~KirConfig() {Info("ctor","");fMain->Cleanup(); delete fMain;}
+ void AddDetector(Int_t id) {fDetectors+=id;}
+ void RemoveDetector(Int_t id) {fDetectors-=id;}
+ void AddProcess(Int_t id) {fProcesses+=id;}
+ void RemoveProcess(Int_t id) {fProcesses-=id;}
+ Bool_t IsDetectorOn(Int_t id) const{return fDetectors&id;}
+ Bool_t IsProcessOn(Int_t id) const{return fProcesses&id;}
+ Float_t Eta2Theta(Float_t arg) const{return (180./TMath::Pi())*2.*TMath::ATan(TMath::Exp(-arg));}
+ void CreateConfigFile();
protected:
TGMainFrame *fMain;//main window poiter
TGComboBox *fRichVersionCombo;
TGComboBox *fGenTypeCombo,*fPartIdCombo,*fMomCombo;
Int_t fDetectors;
Int_t fProcesses;
+ char *fFileName;
};//class KirConfig
-
-KirConfig::KirConfig()
+KirConfig::KirConfig(const char *sFileName)
{
+ fFileName=sFileName;
// Create main frame
fMain=new TGMainFrame(gClient->GetRoot(),500,400);
// fMain->Connect("CloseWindow()","KirConfig",this,"CloseWindow()");
pHorFrame->AddFrame(pVerFrame=new TGVerticalFrame(pHorFrame,100,200));
pVerFrame->AddFrame(pRichGrpFrm=new TGGroupFrame(pHorFrame,"RICH"));
pRichGrpFrm->AddFrame(fRichVersionCombo=new TGComboBox(pRichGrpFrm,100));
- fRichVersionCombo->AddEntry("version 0",0);
- fRichVersionCombo->AddEntry("version 1",1);
- fRichVersionCombo->AddEntry("version 3",3);
- fRichVersionCombo->Select(3);
- fRichVersionCombo->Resize(140,20);
+ fRichVersionCombo->AddEntry("version 0",0); fRichVersionCombo->AddEntry("version 1",1); fRichVersionCombo->AddEntry("version 3",3);
+ fRichVersionCombo->Select(1); fRichVersionCombo->Resize(140,20);
pRichGrpFrm->AddFrame(fRichTopChkBtn=new TGCheckButton(pRichGrpFrm,"Rotate to Top?"));
//Generator
pVerFrame->AddFrame(pGenGrpFrm=new TGGroupFrame(pHorFrame,"Generator"));
pGenGrpFrm->AddFrame(fGenTypeCombo=new TGComboBox(pGenGrpFrm,100));
- fGenTypeCombo->AddEntry("gun to central chamber",kGun1);
- fGenTypeCombo->AddEntry("gun to all chambers",kGun7);
- fGenTypeCombo->AddEntry("HIJING",kHijing);
- fGenTypeCombo->AddEntry("parametrized HIJING",kHijingPara);
+ fGenTypeCombo->AddEntry("gun to central chamber",kGun1); fGenTypeCombo->AddEntry("gun to all chambers",kGun7);
+ fGenTypeCombo->AddEntry("7 guns on top of Pythia",kPythia7);
+ fGenTypeCombo->AddEntry("HIJING",kHijing); fGenTypeCombo->AddEntry("parametrized HIJING",kHijingPara);
fGenTypeCombo->Select(kGun1);
fGenTypeCombo->Resize(160,20);
fMomCombo->Resize(160,20);
// Magnetic Field
pVerFrame->AddFrame(pFldGrpFrm=new TGGroupFrame(pHorFrame,"Magnetic Field"));
- pFldGrpFrm->AddFrame(fMagFldChkBtn=new TGCheckButton(pFldGrpFrm,"On/Off?"));
- fMagFldChkBtn->SetState(kButtonDown);
+ pFldGrpFrm->AddFrame(fMagFldChkBtn=new TGCheckButton(pFldGrpFrm,"On/Off"));
+ fMagFldChkBtn->SetState(kButtonUp);
//Detectors
pHorFrame->AddFrame(pDetButGrp=new TGButtonGroup(pHorFrame,"Detectors"));
pDetButGrp->Connect("Pressed(Int_t)","KirConfig",this,"AddDetector(Int_t)");
pHorFrame->AddFrame(pProcButGrp=new TGButtonGroup(pHorFrame,"Processes"));
pProcButGrp->Connect("Pressed(Int_t)","KirConfig",this,"AddProcess(Int_t)");
pProcButGrp->Connect("Released(Int_t)","KirConfig",this,"RemoveProcess(Int_t)");
- new TGCheckButton(pProcButGrp,"DCAY",kDCAY)); pProcButGrp->SetButton(kDCAY);
- new TGCheckButton(pProcButGrp,"PAIR",kPAIR)); pProcButGrp->SetButton(kPAIR);
- new TGCheckButton(pProcButGrp,"COMP",kCOMP)); pProcButGrp->SetButton(kCOMP);
+ new TGCheckButton(pProcButGrp,"DCAY decay",kDCAY)); pProcButGrp->SetButton(kDCAY);
+ new TGCheckButton(pProcButGrp,"PAIR pair production",kPAIR)); pProcButGrp->SetButton(kPAIR);
+ new TGCheckButton(pProcButGrp,"COMP Compton",kCOMP)); pProcButGrp->SetButton(kCOMP);
new TGCheckButton(pProcButGrp,"PHOT",kPHOT)); pProcButGrp->SetButton(kPHOT);
- new TGCheckButton(pProcButGrp,"PFIS",kPFIS));
- new TGCheckButton(pProcButGrp,"DRAY",kDRAY));
- new TGCheckButton(pProcButGrp,"ANNI",kANNI)); pProcButGrp->SetButton(kANNI);
- new TGCheckButton(pProcButGrp,"BREM",kBREM)); pProcButGrp->SetButton(kBREM);
+ new TGCheckButton(pProcButGrp,"PFIS Photofission",kPFIS));
+ new TGCheckButton(pProcButGrp,"DRAY delta electrons",kDRAY));
+ new TGCheckButton(pProcButGrp,"ANNI annihilation",kANNI)); pProcButGrp->SetButton(kANNI);
+ new TGCheckButton(pProcButGrp,"BREM Bremstraslung",kBREM)); pProcButGrp->SetButton(kBREM);
new TGCheckButton(pProcButGrp,"MUNU",kMUNU)); pProcButGrp->SetButton(kMUNU);
- new TGCheckButton(pProcButGrp,"CKOV",kCKOV)); pProcButGrp->SetButton(kCKOV);
- new TGCheckButton(pProcButGrp,"HADR",kHADR)); pProcButGrp->SetButton(kHADR);
+ new TGCheckButton(pProcButGrp,"CKOV Cerenkovs",kCKOV)); pProcButGrp->SetButton(kCKOV);
+ new TGCheckButton(pProcButGrp,"HADR Hadronic interactions ",kHADR)); pProcButGrp->SetButton(kHADR);
new TGCheckButton(pProcButGrp,"LOSS",kLOSS)); pProcButGrp->SetButton(kLOSS);
new TGCheckButton(pProcButGrp,"MULS",kMULS)); pProcButGrp->SetButton(kMULS);
new TGCheckButton(pProcButGrp,"RAYL",kRAYL)); pProcButGrp->SetButton(kRAYL);
-
+//File
fMain->AddFrame(pFileHorFrm=new TGHorizontalFrame(fMain,100,200));
pFileHorFrm->AddFrame(pCreateBtn=new TGTextButton(pFileHorFrm,"Create"));
pCreateBtn->Connect("Clicked()","KirConfig",this,"CreateConfigFile()");
+ pFileHorFrm->AddFrame(new TGLabel(pFileHorFrm,Form(" config file as %s",fFileName)));
fMain->MapSubwindows();
fMain->Layout();
void KirConfig::CreateConfigFile()
{
- char *sName="ConfigRich.C";
- FILE *fp=fopen(sName,"w"); if(!fp){Info("CreateConfigFile","Cannot open output file:%sn",sName);return;}
+ FILE *fp=fopen(fFileName,"w"); if(!fp){Info("CreateConfigFile","Cannot open output file:%sn",fFileName);return;}
fprintf(fp,"void Config()\n");
fprintf(fp,"{\n");
}
//Generator
switch(fGenTypeCombo->GetSelected()){
- case kHijingPara: fprintf(fp," pGenerator->AddGenerator(new AliGenHIJINGpara(85700),\"HIJING para\",1);\n"); break;
- case kGun7: break;
+ case kHijingPara:
+ fprintf(fp," AliGenHIJINGpara *pGen=new AliGenHIJINGpara(91100);\n");
+ fprintf(fp," pGen->SetMomentumRange(0,999); pGen->SetPhiRange(0,360); pGen->SetThetaRange(%f,%f);\n",Eta2Theta(8),Eta2Theta(-8));
+ fprintf(fp," pGen->SetOrigin(0,0,0); pGen->SetSigma(0,0,0);\n");
+ fprintf(fp," pGen->Init();\n");
+ break;
case kGun1:
fprintf(fp," AliGenFixed *pGen=new AliGenFixed(1);\n");
fprintf(fp," pGen->SetPart(%i); pGen->SetMomentum(%3.1f); pGen->SetOrigin(0,0,0);\n",fPartIdCombo->GetSelected(),float(fMomCombo->GetSelected())/10);
fprintf(fp," pGen->SetPhiRange(pRICH->C(4)->PhiD()); pGen->SetThetaRange(pRICH->C(4)->ThetaD()-2);\n");
fprintf(fp," pGen->Init();\n");
- break;
+ break;
+ case kGun7:
+ fprintf(fp," AliGenCocktail *pCocktail=new AliGenCocktail();\n");
+ fprintf(fp," for(int i=1;i<=7;i++){\n");
+ fprintf(fp," AliGenFixed *pFixed=new AliGenFixed(1);\n");
+ fprintf(fp," pFixed->SetPart(%i); pFixed->SetMomentum(2.5+i*0.4); pFixed->SetOrigin(0,0,0);\n",fPartIdCombo->GetSelected());
+ fprintf(fp," pFixed->SetPhiRange(gRICH->C(i)->PhiD()); pFixed->SetThetaRange(gRICH->C(i)->ThetaD()-2);\n");
+ fprintf(fp," pCocktail->AddGenerator(pFixed,Form(\"Fixed %i\",i),1);\n }\n");
+ fprintf(fp," pCocktail->Init();\n");
+ break;
+ case kPythia7:
+ fprintf(fp," AliGenCocktail *pCocktail=new AliGenCocktail();\n");
+ fprintf(fp," for(int i=1;i<=7;i++){\n");
+ fprintf(fp," AliGenFixed *pFixed=new AliGenFixed(1);\n");
+ fprintf(fp," pFixed->SetPart(%i); pFixed->SetMomentum(2.5+i*0.4); pFixed->SetOrigin(0,0,0);\n",fPartIdCombo->GetSelected());
+ fprintf(fp," pFixed->SetPhiRange(gRICH->C(i)->PhiD()); pFixed->SetThetaRange(gRICH->C(i)->ThetaD()-2);\n");
+ fprintf(fp," pCocktail->AddGenerator(pFixed,Form(\"Fixed %i\",i),1);\n }\n");
+ fprintf(fp," AliGenPythia *pPythia = new AliGenPythia(-1);\n");
+ fprintf(fp," pPythia->SetMomentumRange(0,999999); pPythia->SetPhiRange(20,80); pPythia->SetThetaRange(75,115);\n");
+ fprintf(fp," pPythia->SetYRange(-12,12); pPythia->SetPtRange(0,1000); pPythia->SetStrucFunc(kCTEQ4L);\n");
+ fprintf(fp," pPythia->SetProcess(kPyMb); pPythia->SetEnergyCMS(14000);\n");
+ fprintf(fp," pCocktail->AddGenerator(pPythia,\"Pythia\",1);\n");
+ fprintf(fp," pCocktail->Init();\n");
+ break;
}
//Other detectors
if(IsDetectorOn(kMAG)) fprintf(fp,"\n new AliMAG(\"MAG\",\"Magnet\");\n");
fprintf(fp,"\n ::Info(\"RICH private config\",\"Stop\");\n");
fprintf(fp,"}\n");
- fclose(fp);
- gApplication->Terminate(0);
+ fclose(fp);
+
+// fMain->CloseWindow();
}//CreateConfigFile
KirConfig *p;
void CreateConfig()
{
- p=new KirConfig;
+ p=new KirConfig("Config.C");
}
+//__________________________________________________________________________________________________
+void H_SD()
+{
+ Info("H_SD","Start.");
+
+ for(Int_t iEventN=0;iEventN<a->GetEventsPerRun();iEventN++){//events loop
+ al->GetEvent(iEventN);
+
+ if(!rl->TreeH()) rl->LoadHits(); al->LoadHeader(); al->LoadKinematics();//from
+ if(!rl->TreeS()) rl->MakeTree("S"); r->MakeBranch("S");//to
+
+ for(Int_t iPrimN=0;iPrimN<rl->TreeH()->GetEntries();iPrimN++){//prims loop
+ rl->TreeH()->GetEntry(iPrimN);
+ for(Int_t iHitN=0;iHitN<r->Hits()->GetEntries();iHitN++){//hits loop ???
+ AliRICHhit *pHit=r->Hits()->At(iHitN);
+
+ TVector2 x2 = r->Param()->ShiftToWirePos(r->C(pHit->C())->Glob2Loc(pHit->OutX3()));
+
+ Int_t iTotQdc=r->Param()->TotQdc(x2,pHit->Eloss());
+
+ Int_t iPadXmin,iPadXmax,iPadYmin,iPadYmax;
+ r->Param()->Loc2Area(x2,iPadXmin,iPadYmin,iPadXmax,iPadYmax);
+ cout<<"left-down=("<<iPadXmin<<","<<iPadYmin<<") right-up=("<<iPadXmax<<','<<iPadYmax<<')'<<endl;
+ for(Int_t iPadY=iPadYmin;iPadY<=iPadYmax;iPadY++)
+ for(Int_t iPadX=iPadXmin;iPadX<=iPadXmax;iPadX++){
+ Double_t padQdc=iTotQdc*r->Param()->FracQdc(x2,iPadX,iPadY);
+ cout<<padQdc<<endl;
+ if(padQdc>0.1) r->AddSDigit(pHit->C(),iPadX,iPadY,padQdc,al->Stack()->Particle(pHit->GetTrack())->GetPdgCode(),pHit->GetTrack());
+ }
+ }//hits loop
+ }//prims loop
+ rl->TreeS()->Fill();
+ rl->WriteSDigits("OVERWRITE");
+ }//events loop
+
+ rl->UnloadHits(); al->UnloadHeader(); al->UnloadKinematics();
+ rl->UnloadSDigits();
+ Info("H_SD","Stop.");
+}//H_SD()
+//__________________________________________________________________________________________________
Int_t countContrib[7][3];
void MainTrank()
{
TStopwatch sw;TDatime time;
- OLD_S_SD(); SD_D(); AliRICHClusterFinder *z=new AliRICHClusterFinder(r); z->Exec();//delete z;
+ H_SD(); SD_D(); AliRICHClusterFinder *z=new AliRICHClusterFinder(r); z->Exec();//delete z;
cout<<"\nInfo in <MainTrank>: Start time: ";time.Print();
cout<<"Info in <MainTrank>: Stop time: ";time.Set(); time.Print();
cout<<"Info in <MainTrank>: Time used: ";sw.Print();
Info("OLD_S_SD","Stop.");
}//OLD_S_SD()
//__________________________________________________________________________________________________
-void H_SD()
-{
- Info("H_SD","Start.");
-
- for(Int_t iEventN=0;iEventN<a->GetEventsPerRun();iEventN++){//events loop
- al->GetEvent(iEventN);
-
- if(!rl->TreeH()) rl->LoadHits();//from
- if(!rl->TreeS()) rl->MakeTree("S"); r->MakeBranch("S");//to
-
- for(Int_t iPrimN=0;iPrimN<rl->TreeH()->GetEntries();iPrimN++){//prims loop
- rl->TreeH()->GetEntry(iPrimN);
- for(Int_t iHitN=0;iHitN<r->Hits()->GetEntries();iHitN++){//hits loop ???
- AliRICHhit *pHit=r->Hits()->At(iHitN);
- Int_t sector;
- Int_t iTotQdc=r->Param()->Loc2TotQdc(pHit->OutX3(),pHit->Eloss(),pHit->Pid(),sector);
-
- Int_t iPadXmin,iPadXmax,iPadYmin,iPadYmax;
- r->Param()->Loc2Area(pHit->OutX3(),iPadXmin,iPadYmin,iPadXmax,iPadYmax);
- cout<<"left-down=("<<iPadXmin<<","<<iPadYmin<<") right-up=("<<iPadXmax<<','<<iPadYmax<<')'<<endl;
- for(Int_t iPadY=iPadYmin;iPadY<=iPadYmax;iPadY++)
- for(Int_t iPadX=iPadXmin;iPadX<=iPadXmax;iPadX++){
- Double_t padQdc=iTotQdc*r->Param()->Loc2PadFrac(pHit->OutX3(),iPadX,iPadY);
- if(padQdc>0.1)r->AddSDigit(pHit->C(),iPadX,iPadY,padQdc,pHit->GetTrack());
- }
- }//hits loop
- }//prims loop
- rl->TreeS()->Fill();
- rl->WriteSDigits("OVERWRITE");
- }//events loop
-
- rl->UnloadHits();
- rl->UnloadSDigits();
- Info("H_SD","Stop.");
-}//H_SD()
-//__________________________________________________________________________________________________
void SD_D()
{
Info("SD_D","Start.");
Error("ReadAlice","galice.root broken, removing all this garbage then init new one");
new AliRun("gAlice","Alice experiment system");
gAlice->SetDebug(-1);
- gAlice->Init("ConfigRich.C");
+ gAlice->Init("Config.C");
r=(AliRICH*)gAlice->GetDetector("RICH");
return kFALSE;
}
delete p;
}//PrintGeo()
//__________________________________________________________________________________________________
+
+Double_t Gain(Double_t *x,Double_t *par)
+{
+ return AliRICHParam::GainSag(x[0],par[0]);
+}
+
void TestResponse()
{
TCanvas *pC=new TCanvas("c","Amplification test",900,800);
pC->Divide(1,2);
pC->cd(1);
- TF1 *pF1=new TF1("f1","9e-6*pow(x,4)+2e-7*pow(x,3)-0.0316*pow(x,2)-3e-4*x+25.367",-70,70);
- pF1->Draw();
+ TF1 *pF1=new TF1("f1",Gain,-70,70,1); pF1->SetParameters(1,1);pF1->SetParNames("Sector");
+ TF1 *pF2=new TF1("f2",Gain,-70,70,1); pF2->SetParameters(2,1);pF2->SetParNames("Sector");
+ pF1->Draw();pF2->Draw("same");
pC->cd(2);
Double_t deltay=AliRICHParam::SectorSizeY()/nPoints;
for(int i=0;i<nPoints;i++){
- apH[i]=new TH1F(Form("h%i",i),"Qdc for Photon;QDC;Counts",1000,0,1000); apH[i]->SetLineColor(i);
+ apH[i]=new TH1F(Form("h%i",i),"Qdc for Photon;QDC;Counts",500,0,500); apH[i]->SetLineColor(i);
pStack->Add(apH[i]);
pLeg->AddEntry(apH[i],Form("@(0,%5.2f->%5.2f)",starty+i*deltay,starty+i*deltay-AliRICHParam::SectorSizeY()/2));
}
- TVector3 x3(0,0,0);
- Int_t sector=10;
+ TVector2 x2(0,0);
// AliRICHParam::ResetWireSag();
for(Int_t i=0;i<10000;i++){//events loop
for(int j=0;j<nPoints;j++){
- x3.SetY(starty-j*deltay);
- apH[j]->Fill(AliRICHParam::Loc2TotQdc(x3,400e-9,500000,sector));
+ x2.Set(0,starty-j*deltay);
+ apH[j]->Fill(AliRICHParam::TotQdc(x2,0));
}
}
pStack->Draw("nostack");
void TestSD()
{
Info("TestSD","Creating test sdigits.");
- rl->MakeTree("S");r->MakeBranch("S");
-
- for(Int_t iEventN=0;iEventN<a->GetEventsPerRun();iEventN++){//events loop
- al->GetEvent(iEventN);
-
- if(!rl->TreeH()) rl->LoadHits();//from
- if(!rl->TreeS()) rl->MakeTree("S"); r->MakeBranch("S");//to
-
- for(Int_t iPrimN=0;iPrimN<rl->TreeH()->GetEntries();iPrimN++){//prims loop
- rl->TreeH()->GetEntry(iPrimN);
- for(Int_t iHitN=0;iHitN<3;iHitN++){//hits loop ???
- AliRICHhit *pHit=r->Hits()->At(iHitN);
- TVector3 globX3(pHit->X(),pHit->Y(),pHit->Z());
- TVector3 locX3=r->C(pHit->C())->Glob2Loc(globX3);
-
- Int_t sector;
- Int_t iTotQdc=r->Param()->Loc2TotQdc(locX3,pHit->Eloss(),pHit->Pid(),sector);
-
- Int_t iPadXmin,iPadXmax,iPadYmin,iPadYmax;
- r->Param()->Loc2Area(locX3,iPadXmin,iPadYmin,iPadXmax,iPadYmax);
- cout<<"left-down=("<<iPadXmin<<","<<iPadYmin<<") right-up=("<<iPadXmax<<','<<iPadYmax<<')'<<endl;
- for(Int_t iPadY=iPadYmin;iPadY<=iPadYmax;iPadY++)
- for(Int_t iPadX=iPadXmin;iPadX<=iPadXmax;iPadX++){
- Float_t iPadQdc=iTotQdc*r->Param()->Loc2PadFrac(locX3,iPadX,iPadY);
- Int_t padx,pady; r->Param()->Loc2Pad(locX3.X(),locX3.Y(),padx,pady);
- cout<<"hit="<<iHitN<<" ("<<locX3.X()<<','<<locX3.Y()<<")("<<padx<<','<<pady<<") cur pad("<<iPadX<<","<<iPadY<<") qtot="<<iTotQdc<<" qfrac="<<r->Param()->Loc2PadFrac(locX3,iPadX,iPadY)<<endl;
- }
-// r->AddSDigit(pHit->C(),padx,pady,r->Param()->Local2PadQdc(localX3,padx,pady),pHit->GetTrack());
- }//hits loop
- }//prims loop
- rl->TreeS()->Fill();
- rl->WriteSDigits("OVERWRITE");
- }//events loop
-
- rl->UnloadHits();
- rl->UnloadSDigits();
-
- rl->TreeS()->Fill();
- rl->WriteSDigits("OVERWRITE");
- rl->UnloadSDigits();
- cout<<endl;r->Sdigits()->Print();
- r->ResetSDigits();
- Info("TestSdigits","Stop.");
+ TVector3 hit(426.55,246.28,17.21);
+ TVector2 x2=r->C(4)->Glob2Loc(hit);
+ Int_t iTotQdc=r->Param()->TotQdc(x2,624e-9);
+ Int_t iPadXmin,iPadXmax,iPadYmin,iPadYmax;
+ Int_t padx,pady;
+ Int_t sec=r->Param()->Loc2Pad(x2,padx,pady);
+ r->Param()->Loc2Area(x2,iPadXmin,iPadYmin,iPadXmax,iPadYmax);
+ Info("TestSD","Initial hit (%7.2f,%7.2f,%7.2f)->(%7.2f,%7.2f)->(%4i,%4i,%4i) gives %i charge",
+ hit.X(),hit.Y(),hit.Z(),x2.X(),x2.Y(),sec,padx,pady,iTotQdc);
+
+ cout<<"left-down=("<<iPadXmin<<","<<iPadYmin<<") right-up=("<<iPadXmax<<','<<iPadYmax<<')'<<endl;
+ for(Int_t iPadY=iPadYmin;iPadY<=iPadYmax;iPadY++)
+ for(Int_t iPadX=iPadXmin;iPadX<=iPadXmax;iPadX++)
+ cout<<r->Param()->FracQdc(x2,iPadX,iPadY)<<endl;
+ Info("TestSD","Stop.");
}//void TestSdigits()
//__________________________________________________________________________________________________
void TestC()
void TestSeg()
{
AliRICHParam *p=r->Param();
- Int_t padx,pady;
+ Int_t padx,pady,sec;
Double_t x,y;
- Double_t dz=p->DeadZone();
- Double_t sx=p->SectorSizeX(); Double_t sy=p->SectorSizeY(); Double_t px=p->PcSizeX(); Double_t py=p->PcSizeY();
- cout<<endl;
- Info(" 1- 1","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-px/2 , -py/2 ,padx,pady),padx,pady);
- Info(" 48- 1","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-sx/2-dz , -py/2 ,padx,pady),padx,pady);
- Info(" 49- 1","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-sx/2 , -py/2 ,padx,pady),padx,pady);
- Info(" 96- 1","sec=%i padx=%3i pady=%3i",p->Loc2Pad( sx/2 , -py/2 ,padx,pady),padx,pady);
- Info(" 97- 1","sec=%i padx=%3i pady=%3i",p->Loc2Pad( sx/2+dz , -py/2 ,padx,pady),padx,pady);
- Info("144- 1","sec=%i padx=%3i pady=%3i",p->Loc2Pad( px/2 , -py/2 ,padx,pady),padx,pady);
- cout<<endl;
- Info(" 1- 80","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-px/2 , -dz/2 ,padx,pady),padx,pady);
- Info(" 48- 80","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-sx/2-dz , -dz/2 ,padx,pady),padx,pady);
- Info(" 49- 80","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-sx/2 , -dz/2 ,padx,pady),padx,pady);
- Info(" 96- 80","sec=%i padx=%3i pady=%3i",p->Loc2Pad( sx/2 , -dz/2 ,padx,pady),padx,pady);
- Info(" 97- 80","sec=%i padx=%3i pady=%3i",p->Loc2Pad( sx/2+dz , -dz/2 ,padx,pady),padx,pady);
- Info("144- 80","sec=%i padx=%3i pady=%3i",p->Loc2Pad( px/2 , -dz/2 ,padx,pady),padx,pady);
- cout<<endl;
- Info(" 1- 81","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-px/2 , dz/2 ,padx,pady),padx,pady);
- Info(" 48- 81","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-sx/2-dz , dz/2 ,padx,pady),padx,pady);
- Info(" 49- 81","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-sx/2 , dz/2 ,padx,pady),padx,pady);
- Info(" 96- 81","sec=%i padx=%3i pady=%3i",p->Loc2Pad( sx/2 , dz/2 ,padx,pady),padx,pady);
- Info(" 97- 81","sec=%i padx=%3i pady=%3i",p->Loc2Pad( sx/2+dz , dz/2 ,padx,pady),padx,pady);
- Info("144- 81","sec=%i padx=%3i pady=%3i",p->Loc2Pad( px/2 , dz/2 ,padx,pady),padx,pady);
- cout<<endl;
- Info(" 1-160","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-px/2 , py/2 ,padx,pady),padx,pady);
- Info(" 48-160","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-sx/2-dz , py/2 ,padx,pady),padx,pady);
- Info(" 49-160","sec=%i padx=%3i pady=%3i",p->Loc2Pad(-sx/2 , py/2 ,padx,pady),padx,pady);
- Info(" 96-160","sec=%i padx=%3i pady=%3i",p->Loc2Pad( sx/2 , py/2 ,padx,pady),padx,pady);
- Info(" 97-160","sec=%i padx=%3i pady=%3i",p->Loc2Pad( sx/2+dz , py/2 ,padx,pady),padx,pady);
- Info("144-160","sec=%i padx=%3i pady=%3i",p->Loc2Pad( px/2 , py/2 ,padx,pady),padx,pady);
- cout<<endl;
- Info(" 73-160","sec=%i padx=%3i pady=%3i",p->Loc2Pad( 0 , py/2 ,padx,pady),padx,pady);
- Info(" 73- 81","sec=%i padx=%3i pady=%3i",p->Loc2Pad( 0 , dz/2 ,padx,pady),padx,pady);
- Info("0-0dead","sec=%i padx=%3i pady=%3i",p->Loc2Pad( 0 , 0 ,padx,pady),padx,pady);
- Info(" 73- 80","sec=%i padx=%3i pady=%3i",p->Loc2Pad( 0 , -dz/2 ,padx,pady),padx,pady);
- Info(" 73- 1","sec=%i padx=%3i pady=%3i",p->Loc2Pad( 0 , -py/2 ,padx,pady),padx,pady);
- cout<<endl;
- p->Pad2Loc(padx= 1,pady=1,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 48,pady=1,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 49,pady=1,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 96,pady=1,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 97,pady=1,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx=144,pady=1,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- cout<<endl;
- p->Pad2Loc(padx= 1,pady=80,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 48,pady=80,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 49,pady=80,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 96,pady=80,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 97,pady=80,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx=144,pady=80,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- cout<<endl;
- p->Pad2Loc(padx= 1,pady=81,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 48,pady=81,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 49,pady=81,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 96,pady=81,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 97,pady=81,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx=144,pady=81,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- cout<<endl;
- p->Pad2Loc(padx= 1,pady=160,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 48,pady=160,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 49,pady=160,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 96,pady=160,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx= 97,pady=160,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
- p->Pad2Loc(padx=144,pady=160,x,y); cout<<"padx="<<padx<<" pady="<<pady<<" x="<<x<<" y="<<y<<endl;
+ Double_t eps=0.0000001;
+ Double_t x1=-0.5*p->PcSizeX()+eps; Double_t x2=-0.5*p->SectorSizeX()-p->DeadZone()-eps; Double_t x3=-0.5*p->SectorSizeX()+eps;
+ Double_t x6= 0.5*p->PcSizeX()-eps; Double_t x5= 0.5*p->SectorSizeX()+p->DeadZone()+eps; Double_t x4= 0.5*p->SectorSizeX()-eps;
+ Double_t y1=-0.5*p->PcSizeY()+eps; Double_t y2=-0.5*p->DeadZone()-eps;
+ Double_t y4= 0.5*p->PcSizeY()-eps; Double_t y3= 0.5*p->DeadZone()+eps;
+ TVector2 v2;
+
+ AliRICHParam::Print();
+
+ sec=p->Loc2Pad(TVector2(x= 0,y=y1),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 73- 1","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x= 0,y=y2),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 73- 80","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x= 0,y= 0),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" dead ","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x= 0,y=y3),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 73- 81","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x= 0,y=y4),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 73-160","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)\n",x,y,sec,padx,pady,v2.X(),v2.Y());
+
+ sec=p->Loc2Pad(TVector2(x=x1,y=y4),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 1-160","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x2,y=y4),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 48-160","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x3,y=y4),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 49-160","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x4,y=y4),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 96-160","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x5,y=y4),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 97-160","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x6,y=y4),padx,pady); v2=p->Pad2Loc(padx,pady); Info("144-160","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)\n",x,y,sec,padx,pady,v2.X(),v2.Y());
+
+ sec=p->Loc2Pad(TVector2(x=x1,y=y3),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 1- 81","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x2,y=y3),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 48- 81","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x3,y=y3),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 49- 81","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x4,y=y3),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 96- 81","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x5,y=y3),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 97- 81","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x6,y=y3),padx,pady); v2=p->Pad2Loc(padx,pady); Info("144- 81","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)\n",x,y,sec,padx,pady,v2.X(),v2.Y());
+
+ sec=p->Loc2Pad(TVector2(x=x1,y=y2),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 1- 80","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x2,y=y2),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 48- 80","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x3,y=y2),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 49- 80","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x4,y=y2),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 96- 80","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x5,y=y2),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 97- 80","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x6,y=y2),padx,pady); v2=p->Pad2Loc(padx,pady); Info("144- 80","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)\n",x,y,sec,padx,pady,v2.X(),v2.Y());
+
+ sec=p->Loc2Pad(TVector2(x=x1,y=y1),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 1- 1","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x2,y=y1),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 48- 1","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x3,y=y1),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 49- 1","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x4,y=y1),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 96- 1","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x5,y=y1),padx,pady); v2=p->Pad2Loc(padx,pady); Info(" 97- 1","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)",x,y,sec,padx,pady,v2.X(),v2.Y());
+ sec=p->Loc2Pad(TVector2(x=x6,y=y1),padx,pady); v2=p->Pad2Loc(padx,pady); Info("144- 1","(%7.2f,%7.2f)->(%5i,%5i,%5i) center=(%7.2f,%7.2f)\n",x,y,sec,padx,pady,v2.X(),v2.Y());
+
}//void TestSeg()
//__________________________________________________________________________________________________
void TestMenu()
{
TControlBar *pMenu = new TControlBar("vertical","RICH test");
pMenu->AddButton("Test segmentation", "TestSeg()", "Test AliRICHParam segmentation methods");
- pMenu->AddButton("Test transform", "TestTransform()", "Test ALiRICHChamber methods");
pMenu->AddButton("Test response", "TestResponse()", "Test AliRICHParam response methods");
pMenu->AddButton("Test sdigits", "TestSD()", "Create test set of sdigits");
- pMenu->AddButton("Test digits OLD", "TestDigitsOLD()", "Create test set of OLD digits");
pMenu->AddButton("Test clusters", "TestC()", "Create test set of clusters");
+ pMenu->AddButton("Test digits OLD", "TestDigitsOLD()", "Create test set of OLD digits");
pMenu->Show();
}//TestMenu()
//__________________________________________________________________________________________________
-void GeoMenu()
-{
- TControlBar *pMenu = new TControlBar("vertical","RICH draw");
- pMenu->AddButton("RICH Isometry", "gMC->Gdraw(\"ALIC\", 60,40,0, 10,10, 0.008,0.008)","Draws ALIC volume in isometry");
- pMenu->AddButton("RICH Front XY", "gMC->Gdraw(\"ALIC\", 0,0,0, 10,10, 0.01,0.01)","Draws ALIC volume in XY view");
- pMenu->AddButton("RICH Side YZ", "gMC->Gdraw(\"ALIC\",90,180, 0, 10,10, 0.01,0.01)","Draws ALIC volume in YZ view");
- pMenu->AddButton("RICH Top XZ", "gMC->Gdraw(\"ALIC\",90, 90, 0, 10,10, 0.01,0.01)","Draws ALIC volume in XZ view");
- pMenu->AddButton("Module Isometry","gMC->Gdraw(\"SRIC\", 30,60,0, 10,10, 0.1,0.1)","Draws SRIC volume in isometry");
- pMenu->AddButton("Module Front XY","gMC->Gdraw(\"SRIC\", 0,0,0, 10,10, 0.1,0.1)","Draws SRIC volume in XY view");
- pMenu->AddButton("Module Top XZ", "gMC->Gdraw(\"SRIC\",90, 90, 0, 10,10, 0.1,0.1)","Draws SRIC volume in XZ view");
- pMenu->AddButton("ALICE Tree", "((TGeant3*)gMC)->Gdtree(\"ALIC\")","Draws ALICE tree");
- pMenu->AddButton("RICH Tree", "((TGeant3*)gMC)->Gdtree(\"RICH\")","Draws RICH tree");
- pMenu->AddButton("Geo test", "GeoTest()", "Draw RICH geo as a macro");
- pMenu->AddButton("Print ref", "PrintGeo()", "Print RICH chambers default position");
- pMenu->AddButton("AliRICH::Print", "r->Print();", "Print RICH chambers default position");
- pMenu->AddButton("Test transform","TestTransform()","Test L2G and G2L methods");
- pMenu->Show();
-}//GeoMenu()
-//__________________________________________________________________________________________________
void menu()
{
TControlBar *pMenu = new TControlBar("vertical","RICH main");
if(ReadAlice()){//it's from file, reconstruct
pMenu->AddButton("hits->sdigits->digits->clusters","MainTrank()","Convert");
- pMenu->AddButton("hits->sdigits", "H_SD()", "Perform first phase conversion");
- pMenu->AddButton("sdigits->digits", "SD_D()", "Perform first phase conversion");
- pMenu->AddButton("digits->clusters", "D_C()", "Perform first phase conversion");
- pMenu->AddButton("clusters->recos", "C_R()", "Perform first phase conversion");
+ pMenu->AddButton("hits->sdigits" ,"H_SD()" ,"AliRICH::Hits2SDigits");
+ pMenu->AddButton("sdigits->digits" ,"SD_D()" ,"AliRICHDigitizer");
+ pMenu->AddButton("digits->clusters" ,"D_C()" ,"AliRICHClusterFinder");
+ pMenu->AddButton("clusters->recos" ,"C_R()" ,"AliRICHRecon");
- pMenu->AddButton("Show","Show()","Shows the structure of events in files");
+ pMenu->AddButton("Show", "Show()","Shows the structure of events in files");
+ pMenu->AddButton("Display Fast", "DisplFast()", "Display Fast");
+ pMenu->AddButton("Control Plots", "ControlPlots()", "Display some control histograms");
pMenu->AddButton("OLD specials->sdigits", "OLD_S_SD()", "Perform first phase converstion");
}else{//it's aliroot, simulate
pMenu->AddButton("Run", "a->Run(1)", "Process!");
+ pMenu->AddButton("Geo GUI", "new G3GeometryGUI;","Create instance of G4GeometryGUI");
}
- pMenu->AddButton("Geo submenu", "GeoMenu()", "Shows geomentry submenu");
- pMenu->AddButton("Geo GUI", "new G3GeometryGUI;","Create instance of G4GeometryGUI");
pMenu->AddButton("Test submenu", "TestMenu()", "Shows test submenu");
pMenu->AddButton("Browser", "new TBrowser;", "Start ROOT TBrowser");
- pMenu->AddButton("Display Fast", "DisplFast()", "Display Fast");
- pMenu->AddButton("Control Plots", "ControlPlots()", "Display some control histograms");
pMenu->AddButton("Debug ON", "DebugON();", "Switch debug on-off");
pMenu->AddButton("Debug OFF", "DebugOFF();", "Switch debug on-off");
pMenu->AddButton("Quit", ".q", "Close session");