ROOT logo
/*************************************************************************
 * * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
 * *                                                                        *
 * * Author: The ALICE Off-line Project.                                    *
 * * Contributors are mentioned in the code where appropriate.              *
 * *                                                                        *
 * * Permission to use, copy, modify and distribute this software and its   *
 * * documentation strictly for non-commercial purposes is hereby granted   *
 * * without fee, provided that the above copyright notice appears in all   *
 * * copies and that both the copyright notice and this permission notice   *
 * * appear in the supporting documentation. The authors make no claims     *
 * * about the suitability of this software for any purpose. It is          *
 * * provided "as is" without express or implied warranty.                  *
 * **************************************************************************/

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  The SAX XML file handler used in the TOFnoiseda                       //
//                                                                        //
//  Author:                                                               //
//    Chiara Zampolli (Chiara.Zampolli@cern.ch)                           //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#include <cstdlib>
#include <Riostream.h>

#include <TList.h>
#include <TObject.h>
#include <TXMLAttr.h>
#include <TSAXParser.h>

#include "AliLog.h"
#include "AliTOFNoiseConfigHandler.h"

ClassImp(AliTOFNoiseConfigHandler)

  
//_____________________________________________________________________________
AliTOFNoiseConfigHandler::AliTOFNoiseConfigHandler()
	:TObject(),
	 fDebugFlag(0)
{
	//
	// AliTOFNoiseConfigHandler default constructor
	//
}

//_____________________________________________________________________________
AliTOFNoiseConfigHandler::AliTOFNoiseConfigHandler(const AliTOFNoiseConfigHandler &sh)
	:TObject(sh),
	 fDebugFlag(sh.fDebugFlag)
{
	//
	// AliTOFNoiseConfigHandler copy constructor
	//
}

//_____________________________________________________________________________
AliTOFNoiseConfigHandler &AliTOFNoiseConfigHandler::operator=(const AliTOFNoiseConfigHandler &sh)
{
	//
	// Assignment operator
	//
	if (&sh == this) return *this;
	
	new (this) AliTOFNoiseConfigHandler(sh);
	return *this;
}

//_____________________________________________________________________________
AliTOFNoiseConfigHandler::~AliTOFNoiseConfigHandler()
{
	//
	// AliTOFNoiseConfigHandler destructor
	//	
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnStartDocument()
{
	// if something should happen right at the beginning of the
	// XML document, this must happen here
	AliInfo("Reading XML file for TOFnoiseda Config");
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnEndDocument()
{
	// if something should happen at the end of the XML document
	// this must be done here
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnStartElement(const char *name, const TList *attributes)
{
	// when a new XML element is found, it is processed here

	// set the current system if necessary
	TString strName(name);
	AliDebug(2,Form("name = %s",strName.Data()));
	TXMLAttr* attr;
	TIter next(attributes);
	while ((attr = (TXMLAttr*) next())) {
		TString attrName = attr->GetName();
		AliDebug(2,Form("Name = %s",attrName.Data())); 
		if (attrName == "DebugFlag"){
			TString debugFlag = (TString)(attr->GetValue());
			if (debugFlag == "ON" || debugFlag == "On" || debugFlag == "on"){	
				fDebugFlag = 1;
			}
			else if (debugFlag == "OFF" || debugFlag == "Off"|| debugFlag == "off"){
				fDebugFlag = 0;
			}
			else {
				AliWarning("Invalid Debug Flag. Keeping debug off");
				fDebugFlag = 0;
			}
		}
	}	
	AliDebug(2,Form("Debug Flag = %i",fDebugFlag)); 
	return;
}
//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnEndElement(const char *name)
{
	// do everything that needs to be done when an end tag of an element is found
	TString strName(name);
	AliDebug(2,Form("name = %s",strName.Data()));
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnCharacters(const char *characters)
{
	// copy the text content of an XML element
	//fContent = characters;
	TString strCharacters(characters);
	AliDebug(2,Form("characters = %s",strCharacters.Data()));
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnComment(const char* /*text*/)
{
	// comments within the XML file are ignored
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnWarning(const char *text)
{
	// process warnings here
	AliInfo(Form("Warning: %s",text));
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnError(const char *text)
{
	// process errors here
	AliError(Form("Error: %s",text));
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnFatalError(const char *text)
{
	// process fatal errors here
	AliFatal(Form("Fatal error: %s",text));
}

//_____________________________________________________________________________
void AliTOFNoiseConfigHandler::OnCdataBlock(const char* /*text*/, Int_t /*len*/)
{
	// process character data blocks here
	// not implemented and should not be used here
}

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