GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » Bugs, Fixes, Releases » segmentation violation in pid macro [FIXED]
segmentation violation in pid macro [FIXED] [message #13207] Thu, 15 March 2012 11:49 Go to next message
Albrecht Gillitzer is currently offline  Albrecht Gillitzer
Messages: 49
Registered: March 2004
continuous participant
From: *ikp.kfa-juelich.de
Hi,

I'm using the (close to) present Rev.14978 simulating 4.0 GeV/c pbar d --> p phi pi- (however I think the specific reaction is not relevant).
When I run root -b -q run_pid_stt_evt.C (standard pid macro) I get a crash with segmentation violation in the initialization stage before the event loop starts. It seems that the sim, digi & reco macros have been executed before without problems.

This pattern seems to be a general one, independent of the random seed with which the simulation is started. I got three other crashes with the same feature.

I used the same macros in Rev. 14321 (Jan-12) without having this problem.

Can anyone imagine what has been changed in pid that can cause such crashes?

Albrecht

[Updated on: Tue, 29 May 2012 12:43] by Moderator

Report message to a moderator

Re: segmentation violation in pid macro [message #13208 is a reply to message #13207] Thu, 15 March 2012 12:48 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: 94.163.170*
Could you please copy the log? Because I have tried yesterday and it seemed to work.
The other point is if your reco macro has crashed at the end and therefore the pid crash at the init. If this is the case, I would suggest to try root without -b or maybe -q, because it seems this is recently providing some problems.
Re: segmentation violation in pid macro [message #13209 is a reply to message #13208] Thu, 15 March 2012 13:13 Go to previous messageGo to next message
Albrecht Gillitzer is currently offline  Albrecht Gillitzer
Messages: 49
Registered: March 2004
continuous participant
From: *ikp.kfa-juelich.de
Hi,

I used a shell script executing a series of simulation macros. Therefore I wanted to use -b -q. This should worked ans has worked so far.

It seems that the reco root file is properly closed, at least the log output says like that.

The portion of the log file is rather long. I attach it as separate file.

Albrecht
  • Attachment: pid_crash.log
    (Size: 23.27KB, Downloaded 255 times)
Re: segmentation violation in pid macro [message #13211 is a reply to message #13209] Thu, 15 March 2012 14:25 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *to.infn.it
Sorry, I forgot to catch an exception.
Now it is fixed, you have to update pid/PidCorr/PndPidCorrelator.cxx.
However, if you want to use E1/E9/E25 information, you should comment in the digi macro the line:

//emcWaveformToDigi->SetStorageOfData(kFALSE);


The macro/pid macros should be already corrected.
Re: segmentation violation in pid macro [message #13255 is a reply to message #13211] Mon, 26 March 2012 11:39 Go to previous messageGo to next message
Albrecht Gillitzer is currently offline  Albrecht Gillitzer
Messages: 49
Registered: March 2004
continuous participant
From: *ikp.kfa-juelich.de
Dear Stefano,

Sorry for my delayed reaction (I had no time last week due to the DPG meeting in Mainz),

and also sorry for my ignorance:
what is the E1/E9/E25 information?

Albrecht
Re: segmentation violation in pid macro [message #13256 is a reply to message #13255] Mon, 26 March 2012 11:42 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: 140.181.9*
They are the energy deposited in the central crystal (E1), in the 3x3 crystals aroung the central crystal (E9), and the 5x5 (E25)
Re: segmentation violation in pid macro [message #13527 is a reply to message #13256] Fri, 25 May 2012 16:05 Go to previous messageGo to next message
MartinJGaluska is currently offline  MartinJGaluska
Messages: 203
Registered: March 2010
Location: Germany
first-grade participant
From: *physik.uni-giessen.de
Hello,

I have just encountered what seems to be the exact same problem in run_pid_stt.C (from macro/pid) in revision 15614, but I have read that the problem was already fixed, so maybe I am doing something wrong or it is a different problem.

I am simulating X(as Psi')-> j/psi pi pi with j/psi -> e+ e-.

I call the macro with
root run_pid_stt.C


Here is my error output from root (which looks very similar to what Albrecht posted, I believe):

ROOT 5.32/00 (tags/v5-32-00@42375, Feb 02 2012, 16:46:50 on linuxx8664gcc)

CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] 
Processing run_pid_stt.C...
FairRootManager::OpenOutFile("pid_sttcombi.root")
Info in (PndGeoHandling::Instance): Making a new instance using the framework.
[INFO   ] The input consists out of the following trees and files: 
[INFO   ]  - cbmsim 
[INFO   ]     - points_sttcombi.root 
[INFO   ]  - FriendTree_1 
[INFO   ]     - digi_sttcombi.root 
[INFO   ]  - FriendTree_2 
[INFO   ]     - reco_sttcombi.root 
[INFO   ] Parameter and input file are available, Assure that basic info is there for the run! 
[INFO   ] The number of entries in chain is 100 

*************************************************************
     initialisation for run id 1421926020
*************************************************************
Info in <TGeoNavigator::BuildCache>: --- Maximum geometry depth set to 100
Info in <TGeoManager::CloseGeometry>: Geometry loaded from file...
Info in <TGeoManager::SetTopVolume>: Top volume is cave. Master volume is cave
Info in <TGeoManager::Voxelize>: Voxelizing...
Info in <TGeoManager::CloseGeometry>: 2015817 nodes/ 5748 volume UID's in FAIR geometry
Info in <TGeoManager::CloseGeometry>: ----------------modeler ready----------------
Container FairBaseParSet initialized from ROOT file.
 -I container name PndPidCorrPar
 -I container name PndEmcGeoPar
 -I container name PndEmcErrorMatrixPar
 -I container name PndGeoSttPar

*************************************************************
     initialisation for run id 1421926020
*************************************************************
Container PndSensorNamePar initialized from ROOT file.
PndPidCorrPar initialized from Ascii file
Container PndEmcGeoPar initialized from ROOT file.
[ERROR  ] init() PndEmcErrorMatrixPar  not initialized 
Container PndGeoSttPar initialized from ROOT file.
Error in <FairRuntimeDb::initContainers()>: Error occured during initialization
PndFieldCreator::SetParm() 0x263c3e50

*************************************************************
     initialisation for run id 1421926020
*************************************************************
PndPidCorrPar initialized from Ascii file
[ERROR  ] init() PndEmcErrorMatrixPar  not initialized 
Container PndMultiFieldPar initialized from ROOT file.
Error in <FairRuntimeDb::initContainers()>: Error occured during initialization
OBJ: PndTransPar	PndTransPar	Trans. Field parameter container
OBJ: PndDipole1Par	PndDipole1Par	Dipole Field parameter container
OBJ: PndDipole2Par	PndDipole2Par	Dipole Field parameter container
OBJ: PndSolenoid1Par	PndSolenoid1Par	Solenoid 1st region parameter container
OBJ: PndSolenoid2Par	PndSolenoid2Par	Solenoid 2nd region parameter container
OBJ: PndSolenoid3Par	PndSolenoid3Par	Solenoid 3rd region parameter container
OBJ: PndSolenoid4Par	PndSolenoid4Par	Solenoid 4th region parameter container
[INFO   ] PndFieldMap: Reading field map from ROOT file  /home/panda/pandaroot_sep12/trunk/input/TransMap.0890.root  
[INFO   ] PndFieldMap: Reading field map from ROOT file  /home/panda/pandaroot_sep12/trunk/input/DipoleMap1.0890.root  
[INFO   ] PndFieldMap: Reading field map from ROOT file  /home/panda/pandaroot_sep12/trunk/input/DipoleMap2.0890.root  
[INFO   ] PndFieldMap: Reading field map from ROOT file  /home/panda/pandaroot_sep12/trunk/input/SolenoidMap1.root  
[INFO   ] PndFieldMap: Reading field map from ROOT file  /home/panda/pandaroot_sep12/trunk/input/SolenoidMap2.root  
[INFO   ] PndFieldMap: Reading field map from ROOT file  /home/panda/pandaroot_sep12/trunk/input/SolenoidMap3.root  
[INFO   ] PndFieldMap: Reading field map from ROOT file  /home/panda/pandaroot_sep12/trunk/input/SolenoidMap4.root  
------------------------FairGeane::Init ()------------------------------
Loading Geant3 libraries ...
Loading Geant3 libraries ... finished

 MZSTOR.  ZEBRA table base TAB(0) in /MZCC/ at adr   432686447    19CA456F HEX

 MZSTOR.  Initialize Store  0  in /GCBANK/
          with Store/Table at absolute adrs   432709485   432686447
                                        HEX    19CA9F6D    19CA456F
                                        HEX        560A           0
                              relative adrs       22026           0
          with     1 Str. in     2 Links in   5300 Low words in 4999970 words.
          This store has a fence of   16 words.

 MZLOGL.  Set Log Level 0 for store  0
1*****  GEANT Version  3.21/11 Released on 100298
0*****  Correction Cradle Version  0.1100

 MZDIV.   Initialize Division  Constant  in Store  0
          NW/NWMAX=   20004000000,  MODE/KIND=  1  2
          Division 20 initialized.

 MZLINK.  Initialize Link Area  /GCLINK/  for Store  0 NL/NS=    20    20

 MZLINK.  Initialize Link Area  /GCSLNK/  for Store  0 NL/NS=   100   100
-I- G3Config: Geant3 with TGeo has been created for Geane.
-I- Geane.C: NOPRNT flag set to 1
-I- Geane.C: IERR flags are not printed. If you want to switch them on, please set fErtrio1->noprnt = 0 in Geane.C
Energy straggling area parameter from user set to: 0.999

 Calculating cross section tables, see gphysi.dat for more information

 Cross section calculation concluded successfully
I- FairGeane::FairGeane:  Geane is Initialized 
-I- PndPidCorrelator::Init: Using STTHit
-I- PndPidCorrelator::Init: Using MVDHit
[INFO   ]  Branch: TofHit  not found in Tree  
[INFO   ]  Branch: TofHit  not found in Tree  
-W- PndPidCorrelator::Init: No TofHit array!
-I- PndPidCorrelator::Init: Using EmcCluster
-I- PndPidCorrelator::Init: Using DrcHit
-I- PndPidCorrelator::Init: Using DskParticle
-I- PndPidCorrelator::Init: Using MdtHit
-I- PndPidCorrelator::Init: Using MdtTrk

---------------------------------------------
-----  PndPidCorrPar  -----
--  Context/Purpose:  TestDefaultContext
---------------------------------------------
TofRadius: Float_t   43.6 
TofCut: Float_t   2500 
Emc12Thr: Float_t   0.02 
Emc12Radius: Float_t   63 
Emc12Cut: Float_t   2500 
MdtRadius: Float_t   155 
MdtCut: Float_t   2500 
DrcRadius: Float_t   49 
DrcCut: Float_t   1 
---------------------------------------------

-I- PndPidCorrelator::Init: Using Geane for Track propagation
-I- PndPidCorrelator::Init: No PID set -> Using default PION hypothesis
Error matrix for EMC geometry: 1 does not exist. Default is used.
EMC error matrix is read from: /home/panda/pandaroot_sep12/trunk/input/emc_error_matrix_default.root
EMC photon calibration parameters are read succesfully
-I- PndPidCorrelator::Init: Success!
-I- PndPidIdealAssociatorTask::Init: Success!
InitStatus PndPidMvdAssociatorTask::Init()
-I- PndPidMvdAssociatorTask::Init: Success!
InitStatus PndPidMdtHCAssociatorTask::Init()
-I- PndPidMdtHCAssociatorTask::Init: Success!
InitStatus PndPidDrcAssociatorTask::Init()
-I- PndPidDrcAssociatorTask::Init: Success!
InitStatus PndPidDiscAssociatorTask::Init()
-I- PndPidDiscAssociatorTask::Init: Success!
-I- PndPidSttAssociatorTask: using default mass hypo bands (muon)
-I- PndPidSttAssociatorTask::Init: Intialization successfull
InitStatus PndPidEmcBayesAssociatorTask::Init()
-I- PndPidEmcBayesAssociatorTask::SetupEnvironment:File used=BayesEMC.root-I- PndPidEmcBayesAssociatorTask::Init: Success!!
[INFO   ] The number of entries in chain is 100 
 =====   PndPidCorrelator - Event: 1 - Number of tracks for pid 5 - Number of EMC Cluster for pid 17
[INFO   ] The number of entries in chain is 100 
 =====   PndPidCorrelator - Event: 2 - Number of tracks for pid 3 - Number of EMC Cluster for pid 13
-W- PndPidCorrelator::GetMvdInfo: Track perpendicular to MVD strip/pixel! Not added to MVD eloss
-W- PndPidCorrelator::GetMvdInfo: Track perpendicular to MVD strip/pixel! Not added to MVD eloss
-W- PndPidCorrelator::GetMvdInfo: Track perpendicular to MVD strip/pixel! Not added to MVD eloss
-W- PndPidCorrelator::GetMvdInfo: Track perpendicular to MVD strip/pixel! Not added to MVD eloss
-W- PndPidCorrelator::GetMvdInfo: Track perpendicular to MVD strip/pixel! Not added to MVD eloss

 *** Break *** segmentation violation



===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0  0x000000300409a115 in waitpid () from /lib64/libc.so.6
#1  0x000000300403c481 in do_system () from /lib64/libc.so.6
#2  0x00002b2d53f3f902 in TUnixSystem::StackTrace() ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#3  0x00002b2d53f3c79a in TUnixSystem::DispatchSignals(ESignals) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#4  <signal handler called>
#5  0x00002b2d5fb42d35 in PndEmcCluster::Maxima (this=0x2a4c42a0, 
    digiArray=0x1ded4fc0)
    at /home/panda/pandaroot_sep12/trunk/emc/EmcData/PndEmcCluster.cxx:212
#6  0x00002b2d5fb4c8f3 in PndEmcClusterEnergySums::E1 (this=0x7fffcac33bf0)
    at /home/panda/pandaroot_sep12/trunk/emc/EmcData/PndEmcClusterEnergySums.cxx:89
#7  0x00002b2d651a24f6 in PndPidCorrelator::ConstructNeutralCandidate (
    this=0x1d94e130)
    at /home/panda/pandaroot_sep12/trunk/pid/PidCorr/PndPidCorrelator.cxx:715
#8  0x00002b2d651a399f in PndPidCorrelator::Exec (this=0x1d94e130, 
    option=0x2b2d5d656460 "")
    at /home/panda/pandaroot_sep12/trunk/pid/PidCorr/PndPidCorrelator.cxx:550
#9  0x00002b2d53ec43a9 in TTask::ExecuteTasks(char const*) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#10 0x00002b2d53ec3dfb in TTask::ExecuteTask(char const*) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#11 0x00002b2d5d579518 in FairRunAna::Run (this=0x1c7d3090, Ev_start=0, 
    Ev_end=100) at /home/panda/pandaroot_sep12/trunk/base/FairRunAna.cxx:544
#12 0x00002b2d5d5ec39e in G__FairDict_986_0_6 (result7=0x7fffcac3fdf0, 
    funcname=0x1c7ce1f0 "", libp=0x7fffcac353e0, hash=0)
    at /home/panda/pandaroot_sep12/build/base/FairDict.cxx:14749
#13 0x00002b2d546f471d in Cint::G__ExceptionWrapper(int (*)(G__value*, char const*, G__param*, int), G__value*, char*, G__param*, int) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#14 0x00002b2d547a5a90 in G__execute_call ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#15 0x00002b2d547a74ea in G__call_cppfunc ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#16 0x00002b2d547804b0 in G__interpret_func ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#17 0x00002b2d5476f8ee in G__getfunction ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#18 0x00002b2d5485f546 in G__getstructmem(int, G__FastAllocString&, char*, int, char*, int*, G__var_array*, int) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#19 0x00002b2d54855346 in G__getvariable ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#20 0x00002b2d5474269c in G__getitem ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#21 0x00002b2d5474ce21 in G__getexpr ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#22 0x00002b2d547d4adf in G__exec_statement ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#23 0x00002b2d5472e7b5 in G__exec_tempfile_core ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#24 0x00002b2d5472eaeb in G__exec_tempfile ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#25 0x00002b2d547e7054 in G__process_cmd ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCint.so.5.32
#26 0x00002b2d53ef955d in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*) () from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#27 0x00002b2d53ef9033 in TCint::ProcessLineSynch(char const*, TInterpreter::EErrorCode*) () from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#28 0x00002b2d53e5645e in TApplication::ExecuteFile(char const*, int*, bool) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#29 0x00002b2d53e539fd in TApplication::ProcessLine(char const*, bool, int*) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#30 0x00002b2d5504b59c in TRint::Run(bool) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libRint.so.5.32
#31 0x000000000040100d in main ()
===========================================================


The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#5  0x00002b2d5fb42d35 in PndEmcCluster::Maxima (this=0x2a4c42a0, 
    digiArray=0x1ded4fc0)
    at /home/panda/pandaroot_sep12/trunk/emc/EmcData/PndEmcCluster.cxx:212
#6  0x00002b2d5fb4c8f3 in PndEmcClusterEnergySums::E1 (this=0x7fffcac33bf0)
    at /home/panda/pandaroot_sep12/trunk/emc/EmcData/PndEmcClusterEnergySums.cxx:89
#7  0x00002b2d651a24f6 in PndPidCorrelator::ConstructNeutralCandidate (
    this=0x1d94e130)
    at /home/panda/pandaroot_sep12/trunk/pid/PidCorr/PndPidCorrelator.cxx:715
