/// <summary>
        /// Search if the setOfAtomContainer contains the atomContainer
        /// </summary>
        /// <param name="set">ISetOfAtomContainer object where to search</param>
        /// <param name="atomContainer">IAtomContainer to search</param>
        /// <returns>True, if the atomContainer is contained</returns>
        private bool ExistAC(IChemObjectSet <IAtomContainer> set, IAtomContainer atomContainer)
        {
            IAtomContainer acClone = null;

            acClone = (IAtomContainer)atomContainer.Clone();
            if (!lookingSymmetry)
            { /* remove all aromatic flags */
                foreach (var atom in acClone.Atoms)
                {
                    atom.IsAromatic = false;
                }
                foreach (var bond in acClone.Bonds)
                {
                    bond.IsAromatic = false;
                }
            }

            for (int i = 0; i < acClone.Atoms.Count; i++)
            {
                acClone.Atoms[i].Id = "" + acClone.Atoms.IndexOf(acClone.Atoms[i]);
            }

            if (lookingSymmetry)
            {
                try
                {
                    Aromaticity.CDKLegacy.Apply(acClone);
                }
                catch (CDKException e)
                {
                    Console.Error.WriteLine(e.StackTrace);
                }
            }
            else
            {
                if (!lookingSymmetry)
                { /* remove all aromatic flags */
                    foreach (var atom in acClone.Atoms)
                    {
                        atom.IsAromatic = false;
                    }
                    foreach (var bond in acClone.Bonds)
                    {
                        bond.IsAromatic = false;
                    }
                }
            }
            for (int i = 0; i < set.Count; i++)
            {
                var ss = set[i];
                for (int j = 0; j < ss.Atoms.Count; j++)
                {
                    ss.Atoms[j].Id = "" + ss.Atoms.IndexOf(ss.Atoms[j]);
                }

                try
                {
                    if (!lookingSymmetry)
                    {
                        var qAC = QueryAtomContainerCreator.CreateSymbolChargeIDQueryContainer(acClone);
                        if (new UniversalIsomorphismTester().IsIsomorph(ss, qAC))
                        {
                            var qAC2 = QueryAtomContainerCreator.CreateSymbolAndBondOrderQueryContainer(acClone);
                            if (new UniversalIsomorphismTester().IsIsomorph(ss, qAC2))
                            {
                                return(true);
                            }
                        }
                    }
                    else
                    {
                        var qAC = QueryAtomContainerCreator.CreateSymbolAndChargeQueryContainer(acClone);
                        Aromaticity.CDKLegacy.Apply(ss);
                        if (new UniversalIsomorphismTester().IsIsomorph(ss, qAC))
                        {
                            return(true);
                        }
                    }
                }
                catch (CDKException e1)
                {
                    Console.Error.WriteLine(e1);
                    Trace.TraceError(e1.Message);
                    Debug.WriteLine(e1);
                }
            }
            return(false);
        }