#8  0x00002b2d651a399f in PndPidCorrelator::Exec (this=0x1d94e130, 
    option=0x2b2d5d656460 "")
    at /home/panda/pandaroot_sep12/trunk/pid/PidCorr/PndPidCorrelator.cxx:550
#9  0x00002b2d53ec43a9 in TTask::ExecuteTasks(char const*) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#10 0x00002b2d53ec3dfb in TTask::ExecuteTask(char const*) ()
   from /home/panda/fairsoft/jan12/tools/root/lib/libCore.so.5.32
#11 0x00002b2d5d579518 in FairRunAna::Run (this=0x1c7d3090, Ev_start=0, 
    Ev_end=100) at /home/panda/pandaroot_sep12/trunk/base/FairRunAna.cxx:544
===========================================================
Re: segmentation violation in pid macro [message #13528 is a reply to message #13527] Fri, 25 May 2012 16:54 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *NATPOOL.NYU.EDU
Which macros are you using? Are you sure you are using the new code from svn?
Could you please check if the digi file does contain EmcDigi TCA?

[Updated on: Fri, 25 May 2012 16:55]

Report message to a moderator

Re: segmentation violation in pid macro [message #13529 is a reply to message #13528] Fri, 25 May 2012 18:10 Go to previous messageGo to next message
MartinJGaluska is currently offline  MartinJGaluska
Messages: 203
Registered: March 2010
Location: Germany
first-grade participant
From: *physik.uni-giessen.de
Thank you for your reply, Stefano.

I have just made a clean install of PandaRoot using
svn co https://subversion.gsi.de/fairroot/pandaroot/trunk

to make sure that I am using the most recent version (revision 15614) and the problem seems to still occur. I am using sim, digi, reco and pid macros from the macro/pid folder and added EvtGen Direct in the sim macro in order to simulate the decay X(as Psi')-> j/psi pi pi with j/psi -> e+ e-.

I have looked at the digi_sttcombi.root and I can find a branch called EmcDigi, but do not see anything called TCA within that branch. Where should I find it?
Re: segmentation violation in pid macro [message #13530 is a reply to message #13529] Fri, 25 May 2012 23:21 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *public.wayport.net
Please upload here in the forum the macros you are using, with mine I cannot see crashes.
Re: segmentation violation in pid macro [message #13531 is a reply to message #13530] Fri, 25 May 2012 23:33 Go to previous messageGo to next message
MartinJGaluska is currently offline  MartinJGaluska
Messages: 203
Registered: March 2010
Location: Germany
first-grade participant
From: *physik.uni-giessen.de
Sure. Here they are. (Could the problem be a result of me changing the magnetic field in run_sim_...? I believe that is pretty much the only adjustment I made.)
Re: segmentation violation in pid macro [message #13532 is a reply to message #13531] Sat, 26 May 2012 04:19 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *isp.broadviewnet.net
Please update pid folder and try again, I think I have found the problem.
By the way, you don't need evt.pdl anymore, it should be loaded automatically from the EvtGen folder.
Re: segmentation violation in pid macro [message #13542 is a reply to message #13532] Tue, 29 May 2012 12:34 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *to.infn.it
Does it work now?
Re: segmentation violation in pid macro [message #13543 is a reply to message #13542] Tue, 29 May 2012 12:46 Go to previous message
MartinJGaluska is currently offline  MartinJGaluska
Messages: 203
Registered: March 2010
Location: Germany
first-grade participant
From: *physik.uni-giessen.de
Yes, I have just tried it and it works! Thank you very much!

(Sorry for the late reply, Monday was a holiday here and I do not have PandaRoot installed on my private computer which I will do as soon as I install Linux on it.)
Previous Topic: pandaroot installation errors [FIXED]
Next Topic: simulation macro finished with error
Goto Forum:
  


Current Time: Sun Nov 10 20:38:52 CET 2024

Total time taken to generate the page: 0.00934 seconds